首记..

最开始进入javaeye是2009年底吧,将近四年了,搞过web开发,曾近痴迷过js的特效和spring的整合,最后进入了服务器端开发,以后就打算这么发展下去了,决定以后在技术上再进一步,以前没有记录的习惯,好多事翻来覆去的查找,太麻烦了,给自己养个习惯做记录,因为以前的名字和域名太白痴了,决定推到重来,继续向前。。。。
好的,下面是一个简单的基于面向对象的学生成绩管理信息系统的 C++ 代码实现,具有以上所述的功能: ```cpp #include <iostream> #include <fstream> #include <vector> #include <algorithm> using namespace std; class Student { public: string id; // 学号 string name; // 姓名 char gender; // 性别 double score; // 成绩 Student(string id, string name, char gender, double score) { this->id = id; this->name = name; this->gender = gender; this->score = score; } }; class StudentManager { private: vector<Student> stuList; // 学生记录列表 public: void addStudent() { string id, name; char gender; double score; cout << "请输入学生学号(不超过11个字符):"; cin >> id; cout << "请输入学生姓名(不超过20个字符):"; cin >> name; cout << "请输入学生性别('m'表示男性,'f'表示女性):"; cin >> gender; cout << "请输入学生成绩:"; cin >> score; Student stu(id, name, gender, score); stuList.push_back(stu); cout << "学生记录添加成功!" << endl; } void showStudents() { if (stuList.empty()) { cout << "当前没有学生记录!" << endl; return; } cout << "学号\t姓名\t性别\t成绩" << endl; for (auto stu : stuList) { cout << stu.id << "\t" << stu.name << "\t" << stu.gender << "\t" << stu.score << endl; } } void searchStudent() { if (stuList.empty()) { cout << "当前没有学生记录!" << endl; return; } string id; cout << "请输入要查找的学生学号:"; cin >> id; for (auto stu : stuList) { if (stu.id == id) { cout << "学号\t姓名\t性别\t成绩" << endl; cout << stu.id << "\t" << stu.name << "\t" << stu.gender << "\t" << stu.score << endl; return; } } cout << "没有找到该学生记录!" << endl; } void deleteStudent() { if (stuList.empty()) { cout << "当前没有学生记录!" << endl; return; } string id; cout << "请输入要删除的学生学号:"; cin >> id; auto iter = find_if(stuList.begin(), stuList.end(), [id](const Student& stu) { return stu.id == id; }); if (iter != stuList.end()) { stuList.erase(iter); cout << "学生记录删除成功!" << endl; } else { cout << "没有找到该学生记录!" << endl; } } void saveToFile() { if (stuList.empty()) { cout << "当前没有学生记录!" << endl; return; } ofstream fout("students.txt"); if (!fout.is_open()) { cout << "文件打开失败!" << endl; return; } for (auto stu : stuList) { fout << stu.id << " " << stu.name << " " << stu.gender << " " << stu.score << endl; } fout.close(); cout << "学生记录已保存到文件!" << endl; } void exportToFile() { if (stuList.empty()) { cout << "当前没有学生记录!" << endl; return; } string filename; cout << "请输入要导出的文件名(不含扩展名):"; cin >> filename; ofstream fout(filename + ".csv"); if (!fout.is_open()) { cout << "文件打开失败!" << endl; return; } fout << "学号,姓名,性别,成绩" << endl; for (auto stu : stuList) { fout << stu.id << "," << stu.name << "," << stu.gender << "," << stu.score << endl; } fout.close(); cout << "学生记录已导出到文件!" << endl; } }; int main() { StudentManager manager; int choice; cout << "欢迎使用学生成绩管理系统!" << endl; cout << "(C)2021 by CSDN" << endl; while (true) { cout << "=========================================" << endl; cout << "请选择操作:1.添加学生成绩记录 2.显示学生成绩记录 3.查找学生成绩记录 4.删除学生成绩记录 5.保存学生成绩记录 6.导出学生成绩记录 0.退出学生成绩管理系统" << endl; cin >> choice; switch (choice) { case 1: manager.addStudent(); break; case 2: manager.showStudents(); break; case 3: manager.searchStudent(); break; case 4: manager.deleteStudent(); break; case 5: manager.saveToFile(); break; case 6: manager.exportToFile(); break; case 0: cout << "感谢使用学生成绩管理系统!" << endl; return 0; default: cout << "输入错误,请重新选择操作!" << endl; } } } ``` 该程序使用了 `Student` 和 `StudentManager` 两个类来分别表示学生记录和学生成绩管理器,其中 `Student` 类包含了学生记录的四个属性,`StudentManager` 类提供了添加、显示、查找、删除、保存和导出学生成绩记录的功能。程序启动后显示主菜单,根据用户的选择执行相应的操作。学生记录可以保存到文件中,也可以导出为 CSV 格式的文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值