用c++写一个有简单增删改查功能的成绩管理程序
时间: 2023-06-14 16:08:15 浏览: 115
学生成绩管理系统-C++程序设计,可实现成绩的增删改查、过滤等操作
好的,以下是一个简单的成绩管理程序,具有添加、删除、修改和查询功能:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Student {
string name;
int score;
bool operator<(const Student& s) const {
return name < s.name;
}
};
vector<Student> students;
void add_student() {
Student s;
cout << "请输入学生姓名:";
cin >> s.name;
cout << "请输入学生分数:";
cin >> s.score;
students.push_back(s);
cout << "添加成功!" << endl;
}
void delete_student() {
string name;
cout << "请输入要删除的学生姓名:";
cin >> name;
auto it = find_if(students.begin(), students.end(), [&](const Student& s) {
return s.name == name;
});
if (it == students.end()) {
cout << "未找到该学生!" << endl;
} else {
students.erase(it);
cout << "删除成功!" << endl;
}
}
void modify_student() {
string name;
cout << "请输入要修改的学生姓名:";
cin >> name;
auto it = find_if(students.begin(), students.end(), [&](const Student& s) {
return s.name == name;
});
if (it == students.end()) {
cout << "未找到该学生!" << endl;
} else {
cout << "请输入新的分数:";
cin >> it->score;
cout << "修改成功!" << endl;
}
}
void query_student() {
string name;
cout << "请输入要查询的学生姓名:";
cin >> name;
auto it = find_if(students.begin(), students.end(), [&](const Student& s) {
return s.name == name;
});
if (it == students.end()) {
cout << "未找到该学生!" << endl;
} else {
cout << "姓名\t分数" << endl;
cout << it->name << "\t" << it->score << endl;
}
}
int main() {
while (true) {
cout << "请选择操作:1.添加 2.删除 3.修改 4.查询 5.退出" << endl;
int choice;
cin >> choice;
switch (choice) {
case 1:
add_student();
break;
case 2:
delete_student();
break;
case 3:
modify_student();
break;
case 4:
query_student();
break;
case 5:
return 0;
default:
cout << "无效操作!" << endl;
break;
}
sort(students.begin(), students.end());
cout << "姓名\t分数" << endl;
for (const auto& s : students) {
cout << s.name << "\t" << s.score << endl;
}
}
return 0;
}
```
程序中使用了一个结构体 `Student` 表示学生信息,包括姓名和分数。使用 `vector` 存储学生信息列表,通过输入不同的选项来执行相应的操作,包括添加、删除、修改和查询,每次操作后都会将学生列表按姓名排序并输出。
阅读全文