考生报名系统(数据结构)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
课程设计名称:数据结构
系:三系
学生姓名:
班级:
学号:
成绩:
指导教师:
开课时间: 2011-2012 学年 1 学期
一.设计题目
考生报名管理系统
二.主要内容
考生报名管理系统的设计主要是实现对考生报考相应类别考试的管理和相关操作。
基本功能如下:
(1)考试报考息录入、添加功能:包括考生的考号、姓名、性别、年龄、籍贯、考试类别等信息。
(2)报考信息查询:可以按考生的考号查询某个考生的报考信息。
(3)报考信息排序:按考生的考号排序或按考试类别排序。
(4)考生报考信息的修改或删除:按考生考号修改或删除某个考生的相关信息。
(5)统计功能:分别统计系统中共有多少人报名、每个考生的报考种类的数量、每种考试类别的考生数量等。
三.课题设计的基本思想,原理和算法描述
●
●原理和算法描述:
本课题是采用单链表编写程序,用函数实现其整个功能,整个程序分为三个模块:1.编写头文件和成员;2.编写外部函数;3.编写主函数。
1. 编写头文件和成员.
1.1头文件: #include
#include
1.2成员:考号(num)、姓名(name)、性别(sex)、年龄(age)、籍贯(address)、考
试类别(type)等信息。
2.编写外部函数.
2.1输入函数(CreateListR) //采用尾差法创建链表
a.定义int n //该链表的总人数
定义LinkList *s //做作为插入的新结点
定义LinkList *r //始终指向尾结点
b.使用for循环将新结点逐次插入链表之后(条件是int i c.将尾结点指向null 2.2输出函数(DispList) a.定义LinkList *p //指向第一个元素结点 b.用while循环逐次输出链表元素(条件是p!=null) 2.3查找函数(LocateElem) a.定义ElemType e //作为查找考号的对象 b.定义LinkList *p //指向第一个元素结点 c.用while循环查找要查找的结点(条件是p!=NULL && p->data.num!=e.num) d.找到该结点就输出该结点指向的元素,否则结束 2.4删除函数(ListDelete) a.定义ElemType e //作为删除考号的对象 b.定义LinkList *p //指向头结点c.定义LinkList *q //作为存储删除结点的变量d.用while循环查找该结点,并且用free(q)清空该结点 (条件是e.num!=p->next->data.num &&p!=NULL) e.调用输出函数,输出删除后的结果 2.5修改函数(create) a.定义ElemType i //作为修改考号的对象 b.定义LinkList *p //指向头结点 c.用while循环查找该结点(条件是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.定义多个变量 //统计报考各科的人数 c.用while循环和if语句统计人数 2.8插入函数(Insterlist) a.定义变量int n //作为插入的人数 b.定义变量LinkList *s //作为新插入结点变量 c.定义变量LinkList *r //指向尾指针 d.定义变量LinkList *p //作为循环条件变量 e.用while循环找到尾结点,插入新元素 2.9显示菜单并且选择函数(Display) a.定义变量a //作为选择变量 b.用switch语句,编写选择项目 2.10初始化线性表函数(InitList) 清除线性表函数(DestroyList) 菜单函数(display) 3.编写主函数 a.定义LinkList *L b.调用初始化线性表函数 c.调用显示菜单函数 四、运行示例及结果分析 运行结果如上图,此图已给出整个程序的菜单功能选项,请选择你所需要的操作的项目序号: 1.排序功能 : 用直接插入排序,按考号进行递增排序 2.查找功能: 请输入考号进行查找,如果找到就输出此考生信息 3.删除功能: 首先寻找要删除的考生的考号,再删除该结点 4. 输出功能: 使用循环直接输出结点所指向的元素 5. 输入功能: 采用尾插法,逐次将新结点插入单链表之后 6. 释放空间: 用循环语句,再用free函数清理空间 7. 统计功能: 用循环和条件语句,统计报考各科的人数 8. 修改功能: 先找到修改的考生考号,再重新输入该生信息 9.插入功能: 先找到尾结点,再输入新元素接在链表之后 10. 结束功能 根据你选择的操作的提示,按步骤执行.