logo资料库

学生信息管理系统(含源码).docx

第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
资料共21页,剩余部分请下载后查看
1.实训题目与要求
2.系统设计
3.程序测试与运行结果
4.实训总结
5.程序源代码
C 语言实训报告 目录 C 语言程序设计实训报告.......................................................................错误!未定义书签。 1.实训题目与要求.....................................................................................................................2 2.系统设计..............................................................................................................................3 3.程序测试与运行结果.............................................................................................................5 4.实训总结.................................................................................................................................5 5.程序源代码.............................................................................................................................9 1
C 语言实训报告 1.实训题目与要求 学生证管理程序 题目描述: 请设计一个学生证管理的程序,以方便辅导员对学生证的管理,该程序应该具有以下功 能: (1)能从键盘输入某位学生的学生证信息(学生证应该包含的信息可以参考自己的学生 证)。 (2)给定学号,显示该学生的学生证信息。 (3)给定班号,显示该班所有学生的学生证信息。 (4)给定学号,修改该学生的学生证信息。 (5)给定学号,删除该学生的学生证信息。 题目要求: (1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。 (2)学生证应该包含的信息参考自己的学生证。 (3)为程序设计 windows 窗口,在该窗口上以按钮的形式为用户提供“菜单”,通过点击 各个功能项对应的按钮完成操作。 输入要求: (1)用户可以根据需求,选定相应的操作项目。进入每个操作后,通过窗口的文本框, 从键盘输入相应的信息。程序根据用户输入的信息完成相应的处理,实现要求的功能。 (2)能对输入的数据进行简单的校验,例如,学生的入学时间必须是一个合法的日期格 式,学号是唯一的(一个学号对应一条学生证信息)。 输出要求: (1)应用程序运行后,要在屏幕上显示一个按钮形式的“菜单”。 (2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式以 及结束方式等。 (3)在程序完成处理后,要清楚地给出程序的处理结果。例如,在给定学号删除学生证 信息时,如果该学生不存在,要提示没能删除,如果删除成功要提示删除成功。 实现要求: (1)在程序中使用链表存储学生证信息。 (2)采用模块化程序设计的方法,将程序中的各项功能用函数实现。 提示: (1)使用结构体表示学生证信息,一个结点保存一条学生证信息。 扩展功能: (1)提供一些统计功能。例如统计每个班学生的人数,统计男女生比例。 (2)学生证信息从文件读入。 (3)将学生证信息保存到文件中。 2
C 语言实训报告 2.系统设计 程序模块化设计: 导入到链表中,完成修改。 示导入失败。 一个指向该回调函数的指针。WindowProc 是用于应用程序定义函数的占位符。 等做合法性判断,判断合法后形成节点,导入链表中,最后导出到文件中,若不合法则提示 清晰、更易查错、代码更美观。 其中,修改并没有单独的函数,因为修改的本质是删除再添加,并且修改和删除中一定不变 在程序中实用WinMain(主函数)、WinProc(窗口函数)、add(添加函数)、delet(删 除函数)、input(导入函数)、find(查询函数)等函数实现程序模块化,使程序设计思路更 的都是学号,所以在修改学生信息完毕后,点击“修改”按钮,程序先执行delet 函数,程 序会将链表中包含此学号的节点删除;然后执行add 函数,将文本框中的信息形成节点并 WinMain: 1、创建注册窗口类 2、创建窗口句柄 3、显示更新窗口 4、消息循环 WinProc: 创建按钮和文本框,对发送给窗口的消息进行判断、处理。Winproc 类型定义了 add: 点击添加按钮后,首先读取文本框中的学生信息,再对学号、出生日期、入学日期 错误。delet:点击删除按钮后,首先获取文本框中的学号,放入字符串中。利用循环对节点进行 input:显示程序窗口后,首先输入文件名,点击导入,导入文件,若文件错误或不存在提 find:点击该按钮后,将根据班级或学号文本框中的信息查询整个班级或单个学生信息。 遍历,找到与该字符串匹配的节点后,使该节点的上一节点的指针指向该节点的下一节点, 从而实现对该节点的删除。最后将链表导出到文件中。 若是根据班级查询,首先将班级文本框的信息放入字符串中,对节点进行遍历,将找到与字 符串匹配的所有学生信息输出到大文本框中。 若是根据学号查询,首先将学号文本框中的信息放入字符串中,对接点进行遍历,找到与该 字符串匹配的学生信息,将学生信息一样对应输出到对应文本框中。 信息储存在文本中: 本程序实现了将学生信息存储在文件中,运行程序时文件中的信息会先导入到链表中,删除 和添加都先在链表中进行然后再导出到文件中。 框架设计: 五个菜单按钮在最上方,左边七个小文本框,在学号查询时用来显示单个学生成绩或根据单 个信息来查询学生完整信息,以及在添加和修改时键入学生信息。右边小文本框用来输入存 放学生证信息的文件名,大文本框用来显示提示信息和查询出来的整个班级信息。 3
流程图: C 语言实训报告 导入文件 创建链表 查询 修改 删除 添加 导出文件 4
C 语言实训报告 3.程序测试与运行结果 文件导入 根据班级查询 5
C 语言实训报告 根据学号查询 根据学号删除 6
C 语言实训报告 修改学生信息(将“飒飒”改为“张飒”) 添加学生信息 7
C 语言实训报告 4.实训总结 通过本次实训我深刻体会到 C 语言的强大功能及其复杂性,此次实训不仅是对我们的一 次考验,更是我们的一次学习。在编写过程中我遇到了种种问题,非常棘手,甚至自己无法 解决,但通过询问老师、请教同学、翻阅书籍,一个一个解决这些问题。尽管艰难,但每天 都有收获,每天都有进展。 在最初设计程序的文本框、按钮时也遇到不少问题。例如:怎样设计才足够满足程序功 能?怎样设计才更人性化、美观且简洁明了?我意识到一个好的程序不仅仅在于代码,还在 于运行后窗口。在解决程序窗口及其文本框这些问题完后,开始着手于按钮功能的实现。 这也是程序设计最难、最核心的部分。要使程序设计思路更简洁明了,就要进行模块化设计, 那么就要使用到函数,逐步实现每一个按钮的功能。最先实现其功能的按钮必然是导入文件, 那么首先要定义结构体、结构体指针。将事先保存的学生信息读取之后、创建节点、导入链 表。这样才能实现程序的“查询”以及为后面按钮功能的实现打下基础。导入链表之后再设 计查询函数(通过学号查询或班级查询)。其次实现的是“添加”按钮,然后是“删除”按 钮,最后是“修改”按钮,因为修改其本质是删除和添加的结合,修改过程中不变的是学号, 而删除按钮也是根据学号,巧妙的利用删除和添加函数轻松实现修改功能,我觉得这是此 程序的一大亮点之一。本程序有严格的日期合法性验证,例如平年二月份天数不超过 28 天、 闰年不超过 29 天,大月天数不超过 31 天、小月不超过 30 天,以及大学生入学时年龄的合 法性(本程序将入学时年龄在 10 到 30 岁视为合法,其余为不合法)。 当然,由于本人能力有限,此程序也有诸多不足的地方,如程序窗口及其文本框设计仍 过于粗糙,还有不太人性化得地方,提示语过少等等。程序设计还有不合理的地方。在今后 的学习中我会慢慢领会 C 语言的精髓,我会保存好此程序,在后续学习中进一步改进。 本次实训我学习了很多,弄懂了许多上课过程中没有搞清的问题。领会到 C 语言的博大 精深,同时也意识到自己的不足,意识到还有很多东西需要去学习。 8
分享到:
收藏