用 C++语言 设计程序 设计实现 学生成绩管理系统的 应用程序 程序 具 体要求 如下: 通过二维数组构建学生的成绩单 学号 语文 数学 英语 物理 化学 生物 101 96 79 88 77 76 83 102 79 82 86 82 67 91 103 83 98 95 92 93 88 104 92 82 78 89 81 79 105 87 95 91 85 87 75 程序包含的功能: 1、 输入 学号和 科目名称 (如语文、数学等)查询所有同学该科门科目的平 均成绩以及该生该门科目的排名。 2、 输入 学号 ,输出所有 同学根据总成绩的排名,并输出该学号的排名。 3、 输入学号、科目名称、修改的成绩分数对成绩单中成绩进行修改。 4、程序在最开始可以选择想执行的业务选项。 其它要求: 除程序能够正确运行外,还要求程序具有友好的用户交互界面, 能够对错误输入进行处理 (比如对输入金额验证,输入 id的唯一性验证,输入 超长字符的验证) 具备良好的性能, 程序要求具有良好的注释和代码美观性。
时间: 2024-02-06 14:13:13 浏览: 64
好的,这是一个学生成绩管理系统的应用程序,具体要求如下:
1. 通过二维数组构建学生的成绩单,包括学号、语文、数学、英语、物理、化学、生物六门科目的成绩。
2. 程序包含的功能:
- 输入学号和科目名称,查询所有同学该科门科目的平均成绩以及该生该门科目的排名。
- 输入学号,输出所有同学根据总成绩的排名,并输出该学号的排名。
- 输入学号、科目名称、修改的成绩分数对成绩单中成绩进行修改。
- 程序在最开始可以选择想执行的业务选项。
3. 其他要求:
- 程序具有友好的用户交互界面,能够对错误输入进行处理(比如对输入金额验证,输入id的唯一性验证,输入超长字符的验证)。
- 程序具备良好的性能,具有良好的注释和代码美观性。
为了实现这个应用程序,我们可以考虑以下步骤:
1. 定义一个二维数组来存储学生成绩单。
2. 实现输入学生信息和成绩的功能,可以通过循环来输入每个学生的信息。
3. 实现查询学生排名的功能,可以先计算每个学生的总成绩,再根据总成绩进行排序,最后输出排名信息。
4. 实现查询某个学科平均成绩和排名的功能,可以先计算每个学生在该科目上的成绩,再计算该科目的平均成绩,最后根据成绩进行排序,输出排名信息。
5. 实现修改学生成绩的功能,可以通过输入学号和科目名称来定位需要修改的成绩,然后进行修改。
6. 最后,实现一个菜单界面,让用户可以选择需要执行的功能。
在代码实现方面,我们可以参考以下伪代码:
```
// 定义一个二维数组来存储学生的成绩单
int scores[100][6];
// 输入学生信息和成绩
for (int i = 0; i < 100; i++) {
cout << "请输入第" << i+1 << "个学生的信息:" << endl;
cin >> scores[i][0] >> scores[i][1] >> scores[i][2] >> scores[i][3] >> scores[i][4] >> scores[i][5];
}
// 查询学生排名
for (int i = 0; i < 100; i++) {
int total_score = 0;
for (int j = 1; j < 6; j++) {
total_score += scores[i][j];
}
scores[i][6] = total_score;
}
sort(scores, scores+100, cmp); // 根据总成绩进行排序
for (int i = 0; i < 100; i++) {
if (scores[i][0] == target_id) {
cout << "学生的排名是:" << i+1 << endl;
break;
}
}
// 查询某个学科平均成绩和排名
cout << "请输入要查询的学科名称:" << endl;
string subject;
cin >> subject;
int subject_scores[100][2];
for (int i = 0; i < 100; i++) {
subject_scores[i][0] = scores[i][0];
subject_scores[i][1] = scores[i][get_subject_index(subject)];
}
double avg_score = calc_avg_score(subject_scores);
sort(subject_scores, subject_scores+100, cmp);
for (int i = 0; i < 100; i++) {
if (subject_scores[i][0] == target_id) {
cout << "学生的排名是:" << i+1 << endl;
break;
}
}
// 修改学生成绩
cout << "请输入要修改的学生学号和科目名称:" << endl;
int modify_id;
string modify_subject;
int modify_score;
cin >> modify_id >> modify_subject >> modify_score;
int index = find_student_index(modify_id);
if (index != -1) {
scores[index][get_subject_index(modify_subject)] = modify_score;
cout << "修改成功!" << endl;
} else {
cout << "学生不存在!" << endl;
}
// 菜单界面
while (true) {
cout << "请输入要执行的功能编号:" << endl;
cout << "1. 查询学生排名" << endl;
cout << "2. 查询某个学科平均成绩和排名" << endl;
cout << "3. 修改学生成绩" << endl;
int option;
cin >> option;
if (option == 1) {
// 查询学生排名
} else if (option == 2) {
// 查询某个学科平均成绩和排名
} else if (option == 3) {
// 修改学生成绩
} else {
cout << "无效的功能编号!" << endl;
}
}
```
阅读全文