《宿舍管理查询系统软件的设计与实现课程设计报告书》由会员分享,可在线阅读,更多相关《宿舍管理查询系统软件的设计与实现课程设计报告书(32页珍藏版)》请在金锄头文库上搜索。
1、 课程设计(大作业)报告课程名称:数 据 结 构 设计题目:宿舍管理查询软件的设计与实现 院 系: 信 息 技 术 学 院 班 级:计 算 机 科 学 与 技 术 3班 设 计 者: 学 号: 指导教师: 设计时间: 2012年12月27日 目录课程设计(大作业)报告- 1 -学院课程设计(大作业)任务书- 3 -课程设计(大作业)成绩- 4 -摘 要- 5 -一、题目分析- 6 -二、基本理论- 6 -三、总体设计- 6 -3.1模块分化设计- 6 -3.2合理分工设计- 7 -3.3算法设计- 7 -3.3.1存储结构- 7 -3.3.2流程图- 8 -三、具体方法步骤- 9 -4.1主菜
2、单函数编写- 9 -4.2主函数编写- 15 -4.3删除函数编写的思路分析- 20 -4.4删除函数的具体算法- 21 -4.4删除函数的算法分析- 22 -4.5删除算法的时间性能分析- 23 -五 、程序组装调试分析- 23 -5.1使用方法- 23 -5.2测试数据:- 24 -5.2.1开始录入的数据- 24 -5.2.2插入的数据:- 24 -5.2.3查找的数据:- 24 -5.3测试输出结果(以运行结果图表示):- 24 -5.3.1欢迎界面:- 24 -5.3.2按任意键进入线性表的创建界面:- 24 -5.3.3输入数据,开始创建:- 25 -5.3.4请按键选择操作:-
3、25 -5.3.5按排序:- 25 -5.3.6按学号排序:- 26 -5.3.7按房号排序:- 26 -5.3.8插入后显示:- 26 -5.3.9按查找:- 27 -5.3.10按学号查找:- 27 -5.3.11按房号查找:- 27 -5.3.12进入删除功能、删除数据后显示剩余的学生信息:- 28 -5.3.13退出(数字为零时退出):- 28 -5.4分析结果- 29 -六、总结- 30 -七、结束语- 31 -八、参考文献- 32 -学院课程设计(大作业)任务书姓 名:院(系):信 息 技 术 学 院专 业:计算机科学与技术 学 号:任务起止日期:2012年12 月23日 2012
4、年12 月28日课程设计题目:宿 舍 管 理 查 询 软 件 的 设 计 与 实 现课程设计要求:(包括原始数据、技术要求、工作要求等)1)任务为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:A.采用交互工作方式B.建立数据文件 ,数据文件按关键字(、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)2)查询菜单: (用二分查找实现以下操作)A.按查询 B.按学号查询 C.按房号查询3)打印任一查询结果(可以连续操作)工作计划及安排:第1天 完成方案设计与程序框图 第2、3天 编写程序代码(分工来完成)第4天 程序调试分析和结果及答辩第5天 课程设计报告和总结指导教师签字 2012
5、年 月 日 课程设计(大作业)成绩学号: :指导教师:课程设计题目:宿 舍 管 理 查 询 软 件 的 设 计 与 实 现总结:通过本次数据结构课程设计,我学到了很多,我充分利用了这五天的时间,认真、独立的完成了作业。我觉得很满足,也很有成就感,许多曾经自己不知道的知识,现在知道了并能熟练的掌握了一些,比如:(1)一个函数既能调用它本身也能调用其它函数;(2)如fflush(stdin) 函数,它的功能是清空输入缓冲区,得到正确的输入数据;如system(cls)函数,它的功能是将屏幕先前显示的容清理掉(3)我以前不知道scanf()和gets()输入函数的不同之处,通过编程,调试,我明白了当
6、scanf()输入字符串时不能带空格,否则不能输出后面的字符,而gets()能输入带空格的字符串。在编程与调试过程中我遇到了许多问题,具体问题如下:(1)以前不知道怎么把各个函数编排在一起,不能形成一个总体模块,现在经过实践与调试,已经能组装好各个函数模块,使它们实现各自的功能。(2)在写mian、menu()、Delete功能函数时,很繁琐。C+中的函数模板能解决这个问题,但对于C+我还是个初学者,现在还不懂得如何去运用它,所以还不能对此程序作进一步修改,但我相信,不用多久,这个问题我一定能够解决。众所周知,要学好编程方面这一块,数据结构是必可少的,它里面有许多经典的算法和思想,是解决问题的
7、必需品。很惭愧,虽然经过一学期的学习,但我掌握的知识很少,特别是树和图,只知道皮毛,目前还不能用这两方面的知识编程。在本系统中,我运用了数据结构中的线性表知识,运用顺序线性表完成了宿舍管理查询软件。在这次课程设计中,经过自己与同伴的编成和调试、老师和同学的帮助,我们成功的完成了这次课程设计作业,虽然它的功能还不是很多,也不是很完善,但我还是非常的兴奋,因为,它给我增添了编程方面的信心,使我更有信心去努力成为一个强力的程序员。指导教师评语:成绩:填表时间:指导教师签名: 摘 要 本宿舍管理查询软件是为方便宿舍管理人员实现宿舍管理查询而开发的,具有信息录入、显示、查询、排序、插入和删除功能,能实现
8、信息修改和通过别的途径导入大量数据,可连续打印任一查询结果,但不能实现信息存盘,使用简单方便,点击程序即可运行。关键词:管理,查询(、学号、房号),结构体,函数一、 题目分析要实现交互工作方式,各项操作结束后均应返回主菜单;系统本无任何信息数据,要建立数据文件,需开发一个信息录入功能,即首先创建一个学员线性表,同时我们可以将数据暂时保存在存中,所以我们未开发信息存盘功能;信息录入后都保存在存中,用户看不到,需要设计一个信息显示功能,信息的显示应该便于查阅,所以需具备按各种关键字显示的功能;本系统按关键字(、学号、房号)进行冒泡排序,采用二分查找方式分别实现按关键字(、学号、房号)查询功能;由于
9、有些同学因为不同原因而离校,所以设计了删除功能;由于有新同学入校,所以设计了插入功能;当用户操作完毕需要退出时,我们提供了退出选项,便于使用者退出交互式工作系统。二、 基本理论用线性表中的顺序存储,存储结构采用结构体数组,查找、排序、删除、插入都采用二分法。主菜单函数、主函数都调用库函数用。三、总体设计根据上述要求,以及对题目的分析,我们将对该程序进行如下设计3.1模块分化设计该程序经过分析将分成7个大的模块:创建成员数据、排序、查找、插入、删除、主菜单函数、主函数3.2合理分工设计创建成员数据、主菜单函数、主函数、删除、流程图将由袁兴才完成排序、查找、插入等函数由耿粉团完成各程序块完成后将进
10、行组合用C语言程序来实现3.3算法设计3.3.1存储结构本系统定义的存储结构采用结构体数组,结构体为:typedef struct /定义结构体成员char name20;long num; /学号和房号都为整型long room;stu;stu stud;typedef structint length; /当前长度stu *elem; /存储空间基址int listsize; /当前分配的存储容量linklist; 在此说明每个部分的算法设计说明(可以是描述算法的流程图)3.3.2流程图主菜单函数 主函数按学号删除按学号插入按房号查找按学名排序按房号排序按姓名查找按学号查找排序按姓名排序查
11、找插入删除三、具体方法步骤4.1主菜单函数编写编写主菜单函数主要调用库函数,用printf、scanf来进行输入、输出,用库函数system(cls)来清屏,用fflush(stdin) 函数,用它来清空输入缓冲区,得到正确的输入数据。具体主菜单函数如下:#include#include#include#define N 40 /线性表存储空间的初始分配量#define add 10 /线性表存储空间的分配量增量int f,t=0; /定义全局变量typedef struct char name20; long num; /学号和房号都为长整型long roomnum;stu;stu stud
12、;typedef structint length; /当前长度stu *elem; /存储空间基址int listsize; /当前分配的存储容量linklist; void init(linklist &l)/线性表初始化l.length=0;l.elem=(stu *)malloc(N*sizeof(stu );l.listsize=N;void menu()/操作菜单printf(n);print *请按键选择操作*n);printf(n);printf(n);printf( 1 按排序 2 按学号排序n);printf(n);printf( 3 按房号排序 4 按查找n);printf(n);printf( 5 按学号查找 6 按房号查找n);printf(n);printf( 7 按学号插入 8 按学号删除n);printf(n);printf(n);printf(n);printf(n);printf(输入为时,退出操作n);if(t=1)printf(请输入数字键(18为操作键):);/18为有效数字操作键scanf(%d,&f);if(f9)