用c++语言编写学生成绩管理系统,让其实现增删查改功能,以及实验报告
时间: 2024-02-11 12:04:11 浏览: 28
好的,我可以为您提供一些帮助和指导。首先,您需要确定您的学生成绩管理系统需要支持哪些功能和操作。一般来说,一个基本的学生成绩管理系统应该支持以下操作:
1. 添加学生信息和成绩;
2. 删除学生信息和成绩;
3. 查询学生信息和成绩;
4. 修改学生信息和成绩;
5. 显示所有学生信息和成绩。
接下来,您需要考虑如何设计和实现这些操作。在实现学生成绩管理系统时,您可以使用C++中的数据结构(如数组、链表、树等)来存储和管理学生信息和成绩。您还可以使用文件来存储和读取学生信息和成绩。
以下是一个简单的示例代码,可供您参考:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
struct student {
string name;
int score;
};
const int MAX_SIZE = 100;
student students[MAX_SIZE];
int size = 0;
void add_student() {
if (size >= MAX_SIZE) {
cout << "学生信息已满,无法添加!" << endl;
return;
}
cout << "请输入学生姓名:";
cin >> students[size].name;
cout << "请输入学生成绩:";
cin >> students[size].score;
size++;
cout << "添加学生信息成功!" << endl;
}
void delete_student() {
if (size <= 0) {
cout << "学生信息为空,无法删除!" << endl;
return;
}
string name;
cout << "请输入要删除的学生姓名:";
cin >> name;
for (int i = 0; i < size; i++) {
if (students[i].name == name) {
for (int j = i; j < size-1; j++) {
students[j] = students[j+1];
}
size--;
cout << "删除学生信息成功!" << endl;
return;
}
}
cout << "没有找到该学生信息!" << endl;
}
void search_student() {
if (size <= 0) {
cout << "学生信息为空,无法查询!" << endl;
return;
}
string name;
cout << "请输入要查询的学生姓名:";
cin >> name;
for (int i = 0; i < size; i++) {
if (students[i].name == name) {
cout << "学生姓名:" << students[i].name << endl;
cout << "学生成绩:" << students[i].score << endl;
return;
}
}
cout << "没有找到该学生信息!" << endl;
}
void modify_student() {
if (size <= 0) {
cout << "学生信息为空,无法修改!" << endl;
return;
}
string name;
cout << "请输入要修改的学生姓名:";
cin >> name;
for (int i = 0; i < size; i++) {
if (students[i].name == name) {
cout << "请输入新的学生姓名:";
cin >> students[i].name;
cout << "请输入新的学生成绩:";
cin >> students[i].score;
cout << "修改学生信息成功!" << endl;
return;
}
}
cout << "没有找到该学生信息!" << endl;
}
void display_students() {
if (size <= 0) {
cout << "学生信息为空,无法显示!" << endl;
return;
}
cout << "学生信息如下:" << endl;
for (int i = 0; i < size; i++) {
cout << "学生姓名:" << students[i].name << endl;
cout << "学生成绩:" << students[i].score << endl;
}
}
void save_students() {
if (size <= 0) {
cout << "学生信息为空,无法保存!" << endl;
return;
}
ofstream ofs("students.txt");
if (!ofs) {
cout << "无法打开文件!" << endl;
return;
}
for (int i = 0; i < size; i++) {
ofs << students[i].name << " " << students[i].score << endl;
}
ofs.close();
cout << "保存学生信息成功!" << endl;
}
void load_students() {
ifstream ifs("students.txt");
if (!ifs) {
cout << "无法打开文件!" << endl;
return;
}
size = 0;
while (!ifs.eof()) {
ifs >> students[size].name >> students[size].score;
size++;
}
size--;
ifs.close();
cout << "加载学生信息成功!" << endl;
}
int main() {
int choice;
while (true) {
cout << "欢迎使用学生成绩管理系统!" << endl;
cout << "请选择操作:" << endl;
cout << "1. 添加学生信息" << endl;
cout << "2. 删除学生信息" << endl;
cout << "3. 查询学生信息" << endl;
cout << "4. 修改学生信息" << endl;
cout << "5. 显示所有学生信息" << endl;
cout << "6. 保存学生信息到文件" << endl;
cout << "7. 从文件加载学生信息" << endl;
cout << "8. 退出" << endl;
cin >> choice;
switch (choice) {
case 1:
add_student();
break;
case 2:
delete_student();
break;
case 3:
search_student();
break;
case 4:
modify_student();
break;
case 5:
display_students();
break;
case 6:
save_students();
break;
case 7:
load_students();
break;
case 8:
cout << "感谢使用学生成绩管理系统!" << endl;
return 0;
default:
cout << "无效的选择!" << endl;
break;
}
}
return 0;
}
```
以上代码只是一个简单的示例,您可以根据自己的需要进行修改和扩展。另外,如果您需要编写实验报告,可以从以下几个方面入手:
1. 系统设计:介绍您的学生成绩管理系统的功能和设计思路;
2. 实现细节:详细描述您的学生成绩管理系统的实现细节,包括数据结构和算法的选择、文件读写操作等;
3. 测试结果:展示您的学生成绩管理系统的测试结果和效果;
4. 总结和展望:总结您的学生成绩管理系统的优点和不足,并展望未来的改进和扩展方向。
希望这些信息对您有所帮助,祝您编写成功!