永发信息网

c++总成绩排序

答案:1  悬赏:20  手机版
解决时间 2021-02-23 11:17
♠ 问题描述:总成绩排序
有一学生成绩表,包括学号、姓名、3门课程(数学、物理、英语)成绩。请按如下规则排序:首先按总成绩升序排序;若总成绩相同,则按学号升序排序。
♠ 输入:
首先输入一个整数n,表示学生人数;
然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及3个整数,表示3门课成绩,数据之间用空格隔开。
这些数据首先通过键盘键入,然后存入到名字为in.dat的磁盘文件。
文件in.dat中要求n不小于5,即至少处理5个学生的信息,且要求至少有两名同学的总成绩是相同的。
最佳答案
#include#includeusing namespace std;struct student{ char szName[100]; float mathScore; // 数学成绩 float englishScore; // 英语成绩 float comPuterScore; // 计算机成绩 float javaScore; // java成绩 float htmlScore; // html成绩 float totalSocre; // 总分 // 等号重载 student student::operator=(student &st) { sprintf(szName, st.szName); mathScore = st.mathScore; englishScore = st.englishScore; comPuterScore = st.comPuterScore; javaScore = st.javaScore; htmlScore = st.htmlScore; totalSocre = st.totalSocre ; return *this; }};int main(){ cout << "请输入学生的个数:" << endl; int stuCount = 0; cin >> stuCount; student stuArray[100]; cout << setw(10) << "姓名:" << setw(10) << "数学成绩" << setw(10) << "英语成绩" << setw(10) << "计算机成绩" << setw(10) << "java成绩" << setw(10) << "html成绩" << endl; for (int i = 0; i < stuCount; i++) { cin >>stuArray[i].szName >> stuArray[i].mathScore >> stuArray[i].englishScore >> stuArray[i].comPuterScore >> stuArray[i].javaScore >> stuArray[i].htmlScore; stuArray[i].totalSocre = stuArray[i].mathScore + stuArray[i].englishScore + stuArray[i].comPuterScore + stuArray[i].javaScore + stuArray[i].htmlScore; } // 排序 for (int i = 0; i < stuCount; i++) { for (int j = 0; j < stuCount - i -1; j++) { if (stuArray[j + 1].totalSocre < stuArray[j].totalSocre) { student stu = stuArray[j]; stuArray[j] = stuArray[j + 1]; stuArray[j + 1] = stu; } } } // 打印 cout << setw(10) << "姓名:" << setw(10) << "数学成绩" << setw(10) << "英语成绩" << setw(10) << "计算机成绩" << setw(10) << "java成绩" << setw(10) << "html成绩" << setw(10) << "总成绩"<< endl; for (int i = 0 ; i < stuCount; i ++) { cout << setw(10) << stuArray[i].szName << setw(10) << stuArray[i].mathScore << setw(10) << stuArray[i].englishScore << setw(10) << stuArray[i].comPuterScore << setw(10) << stuArray[i].javaScore << setw(10) << stuArray[i].htmlScore << setw(10) << stuArray[i].totalSocre << endl; } return 0;运行结果:
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
李伟旅社地址在哪,我要去那里办事
既然氚的半衰期只有12.5年,那现在水里怎么还
如何查07公共英语3级的成绩
东江村我想知道这个在什么地方
基督教诗歌看看往上看
关于自知力的描述,正确的是A.自知力可用于判
网络春晚怎么叁加摇一摇
专升本可不可以当民航飞行员
X6户外运动折扣在什么地方啊,我要过去处理事
看望产妇买点什么好
银川哪里有买这种杯子的?
有人看井口战役吗
windows7c盘文件怎么移到e盘
西南庄村我想知道这个在什么地方
喝什么可以改善便秘
推荐资讯
怎样通过巧妙地交谈判断出网友的真实性别?
广顺小蒋卤鹅在哪里啊,我有事要去这个地方
旧址在哪里啊,我有事要去这个地方
商业银行资产负债管理的对象和内涵呈现出()的
慧学国际青少儿教育地址有知道的么?有点事想
求此题第二问解法,为什么因为三角形是钝角三
空乘的fdo什么意思
北京乐动飞扬艺考学校地址在哪,我要去那里办
我新买的摩托车,在低速行驶的时候后车轮附近
俗话说左眼跳灾,右眼跳财那左眼右眼一起跳呢
我眼镜的度数是150的175.是带眼镜好还是不带
老南瓜怎么炒好吃
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?