数据结构-宿舍管理系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《数据结构课程设计》宿舍管理查询系统题目:宿舍管理查询系统学生姓名:张海琴学号:1111121132班级:11-电科1班所在院(系):理学院指导教师:杨晓艳完成日期:2012年12月10日目录1方案设计.........................................................................................................-2-1.1任务:....................................................................................................-3-1.1.1程序设计要求:.................................................................................................-3-1.1.2查询菜单:(用二分查找实现以下操作)........................................................-3-1.1.开发设计思想...........................................................................................................11.1.3打印任一查询结果(可以连续操作).............................................................-3-1.2功能:............................................................................................................................-3-2算法设计.........................................................................................................-4-2.1线性表的顺序存储......................................................................................................-4-2.1.1存储结构.............................................................................................................-4-2.1.2程序流程图.........................................................................................................-4-3调试分析................................................................................................................33.1使用方法......................................................................................................................33.2测试数据:..................................................................................................................33.2.1开始录入的数据:..................................................................................................43.2.2插入的数据:..........................................................................................................53.2.3查找的数据:..........................................................................................................63.2.4删除的数据:..........................................................................................................73.3分析结果............................................................................................................................84总结.......................................................................................................................95参考文献................................................................................................................106源代码..................................................................................................................111方案设计1.1任务:为宿舍管理人员编写一个宿舍管理查询软件1.1.1程序设计要求:①采用交互工作方式②建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)1.1.2开发设计思想息系统时遵循了以下开发设计思想:(1(2)尽量达到操作过程中的直观、方便、实用、安全等要求。(3又便于未参与开发的技术维护人员补充、维护。1.1.3查询菜单:(用二分查找实现以下操作)①按姓名查询②按学号查询③按房号查询1.1.4打印任一查询结果(可以连续操作)1.2功能:根据上述要求,我们开始考虑系统应具备的功能:①要实现交互工作方式,各项操作结束后均应返回主菜单;②系统本无任何信息数据,要建立数据文件,需开发一个信息录入功能,即首先创建一个学员线性表,同时我们可以将数据暂时保存在内存中,所以我们未开发信息存盘功能;③信息录入后都保存在内存中,用户看不到,需要设计一个信息显示功能,信息的显示应该便于查阅,所以需具备按各种关键字显示的功能;④本系统按关键字(姓名、学号、房号)进行冒泡排序,采用二分查找方式分别实现按关键字(姓名、学号、房号)查询功能;⑤由于有些同学因为不同原因而离校,所以设计了删除功能;⑥由于有新同学入校,所以设计了插入功能;⑦当用户操作完毕需要退出时,我们提供了退出选项,便于使用者退出交互式工作系统。2算法设计2.1线性表的顺序存储2.1.1存储结构本系统定义的存储结构采用结构体数组,结构体为:typedefstruct//定义结构体成员{charname[20];intnum;//学号和房号都为整型introom;}stu;stustud;typedefstruct{intlength;//当前长度stu*elem;//存储空间基址intlistsize;//当前分配的存储容量}linklist;在此说明每个部分的算法设计说明(可以是描述算法的流程图)2.1.2程序流程图为:3调试分析3.1使用方法首先,运行程序进入“欢迎进入宿舍管理查询系统”界面,然后进入线性表创建界面中,输入学生的信息,创建好学生信息以后单击“n”键则进入操作界面(主界面),然后可按键进行操作。单击数字键“1”,则为按姓名排序单击数字键“2”,则为按学号排序单击数字键“3”,则为按房号排序单击数字键“4”,则为按姓名查找单击数字键“5”,则为按学号查找单击数字键“6”,则为按学号查找单击数字键“7”,则为按学号插入单击数字键“8”,则为按学号删除系统中有如下关键词:提示:当输入的数字键为0时,退出操作;请输入数字键(1~8为操作键);请按任意键进入主界面。3.2测试数据:3.2.1开始录入的数据:姓名学号房间号张海琴1111121132202黄昊雨1111121136202鲁梦诗11111211312013.2.2插入的数据:姓名学号房间号姚思琪11111211332023.2.3查找的数据:张海琴(按姓名)1111121132(按学号)202(按房间号)3.2.4删除的数据:1111121132(按学号)3.2.5退出(数字为零时退出):3.3分析结果①为了避免繁琐、改进算法,在一些函数中调用了其它的函数。如:在按(姓名、学号、房号)查找中都调用了panduan1(ch)和panduan2(ch)函数。②在插入和删除模块中,显示学生的信息的下面总是有主界面,经过调试,运用system(cls)函数清屏后,显示的只有学生的信息了,再按键即可返回主界面。③本程序多次运用了disp()、menu()、system(cls)、fflush(stdin)等函数,经过多次调试,已经很好的控制了显示的学生信息与主界面的转换。4总结通过本次数据结构课程设计,我学到了很多,我充分利用了这一周的时间,认真、独立的完成了作业。我觉得很满足,也很有成就感,许多曾经自己不知道的知识,现在知道了并能熟练的掌握了一些,比如:(1)一个函数既能调用它本身也能调用其它函数;(2)如fflush(stdin)函数,它的功能是清空输入缓冲区,得到正确的输入数据;如system(cls)函数,它的功能是将屏幕先前显示的内容清理掉(3)我以前不知道scanf()和gets()输入函数的不同之处,通过编程,调试,我明白了当scanf()输入字符串时不能带空格,否则不能输出后面的字符,而gets()能输入带空格的字符串。在编程与调试过程中我遇到了许多问题,具体问题如下:(1)以前不知道怎么把各个函数编排在一起,不能形成一个总体模块,现在经过实践与调试,已经能组装好各个函数模块,使它们实现各自的功能。(2)在按关键字(姓名、学号、房号)查找中,由于题目限制了只能用二分查找方式进行查找,所以有时出现了关键字相同时(列如房号相同),就只能查出并显示出一个学生的信息,因此,本程序还不够完善。当使用顺序查找时,就能查找出所用关键字相同的学生的信息。当然,当既按姓名又按学号还按房号查找时那就查找唯一。但现在我只能按照题目给的要求去做。(3)按(姓名、学号、房号)排序和查找功能每个函数都写了一遍,很繁琐。C++中的函数模板能解决这个问题,但对于C++我还是个初学者,现在还不懂得如何去运用它,所以还不能对此程序作进一步修改,但我相信,不用多久,这个问题我一定能够解决。众所周知,要学好编程方面这一块,数据结构是必可少的,它里面有许多经典的算法和思想,是解决问题的必需品。很惭愧,虽然经过一学期的学习,但我掌握的知识很少,特别是树和图,只知道皮毛,目前还不能用这两方面的知识编程。在本系统中,我运用了数据结构中的线性表知识,运用顺序线性表完成了宿舍管理查询软件。在这次课程设计中,经过自己的

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功