学生成绩管理系统综合设计实训报告.doc
《学生成绩管理系统综合设计实训报告.doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统综合设计实训报告.doc(16页珍藏版)》请在沃文网上搜索。
1、 16 摘要:随着信息技术的快速发展,信息的自动化管理变得越来越重要。本题目所设计的学生成绩管理系统,实现了学生信息和成绩的录入,查询,删除,显示,保存,读写文件,复制文件,排序,追加记录,索引,分类合计等功能。使得学生成绩的管理更加方便和快捷。一 实训目的了解软件工程中的一些系统分析,模块分析,代码设计的概念,利用WIN-TC实现学生成绩管理系统的录入、查询、删除、统计等基本擦作,使用单链表结构实现学生成绩管理,了解数据库管理的基本功能,掌握C语言中的结构体、指针、函数(系统函数、自定义函数)、文件操作等知识。通过对系统的分析和设计,进一步巩固C语言的学习,以提高对开发环境的进一步认识和综合
2、编程的能力。(1) 综合应用所学知识的能力(2) 模块haunted程序设计能力(3) 项目组协作开发能力(4) 项目文档开发能力(5) 项目管理能力(6) 项目测试、测试能力二 需求分析1.系统功能:本实训的题目是学生成绩管理系统,实现的是对学生成绩的系统管理。包括学生信息的创建、删除、插入或添加、保存、格式化输出;学生信息,成绩的修改或更新、成绩的统计、汇总、排序。检索及输出。2.对系统通过单链表实现对学生成绩的管理。具有如下功能: (1)输入记录 (2)从表中删除记录 (3)按照姓名查找所有记录 (4)将单链表中的记录保存到文件 (5)从文件中读入记录(6)计算所有学生的总分和平均分(7
3、)插入记录到表中(8)复制文件(9)排序(10)添加记录到文件中(11)索引(12)分类合计四,系统环境1. 运行环境硬件环境:CPU 80386 内存32MB、硬盘200MB以上微机软件环境:MS-DOS 5.0以上操作系统/WINDOWS 9X以上系统 Turbo c2.0集成环境,UCDOS汉字系统 visual C+以上图:上图是学生信息管理系统的流程图。(1)数据结构 链表是线性表中的一种,线性表中分为顺序存储结构和链式结构。线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素物理位置上相邻,因此可以随机查找表中的没一个元素,。Typedef struct z Char no 11
4、Char name 15 Int score n Float sum Float average ; Int order; Struct z1*next;Student;(2) main()主函数主函数是程序的入口,采用模块化的设计。首先在主程序种打印欢迎界面,声明一些必要的变量,作为一无限循环程序,循环体作为一开关语句,该语句设置一个断点,其中条件值通过调用过主菜单函数得到的返回值。根据该值,调用相应的功能函数。同时设置一个断点,当返回值为一定条件是结束程序。(3)memnu_select()函数 为了美化界面,制作单边框窗口,窗口中显示主菜单。通过putch()输出图形符号的ASCII码值
5、(十六进制),到达显示的目。 Putch(0xda) Putch(0xc4)对菜单的选项的选择是利用移动光标按回车键进行选择。 4 init()初始化 单链表需要一个头指针来指向表的第一个结点面对单链表的访问是从头指针开始的。初始化单链表为空,用null表示,该值在文件stdlib.h中定义为常数0.5 creat()创建链表 当用户选择输入增加记录后,进入该函数,输入学生信息,并把信息输入链表。在输入过程中,有相关的提示。当输入的时候,会出现弹出到主菜单,在生成单链时,每次新输入的结点都放在表头,这样最先输入的结点存放在表头,这样最先输入的结点存放在最后。(7).append()追加记录到文
6、件尾当想要在文件尾增加一条记录时使用该函数,首先输入新结点信息,然后输入要追加的文件名,按追加方式打开文件,将新信息写入文件。(8).insert() 插入结点在指定结点前面插入新结点,申请空间得到指针info,输入新结点信息,存放info中,设链表头指针为h,p为指定结点的指针,q为P的前驱指针。从头结点开始循环移动指针p查找指定结点,查找和插入时分两种情况处理:1).指针p 为空,如果p等于h,说明链表为空,则新结点即为头结点,修改指针h=info。否则,说明表中没有指定结点,则新结点插入在表尾部,此是q把指的结点是最后一个结点,所以修改指针q-next=info。2).指针p不为空,如果
7、p等于h,说明新结点插入在当前第一个结点之前,为新的头结点,修改指针info-next=p,h=info。否则,说明新结点的位置应在q和p两个结点之间,修改指针info-next=p,q-next=info。(9).print()显示所有记录采用顺序访问的方法显示和查找记录,定义一个指向结点的临时变量p,初值为单链表的头指针,输出指针所记录的数据后,将指针后移一个记录,直到p指针值为空,则所有记录输出完毕。(10).search()查找结点按照姓名来查找记录。从头结点开始顺序查找,若没有记录显示没有,遇到一个匹配的记录则显示此记录,后到尾结点结束。(11).save()保存记录到文件将学生信息
8、保存到指定的文件中。按照文件读写要求,先定义一个只想文件的指针,输入要保存的磁盘文件名,如果输入的是绝对路径,则文件保存到指定的位置;如果只要文件名,则文件保存在TC默认的路径。如果文件打不开,则退出程序,否则选择一种写文件方式,打开文件。如果文件打不开,则退出程序,否则选择一种写入文件方式,从链表的头指针。开始,顺序将记录写入文件,直到所有记录写完,标志就是移动指针空。(12).load()从文件中加载记录按照文件读写要求,先定义一个指向文件的指针,输入要读入数据的磁盘文件名,然后确定文件的打开方式。如果文件打不开,则退出函数,否则选择一种读文件方式,从文件头开始,将记录写入内存,直到文件尾
9、。文件打开方式和读入方式的确定要依据输出文件是二进制文件,块写操作,读入也应设置为二进制打开方式,块读取方式。每读入一条记录,都要做好指链接关系,本函数将新结点链接到当前链表的尾部,链表的顺序和文件保存的顺序一致。(13).copy()备份文件将文件读写功能结合到一起,先输入源文件名,再输入目标文件名,然后利用文件读写函数将源文件中的信息写到目标文件中,以达到备份文件的目的。(14).computer()计算所有学生的课程的总成绩成绩和总平均成绩(15).sort()排序本函数实现按总分排序的功能。在算法上,选择直接插入算法,即:每步将一个待排序的按其排序码值的大小插到前面已经排好序的表中,直
10、到全部插入为止。先将链表的头结点看作是已经排好序的结点,然后取下一个结点作为待排序的结点,插入到已排好序的表中。具体做法为:(1. 先将原表头结点作为新排好序表的头结点h,原表下一个节点作为原表头结点h1。(2. 原表头结点为待排序结点,将其总分与新表结点的总分进行比较,如果待排序结点总分大,则插在表头,否则插在其后,原表头结点移一位。(3. 重复第二步,即将原表头结点的总分与新表结点的总分进行比较,如果待排序结点总分小,则移动新表指针,直到找到合适的位置将其插入。当原表为空时,所有结点排序完毕。排好序后,系统自动将名次数据写入结点数据域的order中。(16).index()索引定义临时工指
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 综合 设计 报告