学生成绩表 (二)
来源:互联网 发布:白银交易软件下载 编辑:程序博客网 时间:2024/05/16 10:05
#include <iostream>#include <iomanip>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个元素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); //按总分降序排序后输出 sort1(stu,stuNum); cout<<"按总分降序排序后:"<<endl; output(stu,stuNum); //按学号升序排序后输出 sort2(stu,stuNum); cout<<"按学号升序排序后:"<<endl; output(stu,stuNum); return 0;}void calculate(Student s[],int n){ int i; for(i=0;i<n;i++) { s[i].grade=s[i].math+s[i].cpp+s[i].english; s[i].average=s[i].grade/3; }}void sort1(Student s[],int n){ int i,j; Student k; for (i=0;i<n-1;i++) { for (j=0;j<n-i-1;j++) { if (s[j].grade<s[j+1].grade) { k=s[j]; s[j]=s[j+1]; s[j+1]=k; } } }}void sort2(Student s[],int n){ int i,j; Student k; for (i=0;i<n;i++) for (j=0;j<n-i;j++) { if(strcmp(s[i].num,s[j].num)>0) { k=s[j]; s[j]=s[j+1]; s[j+1]=k; } }}void output(Student s[],int n){ cout<<"|+"<<setw(9)<<"学号"<<setw(8)<<"姓名"<<setw(16)<<"总分"<<setw(18)<<"均分"<<endl; for (int i=0;i<n;i++) { cout<<"|+"<<setw(9)<<s[i].num<<setw(8)<<s[i].name<<setw(16)<<s[i].grade<<setw(18)<<s[i].average<<endl; }}void outputExcellent(Student s[],int n){ 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; } }}
0 0
- 学生成绩表 (二)
- 学生成绩表sql示例
- 学生成绩表常用sql
- 双链表--学生成绩表
- sql面试题(学生表_课程表_成绩表)
- 第一期题目*学生成绩表*
- 使用java导出学生成绩表
- 学生成绩表的常用查询
- sql面试题(学生表_课程表_成绩表_教师表)
- sql面试题(学生表_课程表_成绩表_教师表)
- sql面试题(学生表_课程表_成绩表_教师表)
- sql面试题(学生表_课程表_成绩表_教师表)
- sql面试题(学生表_课程表_成绩表_教师表)
- 学生课成表成绩表相关题目50题
- 学生课成表成绩表相关题目50题
- 创建学生表、课程表、成绩表sql语句
- 关于学生成绩表的两个SQL题目
- 学生信息表 成绩表+12章练习
- go语言抓取twitter
- Jenkins入门总结
- Yahoo 收购可视化个人档案制作公司 Vizify
- SVM
- 彻底摆脱配置文件,zkconfigutil分布式环境中配置项管理工具(持续更新中)
- 学生成绩表 (二)
- Secret Number
- iOS Auto Layout的使用
- 堆排序
- C# 中 yield return 和 yield break 关键字的用法
- 学习笔记 (零散问题总结) [第七课]
- Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) - 狂奔的蜗牛 - 博客频道 - CSDN.NET http://blog.csdn.net/hitwengqi/article/detai
- 《黑马程序员》 字节码文件对象获取的三种方式
- Android 操作系统的内存回收机制