数据结构-宿舍管理查询系统 联系客服

发布时间 : 星期一 文章数据结构-宿舍管理查询系统更新完毕开始阅读77d2f8b0960590c69fc37609

目 录

攀枝花学院本科学生课程设计任务书 ....................................................................... I 课程设计(论文)指导教师成绩评定表 .................................................................. II 摘 要 ........................................................................................................................ III

1 方案设计 ............................................................................................................ - 1 -

1.1任务:............................................................................................................................ - 1 -

1.1.1程序设计要求: ................................................................................................. - 1 - 1.1.2查询菜单: (用二分查找实现以下操作) ........................................................ - 1 - 1.1.3打印任一查询结果(可以连续操作) ............................................................. - 1 - 1.2功能:............................................................................................................................ - 1 -

2 算法设计 ............................................................................................................ - 2 -

2.1线性表的顺序存储 ........................................................................................................ - 2 -

2.1.1存储结构 ............................................................................................................. - 2 - 2.1.2程序结构图为: ................................................................................................. - 2 -

3 详细设计 ............................................................................................................ - 3 - 4 调试分析 ............................................................................................................ - 9 -

4.1使用方法........................................................................................................................ - 9 - 4.2测试数据:.................................................................................................................... - 9 -

4.2.1开始录入的数据: ............................................................................................. - 9 - 4.2.2插入的数据: ..................................................................................................... - 9 - 4.2.3查找的数据: ..................................................................................................... - 9 - 4.2.4删除的数据: ..................................................................................................... - 9 - 4.3测试输出结果(以运行结果图表示): .................................................................... - 10 -

4.3.1欢迎界面: ....................................................................................................... - 10 - 4.3.2按任意键进入线性表的创建界面: ............................................................... - 10 - 4.3.3输入数据,开始创建: ................................................................................... - 10 - 4.3.4请按键选择操作: ........................................................................................... - 11 - 4.3.5按姓名排序: ................................................................................................... - 11 - 4.3.6按学号排序: ................................................................................................... - 11 - 4.3.7按房号排序: ................................................................................................... - 12 - 4.3.8插入后显示: ................................................................................................... - 12 - 4.3.9按姓名查找: ................................................................................................... - 12 - 4.3.10按学号查找: ................................................................................................. - 12 - 4.3.11按房号查找: ................................................................................................. - 13 - 4.3.12进入删除功能,删除数据后显示剩余的学生信息: ................................. - 13 - 4.3.13退出(数字为零时退出): ........................................................................... - 13 - 4.4分析结果...................................................................................................................... - 14 -

5 总结 .................................................................................................................. - 15 - 参考文献 ................................................................................................................ - 16 -

A

1 方案设计

1.1任务:

为宿舍管理人员编写一个宿舍管理查询软件

1.1.1程序设计要求:

①采用交互工作方式

②建立数据文件 ,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)

1.1.2查询菜单: (用二分查找实现以下操作)

①按姓名查询 ②按学号查询 ③按房号查询

1.1.3打印任一查询结果(可以连续操作)

1.2功能:

根据上述要求,我们开始考虑系统应具备的功能: ①要实现交互工作方式,各项操作结束后均应返回主菜单;

②系统本无任何信息数据,要建立数据文件,需开发一个信息录入功能,即首先创建一个学员线性表,同时我们可以将数据暂时保存在内存中,所以我们未开发信息存盘功能;

③信息录入后都保存在内存中,用户看不到,需要设计一个信息显示功能,信息的显示应该便于查阅,所以需具备按各种关键字显示的功能;

④本系统按关键字(姓名、学号、房号)进行冒泡排序,采用二分查找方式分别实现按关键字(姓名、学号、房号)查询功能;

⑤由于有些同学因为不同原因而离校,所以设计了删除功能; ⑥由于有新同学入校,所以设计了插入功能;

⑦当用户操作完毕需要退出时,我们提供了退出选项,便于使用者退出交互式工作系统。

- 1 -

2 算法设计

2.1线性表的顺序存储

2.1.1存储结构

本系统定义的存储结构采用结构体数组,结构体为: typedef struct //定义结构体成员 {

char name[20];

int num; //学号和房号都为整型 int room; }stu; stu stud;

typedef struct {

int length; //当前长度

stu *elem; //存储空间基址

int listsize; //当前分配的存储容量

}linklist; 在此说明每个部分的算法设计说明(可以是描述算法的流程图)

2.1.2程序结构图为:

姓名排序模块 学号删除模块 学号排序模块 主函数 学号插入模块 房间排序模块 房号查找模快 姓名查找模块 学号查找模块 - 2 -

3 详细设计

//采用顺序线性表解决宿舍管理问题 (C语出操作\\n\言) if(t==1) #include { #include printf(\请输入数字键(1~8为操作#include 键):\为有效数字操作键 #define N 40 //线性表存储空间的初始分配 scanf(\量 if(f<0||f>9) #define increase 10 //线性表存储空间的分配 { 量增量 system(\int f,t=0; //定义全局变量 printf(\typedef struct printf(\输入数字不对,请在原{ 处重输!\\n\ printf(\ char name[20]; menu(); int num; //学号和房号都 } 为整型 } int room; }stu; } stu stud; typedef struct void disp() //返回主界面 { { int length; //当前长度 char c; stu *elem; //存储空间基址 fflush(stdin); int listsize; //当前分配的存储容量 printf(\}linklist; printf(\请按任意键进入主界面:\void init(linklist &l)//线性表初始化 scanf(\{ system(\ l.length=0; } l.elem=(stu *)malloc(N*sizeof(stu )); void panduan3() //如果已无学生记录则返 l.listsize=N; 回主界面 } { void menu()//操作菜单 printf(\{ printf(\已无学生记录\\n\ printf(\ printf(\ printf(\ *************** disp(); 请按键选择操作****************\\n\ menu(); printf(\} printf(\ 1 按姓名排序 2 按学号排序\\n\void shuru(linklist l) //输入学生的信息 printf(\{ printf(\ 3 按房号排序 printf(\ 请输入姓名 :\4 按姓名查找\\n\ fflush(stdin); // 清空输入缓冲 printf(\区,得到正确的输入数据 printf(\ 5 按学号查找 gets(stud.name); //输入一行字符串6 按房号查找\\n\(姓名) printf(\ printf(\请输入学号:\ printf(\ 7 按学号插入 scanf(\ 8 按学号删除\\n\ printf(\请输入房号:\ printf(\printf(\printf(\ scanf(\ printf(\} printf(\提示:当输入的数字键为0时,退void create(linklist &l)//创建学生信息表

- 3 -