学生成绩管理系统c++
时间: 2023-09-11 09:08:09 浏览: 66
学生成绩管理系统是一个比较典型的小型项目,可以用C++语言来实现。下面是一个简单的实现:
```c++
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstring>
using namespace std;
// 定义学生类
class Student {
public:
char name[20];
char id[10];
int score;
};
// 定义成绩管理系统类
class ScoreManagementSystem {
public:
ScoreManagementSystem() {
studentNum = 0;
}
// 添加学生信息
void addStudent() {
cout << "请输入学生姓名、学号和成绩:";
Student student;
cin >> student.name >> student.id >> student.score;
students[studentNum++] = student;
cout << "添加成功!" << endl;
}
// 删除学生信息
void deleteStudent() {
cout << "请输入要删除的学生学号:";
char id[10];
cin >> id;
int index = -1;
for (int i = 0; i < studentNum; i++) {
if (strcmp(students[i].id, id) == 0) {
index = i;
break;
}
}
if (index == -1) {
cout << "未找到该学生信息!" << endl;
} else {
for (int i = index; i < studentNum - 1; i++) {
students[i] = students[i + 1];
}
studentNum--;
cout << "删除成功!" << endl;
}
}
// 修改学生信息
void modifyStudent() {
cout << "请输入要修改的学生学号:";
char id[10];
cin >> id;
int index = -1;
for (int i = 0; i < studentNum; i++) {
if (strcmp(students[i].id, id) == 0) {
index = i;
break;
}
}
if (index == -1) {
cout << "未找到该学生信息!" << endl;
} else {
cout << "请输入学生姓名和成绩:";
cin >> students[index].name >> students[index].score;
cout << "修改成功!" << endl;
}
}
// 查询学生信息
void queryStudent() {
cout << "请输入要查询的学生学号:";
char id[10];
cin >> id;
int index = -1;
for (int i = 0; i < studentNum; i++) {
if (strcmp(students[i].id, id) == 0) {
index = i;
break;
}
}
if (index == -1) {
cout << "未找到该学生信息!" << endl;
} else {
cout << "姓名\t学号\t成绩" << endl;
cout << students[index].name << "\t" << students[index].id << "\t" << students[index].score << endl;
}
}
// 显示所有学生信息
void displayAllStudents() {
cout << "姓名\t学号\t成绩" << endl;
for (int i = 0; i < studentNum; i++) {
cout << students[i].name << "\t" << students[i].id << "\t" << students[i].score << endl;
}
}
// 保存学生信息到文件
void saveToFile() {
ofstream out("students.dat");
out.write((char *)&studentNum, sizeof(int));
for (int i = 0; i < studentNum; i++) {
out.write((char *)&students[i], sizeof(Student));
}
out.close();
cout << "保存成功!" << endl;
}
// 从文件中读取学生信息
void loadFromFile() {
ifstream in("students.dat");
in.read((char *)&studentNum, sizeof(int));
for (int i = 0; i < studentNum; i++) {
in.read((char *)&students[i], sizeof(Student));
}
in.close();
cout << "读取成功!" << endl;
}
private:
Student students[100];
int studentNum;
};
// 主函数
int main() {
ScoreManagementSystem sms;
int choice;
do {
cout << endl << "学生成绩管理系统" << endl;
cout << "1. 添加学生信息" << endl;
cout << "2. 删除学生信息" << endl;
cout << "3. 修改学生信息" << endl;
cout << "4. 查询学生信息" << endl;
cout << "5. 显示所有学生信息" << endl;
cout << "6. 保存学生信息到文件" << endl;
cout << "7. 从文件中读取学生信息" << endl;
cout << "0. 退出" << endl;
cout << "请选择操作:";
cin >> choice;
switch (choice) {
case 1:
sms.addStudent();
break;
case 2:
sms.deleteStudent();
break;
case 3:
sms.modifyStudent();
break;
case 4:
sms.queryStudent();
break;
case 5:
sms.displayAllStudents();
break;
case 6:
sms.saveToFile();
break;
case 7:
sms.loadFromFile();
break;
case 0:
break;
default:
cout << "无效操作!" << endl;
break;
}
} while (choice != 0);
return 0;
}
```
以上代码实现了一个简单的学生成绩管理系统,可以通过命令行进行操作。其中,学生信息使用了一个结构体数组进行保存,最多支持100个学生信息。通过学生信息的增删改查,实现了管理学生成绩的目的。同时,还实现了将学生信息保存到文件和从文件中读取学生信息的功能,方便了数据的保存和恢复。