1.添加学生成绩记录 2.显示学生成绩记录 3.查找学生成绩记录 4.删除学生成绩记录 5.保存学生成绩记录 6.导出学生成绩记录 0.退出学生成绩管理系统
时间: 2024-03-10 13:49:47 浏览: 102
学生成绩管理系统:主要实现的功能有教师管理、学生管理、课程管理、学生成绩管理
好的,下面是一个简单的学生成绩管理系统的 C++ 代码框架,包括上述功能,你可以参考一下:
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
// 学生信息结构体
struct Student {
string name; // 姓名
int id; // 学号
float score; // 成绩
};
// 学生成绩管理系统类
class ScoreManagementSystem {
public:
ScoreManagementSystem();
~ScoreManagementSystem();
void addRecord(); // 添加学生记录
void showRecord(); // 显示学生记录
void findRecord(); // 查找学生记录
void deleteRecord(); // 删除学生记录
void saveRecord(); // 保存学生记录
void exportRecord(); // 导出学生记录
void exitSystem(); // 退出系统
private:
vector<Student> students; // 学生信息数组
};
// 构造函数
ScoreManagementSystem::ScoreManagementSystem() {
ifstream file("score.txt");
if (file.is_open()) {
Student student;
while (file >> student.name >> student.id >> student.score) {
students.push_back(student);
}
file.close();
}
}
// 析构函数
ScoreManagementSystem::~ScoreManagementSystem() {
saveRecord();
}
// 添加学生记录
void ScoreManagementSystem::addRecord() {
Student student;
cout << "请输入姓名:";
cin >> student.name;
cout << "请输入学号:";
cin >> student.id;
cout << "请输入成绩:";
cin >> student.score;
students.push_back(student);
cout << "添加成功!" << endl;
}
// 显示学生记录
void ScoreManagementSystem::showRecord() {
if (students.empty()) {
cout << "暂无记录!" << endl;
}
else {
cout << "姓名\t学号\t成绩" << endl;
for (auto s : students) {
cout << s.name << "\t" << s.id << "\t" << s.score << endl;
}
}
}
// 查找学生记录
void ScoreManagementSystem::findRecord() {
int id;
cout << "请输入要查找的学生学号:";
cin >> id;
auto it = find_if(students.begin(), students.end(), [id](Student s) { return s.id == id; });
if (it == students.end()) {
cout << "未找到该学生!" << endl;
}
else {
cout << "姓名\t学号\t成绩" << endl;
cout << it->name << "\t" << it->id << "\t" << it->score << endl;
}
}
// 删除学生记录
void ScoreManagementSystem::deleteRecord() {
int id;
cout << "请输入要删除的学生学号:";
cin >> id;
auto it = find_if(students.begin(), students.end(), [id](Student s) { return s.id == id; });
if (it == students.end()) {
cout << "未找到该学生!" << endl;
}
else {
students.erase(it);
cout << "删除成功!" << endl;
}
}
// 保存学生记录
void ScoreManagementSystem::saveRecord() {
ofstream file("score.txt");
for (auto s : students) {
file << s.name << " " << s.id << " " << s.score << endl;
}
file.close();
}
// 导出学生记录
void ScoreManagementSystem::exportRecord() {
ofstream file("score.csv");
file << "姓名,学号,成绩" << endl;
for (auto s : students) {
file << s.name << "," << s.id << "," << s.score << endl;
}
file.close();
cout << "导出成功!" << endl;
}
// 退出系统
void ScoreManagementSystem::exitSystem() {
exit(0);
}
int main() {
ScoreManagementSystem system;
int choice;
do {
cout << "请选择功能:\n1.添加学生成绩记录\n2.显示学生成绩记录\n3.查找学生成绩记录\n4.删除学生成绩记录\n5.保存学生成绩记录\n6.导出学生成绩记录\n0.退出学生成绩管理系统\n";
cin >> choice;
switch (choice) {
case 1:
system.addRecord();
break;
case 2:
system.showRecord();
break;
case 3:
system.findRecord();
break;
case 4:
system.deleteRecord();
break;
case 5:
system.saveRecord();
break;
case 6:
system.exportRecord();
break;
case 0:
system.exitSystem();
break;
default:
cout << "输入有误,请重新选择!" << endl;
break;
}
} while (choice != 0);
return 0;
}
```
这个代码框架包含了一个学生信息结构体和一个学生成绩管理系统类。其中,构造函数从文件中读取之前保存的学生信息,析构函数在程序结束时将当前的学生信息保存到文件中。每个成员函数实现了一个具体的功能。在主函数中,我们通过循环不断接收用户的选择,并调用相应的成员函数实现相应的功能。你可以根据自己的需求进行修改和完善。
阅读全文