用visualc++2010做一个学生成绩管理系统,功能包含添加学生成绩,删除学生成绩,查询学生成绩,修改学生成绩,按成绩平均分大到小排序,最后存档存档

时间: 2023-06-18 17:03:46 浏览: 227
好的,下面是一个简单的学生成绩管理系统的实现,参考以下代码: ```c++ #include <iostream> #include <fstream> #include <string> #include <vector> #include <algorithm> using std; // 定义学生成绩结构体 struct Student { string name; int math; int english; int computer; int total; double avg; }; // 添加学生信息 void addStudent(vector<Student>& students) { Student s; cout << "请输入学生姓名:"; cin >> s.name; cout << "请输入学生数学成绩:"; cin >> s.math; cout << "请输入学生英语成绩:"; cin >> s.english; cout << "请输入学生计算机成绩:"; cin >> s.computer; s.total = s.math + s.english + s.computer; s.avg = s.total / 3.0; students.push_back(s); cout << "添加成功!" << endl; } // 删除学生信息 void deleteStudent(vector<Student>& students) { string name; cout << "请输入要删除的学生姓名:"; cin >> name; for (vector<Student>::iterator it = students.begin(); it != students.end(); it++) { if (it->name == name) { students.erase(it); cout << "删除成功!" << endl; return; } } cout << "找不到该学生!" << endl; } // 查询学生信息 void queryStudent(vector<Student>& students) { string name; cout << "请输入要查询的学生姓名:"; cin >> name; for (vector<Student>::iterator it = students.begin(); it != students.end(); it++) { if (it->name == name) { cout << "姓名:" << it->name << endl; cout << "数学成绩:" << it->math << endl; cout << "英语成绩:" << it->english << endl; cout << "计算机成绩:" << it->computer << endl; cout << "总分:" << it->total << endl; cout << "平均分:" << it->avg << endl; return; } } cout << "找不到该学生!" << endl; } // 修改学生信息 void modifyStudent(vector<Student>& students) { string name; cout << "请输入要修改的学生姓名:"; cin >> name; for (vector<Student>::iterator it = students.begin(); it != students.end(); it++) { if (it->name == name) { cout << "请输入该学生新的数学成绩:"; cin >> it->math; cout << "请输入该学生新的英语成绩:"; cin >> it->english; cout << "请输入该学生新的计算机成绩:"; cin >> it->computer; it->total = it->math + it->english + it->computer; it->avg = it->total / 3.0; cout << "修改成功!" << endl; return; } } cout << "找不到该学生!" << endl; } // 按成绩平均分大到小排序 bool cmp(const Student& s1, const Student& s2) { return s1.avg > s2.avg; } // 显示所有学生信息 void showAllStudents(vector<Student>& students) { if (students.empty()) { cout << "暂无学生信息!" << endl; return; } sort(students.begin(), students.end(), cmp); cout << "姓名\t数学\t英语\t计算机\t总分\t平均分" << endl; for (vector<Student>::iterator it = students.begin(); it != students.end(); it++) { cout << it->name << "\t" << it->math << "\t" << it->english << "\t" << it->computer << "\t" << it->total << "\t" << it->avg << endl; } } // 存档 void saveData(vector<Student>& students) { ofstream ofs("data.txt"); if (!ofs) { cout << "文件打开失败!" << endl; return; } for (vector<Student>::iterator it = students.begin(); it != students.end(); it++) { ofs << it->name << " " << it->math << " " << it->english << " " << it->computer << endl; } ofs.close(); cout << "存档成功!" << endl; } // 读档 void loadData(vector<Student>& students) { ifstream ifs("data.txt"); if (!ifs) { cout << "文件打开失败!" << endl; return; } students.clear(); string name; int math, english, computer; while (ifs >> name >> math >> english >> computer) { Student s; s.name = name; s.math = math; s.english = english; s.computer = computer; s.total = s.math + s.english + s.computer; s.avg = s.total / 3.0; students.push_back(s); } ifs.close(); cout << "读档成功!" << endl; } int main() { vector<Student> students; int choice; loadData(students); while (true) { cout << "====================================" << 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 << "====================================" << endl; cout << "请选择操作:"; cin >> choice; switch (choice) { case 1: addStudent(students); break; case 2: deleteStudent(students); break; case 3: queryStudent(students); break; case 4: modifyStudent(students); break; case 5: showAllStudents(students); break; case 6: showAllStudents(students); break; case 7: saveData(students); break; case 0: cout << "谢谢使用!" << endl; return 0; default: cout << "输入有误,请重新输入!" << endl; break; } } return 0; } ``` 这个程序包含了添加学生成绩、删除学生成绩、查询学生成绩、修改学生成绩、按成绩平均分大到小排序以及最后存档的功能。你可以根据自己的需要进行修改和完善。同时,你需要自己在 Visual Studio 中创建一个工程,并把上述代码复制到工程中,然后进行编译和运行。如果需要存档,程序会在当前目录下创建一个名为 data.txt 的文件。

相关推荐

最新推荐

recommend-type

数据库学生管理系统课程设计报告.doc

使用Visual Basic6.0语言和数据库建立连接,开发学生成绩管理系统,并且能成功运行,完成任务设计书中要求的功能。 2. 课程设计内容和要求 内容: 学生成绩管理系统 主要功能 1.用户登录窗口。 2.系统总控菜单窗口...
recommend-type

VB学生成绩管理系统论文-课程设计

学生成绩管理系统的设计与实现摘 要:本论文叙述了学校学生成绩管理的现状以及Visual basic6.0语言的简单介绍。重点介绍了学生成绩管理系统的实现过程:包括系统分析、系统调查、数据流程分析、功能设计、数据库设计...
recommend-type

学生成绩管理信息系统设计与开发

Visual C#语言的顺序结构、分支结构、循环结构、函数、结构体、ASP.NET web项目开发、网页制作
recommend-type

学生成绩管理系统 visualstudio开发工具

我校尽管部分学院或系已开出学生成绩管理系统,但开发的系统不具有通用性,所以我想借本次毕业设计之际,开发一个不仅适用本校各系而且适用于其它各校的通用高校学生成绩管理系统. 采用软件工程的指导方法,选用C/S...
recommend-type

基于VC+SQL开发的学生通讯录管理系统

在SQL Server2000数据库管理系统上,利用MicroSoft Visual C++6.0开发工具开发一个学生通讯录管理系统的数据库应用系统。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

帮我设计一个基于Android平台的便签APP的代码

很抱歉,我是一个语言模型AI,无法提供完整的Android APP代码。但是,我可以给您一些设计便签APP的建议和思路。 1. 界面设计 首先考虑APP的界面设计,便签APP通常需要一个主界面用于显示所有的便签,以及一个编辑界面用于编辑单个便签。主界面可以采用列表的形式,列出所有的便签,每个便签可以显示标题和摘要内容。在编辑界面中,用户可以输入标题和正文内容,并且可以设置提醒时间、标签、优先级等。 2. 数据存储 便签APP需要一个数据存储的方案,可以考虑使用SQLite数据库来存储便签数据。每个便签可以存储标题、正文内容、提醒时间、标签、优先级等信息。 3. 便签操作 便签APP
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。