帮我编写一个c++学生信息管理系统,要求拥有排序功能
时间: 2023-07-01 15:25:27 浏览: 51
好的,以下是一个简单的 C++ 学生信息管理系统,包含添加、删除、查询、修改和排序等功能:
```cpp
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
struct Student {
string name;
int age;
string gender;
string id;
double score;
};
const int MAXSIZE = 100; // 最大学生数量
Student students[MAXSIZE]; // 学生信息数组
int count = 0; // 学生数量
// 添加学生信息
void addStudent() {
if (count == MAXSIZE) {
cout << "学生数量已达到最大值,无法添加!" << endl;
return;
}
Student student;
cout << "请输入学生姓名:";
cin >> student.name;
cout << "请输入学生年龄:";
cin >> student.age;
cout << "请输入学生性别:";
cin >> student.gender;
cout << "请输入学生学号:";
cin >> student.id;
cout << "请输入学生成绩:";
cin >> student.score;
students[count++] = student;
cout << "添加成功!" << endl;
}
// 删除学生信息
void deleteStudent() {
string id;
cout << "请输入要删除的学生学号:";
cin >> id;
bool found = false;
for (int i = 0; i < count; i++) {
if (students[i].id == id) {
found = true;
for (int j = i; j < count-1; j++) {
students[j] = students[j+1];
}
count--;
cout << "删除成功!" << endl;
break;
}
}
if (!found) {
cout << "未找到该学生信息,删除失败!" << endl;
}
}
// 查询学生信息
void queryStudent() {
string id;
cout << "请输入要查询的学生学号:";
cin >> id;
bool found = false;
for (int i = 0; i < count; i++) {
if (students[i].id == id) {
found = true;
cout << "姓名\t年龄\t性别\t学号\t成绩" << endl;
cout << students[i].name << '\t' << students[i].age << '\t' << students[i].gender << '\t' << students[i].id << '\t' << students[i].score << endl;
break;
}
}
if (!found) {
cout << "未找到该学生信息!" << endl;
}
}
// 修改学生信息
void modifyStudent() {
string id;
cout << "请输入要修改的学生学号:";
cin >> id;
bool found = false;
for (int i = 0; i < count; i++) {
if (students[i].id == id) {
found = true;
cout << "请输入学生姓名:";
cin >> students[i].name;
cout << "请输入学生年龄:";
cin >> students[i].age;
cout << "请输入学生性别:";
cin >> students[i].gender;
cout << "请输入学生学号:";
cin >> students[i].id;
cout << "请输入学生成绩:";
cin >> students[i].score;
cout << "修改成功!" << endl;
break;
}
}
if (!found) {
cout << "未找到该学生信息,修改失败!" << endl;
}
}
// 排序学生信息
bool cmp(Student a, Student b) {
return a.score > b.score;
}
void sortStudent() {
sort(students, students+count, cmp);
cout << "排序成功!" << endl;
}
// 主函数
int main() {
while (true) {
cout << "请选择操作:1.添加学生信息 2.删除学生信息 3.查询学生信息 4.修改学生信息 5.排序学生信息 0.退出" << endl;
int choice;
cin >> choice;
switch (choice) {
case 1:
addStudent();
break;
case 2:
deleteStudent();
break;
case 3:
queryStudent();
break;
case 4:
modifyStudent();
break;
case 5:
sortStudent();
break;
case 0:
cout << "已退出学生信息管理系统!" << endl;
return 0;
default:
cout << "无效的操作,请重新输入!" << endl;
}
}
return 0;
}
```
你可以将以上代码复制到你的 C++ 编辑器中,然后运行程序即可。程序会提示你选择要进行的操作,包括添加、删除、查询、修改和排序等功能。其中排序功能会按照学生成绩从高到低进行排序。