- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验目的:查找和排序,根据实际情况选择效率较高的算法解决应用问题。.doc
洛阳理工学院实验报告
系部 计算机系 班级 B110505 学号 姓名 李满意 课程名称 数据结构 实验日期 2013.05.24 实验名称 宿舍管理查询掌握数据结构两种基本查找和排序解决应用问题。
电脑一台,VC++6.0软件。 实验内容与算法思想:
内容:
为宿舍管理人员设计一个宿舍管理查询系统, 程序采用交互工作方式,完成下列功能:
建立合适的数据结构作为查找表并输入数据;
数据分别按关键字姓名、学号、房号进行排序(所学排序算法任选一种效率较高的算法);
设计查询菜单,按指定关键字姓名、学号、房号进行查询并输出结果,要求查询采用效率较高的算法实现;
可以连续查询;
算法思想:
本程序采用顺序结构存储数据,可实现按关键字姓名、学号、房号进行排序,程序排序方法为折半排序法;另外,可实现按关键字姓名、学号、房号进行查询,查询方法为折半查询;主函数中使用了while循环语句和switch选择语句可以实现多次查询。
运行结果:
实验总结:
这次上机实验主要是对第八第九章的复习、实验,在这次实验中同时对我大一时的c语言也起到了复习作用,大一时的一些函数用法都忘了,这次用到,翻了下课本,所以经常上机还是很好的,既能有些实战经验,还可以经常复习一下以往的知识。
另外,在这次实验中我用的是折半的方法,效率也挺高的吧,但我本来打算多用几种方法实现的,但是由于时间问题,所以全部用的折半,不过,课下还可以尝试做一下,练一练,这样我会更好的学好c语言、学号数据结构的。
以后会经常上机,经常编写课上的学习的算法,以巩固学习的知识,熟练编程的技巧。
附:源程序:
#includestdio.h
#includestdlib.h
struct student
{
char name[20];
char num[20];
char room[20];
};
struct student stu[20];
int a;
int shuru()
{
int i=1,flag=1;
printf(请输入宿舍成员并以“*”作为输入结束标记:\n);
while(flag)
{
scanf(%s,stu[i].name);
if(strcmp(stu[i].name,*)==0)break;
scanf(%s%s,stu[i].num,stu[i].room);
a=i;
i++;
}
}
void shuchu()
{
int i;
char name[20]=name,num[20]=num,room[20]=room;
printf(%-15s%15s%15s\n,name,num,room);
for(i=1;i=a;i++)
{
printf(%-15s%15s%15s\n,stu[i].name,stu[i].num,stu[i].room);
}
printf(\n);
}
void binsortname(struct student stu[],int a)
{
struct student x;
int low,high,mid,i,j;
for(i=2;i=a;++i)
{
x=stu[i];
low=1;
high=i-1;
while(low=high)
{
mid=(low+high)/2;
if(strcmp(x.name,stu[mid].name)0)high=mid-1;
else low=mid+1;
}
for(j=i-1;j=low;--j)stu[j+1]=stu[j];
stu[low]=x;
}
}
void binsrchname(struct student stu[])
{
int low,high,mid;
char k[20];
low=1;
high=a;/*置区间初值*/
printf(请输入需要查找的姓名:);
scanf(%s,k);
while( low = high)
{
mid=(low+high) / 2;
if(strcmp(k,stu[mid].name)==0)
{printf(%15s%15s%15s\n,stu[mid].name,stu[mid].num,stu[mid].room);break;}/*找到待查元素*/
else
if(strcmp(k,stu[mid].name)0)
high=mid-1;/*未找到,则继续在前半区间进行查找*/
else
low=mid+1;/*继续在后半区间进行查找*/
}
}
vo
您可能关注的文档
最近下载
- 高中物理临界问题.ppt VIP
- 某某大学各岗位廉政风险点及防控措施一览表(最新最全面版本) .pdf VIP
- 对招标项目设计的特点及关键性技术问题的对策措施;.doc VIP
- 传承非遗文化秧歌知识文化科普讲座主题班会PPT课件.pptx VIP
- 2025年内蒙古时事政治考试试卷带解析必考题.docx VIP
- 人教版数学三年级下册单元试卷【1-8合集,含答案】.pdf VIP
- 2025年内蒙古时事政治考试试卷带解析参考答案.docx VIP
- (答案)奥赛经典-奥林匹克数学中的几何问题---习题与讲解(第1-2章).pdf VIP
- 奥赛经典奥林匹克数学中的几何问题.pdf VIP
- 2025国家能源集团新疆哈密能源化工有限公司社会招聘(51人)笔试参考题库附答案解析.docx VIP
文档评论(0)