2--2有序的结构体数组
来源:互联网 发布:剑网三捏脸数据怎么看 编辑:程序博客网 时间:2024/06/05 22:32
/**程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:纪丽娜*完成日期:2014年3月2日*版本号:v1.0*对任务及求解方法的描述部分:*输入描述:使用同项目 1 相同的结构体类型,在 main 函数中已经对结构体数组进行了初始化,请完成相关函数的定义,实现 main 函数中要求的功能*问题描述:每位同学的信息学号、姓名、C++、高数、英语成绩,定义一个学生成绩的结构体数组,其中的数据成员包括学号(char num[12]) 、姓名(name)、三门课的成绩(grade) 、总分(score) 、均分(average) ) 。 (1)使用同项目1 相同的结构体类型,在main 函数中已经对结构体 数组进行了初始化,请完成相关函数的定义,实现main 函数中要求的功能。(2)求出每名同学的总分和均分,并存储在结构体数组中(可以读入过程中“顺便”计算) ;(3)输出每位同学的信息学号、姓名、总分和均分。(4)输出所有同学均分的均值。*程序输出:*问题分析:*算法设计:*/#include <iostream>#include <iomanip>using namespace std;struct Student{char num[13];char name[10];int cpp;int math;int english;int score;double average;}stu;void calculate(Student s[],int n); //计算总分和均分,数据在 s 数组中,共有 n 个元素void sort1(Student [],int); //按总分降序排序void sort2(Student [],int); //按学号升序排序void output(Student [],int); //输出成绩单void outputExcellent(Student [],int); //输出优秀者:总分超 285,单科不低于 90int 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);//按总分降序排序后输出cout<<"按总分降序排序后:"<<endl;sort1(stu,stuNum);output(stu,stuNum);//按学号升序排序后输出sort2(stu,stuNum);cout<<"按学号升序排序后:"<<endl;output(stu,stuNum);return 0;}void calculate(Student s[],int n) //计算总分和均分,数据在 s 数组中,共有 n 个元素{ int i; for(i=0;i<n;i++) { s[i].score=s[i].cpp+s[i].math+s[i].english; s[i].average=s[i].score/3; }}void sort1(Student s[],int n) //按总分降序排序{ int i,j; Student t; for(j=0;j<n;j++) for(i=0;i<n-j-1;i++) if(s[i].score<s[i+1].score) {t=s[i];s[i]=s[i+1];s[i+1]=t;}}void sort2(Student s[],int n) //按学号升序排序{ int i,j; Student t; for(j=0;j<n;j++) for(i=0;i<n-j-1;i++) if(s[i].num>s[i+1].num) {t=s[i];s[i]=s[i+1];s[i+1]=t;}}void output(Student s[],int n) //输出成绩单{ int i; cout<<"学号 姓名 c++ 高数 英语 总分 均分"<<endl; for(i=0;i<n;i++) { cout<<s[i].num<<setw(10)<<s[i].name<<setw(8)<<s[i].cpp<<setw(8)<<s[i].math<<setw(8)<<s[i].english<<setw(9)<<s[i].score<<setw(9)<<s[i].average; cout<<endl; }}void outputExcellent(Student s[],int n)//输出优秀者:总分超 285,单科不低于 90{ int i; for(i=0;i<n;i++) { if(s[i].score>285&&s[i].cpp>=90&&s[i].math>=90&&s[i].english>=90) { cout<<s[i].num<<" "<<s[i].name<<endl; } }}
0 0
- 2--2有序的结构体数组
- 2-2-有序的结构体数组
- 2_1有序的结构体数组
- 2-1有序的结构体数组
- 2-1有序的结构体数组
- 2-1 有序的结构体数组
- 项目2-有序的结构体数组
- 第2周项目2-有序的结构体数组
- 第2周项目一-有序的结构体数组
- 第二周项目2-有序的结构体数组
- 二周 项目2 有序的结构体数组
- 第二周 项目2 有序的结构体数组
- 第 二周项目2有序的结构体数组
- 第二周项目2-有序的结构体数组
- 第二周项目2-有序的结构体数组
- 第二周项目2-有序的结构体数组
- 补 第二周 项目2- 有序的结构体数组.
- 有序的结构体数组
- 我的青春谁做主(经典台词)
- (无聊)53句话
- 思考
- 等概率生成随机数问题解析
- 子串最大和
- 2--2有序的结构体数组
- 面试题网址
- it公司笔试题(转载)
- 阿里巴巴笔试题1(转载)
- 阿里巴巴笔试题2(转载)
- 字符串的相似度-最小操作次数(转载…
- linux 下的lsof 命令
- 打靶问题
- linux动态链接库编译(转载)