欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    宿舍管理查询系统数据结构实验报告.doc

    • 资源ID:824744       资源大小:182.04KB        全文页数:14页
    • 资源格式: DOC        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    宿舍管理查询系统数据结构实验报告.doc

    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

    10、r)strcpy(name,(S-studenti).S_name);strcpy(number,(S-studenti).S_number); t=(S-studenti).D_number;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;strcpy(S-studentj).S_name,name);strcpy(S-studentj).S_number,n

    11、umber);(S-studentj).D_number=t;/排序函数按照学号从小到大排序(冒泡法)void Sort_S_number(St S)int i,j,t;char name30;char number15;for(i=1;iTotal;i+)for(j=i;jTotal;j+)if(strcmp(S-studenti).S_number,(S-studentj).S_number)0)strcpy(name,(S-studenti).S_name);strcpy(number,(S-studenti).S_number);t=(S-studenti).D_number;strc

    12、py(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;strcpy(S-studentj).S_name,name);strcpy(S-studentj).S_number,number);(S-studentj).D_number=t;/查询函数以姓名为关键字进行查询(顺序查找)void Query_S_name(St S)int i,j=0;char name31;pri

    13、ntf(请输入你要查找的学生的姓名(30个字符以内):);scanf(%s,name);getchar();printf(所查找学生信息如下:n);printf(学生姓名 学生学号 宿舍号n);for(i=1;iTotal;i+)if(strcmp(name,(S-studenti).S_name)=0)printf(%-20s%-15s%-5dn,(S-studenti).S_name,(S-studenti).S_number,(S-studenti).D_number); j=1; if(!j)printf(n查找失败,表中不存在该学生的信息!nn);/查询函数以学号为关键字进行查询(折

    14、半查找)void Query_S_number(St S)int flag,top,bottom,mid;char number15;flag=0;bottom=1;top=S-Total;printf(请输入你要查找学生的学号:);scanf(%s,number);getchar();Sort_S_number(S); /将表中原数据按照学号从小到大排序printf(所查找学生信息如下:n);printf(学生姓名 学生学号 宿舍号n);if(strcmp(number,(S-student1).S_number)=0&strcmp(number,(S-studentS-Total).S_n

    15、umber)=0)while(bottomstudentmid).S_number)=0) printf(%-20s%-15s%-5dn,(S-studentmid).S_name,(S-studentmid).S_number,(S-studentmid).D_number);putchar(n);flag=1;break;else if(strcmp(number,(S-studentmid).S_number)0)bottom=mid+1;elsetop=mid-1;if(!flag)printf(n查找失败,表中不存在该学生的信息!nn);/查询函数以寝室号为关键字进行查询(折半查找)

    16、void Query_D_number(St S)int i,j,m,n,base,top,mid;j=0;base=1;top=S-Total;printf(请输入你要查询的寝室号:);scanf(%d,&i);getchar();Sort_D_number(S);/将表中原数据按照寝室号从小到大排序printf(所查找寝室信息如下:n);printf(学生姓名 学生学号 宿舍号n);if(i=(S-student1).D_number&istudentS-Total).D_number)while(basestudentmid).D_number)m=mid; n=mid-1;while(

    17、S-studentm).D_number=i)printf(%-20s%-15s%-5dn,(S-studentm).S_name,(S-studentm).S_number,(S-studentm).D_number); m+;if(mS-Total)break;if(n0)while(S-studentn).D_number=i)printf(%-20s%-15s%-5dn,(S-studentn).S_name,(S-studentn).S_number,(S-studentn).D_number); n-;if(n(S-studentmid).D_number)base=mid+1;e

    18、lsetop=mid-1;if(!j)printf(n查找失败,表中不存在该寝室的信息!nn);void Search(St S)int j;printf(*n);printf(*按1按姓名查找*n);printf(*按2按学号查找*n);printf(*按3按寝室号查找*n);printf(*n);doprintf(请输入信息n);scanf(%d,&j);getchar();putchar(n);switch(j)case 1 : Query_S_name(S); break;case 2 : Query_S_number(S); break;case 3 : Query_D_number

    19、(S); break; default: printf(选择错误:请在选项之间选择!nn); break;while (j!=1)&(j!=2)&(j!=3);void Menu() /菜单printf(n);printf(欢迎进入宿舍管理系统n);printf(*菜单*n);printf(-按a.添加学生信息-n);printf(-按b.修改学生信息-n);printf(-按c.删除学生信息-n);printf(-按d.查询学生信息-n);printf(-按e.显示所有学生信息-n);printf(*n);void main() char i;St S;S=(St)malloc(sizeof(Stu);S-Total=0;Menu();do printf(请选择所要实现的功能(请输入ae中的任意一个数字):);scanf(%s,&i);getchar(); /获取换行符putchar(n);switch(i)case a:Add(S); break;case b:Alter(S); break;case c:Delete(S); break;case d:Search(S); break;case e:Display_All(S);default:printf(选择错误:请在选项之间选择!nn); break;while(i!=h);忽略此处.


    注意事项

    本文(宿舍管理查询系统数据结构实验报告.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922