代码设计
某班有学生 n 人,需完成 m 门课程学习。现要求设计学生成绩管理系统,满足以下要求:
●学生信息仅包括学号,课程成绩为实型数据。
●成绩录入:输入 n 个学生 m 门课程成绩存放与数组中。
◆成绩排序:按照总分对学生进行排序并输出,输出信息包括学号、各科成绩及总分。●成绩查询:输入学号,查询该学生各门课程成绩及总分并输出。
·统计:统计不及格[0-60)、合格[60-70)、中等[70-80)、良好[80-90)、优秀[90-100]各分数段人数并输出
设计学生成绩管理系统.
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答 默认 最新
快乐鹦鹉 2022-12-06 21:27关注/* ●学生信息仅包括学号,课程成绩为实型数据。 ●成绩录入:输入 n 个学生 m 门课程成绩存放与数组中。 ◆成绩排序:按照总分对学生进行排序并输出,输出信息包括学号、各科成绩及总分。●成绩查询:输入学号,查询该学生各门课程成绩及总分并输出。 ·统计:统计不及格[0-60)、合格[60-70)、中等[70-80)、良好[80-90)、优秀[90-100]各分数段人数并输出 */ #include <iostream> using namespace std; typedef struct _student { int id; double *score; double total; }student; int main() { int n,m,i,j; cout<<"输入班级人数及课程数量:"; cin>>n>>m; student *stu = new student[n]; cout<<"输入所有人的学号和各科目成绩:"<<endl; for(i=0;i<n;i++) { cout<<"输入第"<<i+1<<"个学生学号:"; cin>>stu[i].id; stu[i].score = new double[m]; stu[i].total = 0; for(j=0;j<m;j++) { cout<<"输入第"<<i+1<<"个学生第"<<j+1<<"门课程成绩:"; cin>>stu[i].score[j]; stu[i].total += stu[i].score[j]; } } //排序 for(i=0;i<n-1;i++) { for(j=0;j<n-i-1;j++) { if(stu[j].total < stu[j+1].total) { student t = stu[j]; stu[j] = stu[j+1]; stu[j+1] = t; } } } //输出排名后信息 for(i=0;i<n;i++) { cout<<"学生"<<i+1<<"的信息:"<<endl; cout<<"学号:"<<stu[i].id<<endl; for(j=0;j<n-i-1;j++) cout<<"第"<<j+1<<"门课成绩:"<<stu[i].score[j]<<endl; cout<<"总分:"<<stu[i].total<<endl; } //按学号查询 int id; cout<<"请输入需要查询的学号:"; cin>>id; for(i=0;i<n;i++) { if(stu[i].id == id) { for(int j=0;j<n-i-1;j++) cout<<"第"<<j+1<<"门课成绩:"<<stu[i].score[j]<<endl; cout<<"总分:"<<stu[i].total<<endl; break; } } if(i==n) cout<<"查无此人"<<endl; //统计每门课分数段 for(i=0;i<m;i++) { int r[5] = {0}; for(j=0;j<n;j++) { if(stu[j].score[i] < 60) r[4]++; else if(stu[j].score[i] < 70) r[3]++; else if(stu[j].score[i] < 80) r[2]++; else if(stu[j].score[i] < 90) r[1]++; else r[0]++; } cout<<"第"<<i+1<<"门课统计:"<<endl; cout<<"优秀:"<<r[0]<<"人"<<endl; cout<<"良好:"<<r[1]<<"人"<<endl; cout<<"中等:"<<r[2]<<"人"<<endl; cout<<"合格:"<<r[3]<<"人"<<endl; cout<<"不及格:"<<r[4]<<"人"<<endl; } return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报