用c++实现一个简易的学生成绩管理系统,有查询,添加删除功能,可以生成一个简易的界面用来输入学生信息
时间: 2024-05-15 16:12:51 浏览: 139
好的,以下是一个简易的学生成绩管理系统的实现,其中包含查询、添加和删除功能。该程序使用命令行界面,输入学生信息时需要按照指定格式输入。
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Student {
string name;
int id;
int score;
};
vector<Student> students;
void printMenu() {
cout << "请选择操作:" << endl;
cout << "1. 查询学生信息" << endl;
cout << "2. 添加学生信息" << endl;
cout << "3. 删除学生信息" << endl;
cout << "4. 退出" << endl;
}
void query() {
int id;
cout << "请输入学生学号:";
cin >> id;
for (const auto& student : students) {
if (student.id == id) {
cout << "姓名:" << student.name << endl;
cout << "学号:" << student.id << endl;
cout << "成绩:" << student.score << endl;
return;
}
}
cout << "未找到该学生信息。" << endl;
}
void add() {
string name;
int id, score;
cout << "请输入学生姓名、学号和成绩(以空格分隔):";
cin >> name >> id >> score;
students.push_back({name, id, score});
cout << "添加成功。" << endl;
}
void del() {
int id;
cout << "请输入要删除的学生学号:";
cin >> id;
auto it = remove_if(students.begin(), students.end(), [id](const Student& student) {
return student.id == id;
});
if (it != students.end()) {
students.erase(it, students.end());
cout << "删除成功。" << endl;
} else {
cout << "未找到该学生信息。" << endl;
}
}
int main() {
while (true) {
printMenu();
int choice;
cin >> choice;
switch (choice) {
case 1:
query();
break;
case 2:
add();
break;
case 3:
del();
break;
case 4:
return 0;
default:
cout << "无效的选项,请重新输入。" << endl;
break;
}
}
}
```
该程序使用 `vector` 存储学生信息,并提供了查询、添加和删除功能。输入学生信息时需要按照 `姓名 学号 成绩` 的格式输入,例如:`张三 1001 90`。在删除学生信息时,程序会先查找是否存在该学生,若存在则删除该学生信息。注意,删除操作使用了 `remove_if` 算法,这是一种常用的删除方式,会将符合条件的元素移到末尾并返回指向第一个待删除元素的迭代器,然后使用 `erase` 删除这些元素。
阅读全文