用c++写一个自动哦。管理系统
时间: 2024-03-23 10:44:03 浏览: 45
好的,我可以为您提供一个简单的 C++ 自动化管理系统的代码框架,您可以根据自己的需求进行修改和完善。
```cpp
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
// 学生信息结构体
struct Student {
string id; // 学号
string name; // 姓名
int age; // 年龄
string gender; // 性别
string major; // 专业
int score; // 成绩
};
// 学生信息管理类
class StudentManager {
public:
// 构造函数
StudentManager() {
loadData(); // 从文件中加载数据
}
// 添加学生
void addStudent(const Student& student) {
students.push_back(student);
}
// 删除学生
void removeStudent(const string& id) {
for (auto it = students.begin(); it != students.end(); ++it) {
if (it->id == id) {
students.erase(it);
break;
}
}
}
// 修改学生信息
void modifyStudent(const string& id, const Student& student) {
for (auto& s : students) {
if (s.id == id) {
s = student;
break;
}
}
}
// 按学号查询学生
Student* findStudent(const string& id) {
for (auto& s : students) {
if (s.id == id) {
return &s;
}
}
return nullptr;
}
// 按成绩排序
void sortByScore() {
sort(students.begin(), students.end(), [](const Student& a, const Student& b) {
return a.score > b.score;
});
}
// 显示所有学生信息
void showAllStudents() {
cout << "学号\t\t姓名\t年龄\t性别\t专业\t成绩" << endl;
for (const auto& s : students) {
cout << s.id << "\t" << s.name << "\t" << s.age << "\t" << s.gender << "\t" << s.major << "\t" << s.score << endl;
}
}
// 保存数据到文件
void saveData() {
ofstream fout("students.txt");
for (const auto& s : students) {
fout << s.id << " " << s.name << " " << s.age << " " << s.gender << " " << s.major << " " << s.score << endl;
}
fout.close();
}
// 从文件中加载数据
void loadData() {
ifstream fin("students.txt");
if (fin) {
string line;
while (getline(fin, line)) {
istringstream iss(line);
Student s;
iss >> s.id >> s.name >> s.age >> s.gender >> s.major >> s.score;
students.push_back(s);
}
}
fin.close();
}
private:
vector<Student> students; // 学生信息数组
};
// 主函数
int main() {
StudentManager manager;
while (true) {
// 显示菜单
cout << "==== 学生信息管理系统 ====" << endl;
cout << "1. 添加学生" << endl;
cout << "2. 删除学生" << endl;
cout << "3. 修改学生信息" << endl;
cout << "4. 按学号查询学生" << endl;
cout << "5. 按成绩排序" << endl;
cout << "6. 显示所有学生信息" << endl;
cout << "0. 退出系统" << endl;
cout << "请输入选项:";
int choice;
cin >> choice;
switch (choice) {
case 1: // 添加学生
{
Student s;
cout << "请输入学号:";
cin >> s.id;
cout << "请输入姓名:";
cin >> s.name;
cout << "请输入年龄:";
cin >> s.age;
cout << "请输入性别:";
cin >> s.gender;
cout << "请输入专业:";
cin >> s.major;
cout << "请输入成绩:";
cin >> s.score;
manager.addStudent(s);
cout << "添加成功!" << endl;
}
break;
case 2: // 删除学生
{
string id;
cout << "请输入学号:";
cin >> id;
manager.removeStudent(id);
cout << "删除成功!" << endl;
}
break;
case 3: // 修改学生信息
{
string id;
cout << "请输入学号:";
cin >> id;
Student* p = manager.findStudent(id);
if (p) {
Student s;
cout << "请输入姓名:";
cin >> s.name;
cout << "请输入年龄:";
cin >> s.age;
cout << "请输入性别:";
cin >> s.gender;
cout << "请输入专业:";
cin >> s.major;
cout << "请输入成绩:";
cin >> s.score;
manager.modifyStudent(id, s);
cout << "修改成功!" << endl;
} else {
cout << "未找到该学生!" << endl;
}
}
break;
case 4: // 按学号查询学生
{
string id;
cout << "请输入学号:";
cin >> id;
Student* p = manager.findStudent(id);
if (p) {
cout << "学号\t\t姓名\t年龄\t性别\t专业\t成绩" << endl;
cout << p->id << "\t" << p->name << "\t" << p->age << "\t" << p->gender << "\t" << p->major << "\t" << p->score << endl;
} else {
cout << "未找到该学生!" << endl;
}
}
break;
case 5: // 按成绩排序
manager.sortByScore();
cout << "按成绩排序成功!" << endl;
break;
case 6: // 显示所有学生信息
manager.showAllStudents();
break;
case 0: // 退出系统
manager.saveData(); // 保存数据到文件
cout << "感谢使用学生信息管理系统,再见!" << endl;
return 0;
default:
cout << "无效的选项,请重新输入!" << endl;
break;
}
}
return 0;
}
```
这个代码框架包含了学生信息结构体、学生信息管理类和主函数。您可以根据自己的需求进行修改和完善,比如增加其他功能、修改数据存储方式等。希望对您有所帮助!
阅读全文