欢迎来到天天文库
浏览记录
ID:47481534
大小:3.32 MB
页数:15页
时间:2020-01-11
《考生报名系统(数据结构)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《数据结构课》程设计报告课程设计报告课程设计名称:数据结构系:三系学生姓名:班级:学号:成绩:指导教师:开课时间:2011-2012学年1学期14第14页《数据结构课》程设计报告一.设计题目考生报名管理系统二.主要内容考生报名管理系统的设计主要是实现对考生报考相应类别考试的管理和相关操作。基本功能如下:(1)考试报考息录入、添加功能:包括考生的考号、姓名、性别、年龄、籍贯、考试类别等信息。(2)报考信息查询:可以按考生的考号查询某个考生的报考信息。(3)报考信息排序:按考生的考号排序或按考试类别排序。(4
2、)考生报考信息的修改或删除:按考生考号修改或删除某个考生的相关信息。(5)统计功能:分别统计系统中共有多少人报名、每个考生的报考种类的数量、每种考试类别的考生数量等。三.课题设计的基本思想,原理和算法描述主函数(intmain)l基本思想:显示菜单函数(Display(L))定义指针(LinkList*L)初始化线性表函数(InitList(L))l原理和算法描述:本课题是采用单链表编写程序,用函数实现其整个功能,整个程序分为三个模块:1.编写头文件和成员;2.编写外部函数;3.编写主函数。1.编写头文件
3、和成员.1.1头文件:#include#include#include#include1.2成员:考号(num)、姓名(name)、性别(sex)、年龄(age)、籍贯(address)、考试类别(type)等信息。2.编写外部函数.2.1输入函数(CreateListR)//采用尾差法创建链表a.定义intn//该链表的总人数定义LinkList*s//做作为插入的新结点定义LinkList*r//始终指向尾结点14第14页《
4、数据结构课》程设计报告b.使用for循环将新结点逐次插入链表之后(条件是intidata.num!=e.num)d.找到该结点就输出
5、该结点指向的元素,否则结束2.4删除函数(ListDelete)a.定义ElemTypee//作为删除考号的对象b.定义LinkList*p//指向头结点c.定义LinkList*q//作为存储删除结点的变量d.用while循环查找该结点,并且用free(q)清空该结点(条件是e.num!=p->next->data.num&&p!=NULL)e.调用输出函数,输出删除后的结果2.5修改函数(create)a.定义ElemTypei//作为修改考号的对象b.定义LinkList*p//指向头结点c.用wh
6、ile循环查找该结点(条件是i.num!=p->data.num&&p!=NULL)d.重新输入该结点指向的所有元素e.并且调用输出函数显示修改后的所有信息2.6排序函数(sort)//采用直接插入排序a.定义LinkList*p//指向未排序的第一个结点b.定义LinkList*q//指向头结点c.用while循环寻找p指向的元素比排好序中的元素大,则将其插入其后d.调用输出函数,显示排好序的信息。2.7统计函数(sumList)a.定义LinkList*p//指向头结点b.定义多个变量//统计报考各科
7、的人数c.用while循环和if语句统计人数2.8插入函数(Insterlist)a.定义变量intn//作为插入的人数b.定义变量LinkList*s//作为新插入结点变量c.定义变量LinkList*r//指向尾指针d.定义变量LinkList*p//作为循环条件变量e.用while循环找到尾结点,插入新元素2.9显示菜单并且选择函数(Display)a.定义变量a//作为选择变量14第14页《数据结构课》程设计报告b.用switch语句,编写选择项目2.10初始化线性表函数(InitList)清除线
8、性表函数(DestroyList)菜单函数(display)3.编写主函数a.定义LinkList*Lb.调用初始化线性表函数c.调用显示菜单函数四、运行示例及结果分析运行结果如上图,此图已给出整个程序的菜单功能选项,请选择你所需要的操作的项目序号:1.排序功能:用直接插入排序,按考号进行递增排序2.查找功能:请输入考号进行查找,如果找到就输出此考生信息3.删除功能:首先寻找要删除的考生的考号,再删除该结点4.输出功能:使用循
此文档下载收益归作者所有