用c++做一个学生成绩系统,要能实现学生成绩表的建立、插入、删除、查找、总分的排序的基本操作的实现
时间: 2023-12-21 22:05:11 浏览: 28
好的,下面是一个简单的学生成绩系统的代码实现。
```c++
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
// 学生结构体
struct student {
int id; // 学号
string name; // 姓名
int score; // 分数
};
// 学生成绩系统类
class student_score_system {
public:
// 构造函数
student_score_system();
// 学生成绩表的建立
void create_student_score_table();
// 插入学生成绩
void insert_student_score();
// 删除学生成绩
void delete_student_score();
// 查找学生成绩
void search_student_score();
// 总分的排序
void sort_student_score_by_total_score();
// 显示学生成绩
void display_student_score();
private:
vector<student> student_score_table; // 学生成绩表
};
// 构造函数
student_score_system::student_score_system() {}
// 学生成绩表的建立
void student_score_system::create_student_score_table() {
int n;
cout << "请输入学生人数:";
cin >> n;
for (int i = 0; i < n; i++) {
student s;
cout << "请输入第" << i + 1 << "个学生的学号、姓名、分数:";
cin >> s.id >> s.name >> s.score;
student_score_table.push_back(s);
}
cout << "学生成绩表建立成功!" << endl;
}
// 插入学生成绩
void student_score_system::insert_student_score() {
student s;
cout << "请输入要插入的学生的学号、姓名、分数:";
cin >> s.id >> s.name >> s.score;
student_score_table.push_back(s);
cout << "学生成绩插入成功!" << endl;
}
// 删除学生成绩
void student_score_system::delete_student_score() {
int id;
cout << "请输入要删除的学生的学号:";
cin >> id;
for (auto it = student_score_table.begin(); it != student_score_table.end(); it++) {
if (it->id == id) {
student_score_table.erase(it);
cout << "学生成绩删除成功!" << endl;
return;
}
}
cout << "学生成绩不存在!" << endl;
}
// 查找学生成绩
void student_score_system::search_student_score() {
int id;
cout << "请输入要查找的学生的学号:";
cin >> id;
for (auto it = student_score_table.begin(); it != student_score_table.end(); it++) {
if (it->id == id) {
cout << "学号\t姓名\t分数" << endl;
cout << it->id << "\t" << it->name << "\t" << it->score << endl;
return;
}
}
cout << "学生成绩不存在!" << endl;
}
// 总分的排序
void student_score_system::sort_student_score_by_total_score() {
sort(student_score_table.begin(), student_score_table.end(), [](const student& s1, const student& s2) {
return s1.score > s2.score;
});
cout << "学生成绩排序成功!" << endl;
}
// 显示学生成绩
void student_score_system::display_student_score() {
cout << "学号\t姓名\t分数" << endl;
for (auto it = student_score_table.begin(); it != student_score_table.end(); it++) {
cout << it->id << "\t" << it->name << "\t" << it->score << endl;
}
}
int main() {
student_score_system sss;
int choice;
while (true) {
cout << "学生成绩系统:" << endl;
cout << "1. 创建学生成绩表" << endl;
cout << "2. 插入学生成绩" << endl;
cout << "3. 删除学生成绩" << endl;
cout << "4. 查找学生成绩" << endl;
cout << "5. 总分的排序" << endl;
cout << "6. 显示学生成绩" << endl;
cout << "0. 退出程序" << endl;
cout << "请选择操作:";
cin >> choice;
switch (choice) {
case 0:
cout << "退出程序!" << endl;
return 0;
case 1:
sss.create_student_score_table();
break;
case 2:
sss.insert_student_score();
break;
case 3:
sss.delete_student_score();
break;
case 4:
sss.search_student_score();
break;
case 5:
sss.sort_student_score_by_total_score();
break;
case 6:
sss.display_student_score();
break;
default:
cout << "输入错误,请重新输入!" << endl;
}
}
return 0;
}
```
上面的代码实现了学生成绩系统的基本操作,包括学生成绩表的建立、插入、删除、查找、总分的排序和显示学生成绩。你可以根据需要进行修改和完善,比如添加更多的操作和信息。