版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学号2014-2015学年 第一学期数据结构课程设计报告题目:宿舍管理查询系统的实现专业:班级:学号:指导教师:成绩:计算机与信息工程系2014年10月25 日目录1 设计任务 错误! 未定义书签2 总体设计 33 系统流程图 34 详细设计及测试 55 心得体会 13致 13参考文献 14附录:源代码 151 设计任务题目:宿舍管理查询软件 任务:为宿舍管理人员编写一个宿舍管理查询软件 , 程序设计要求:(1)建立数据文件 ,数据文件按关键字(、学号、房号)进行排序 ( 冒泡、 选择、插入排序等任选一种 )(2)实现如下查询功能 : 按查询 按学号查询 按房号查询(3)打印任意查询结果(可以
2、连续操作) 针对题目所要求的功能不太多,我特意添加了插入数据、读入文件数据以及 将数据写入文件三个额外功能。2总体设计 根据系统要求,即本系统具有信息的录入,显示,排序显示、查找,插入、 从文件中读入数据、 循环写入数据、 结束程序等功能, 先设计出详细的系统流程 图,然后将源代码输入程序,进行编译调试即可。程序总体分 12 个项目:输入记录、显示记录、按排序并显示、按房间号排 序并显示 、按学号排序并显示 、按查找并显示 、按房间号查找并显示 、按学 号查找并显示、 插入一条记录按学号排序并显示、 从文件中读入数据、 循环写入 数据以及结束程序。3 系统流程图系统流程图下页图 1 所示开始输
3、岀界面选择操作否选择1是否否选择2输入记录显示记录选择3否选择4否是-I按姓名排序并显示按房间号排序并显示选择5否按学号排序并显示选择6否选择7否选择8是选择9否选择10数据是插入一条记录显示选择11循环写入数据否是选择0否是退岀系统结束 图1按姓名查找并显示按房间号查找并显示按学号查找并显示从文件中读入4详细设计及测试入,根据流程图,将程序源代码输入到编译环境中,按照提示选择进行记录的输 输入一个数据后提示是否继续输入,直到结束程序为止。将程序编译生成“学生宿舍管理系统.exe ”。运行该文件如图2所示。I ' F :mykecherigsh ejDebu gnny*cec hen
4、gshej i-eice'理舍宿生一Br示示回箏牆 昂诉显显并显鬍 记记為号為号-件写程运 入示姓展于姓虜天文环辛要 输您 择*0<0-选*的*判断*/输入判断*/图2输出界面图输入记录采用循环输入while(sig n!=' n' && sig n!='N')/*prin tf("tt:");sca nf("tt%s", & room n+i. name);prin tf("tt学号:");sca nf("tt%s", & room n
5、+i .n um);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所示:图3输入记录显示图二"F;mykec he ngsh q iDe bu m、kec hen g she e> e'理舍 宿庆1=i- ?n 八7人31细输22输虽:显 幷 *:1 淸 咲1>
6、 书 古F1-_n -下号 & 示虽示示艮一窜潺 知撚 显ttas开显按数 项 幷序并菠开录人据炊选 排tiron一号沓一書入序*17 记记鳥号名闾号一件写辛运 八#迥娃蓉入yKR要头*!#唱埒弩泵吹吃養呜警巫 "123456789 0 茅胃團HSDP间否拿璽口连续输入多组数据后,按“ n”结束输入,提示按任意键继续,按任意键后 选择“2”进行记录的显示如图4所示。F:my Is 亡匚 hengheji'yC e bu grny <ec herighe; i.exe書入殳行 -件写程运 天文环枣要您录 n择记 ¥10llp+:选示 nsnosos 丄请
7、显入据一读数竽据房间号 学号 姓名117 201311郭庆1222B1342蜚晓飞118 2B1317李强请按任意键继绞.按排序采用冒泡排序法int i,j;char t10;for(i=0;i<n-1;i+)/*冒泡法排序 */for(j=0;jv 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.
8、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);显示后提示按任意键继续,选择“ 3”进行按排序并显示,如图5所示XT学据 按数费据 记读数 薔人了行显 -件写程运# 入文环枣要序? 插从亞工你.善 91011P* 选姓序示# 一序 VLrr* *:3*7*按 女项*附示11?2013111182013171222S1342请按任意健继续图5按排序显示图按房间号排序采用冒泡
9、排序法篥晓飞冒泡法排序*/for(i=0;i< n-1;i+)/*for(j=0;jv n-1-i;j+)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. n
10、ame);strcpy(roomj+1. name,roomj. name); strcpy(roomj. name,t);显示后提示按任意键继续,选择“ 4”进行按房间号排序并显示,如图6所示。示号 显輩据 井显按数 烏幵黃据 一找记土头蚊 号行幵 间号一件写程运序 履克文环爭峯辛;91011序nsno*" 按 项*选示的显117201311lie201317122201242请按任意键绽续.塹庆 隸飞图6按房间号排序显示图'F;myl(;echeng5hejiDcbugmykechenghqi .exe同样学号排序也是用的冒泡法排序。for(i=0;i<n-1;i+
11、)/*冒泡法排序 */for(j=0;jv n-1-i;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.
12、 name);strcpy(roomj. name,t);显示后提示按任意键继续,选择“ 5”进行按学号排序并显示,如图7所示。学录BOSW- 行显成记记名间号名回!?-件写辛运幵序h八示姓层学姓居乎人文环寻要第去*择号缶123 4567 S 900 选学*ft-1 子系二 菅 舍 宿 生示 - 示显示示显一盃于据 显并显显查找记读数:51>-1<0知按项选t的示功房间号学号姓名11?20131111820131?1222Q1342藤飞功能6-8为查找功能按查找并显示功能printf("tt输入要查找的:");sea nf("%s",s);w
13、hile(strcmp(roomi. name,s)!=O && i<n) i+;/*查找判断*/if(i=n)printf("tt对不起没有找到该学生!n");/*返回失败信息*/elseDisplay_a_record(room1,i);/* 调用函数 */显示后提示按任意键继续,选择“ 6”按提示步骤按学号查找一条记录并显 示,如图8所示。' F;myke 匚 hw 门 gwh 旨fD EbuyVnykErh 亡门gshq i-Exe输显你害查 择名要* 示 显 并 *:6 序排 示场示示场%据 卄撚 显并显显并S按数 七顶旷* 选=5
14、*的名录录排号姓记记名间号名间号一件写程*运 的A-.9r.房间号学号姓名11?201311郭庆请按任意槌继缠 pit图8按查找并显示图按房间号查找和按学号查找的方法小异。分别输入“7”、“ 8”显示截图如下页'F:myke<lhenqshejiDcbuqmyke匚h亡ng%卜i可i exe.! 11re i 生示 * * *=7*!>*按*项 *选 *的学杲诱011一号畫番入遲; bird為号霑间号件写莘运萌 決入示姓匿莊蛊天文环妥S查找 补择间妾 12345C7«9»*囲聞JA 瓦戈总良.0*请T.l员些皀竺色_1222«1 42 张晓飞.
15、请按任意犍继绫-.-_图9按房间号查找并显示图'Fchengshej iDe bu gnnykec h eng 5heji.exeF一环 显 井 th遅 示 示号 7 官 示显示示显一箏据*按31 苦 显-开显显开显按数*项附 佰 并序并養幵昊据*选:2 王 Ow查栈込歐的号 字录查需入$行学 *记记名间号名间号-件写程运 的* A- is *输显 S8ffswss_* *择号要 W12 3 4567 89010Tt-mru *S.SBU.S.O.U wos.u.s.o.-.oltHu.x<3 4567 89010房间亍学亍舉11820131? 李强请按任意犍继缰-I功能9为插入
16、一条记录按学号排序并显示。int Insert_a_record(Studentroom,int n)学号排序*/prin tf("tt学生:");/*插入一条记录并按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
17、(room, n);printf("tt插入记录成功!n");/*调用排序函数*/*返回成功信息*/return( n);显示后提示按任意键继续,选择“ 9”进行插入数据,如下页图11所示'Fimylce cheng sh ej iDe bu g Vmy Ice ch eng s h ej i .exe'示示显示示显耘于据 显并显显并显按数 幫幵黃据记读数名间号名间号一件写程运录防01:1功姓匮于姓置天文环壬要记尊:2口孫择-姓番记> 费生生责5 童 34&& 789Q101 1*:?1>示*7 显*2 幵拎序顼排选号1:- 1
18、? 庆; 取P -吕.葡庆庆强晓 言壬11孑117201311117 201311118 201317122201342请按任意键继绫5 心得体会这次课程设计我做的还不是很完善, 因为功能不是很多, 如果以后有机会完 善的话,应该对管理员和用户登录时做进一步完善。 学生的信息还不够完整, 如 学生的宿舍长,系别,一些费用以及学生的成绩等待相关详细信息。如果使次系统再详细些, 需添加更多的管理员以及管理员权限, 还有学生的 更多信息,如果有必要的话,添加一些有关教师的信息,以及教师登录的界面。在这次课程设计的过程中,我们体会到要想开发一个系统软件 , 不仅需要相 当的专业技术知识, 还要有严谨缜
19、密的思维能力。 只有思想上清晰了, 编程才有 意义,否则就是白费力气。 同时还要善于捕获细小的方面, 因为那往往是这个程 序的致命因素。这次课程设计培养了我的细心和耐性, 更树立了一种科学的态度。致 在这次数据结构课程设计中, 我的老师和同学给了我及大的帮助。 特别是我的指 导老师王源老师,还有我的 C 语言任课老师广宏老师。在此,我对他们表示感 ! 感他们在我面对困难时给了我帮助和支持。也感那些给我帮助的所有同 学!参考文献1 谭浩强著.C程序设计(第二版):清华大学,19992 谭浩强,基温,唐永炎编著 .C 语言程序设计 . :高等教育, 19923 谭浩强编著.QBASIC语言教程.:
20、电子工业,19974 谭浩强 .C 程序设计 M.3 版. :清华大学, 2005Herbert Schildt著.戴健鹏译.C语言大全(第二版).:电子工业出版社, 1994美SCHILDTH.C语言大全M.4 版.王子恢等译.:电子工业,2001附录:源代码#include<stdio.h>#include<stdlib.h>#include<ctype.h>#include<string.h>typedef struct char roomnum4;char num10;char name20;Student;Student room110
21、00;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§ 8.按
22、学号查找并显示§n");t§ 9.插入一条记录按学号排序并显示§n");t §10. 从文件中读入数据§n");t §11. 循环写入数据§n");n");n");t § 0. 结束程序t printf("tt 请选择您要运行的选项按 (0-11):"); c=getchar();while(c<'0'|c>'11');return(c-'0');int Input(Stude
23、nt room,int n)int i=0;char sign;while(sign!='n' && sign!='N')printf("tt:");scanf("tt%s", &roomn+);printf("tt 学号 :");scanf("tt%s", &roomn+i.num);printf("tt 房间号 :");scanf("tt%s",&roomn+i.roomnum);prin
24、tf("tt 是否继续输入 ?(Y/N)");scanf("tt%c",&sign);i+;return(n+i);void Display_all_record(Student room,int n)int i;printf("ttn");printf("tt 房间号 学号 n");printf("ttn");for(i=1;i<n+1;i+)printf("tt%-10s%-10s%-10sn",roomi-1.roomnum,roomi-1.num,ro
25、);printf("tt");system("pause");void Display_a_record(Student room,int n)printf("ttn");printf("tt 房间号 学号 n");printf("ttn");printf("tt%-10s%-10s%-10sn",roomn.roomnum,roomn.num,); /* 输出所查找的一条记录 */printf("n");print
26、f("tt");void Sort_by_name(Student room,int n)int i,j;char t10;for(i=0;i<n-1;i+)for(j=0;j<n-1-i;j+)if(strcmp(,roomj+1.name)>0)strcpy(t,roomj+1.name);strcpy(roomj+1.name,); strcpy(,t);strcpy(t,roomj+1.num); strcpy(roomj+1.num,roomj.num); strcpy(roomj.nu
27、m,t); strcpy(t,roomj+1.roomnum); strcpy(roomj+1.roomnum,roomj.roomnum); strcpy(roomj.roomnum,t);void Sort_by_num(Student room,int n)int i,j;char t10;for(i=0;i<n-1;i+)for(j=0;j<n-1-i;j+)if(strcmp(roomj.num,roomj+1.num)>0) strcpy(t,roomj+1.roomnum);strcpy(roomj+1.roomnum,roomj.roomnum); strcp
28、y(roomj.roomnum,t);strcpy(t,roomj+1.num);strcpy(roomj+1.num,roomj.num); strcpy(roomj.num,t); strcpy(t,roomj+1.name);strcpy(roomj+1.name,);strcpy(,t);void Sort_by_roomnum(Student room,int n)int i,j;char t10;for(i=0;i<n-1;i+)for(j=0;j<n-1-i;j+)if(strcmp(roomj.roomnum,roomj+1.
29、roomnum)>0) strcpy(t,roomj+1.num);strcpy(roomj+1.num,roomj.num);strcpy(roomj.num,t); strcpy(t,roomj+1.roomnum); strcpy(roomj+1.roomnum,roomj.roomnum); strcpy(roomj.roomnum,t); strcpy(t,roomj+1.name);strcpy(roomj+1.name,);strcpy(,t);void Find_record_name(Student room,int n)char
30、 s10;int i=0;printf("tt 输入要查找的 :");scanf("%s",s);while(strcmp(,s)!=0 && i<n) i+;if(i=n)printf("tt 对不起没有找到该学生 !n");elseDisplay_a_record(room1,i);void Find_record_rommnum(Student room,int n)char s20;int i=0;printf("tt 输入要查找的房间号 :"); scanf(&q
31、uot;%s",s);while(strcmp(roomi.roomnum,s)!=0 && i<n) i+; if(i=n)printf("tt 对不起没有找到该学生 !n"); elseDisplay_a_record(room1,i);void Find_record_num(Student room,int n)char s20;int i=0;printf("tt 输入要查找的学号 :"); scanf("%s",s);while(strcmp(roomi.num,s)!=0 &&am
32、p; i<n) i+; if(i=n)printf("tt 对不起没有找到该学生 !n"); elseDisplay_a_record(room1,i);int Insert_a_record(Student room,int n) printf("tt学生 :");scanf("tt%s",&); printf("tt学生学号 :");scanf("tt%s",&roomn.num); printf("tt 学生房间号 :"); s
33、canf("tt%s",&roomn.roomnum); n+;Sort_by_num(room,n); printf("tt 插入记录成功 !n"); return(n);int AddfromText(Student room,int n)int i=0,num;FILE *fp;char filename20;printf("tt 输入文件名 :"); scanf("tt%s",&filename); if(fp=fopen(filename,"rb")=NULL) pri
34、ntf("tt 无法打开该文件 n"); printf("tt");system("pause");return(n); fscanf(fp,"%d",&num);while(i<num) fscanf(fp,"%s%s%s%s",roomn+i.roomnum,roomn+i.num,roomn+i. name);i+;n+=num;fclose(fp);printf("tt读入成功 !n");printf("tt");system(&qu
35、ot;pause");return(n);void WritetoText(Student room,int n)int i=0;FILE *fp;char filename100;printf("tt 循环写入数据 n");printf("tt 输入文件名 :");scanf("tt%s",&filename);if(fp=fopen(filename,"w")=NULL)printf("tt 无法打开该文件 n");system("pause");ret
36、urn;fprintf(fp,"%dn",n);while(i<n)fprintf(fp,"%-10s%-10s%-10s%-10sn",roomi.roomnum,roomi.num,r );i+;fclose(fp);printf(" 写入成功 !n");int main()int n=0;for(;)switch(menu()case 1:printf("tt 输入记录 n");n=Input(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("t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自行车行李架市场发展现状调查及供需格局分析预测报告
- 金刚砂纸市场发展预测和趋势分析
- 婴儿心理治疗行业经营分析报告
- 焊丝焊接机市场需求与消费特点分析
- 电火花加工机EM市场发展现状调查及供需格局分析预测报告
- 2024年度房屋租赁合同(含家具电器)
- 2024年度特许经营权转让合同:涉及某大型能源项目
- 2024年度全国高校教材出版合同
- 2024年度物业服务合同:购物中心管理与维护全面合作协议
- 2024年度房产租赁合同提前终止协议
- 采购订单英文模板适合外企 purchase order
- 中医操作流程图.
- 电子内窥镜图像处理器产品技术要求
- 第一章体能训练概述PPT
- 工程移交单表格1页
- 艾滋病初筛实验室SOP文件
- 《建筑力学》全套课件(完整版)
- 优秀记叙文范文《突围》
- 临时用电申请表.doc
- 建筑防腐蚀工程施工及验收规范(完整版)
- 缠师心法荟萃(摘自悟多整理的缠中说禅博客回复)
评论
0/150
提交评论