C语言课程设计:学生宿舍管理系统_第1页
C语言课程设计:学生宿舍管理系统_第2页
C语言课程设计:学生宿舍管理系统_第3页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、学生宿舍管理系统1. 课程设计的目的进一步掌握和利用C语言进行程设计的能力,理解和运用结构化程设计的思想和方法,熟练掌握条件语句、循环、数组、函数操作,初步掌握开发一个小型实用系统的基本方法,学会高度一个较长程序的基本方法和利用流程图或N-S图表示算法,将本课程所学的知识合理地运用丁实践当中。了解一些书上没有的函数及使用方法。设计方案论证2.1设计思路利用数组对宿舍的记录进行循环输入输出,利用冒泡法记录进行排序,利用循环查找数组中某个数据,对其进行显示,删除,读入和写入文档等操作。2.2流程图2.3具体程序#include<stdio.h>/*引用库函数*/#include<

2、stdlib.h>#include<ctype.h>#include<string.h>typedefstruct/*定义结构体数组*/(charroomnum4;/*房间号*/charbednum2;/*床位号*/charnum10;/*学号*/charname20;/*姓名*/Student;Studentroom11000;/*结构体数组变量*/intmenu_select()/*菜单函数*/(charc;do(system("cls");/*运行前清屏*/printf("tt学生宿舍管理系统n");/*菜单选择*/p

3、rintf("tt1.$记录以n”);printf("tt2.记录以n”);printf("tt3.间号排序并显示以n”);printf("tt4.号排序并显示以n”);printf("tt5.一条记录按学号排序并显示以n”);printf("tt6.奶名查找,删除一条记录以n”);printf("tt7查找并显示一个记录诵”);printf("tt8.件中读入数据以n”);printf("tt9.写入数据以n”);printf("tt0W程序以n”);printf("ttn"

4、;);printf("tt请选择您要运行的选项按(0-9):”);c=getchar();/*读入选择*/while(c<'0'|c>'9');return(c-'O');/*返回选择*/intInput(Studentroom,intn)/*输入若干条记录*/(inti=0;charsign,x10;/*x10为清除多余的数据所用*/while(sign!='n'&&sign!='N')/*判断*/(printf("tt房间号:");/*交互输入*/sca

5、nf("tt%s"&,roomn+i.roomnum);printf("tt床位号:");scanf("tt%s”,&roomn+i.bednum);printf("tt学号:");scanf("tt%s”,&roomn+i.num);printf("tt姓名:");scanf("tt%s”,&roomn+);gets(x);/*清除多余的输入*/printf("tt是否继续输入?(Y/N)”);scanf("tt%c&q

6、uot;,&sign);/*输入判断*/i+;return(n+i);voidDisplay(Studentroom,intn)/*显示所有记录*/(inti;printf("ttn");/*格式头*/printf(-tt房间号床位号学号姓名n");printf("ttn");for(i=1;i<n+1;i+)/*循环输入*/(printf("tt%-10s%-10s%-10s%-20sn”,roomi-1.roomnum,roomi-1.bednum,roomi-1.num,);if(i>

7、1&&i%10=0)/*每十个暂停*/(printf("ttn");/*格式*/printf("tt");system("pause");printf("ttn");printf("tt");system("pause");/*按学号排序*/voidSortbynum(Studentroom,intn)(inti,j,*p,*q,s;chart10;for(i=0;i<n-1;i+)/*冒泡法排序*/for(j=0;j<n-1-i;j+)if(st

8、rcmp(roomj.num,roomj+1.num)>0)(strcpy(t,roomj+1.bednum);strcpy(roomj+1.bednum,roomj.bednum);strcpy(roomj.bednum,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);voidSort_by_roomnum(Studentroom,in

9、tn)/*按房间号排序*/(inti,j,*p,*q,s;chart10;for(i=0;i<n-1;i+)/*冒泡法排序*/for(j=0;j<n-1-i;j+)if(strcmp(roomj.roomnum,roomj+1.roomnum)>0)(strcpy(t,roomj+1.roomnum);strcpy(roomj+1.roomnum,roomj.roomnum);strcpy(roomj.roomnum,t);strcpy(t,roomj+1.bednum);strcpy(roomj+1.bednum,roomj.bednum);strcpy(roomj.bed

10、num,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);/*插入一条记录*/intInsert_a_record(Studentroom,intn)(charx100;/*清除多余输入所用*/printf("tt学生房间号:");/*交互式输入*/scanf("tt%s”,&roomn.roomnum);p

11、rintf("tt学生床位号:");scanf("tt%s”,&roomn.bednum);printf("tt学生学号:");scanf("tt%s”,&roomn.num);printf("tt学生姓名:");scanf("tt%s”,&);gets(x);n+;Sort_by_num(room,n);/*调用排序函数*/printf("tt插入记录成功!n");/*返回成功信息*/return(n);intDelete_a_record

12、(Studentroom,intn)/*按姓名查找,删除一条记录*/chars20;inti=0,j;printf("tt输入他(她)的姓名:");/*交互式问寻*/scanf("%s",s);while(strcmp(,s)!=0&&i<n)i+;/*查找判断*/if(i=n)printf("tt对不起没找到该学生!n");/*返回失败信息*/return(n);for(j=i;j<n-1;j+)/*删除操作*/strcpy(roomj.roomnum,roomj+1.roomnum)

13、;strcpy(roomj.bednum,roomj+1.bednum);strcpy(roomj.num,roomj+1.num);strcpy(,roomj+1.name);printf("tt删除记录成功!n");/*返回成功信息*/return(n-1);voidQuery_a_record(Studentroom,intn)(/*查找并显示一个记录*/chars20;inti=0;printf("tt输入他(她)的姓名:");/*交互式输入*/scanf("tt%s”,&s);while(strcmp(ro

14、,s)!=0&&i<n)i+;/*查找判断*/if(i=n)printf("tt对不起没找到该学生!n");/*输入失败信息*/return;printf("tt他(她)的房间号:%sn”,roomi.roomnum);/*输出该学生信息*/printf("tt他(她)的床位号:%sn",roomi.bednum);printf("tt他(她)的学号:%sn",roomi.num);intAddfromText(Studentroom,intn)/*从文件中读入数据*/inti=0,nu

15、m;FILE*fp;/*定义文件指针*/charfilename20;/*定义文件名*/printf("tt输入文件名:");scanf("tt%s",&filename);/*输入文件名*/if(fp=fopen(filename,"rb")=NULL)/*打开文件*/printf("tt无法打开该文件n");/*打开失败信息*/printf("tt");system("pause");return(n);/*读入总记录量*/fscanf(fp,"%d&q

16、uot;,&num);while(i<num)/*循环读入数据*/fscanf(fp,"%s%s%s%s”,roomn+i.roomnum,roomn+i.bednum,roomn+i.num,roomn+);i+;n+=num;fclose(fp);/*关闭文件*/printf("tt读入成功!n");printf("tt");system("pause");return(n);voidWritetoText(Studentroom,intn)/*将所有记录写入文件*/inti=0;FILE*fp

17、;/*定义文件指针*/charfilename100;/*定义文件名*/printf(-tt循环写入数据n");/*输入文件名*/printf("tt输入文件名:");scanf("tt%s”,&filename);if(fp=fopen(filename,"w")=NULL)/*打开文件*/printf("tt无法打开该文件n");system("pause");return;fprintf(fp,"%dn",n);/*循环写入数据*/while(i<n)fp

18、rintf(fp,"%-10s%-10s%-10s%-10sn",roomi.roomnum,roomi.bednum,roomi.num,);i+;fclose(fp);/*关闭文件*/printf(-写入成功!n");/*返回成功信息*/voidmain()/*主函数*/intn=0;for(;)switch(menu_select()/*选择判断*/case1:/*输入若干条记录*/printf("tt输入记录n");n=Input(room1,n);break;case2:printf("tt显示记录n&q

19、uot;);Display(room1,n);break;case3:printf("tt按房间号排序并显示n");Sort_by_roomnum(room1,n);printf("tt排序成功!n");Display(room1,n);printf("tt");break;case4:printf("tt按学号排序并显示n");Sort_by_num(room1,n);printf("ttt排序成功!n");Display(room1,n);printf("tt");bre

20、ak;case5:printf("tt插入一条记录按学号排序并显示n=Insert_a_record(room1,n);Display(room1,n);printf("tt");break;case6:printf("tt按姓名查找,删除一条记录n=Delete_a_record(room1,n);printf("tt");system("pause");break;case7:printf("tt查找并显示一个记录n");Query_a_record(room1,n);printf(&quo

21、t;tt");system("pause");break;/*显示所有记录*/*按房间号排序*/*按学号排序*/n");/*插入一条记录*/n");/*按姓名查找,删除一条记录*/*查找并显示一个记录*/case8:printf("tt从文件中读入数据n");AddfromText(room1,n);/*从文件中读入数据*/printf("tt");system("pause");break;case9:printf("tt循环写入数据n");WritetoText

22、(room1,n);/*循环写入数据*/printf("tt");system("pause");break;case0:printf(-tt谢谢使用,祝您好运,再见!n");/*结束程序*/printf("tt");system("pause");exit(0);设计结果与分析将程序进行编译链接后生成“学生管理系统.exe”运行该文件如图:-回翼四ICADocumeritsandSettingsAdministratoebu示显并录排条号一录示据并显技删个数序并录_入据示赛一!®习一名*葛运再

23、玄姓找文环手要>:fW技如项如选的*输显查您5择按照提示选择“1”进行记录的输入(输入一个数据后提示是否继续输入)如图:房间号床位号学号姓名£31CDocumentsandSetting5Administator桌面新建文件美学生律舍言理盘施exe10113142M32417G请按任意键继续-21xiaQinin12xiozhang32xiaoli41xiAntjatng显示后提示按任意键继续,按任意键后选择“3”进行记录的按床位号排序并显示,如图国CDocumentsand,etting£AdEnistMor桌面新建女件制学生宿舍管理奎绽做己示名希暮运1234567

24、890示显一尘据并显按删个数序并录,一入据雪|P排奎豆中入*行0捻心项选的显并录孱排条号一录.1霜兮入娃找文环罢戛您录柘选示-回日二琏并录*33):排条-?示号一家<©显一据技并显核删卜数项序并录,一入据选示挤.W-2数的昱苦宿生豆中入学第记首I?一名莓董运序X-入姓找文环丰集,.膏成-1IIH;II-123456789®.选房间号床位号学号姓名xiaoniingrxiao11xiaohangxianuang10112032314241?5请技任意健继续,显示后提示按任意键继续,按任意键后选择“4”进行记录的按学号排序并显示,如图:CDocumentsandSetti

25、ngsAdmini宿舍菅理至统,exe显一尘据并显技删卜数序并«,一入据找示萎学家喜排奎S中入学行显成记亏一名运并序入雷芋金找文环象旻序排*曹查您-.1123456789O选示显并录排条号一录kr的示功9<0技项选>:*4房间号床位万学号姓名10122031314241?5请技任意键继续.12213241xiaozhangxiaoningxiaollxianuang显示后提示按任意键继续,按任意键后选择“5”按提示步骤插入一条记录并显示,如图:19CA,DocumentsandSettingsAdrninistratorM宿舍骨理茎统.exe示并#按删个数序并录二入据找示

26、婆号排番豆中入JB1一名近家:5W学入姓;5查您条间位号名录>一房善姓记施A-生生生注入基艺至亍插ia功:x成示显并录排条号一录按序项排选号的学>:示9显仲并房间号床位号学号姓名1012033144175131221324152xiaozhangxIaofningxiaoIlxianuangxiaafuan显示后提示按任意键继续,按任意键后选择“6”按提示步骤删除一条记录,如果没找到该学生显示如图:国CADocumentsandgettings_Admin2日0桌面新建女性夫字生宿舍管理拳场.exe理W舍宿生zJEl2S并录8排条号一录并显搦娜卜数序并录,一入据芋录苦勺排善S中入旻

27、行删姓误续记记间!r一名葺冒运,的染入一备学入姓找文环壬输显查着结您思没意择名他起任1234567890选姓不;&>1234567890i也录a心项条F.选一阪注的喙学-如果有该学生显示如图:国1CDocumentsandSettingsAdministrata生谨舍昔璋至统.exeAs系理管含有并录&房>:排条T*示号一录录"显一据寤职-并显按咿数项条ia-序并录,一入据选一小-占的髯学录USsx2SH?续记一名希写程*运,的功继A-爵学入姓找文环早WKg成槌择名他记任123456789©选姓入-yCiDocurrentsaridSetting

28、sAdrninistrato宿舍管理亲编旧xe于%紊rm-菅宿生学录豆中入学行个姓苫p:2:续记:®|p一名莓董运一的间位n亲夫入_雀学入姓找女环建要示也房床学键无置S您显硕的的的意1F择蓊*>协也任123456789国*-遂找入翌知的按并录孱排条号一录示显一尘据并显按删土数序并录,一入据_VSA»«*7>:T(0技*项选录:x03的记名:2=1显示后提示按任意键继续,按任意键后选择“8”按提示步骤查找原有记录文件如果找不到则显示如图:ffi11cDocumentsand钮胃昭升丽11却5皿211面制建知昧。或如学生宿舍管理毒琉田炽*_|口|x|亏无1F示#显并录*8蓉与>:奉排条-?理示号一家嘉誓显_|<据*技-皆直技删个数项-宿序并录_入据选-生排序记找不该数.的据学录IU豆攵学彖e8*记记间三一名莓宣运入f文继入一费学入姓找文环要尝该键*输显查®?您中件开意无履文打任会12345GPC09E1选文入如果有该文件则显示如图:E"C:DocumentsandSettingsAdmii

温馨提示

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

评论

0/150

提交评论