第二周——有序的结构体数组
来源:互联网 发布:淘宝宝贝详情编辑软件 编辑:程序博客网 时间:2024/05/20 09:21
/** Copyright (c) 2013, 烟台大学计算机学院* All rights reserved.* 作 者:申玉迪* 完成日期:2014 年 3 月 4 日* 版 本 号:v1.0*/#include <iostream>#include <cstring>using namespace std;struct Student{ char num[13]; char name[10]; int cpp; int math; int english; int grade; double average;};void calculate(Student s[],int n) //计算总分和均分,数据在s数组中,共有n个元素{ int i; for(i=0; i<n; i++) { s[i].grade=s[i].cpp+s[i].math+s[i].english; s[i].average=s[i].grade/3; }}void sort1(Student s[],int n) //按总分降序排序{ int i,j,k; Student t; for(i=0; i<n; i++) { s[i].grade=s[i].cpp+s[i].math+s[i].english; } for(j=0; j<n-1; j++) { for(k=0; k<n-j-1; k++) { if(s[k].grade<s[k+1].grade) { t=s[k]; s[k]=s[k+1]; s[k+1]=t; } } }}void sort2(Student s[],int n) //按学号升序排序{ int i,j; Student t; for(i=0; i<n-1; i++) { for(j=0; j<n-i-1; j++) { if(strcmp(s[j].num,s[j+1].num)>0) { t=s[j+1]; s[j+1]=s[j]; s[j]=t; } } }}void output(Student s[],int n) //输出成绩单{ int i; for(i=0; i<n; i++) { cout<<s[i].num<<" "<<s[i].name<<" "<<s[i].grade<<" "<<s[i].average<<endl; }}void outputExcellent(Student s[],int n) //输出优秀者:总分超285,单科不低于90{ int i; for(i=0; i<n; i++) { if(s[i].grade>285&&s[i].cpp>=90&&s[i].math>=90&&s[i].english>=90) { cout<<s[i].num<<" "<<s[i].name<<endl; } }}int main(){ Student stu[]= {{"201152501104","Tom",65,69 ,68 }, {"201152501114","Jeery",94 ,89 ,63 }, {"201152501138","Speike",67 ,62 ,84 }, {"201152501204","Tyke",100 ,95 ,91 }, {"201152501202","Tuffy",59 ,80 ,55 }, {"201152501115","Butch",100 ,99 ,89 }, {"201152501201","Lightning",95 ,92 ,99 }, {"201152501145","Topsy",88 ,56 ,67 }, {"201152501203","Droopy",62 ,62 ,95 }, {"201152501140","Drupa",80 ,60 ,86 }, {"201152501205","Buzz",73 ,90 ,94} }; int stuNum=sizeof(stu)/sizeof(stu[0]); //用sizeof运算确定数组中元素个数 //计算总分和均分后输出 calculate(stu,stuNum); cout<<"下面是成绩单:"<<endl; output(stu,stuNum); cout<<"优秀者名单:"<<endl; outputExcellent(stu,stuNum); //按总分降序排序后输出 sort1(stu,stuNum); cout<<"按总分降序排序后:"<<endl; output(stu,stuNum); //按学号升序排序后输出 sort2(stu,stuNum); cout<<"按学号升序排序后:"<<endl; output(stu,stuNum); return 0;}
通过写这个程序,我发现自己忘掉了许多的东西,连基础的赋值都不记得是谁赋给谁了,所以必须要抓紧回顾回顾前面所学的知识了
0 0
- 第二周——有序的结构体数组
- 第二周—1.有序的结构体数组
- 大二下学期第二周项目1————有序的结构体数组
- 第二周上机实践项目——有序的结构体数组
- 第二周(项目二)——有序的结构体数组。
- 第二周任务:有序的结构体数组
- 第二周项目一:有序的结构体数组
- 第二周 项目一:有序的结构体数组
- 第二周项目1 有序的结构体数组
- 第二周项目2-有序的结构体数组
- 第二周 项目2 有序的结构体数组
- 第二周项目二-有序的结构体数组
- 第二周项目2-有序的结构体数组
- 第二周项目2-有序的结构体数组
- 第二周项目2-有序的结构体数组
- 第二周 项目二 有序的结构体数组
- 补 第二周 项目2- 有序的结构体数组.
- 第二学期第二周项目2--有序的结构体数组
- 如何搭建交叉编译环境
- VS2010 安装后找不到ADO.NET 实体数据模型
- 格式转换解决手机内存小
- android用TextView实现跑马灯效果
- nutch1.7在eclipse中部署
- 第二周——有序的结构体数组
- 技术背景 FaceBook页面加载技术
- 32位PE安装64位系统
- 书籍推荐
- centos svn安装及配置与使用
- inotify -- Linux 2.6 内核中的文件系统变化通知机制
- windows 本地线程和java虚拟机线程区别
- 智能聊天机器人小黄鸡及其制作方法
- POJ 3253 Fence Repair