功能要求(可扩充功能) (1)用c++实现简单的菜单设计,如下所示: 1 添加学生信息 2 显示学生信息 3 查找学生信息 4 成绩计算 5 按总分降序输出 0 退出 (2)每个学生的信息至少包括姓名、学号、3门课程的成绩、班级等信息。 (3)“添加学生信息”:输入新的学生信息以后,系统将把相关信息存储到文件中。以班级为单位存放到不同的文件中。至少有3个班,每个班级至少10个学生。 (4)“显示学生信息”:系统将从文件中读取数据,按要求显示所
时间: 2024-03-25 20:41:45 浏览: 56
需求的程序框架如下:
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
//定义学生结构体
struct Student {
string name;
string id;
int score[3];
int totalScore;
};
//定义班级结构体
struct Class {
string name;
vector<Student> students;
};
//定义全局变量
vector<Class> classes;
string fileNamePrefix = "class_"; //文件名前缀
//函数声明
void addStudent();
void displayStudents();
void searchStudent();
void calculateScore();
void sortStudentsByTotalScore();
void saveToFile();
void loadFromFile();
int main() {
loadFromFile(); //从文件中读取数据
int choice;
do {
cout << "1 添加学生信息" << endl;
cout << "2 显示学生信息" << endl;
cout << "3 查找学生信息" << endl;
cout << "4 成绩计算" << endl;
cout << "5 按总分降序输出" << endl;
cout << "0 退出" << endl;
cout << "请输入您的选择:";
cin >> choice;
switch (choice) {
case 1:
addStudent();
break;
case 2:
displayStudents();
break;
case 3:
searchStudent();
break;
case 4:
calculateScore();
break;
case 5:
sortStudentsByTotalScore();
displayStudents();
break;
case 0:
saveToFile(); //保存数据到文件
break;
default:
cout << "输入有误,请重新输入!" << endl;
break;
}
} while (choice != 0);
return 0;
}
void addStudent() {
//TODO:添加学生信息的函数实现
}
void displayStudents() {
//TODO:显示学生信息的函数实现
}
void searchStudent() {
//TODO:查找学生信息的函数实现
}
void calculateScore() {
//TODO:成绩计算的函数实现
}
void sortStudentsByTotalScore() {
//TODO:按总分降序输出的函数实现
}
void saveToFile() {
//TODO:保存数据到文件的函数实现
}
void loadFromFile() {
//TODO:从文件中读取数据的函数实现
}
```
在`addStudent()`函数中,可以先让用户输入班级名称和学生信息,然后根据班级名称查找对应的班级对象,将新的学生信息添加到该班级的学生列表中。
在`displayStudents()`函数中,可以使用嵌套的循环依次输出每个班级和该班级中的所有学生信息。
在`searchStudent()`函数中,可以让用户输入要查找的学生姓名或学号,然后遍历所有班级和学生,查找匹配的学生信息并输出。
在`calculateScore()`函数中,可以让用户输入要计算成绩的班级名称,然后遍历该班级中的所有学生,计算每个学生的总成绩并更新到学生结构体中。
在`sortStudentsByTotalScore()`函数中,可以使用`sort()`算法对所有学生按照总分进行降序排序,然后输出排序后的结果。
在`saveToFile()`函数中,可以依次将每个班级的学生列表中的学生信息写入到对应的文件中。
在`loadFromFile()`函数中,可以依次读取每个班级的文件中的学生信息,然后根据班级名称将学生信息添加到对应的班级对象中。
阅读全文