数据结构宿舍管理查询系统的实现课程设计_第1页
数据结构宿舍管理查询系统的实现课程设计_第2页
数据结构宿舍管理查询系统的实现课程设计_第3页
数据结构宿舍管理查询系统的实现课程设计_第4页
数据结构宿舍管理查询系统的实现课程设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实用文档学号2014-2015学年 第一学期数据结构课程设计报告题目: 宿舍管理查询系统的实现专业:班级:姓名:学号:指导教师:成绩:计算机与信息工程系2014年10月25 日目录1设计任务 错误!未定义书签。2总体设计 33系统流程图 34详细设计及测试 55心得体会 13致谢 13参考文献 14附录:源代码 151设计任务题目:宿舍管理查询软件任务:为宿舍管理人员编写一个宿舍管理查询软件,程序设计要求:(1)建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒 泡、选择、插入排序等任选一种)(2)实现如下查询功能:按姓名查询按学号查询按房号查询(3)打印任意查询结果(可以连续操作

2、)针对题目所要求的功能不太多,我特意添加了插入数据、读入文件数据以及 将数据写入文件三个额外功能。2总体设计根据系统要求,即本系统具有信息的录入,显示,排序显示、查找,插入、 从文件中读入数据、循环写入数据、结束程序等功能,先设计出详细的系统流程 图,然后将源代码输入程序,进行编译调试即可。程序总体分12个项目:输入记录、显示记录、按姓名排序并显示、按房间 号排序并显示、按学号排序并显示、按姓名查找并显示、按房间号查找并显 示、按学号查找并显示、插入一条记录按学号排序并显示、从文件中读入数据、 循环写入数据以及结束程序。3系统流程图系统流程图下页图1所示实用文档图1系统流程图开始输岀界面选择操

3、作否选择1是否否选择2输入记录显示记录选择3否选择4否是-I按姓名排序并显示按房间号排序并显示选择5否按学号排序并显示选择6否选择7否按学号查找并选择8是选择9否从文件中读入选择10数据是插入一条记录显示选择11循环写入数据否是选择0否是退岀系统结束 图1按姓名查找并显示按房间号查找并显示显示实用文档4详细设计及测试根据流程图,将程序源代码输入到编译环境中,按照提示选择进行记录的输 入,输入一个数据后提示是否继续输入,直到结束程序为止。将程序编译生成“学生宿舍管理系统.exe ”。运行该文件如图2所示。'F:mykechengshej De b u gny4:ec hen gishe;

4、a+ * * 示* 昼* 幷 坯 序*1> 排*1 朗 示鮎示示显一忑十据 H拯 舍 显并显显并显芻 坝 宿 并序并菠JTRI 选 生 杳我记i 记记為号為号-件写程运 入示姓展于姓虜天文环辛要 输图4显示所有记录图2输出界面图输入记录采用循环输入while(sig n!=' n' && sig n!='N')/*判断*/printf("tt 姓名:");sca nf("tt%s", & room n+i. name);prin tf("tt 学号:");sca nf(&q

5、uot;tt%s", & room n+i. num);printf("tt 房间号:");sca nf("tt%s",&room n+i.roo mnu m);printf("tt是否继续输入?(Y/N)");sca nf("tt%c",&sig n);/*输入判断*/返回(n+i);按照提示选择“ 1”进行记录的输入如图3所示:'F;m<echencsheji' Debug11<echengshej e>e图3输入记录显示图理庆1=i- ?n

6、八7人31细输22输虽:显 并 *:1序 "ULI L 1 示示号 <&- 示屁示示显一窜潺 按 显幵显显开显按数 项 幷序并菠开录人据炊选 排tiron一号沓一書入序*17 记记鳥号名闾号一件写辛运 八#迥娃蓉入yKR要头 *!#唱埒弩泵吹吃養呜警巫123456789连续输入多组数据后,按“ n”结束输入,提示按任意键继续,按任意键后 选择“2”进行记录的显示如图4所示。揷入W记录按学号排序并显示10.乙必文件由读斤裁据fewA数扌居i丄工上请逵择您要运行药选项損0-11:2 显Tri己录房间号 学号姓名粪飞11?2013111222B13421182B131?请按任

7、意键继绞.实用文档按姓名排序采用冒泡排序法int i,j;char t10;for(i=0;i<n-1;i+)/*冒泡法排序 */for(j=0;j< n-1-i;j+)if(strcmp(roomj. name,roomj+1. name)>0)strcpy(t,roomj+1. name);strcpy(roomj+1. name,roomj. name); strcpy(roomj. name,t);strcpy(t,roomj+1. nu m);strcpy(roomj+1. nu m,roomj. nu m);strcpy(roomj. nu m,t);strcpy

8、(t,roomj+1.roo mnu m);strcpy(roomj+1.roo mnu m,roomj.roo mnu m);strcpy(roomj.roo mnu m,t);显示后提示按任意键继续,选择“ 3”进行按姓名排序并显示,如图5所示。雯据记读数 藍鸠了行显-件写程运# 入文坏枣要序? 91011P* 选姓序 怪IF#*附示11?1181221'I® KIP1篥晓飞房间号 学号 姓名201311201317201342图5按姓名排序显示图按房间号排序采用冒泡排序法冒泡法排序*/for(i=0;i< n-1;i+)/*for(j=0;jv n-1-i;j+)

9、if(strcmp(roomj.ro omnu m,roomj+1.roo mnum)>0)strcpy(t,roomj+1. nu m);strcpy(roomj+1. nu m,roomj. nu m);strcpy(roomj. nu m,t);strcpy(t,roomj+1.roo mnu m);strcpy(roomj+1.roo mnu m,roomj.roo mnu m);strcpy(roomj.roo mnu m,t);strcpy(t,roomj+1. name);strcpy(roomj+1. name,roomj. name);strcpy(roomj. nam

10、e,t);显示后提示按任意键继续,选择“ 4”进行按房间号排序并显示,如图6所示。'F;mylce ch engh ej iDt bu gnnyk:e 匚 h eng heji.ex:e示并示硏 显輩据 并显按数 拱幵黃据 査找込谤数 号查#&入序行幵 间号一件写程*运序<克文环至聲辛 一号7 8 910110 选房序*" 按 项*选示的显117201311lie201317丄22201342请按任意键绽续塹庆 隸飞图6按房间号排序显示图同样学号排序也是用的冒泡法排序。for(i=0;i<n-1;i+)/*冒泡法排序 */for(j=0;jv n-1-i;

11、j+)if(strcmp(roomj. nu m,roomj+1. num)>0) strcpy(t,roomj+1.roo mnu m);strcpy(roomj+1.roo mnu m,roomj.roo mnu m); strcpy(roomj.roo mnu m,t);strcpy(t,roomj+1. nu m);strcpy(roomj+1. nu m,roomj. nu m); strcpy(roomj. nu m,t);strcpy(t,roomj+1. name);strcpy(roomj+1. name,roomj. name);strcpy(roomj. name,

12、t);显示后提示按任意键继续,选择“ 5”进行按学号排序并显示,如图7所示。'F ;mykecheng h 耳 i De bu gmy kechhqi. exeTiswn 的一 1$功 爭录BOSW- 行显成 记记名间号名回!?-件写辛运幵序 T-芳输显裁 玉*择号 石123 45678900 选学示 示号 示显示示显一歪于据 显并显显房间号学号姓名11?20131111820131?1222Q1312去眈飞功能6-8为查找功能按姓名查找并显示功能图7按学号排序显示图实用文档printf("tt输入要查找的姓名:");sea nf("%s",s)

13、;while(strcmp(roomi. name,s)!=O && i<n) i+;/*查找判断*/if(i=n)printf("tt对不起没有找到该学生!n");/*返回失败信息*/elseDisplay_a_record(room1,i);/* 调用函数 */显示后提示按任意键继续,选择“ 6”按提示步骤按学号查找一条记录并显 示,如图8所示。F:myke che ngshej iDe bu gmylkech engshej iexe输显你害查择名要12rH4567e8 爭10110*先姓、代* 示 显 并 *:6 序排 示场示示场%据 卄撤庆

14、显并显显并S按数 蛊旷* 选=5 *的名录录排号姓 记记名间号名间号一件写程£运 的 入示姓曇姓畧点.9图8按姓名查找并显示图房间号学号姓名11?201311郭庆请按任意槌继缠 nr按房间号查找和按学号查找的方法大同小异。分别输入7”、“ 8”显示截图如下页实用文档'F:YmykerhengshejiiDebugmykechengsheji exeT* 汝 * * 学生宿害菅土里系諭 * 戈1 -输A_i己录?§2-也示记隶s姓賓排疥幷宴示?厚号粧用并显丞t|姓名査枚珂显示?骅豔魁示 稔歸号排初示'环写入数据?请选璋智婪运行的选项按5T直 = 7 蕭艮舉茎霧

15、欝房间号徂整1222»1 42 张晓飞.请按任意犍继绫-_图9按房间号查找并显示图'F :myke chngshejiDebu gnnykec h eng 5heji.exe¥if示 示号<07 管 示显示示显一箏据*按31 舍 显-开显显开显按数*项附 宿 并序并養幵昊据*选:2 生 杳我记I 的号 孚录录排号查需入$行 学 玉记记名间号名间号-件写程'运 的 击入示姓蜃灵衣环*择号要 石 12 3 4567 89010Tt-mru L _w S.SBU.S.O.U wos.u.s.o.-.otKx<一环 显 井 th房间亍学亍舉1182013

16、1? 李强请按任意犍继缰- _=图10按学号查找并显示图功能9为插入一条记录按学号排序并显示。/*插入一条记录并按int Insert_a_record(Studentroom,int n)学号排序*/printf("tt学生姓名:");sca nf("tt%s",&room n. name);printf("tt学生学号:");sca nf("tt%s",&room n. num);printf("tt学生房间号:");sca nf("tt%s",&

17、room n.roo mnu m);n+;/*调用排序函数*/*返回成功信息*/Sort_by_ nu m(room, n);printf("tt插入记录成功!n");return( n);显示后提示按任意键继续,选择“ 9”进行插入数据,如下页图11所示'F:myke che ngshej iDebugVmylcech engsheji.exe'示示显一迹不显一尘漏 显并显显并显按数幵黃据 查找记读数 名间号名间号一件写程运录防01:1功 一匮于姓置天文环壬要记淳普孫择-姓番记> 费生生责5 童 34&& 789Q101 1卜9项排选

18、号1:- 1 ? 庆; 車a -117201311117 201311118 201317122201342庆庆强晓 言壬11孑请按任意键继绫5心得体会这次课程设计我做的还不是很完善,因为功能不是很多,如果以后有机会完 善的话,应该对管理员和用户登录时做进一步完善。学生的信息还不够完整,如 学生的宿舍长,系别,一些费用以及学生的成绩等待相关详细信息。如果使次系统再详细些,需添加更多的管理员以及管理员权限, 还有学生的 更多信息,如果有必要的话,添加一些有关教师的信息,以及教师登录的界面。在这次课程设计的过程中,我们体会到要想开发一个系统软件,不仅需要相 当的专业技术知识,还要有严谨缜密的思维能

19、力。只有思想上清晰了,编程才有 意义,否则就是白费力气。同时还要善于捕获细小的方面,因为那往往是这个程 序的致命因素。这次课程设计培养了我的细心和耐性,更树立了一种科学的态度。实用文档致谢在这次数据结构课程设计中,我的老师和同学给了我及大的帮助。特别是我的指 导老师王源老师,还有我的C语言任课老师陈广宏老师。在此,我对他们表示感 谢!感谢他们在我面对困难时给了我帮助和支持。也感谢那些给我帮助的所有同学!参考文献1谭浩强著.C程序设计(第二版)北京:清华大学出版社,19992谭浩强,张基温,唐永炎编著.C语言程序设计北京:高等教育出版社,19923谭浩强编著.QBASIC语言教程.北京:电子工业

20、出版社,19974谭浩强.C程序设计M.3版.北京:清华大学出版社,2005Herbert Schildt著.戴健鹏译.C语言大全(第二版).北京:电子工业出版社,1994美SCHILDTH.C语言大全M.4 版.王子恢等译北京:电子工业出版社,2001附录:源代码#i nclude<stdio.h>#i nclude<stdlib.h>#in clude<ctype.h>#i nclude<stri ng.h>typedef struct char roomnum 4;char num10;char n ame20;Stude nt;Stude

21、nt room11000;int menu()char c;do system("cls");t 学生宿舍管理系统n");t§1.输入记录§n");t§2.显示记录§n");t§3.按姓名排序并显示§n");t§4.按房间号排序并显示§n");t§5.按学号排序并显示§n");t§6.按姓名查找并显示§n");t§7.按房间号查找并显示§n");t§

22、;8.按学号查找并显示§n");t§9.插入一条记录按学号排序并显示§n");t § 10.从文件中读入数据§ n");t § 11.循环写入数据§ n");§ n");n");t § 0.结束程序tprintf("tt请选择您要运行的选项按(0-11):");c=getchar();while(cv'0'|c>'11');return(c-'O');int In put(

23、Stude nt room,i nt n)int i=0;char sig n;while(sig n!=' n' && sig n!='N')printf("tt姓名:");scanf("tt%s", &roomn+);prin tf("tt学号:");scan f("tt%s", & room n+i. nu m);printf("tt房间号:");scan f("tt%s",&room

24、n+i.roo mnu m);printf("tt是否继续输入?(Y/N)");scan f("tt%c",&sig n);i+;return( n+i);void Display_all_record(Stude nt room,i nt n)int i;printf("ttn");prin tf("tt房间号 学号 姓名n");printf("ttn");for(i=1;i <n+1;i+)prin tf("tt%-10s%-10s%-10sn",roomi

25、-1.roo mn um,roomi-1. num,ro omi-1. name);prin tf("tt");system("pause");void Display_a_record(Stude nt room,i nt n) printf("ttn");prin tf("tt房间号 学号 姓名n");printf("ttn");prin tf("tt%-10s%-10s%-10sn",room n.roo mn um,room n. nu m,roomn .name);

26、 /*输出所查找的一条记录*/prin tf("n");prin tf("tt");void Sort_by_ name(Stude nt room,i nt n)int i,j;char t10;for(i=0;i< n-1;i+)for(j=0;j< n-1-i;j+)if(strcmp(roomj. name,roomj+1. name)>0)实用文档strcpy(t,roomj+1. name);strcpy(roomj+1. name,roomj. name); strcpy(roomj. name,t);strcpy(t,r

27、oomj+1. nu m);strcpy(roomj+1. nu m,roomj. nu m); strcpy(roomj. nu m,t);strcpy(t,roomj+1.roo mnu m);strcpy(roomj+1.ro omnum, roomj.ro omnu m); strcpy(roomj.roo mnu m,t);void Sort_by_ nu m(Stude nt room,i nt n)int i,j;char t10;for(i=0;i< n-1;i+)for(j=0;j< n-1-i;j+)if(strcmp(roomj. nu m,roomj+1.

28、num)>0) strcpy(t,roomj+1.roo mnu m);strcpy(roomj+1.ro omnum, roomj.ro omnu m); strcpy(roomj.roo mnu m,t);strcpy(t,roomj+1. nu m);strcpy(roomj+1. nu m,roomj. nu m); strcpy(roomj. nu m,t);strcpy(t,roomj+1. name);strcpy(roomj+1. name,roomj. name); strcpy(roomj. name,t);实用文档void Sort_by_r oomnu m(Stu

29、de nt room,i nt n)int i,j;char t10;for(i=0;i< n-1;i+)for(j=0;jv n-1-i;j+)if(strcmp(roomj.roo mnu m,roomj+1.roo mnum )>0) strcpy(t,roomj+1. nu m);strcpy(roomj+1. nu m,roomj. nu m);strcpy(roomj. nu m,t);strcpy(t,roomj+1.roo mnu m);strcpy(roomj+1.roo mnu m,roomj.roo mnu m);strcpy(roomj.roo mnu m,

30、t);strcpy(t,roomj+1. name);strcpy(roomj+1. name,roomj. name); strcpy(roomj. name,t);void Fin d_record_ name(Stude nt room,i nt n)char s10;int i=0;printf("tt输入要查找的姓名:");sca nf("%s",s);while(strcmp(roomi. name,s)!=0 && i<n) i+;if(i=n)printf("tt对不起没有找到该学生!n");实用

31、文档elseDisplay_a_record(room1,i);void Fin d_record_ro mmnu m(Stude nt room,i nt n)char s20;int i=0;printf("tt输入要查找的房间号:");sca nf("%s",s);while(strcmp(roomi.roo mnu m,s)!=0 && i<n) i+;if(i=n)printf("tt对不起没有找到该学生!n");elseDisplay_a_record(room1,i);void Fin d_reco

32、rd_ nu m(Stude nt room,i nt n)char s20;int i=0;printf("tt输入要查找的学号:");sca nf("%s",s);while(strcmp(roomi. nu m,s)!=0 && i<n) i+;if(i=n)printf("tt对不起没有找到该学生!n");else实用文档Display_a_record(room1,i);int In sert_a_record(Stude nt room,i nt n)printf("tt学生姓名:"

33、;);sca nf("tt%s",&room n. name);printf("tt学生学号:");sca nf("tt%s",&room n. num);printf("tt学生房间号:");sca nf("tt%s",&room n.roo mnu m);n+;Sort_by_ nu m(room, n);printf("tt插入记录成功!n");return( n);int AddfromText(Student room,int n)int i

34、=0, num;FILE *fp;char file name20; printf("tt输入文件名:");sca nf("tt%s", &filen ame);if(fp=fope n(file name,"rb")=NULL)printf("tt 无法打开该文件n");prin tf("tt");system("pause");return( n);fsca nf(fp,"%d",&n um);while(i <num) fsca

35、 nf(fp,"%s%s%s%s",room n+i.roo mnu m,room n+i. nu m,room n+i. n ame);i+;n+=num;fclose(fp);printf("tt读入成功!n");prin tf("tt");system("pause");return( n);void WritetoText(Stude nt room,i nt n)int i=0;FILE *fp;char file name100;printf("tt循环写入数据n");printf(

36、"tt输入文件名:");sca nf("tt%s", &filen ame);if(fp=fope n(file name,"w")=NULL)printf("tt无法打开该文件n");system("pause");return;fprin tf(fp,"%dn", n);while(i <n)fprin tf(fp,"%-10s%-10s%-10s%-10sn",roomi.room num,roomi. nu m,r oomi. name);i+;fclose(fp);printf("写入成功!n");int main()int n=0;for(;)switch(me nu()case 1:printf("tt输入记录 n");n=ln put(room1, n);break;case 2:printf("tt显示记录 n");Display_all_record(room1, n);break;case 3:printf("tt按姓名排序并显示n");Sort_by_ name(room1, n);printf("

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论