C++实现的学生信息管理系统

4星 · 超过85%的资源 需积分: 46 146 下载量 76 浏览量 更新于2024-12-17 24 收藏 12KB TXT 举报
本文档描述了一个使用C++编程实现的学生信息管理系统,该系统能够执行各种操作,如信息录入、浏览、查询、排序和删除修改。学生信息包括学号、姓名、年龄、性别、出生年月、地址、电话和电子邮件。系统通过菜单界面与用户交互,并将学生信息存储在文件中。 在C++中,这个系统的核心是结构体(`struct`)`Student`,用于封装学生的所有信息。结构体包含字符数组(`char[]`)来存储姓名、性别、出生日期、地址和电子邮件,以及整型变量(`int`)来存储学号、年龄和电话。系统定义了一个全局变量`num`来追踪当前已录入的学生数量,以及一个最大容量为1000的`Student`数组来存储学生信息。 为了实现系统的功能,定义了一系列外部函数(`extern`),如`Input_project()`用于信息录入,`Search_project()`用于查询,`Delete_project()`用于删除,`Modify_project()`用于修改,这些函数分别处理对应的操作。主函数`Face()`是系统的主菜单,根据用户输入的字母(如'I'表示录入,'S'表示查询等)调用相应的功能函数。 在`Face()`函数中,使用了`switch`语句来根据用户的输入执行不同的操作。例如,当用户输入'I'或'i'时,系统清除屏幕并调用`Input_project()`;输入'S'或's'则调用`Search_project()`。如果用户输入无效,系统会提示错误信息。 `Input_project()`函数用于录入学生信息,它使用一个循环来持续录入直到用户选择退出。在录入过程中,系统会提示用户输入学生的各项信息,然后将这些信息存储在`students`数组中。其他功能函数的工作原理与此类似,但会涉及读取、查找、排序、删除或修改已存在的学生信息。 这个系统采用了文件操作来持久化数据,这意味着即使程序关闭后,之前录入的学生信息也能在下次启动时恢复。这通常通过`ifstream`(输入文件流)和`ofstream`(输出文件流)类来实现,可以将学生信息序列化到文件中,然后在需要时反序列化回内存。 这个学生信息管理系统是一个基础的命令行应用,它展示了如何使用C++进行文件操作、结构体、数组、用户交互以及简单的数据管理。虽然这个系统可能没有复杂的图形用户界面,但它为学习C++编程和理解数据管理提供了很好的实践平台。
2012-05-28 上传
1.设计内容:学生管理系统 使用下面的数据,用C++设计一个简单的学籍管理系统,实现出最基本的功能。 学生基本信息文件(A.TXT)及其内容:A.TXT文件不需要编程录入数据,可用文本编辑工具直接生成: 学号 姓名 性别 宿舍号码 电话号码 01 张成成 男 501 87732111 02 李成华 女 101 87723112 … …. .. … ……….. 学生成绩基本信息文件(B.TXT)及其内容: 学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分 01 A01 大学物理 3 66 78 82 02 B03 高等数学 4 78 -1 90 … …. ………. .. .. … 功能要求及说明: (1)数据录入功能: 对B.TXT进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据. 综合成绩、学分由程序根据条件自动运算。 综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%; 如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*.15%+卷面成绩*70%。 实得学分的计算: 综合成绩在60以上(含60 ),应得学分=课程学分 综合成绩在60以下 ,应得学分=0 (2)查询功能:分为学生基本情况查询和成绩查询两种 A:学生基本情况查询: 输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。 B:成绩查询: 输入一个学号时,查询出此生的所有课程情况,格式如下: 学 号:xx 姓 名:xxxxx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx … … … … ……… … … 共修:xx科,实得总学分为: xxx (3)删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有信息。 (4 ) 排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。