文档介绍:数据结构
课程设计报告
题目:宿舍管理系统,纸牌游戏,
猴子吃桃,简易文本编辑器,
二叉排序树树的实现
设计者:
专业班级: 软件设计111班
学号:
指导教师:
所属系部: 计算机科学与技术系
2013年 6月11 日
目录
一、宿舍管理系统 3
1、方案设计 3
2、算法设计 4
3、调试分析 5
4、总结 9
二、纸牌游戏 10
1、问题分析和任务定义 10
11
12
14
14
三、猴子吃桃 21
21
21
22
4. 概要设计 22
22
6. 测试数据及分析 26
28
四、简易文本编辑 29
1、问题描述及要求 29
2、需求分析 29
4、设计概要 30
5、调试内容及测试结果 37
6、课程设计总结 43
五、二叉树的设计与实现 44
44
45
46
46
46
49
51
五、参考文献 51
六、附录(代码) 52
1、附录一(宿舍管理查询软件实现代码) 52
2、附录二(纸牌游戏的设计与实现代码) 65
3、附录三(猴子吃桃的问题代码) 68
4、附录四(简易文本编辑器的设计与实现代码) 72
5、附录五(二叉排序树的实现代码) 86
宿舍管理系统
1、方案设计
为宿舍管理人员编写一个宿舍管理查询软件
:
①采用交互工作方式
②建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)
开发设计思想
基于以上系统设计目标本文在开发人事管理信息系统时遵循了以下开发设计思想:
(1)采用现有的软硬件环境及先进的管理系统开发方案从而达到充分利用现有资源提高系统开发水平和应用效果的目的。
(2)尽量达到操作过程中的直观、方便、实用、安全等要求。
(3)系统采用模块化程序设计方法既便于系统功能的各种组合和修改又便于未参与开发的技术维护人员补充、维护。
: (用二分查找实现以下操作)
①按姓名查询
②按学号查询
③按房号查询
(可以连续操作)
根据上述要求,我们开始考虑系统应具备的功能:
①要实现交互工作方式,各项操作结束后均应返回主菜单;
②系统本无任何信息数据,要建立数据文件,需开发一个信息录入功能,即首先创建一个学员线性表,同时我们可以将数据暂时保存在内存中,所以我们未开发信息存盘功能;
③信息录入后都保存在内存中,用户看不到,需要设计一个信息显示功能,信息的显示应该便于查阅,所以需具备按各种关键字显示的功能;
④本系统按关键字(姓名、学号、房号)进行冒泡排序,采用二分查找方式分别实现按关键字(姓名、学号、房号)查询功能;
⑤由于有些同学因为不同原因而离校,所以设计了删除功能;
⑥由于有新同学入校,所以设计了插入功能;
⑦当用户操作完毕需要退出时,我们提供了退出选项,便于使用者退出交互式工作系统。
2、算法设计
本系统定义的存储结构采用结构体数组,结构体为:
typedef struct //定义结构体成员
{
char name[20];
int num; //学号和房号都为整型
int room;
}stu;
stu stud;
typedef struct
{
int length; //当前长度
stu *elem; //存储空间基址
int listsize; //当前分配的存储容量
}linklist; 在此说明每个部分的算法设计说明(可以是描述算法的流程图)
3、调试分析
首先,运行程序进入“欢迎进入宿舍管理查询系统”界面,然后进入线性表创建界面中,输入学生的信息,创建好学生信息以后单击“n”键则进入操作界面(主界面),然后可按键进行操作。
单击数字键“1”,则为按姓名排序单击数字键“2”,则为按学号排序
单击数字键“3”,则为按房号排序单击数字键“4”,则为按姓名查找
单击数字键“5”,则为按学号查找单击数字键“6”,则为按学号查找
单击数字键“7”,则为按学号插入单击数字键“8”,则为按学号删除
系统中有如下关键