宿舍管理查询系统数据结构实验报告.doc
《宿舍管理查询系统数据结构实验报告.doc》由会员分享,可在线阅读,更多相关《宿舍管理查询系统数据结构实验报告.doc(14页珍藏版)》请在沃文网上搜索。
1、洛阳理工学院实验报告系部计算机与信息工程系班级学号姓名课程名称数据结构实验日期2014.5.21实验名称实验6-7:宿舍管理查询系统成绩实验目的:掌握数据结构的两种基本技术:查找和排序,根据实际情况选择效率较高的算法解决应用问题。实验条件:电脑一台,VC+6.0实验内容与步骤:内容:为宿舍管理人员设计一个宿舍管理查询系统, 程序采用交互工作方式,完成下列功能:建立合适的数据结构作为查找表并输入数据;数据分别按关键字姓名、学号、房号进行排序(所学排序算法任选一种效率较高的算法);设计查询菜单,按指定关键字姓名、学号、房号进行查询并输出结果,要求查询采用效率较高的算法实现;可以连续查询;算法思想:
2、1. 添加学生信息函数2. 修改学生信息函数3. 删除学生信息函数4. 显示所有学生信息函数5. 排序函数按照宿舍号从小到大排序(冒泡法)6. 排序函数按照学号从小到大排序(冒泡法)7. 查询函数以姓名为关键字进行查询(顺序查找)8. 查询函数以学号为关键字进行查询(折半查找)9. 查询函数以宿舍号为关键字进行查询(折半查找)10. 存储函数运行结果:实验总结:此次的实验,使我掌握了冒泡排序与折半查找,也对系统的建立有了一定的了解,并会简单的创建,对结构体定义有更深的理解,在此特别感谢同学的帮助。此次的实验为最后一个,还是感觉自己掌握的不近人意,还要加强巩固。附:源程序:#include#in
3、clude#include#define M 100int change=0; /用来判断是否已保存操作/定义一个存储学生相关信息的结构体typedef structchar S_name31; /学生姓名 char S_number16; /学生学号int D_number; /学生所在寝室的宿舍号Stud;typedef struct Stud studentM; int Total; /学生总数Stu,*St;/判断学号是否与表中所存学号重复void S_number_Judge(St S,int t)int i;for(i=1;iTotal)-1;i+)if(i!=t)while(st
4、rcmp(S-studenti).S_number,(S-studentt).S_number)=0)&(i!=t)printf(学号输入失败,该学号已存在,请重新输入学号!n);printf(请输入学生的学号(15个字符以内):); scanf(%s,(S-studentt).S_number);getchar();i=1;/添加学生信息函数void Add(St S) printf(请输入学生姓名(30个字符以内):);scanf(%s,(S-student+(S-Total).S_name);getchar();/获取换行符printf(请输入学生的学号(15个字符以内):);scanf
5、(%s,(S-studentS-Total).S_number); getchar();S_number_Judge(S,S-Total);/判断输入的学号是否与表中所存在的学号重复printf(请输入宿舍号码:);scanf(%d,&(S-studentS-Total).D_number);getchar();change=1;printf(添加成功!nn);/修改学生信息函数void Alter(St S)int i;int flag=0; /用来判断表中是否存在所要修改的学生的信息char name20;printf(请输入你要修改学生的姓名:); scanf(%s,name);getc
6、har();for(i=1;iTotal;i+)if(strcmp(S-studenti).S_name,name)=0)flag=i;if(!flag)printf(你所要修改的学生信息在表中不存在!n);elseprintf(新信息如下:n);printf(请输入学生姓名(30个字符以内):);scanf(%s,(S-studentflag).S_name);getchar();printf(请输入学生的学号(15个字符以内):);scanf(%s,(S-studentflag).S_number);getchar();S_number_Judge(S,flag);printf(请输入宿舍
7、号:);scanf(%d,&(S-studentflag).D_number);getchar();/getchar(n);change=1;printf(修改成功!n);putchar(n);/删除学生信息void Delete(St S)int i,j;int flag=0; /用来判断表中是否存在所要删除的学生的信息char name20;printf(请输入你要删除学生的姓名:);scanf(%s,name); getchar();for(i=1;iTotal;i+)if(strcmp(S-studenti).S_name,name)=0)flag=i;if(!flag)printf(
8、你所要删除的学生在表中不存在!);else for(i=flag;iTotal;i+) j=i+1; strcpy(S-studenti).S_name,(S-studentj).S_name); strcpy(S-studenti).S_number,(S-studentj).S_number); (S-studenti).D_number=(S-studentj).D_number; (S-Total)-;change=1;printf(删除成功!);printf(nn);/显示所有学生信息函数void Display_All(St S)int i;printf(全体学生信息如下:n);p
9、rintf(学生姓名 学生学号 宿舍号n);for(i=1;iTotal;i+)printf(%-20s%-15s%-5dn,(S-studenti).S_name,(S-studenti).S_number,(S-studenti).D_number);putchar(nn);/排序函数按照寝室号从小到大排序(冒泡法)void Sort_D_number(St S)int i,j,t;char name30;char number15;for(i=1;iTotal;i+)for(j=i;jTotal;j+)if(S-studenti).D_number(S-studentj).D_numbe
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宿舍 管理 查询 系统 数据结构 实验 报告