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

下载本文档

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

文档简介

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

2、har c。printf(tt 请选择您要运行的选项按(0-9):)。printf(tt 学生宿舍管理系统n)。prin tf(tt1.输入记录n)。prin tf(tt2.显示记录 n)。prin tf(tt3.按房间号排序并显示n)。 prin tf(tt4.按学号排序并显示n)。prin tf(tt5.插入一条记录按学号排序并显示n。prin tf(tt6.按姓名查找删除一条记录n)。prin tf(tt7 查找并显示一个记录n)。 prin tf(tt8.从文件中读入数据n)。prin tf(tt9.循环写入数据n)。prin tf(tt0.结束程序n)。/*运行前清屏*/printf

3、(tt n)。/*菜单选择*/char roomnum4。char bednum2。char num10。char name20。Student。Student /*房间号*/*床位号*/*学号*/*姓名*/*结构体数组变量*/函数*/dosystem(cls)。int i=0。while(sign!=n&sign!=N)/* 判断 */c=getchar()。while(c9)。return(c-O)。int In put(Stude nt room,i nt/*读入选择*/*返回选择*/*输入若干条记录*/char sign,x10。/*x10为清除多余的

4、数据所用*/printf(tt 房间号:)。/*交互输入*/sea nf(tt%s &,room n+i.roo mnum)。printf(tt 床位号:)。scan f(tt%s, &room n+i.bed num)。printf(tt 学号:)。scan f(tt%s,&room n+i. num)。printf(tt 姓名:)。scan f(tt%s, &room n+i. name)。gets(x)。/*清除多余的输入*/printf(tt 是否继续输入?(Y/N)。scanf(tt%c,&sign)。/* 输入判断 */i+。return(n

5、+i)。void Display(Student room,int n)/*显示所有记录 */ int i。printf(tt- n)。/* 格式头 */printf(tt 房间号 床位号 学号 姓名n)。printf(tt- n)。for(i=1。i1 &i%10=0)/*每十个暂停 */printf(tt- n)。/* 格式 */printf(tt)。system(pause)。printf(tt- n)。printf(tt)。system(pause)。void Sort_by_num(Student room,int n) /* 按学号排序 */ int i,j,*p,*q,s

6、。char t10。for(i=0oin-1。i+)/* 冒泡法排序 */for(j=0oj0)strcpy(t,roomj+1.bednum)。strcpy(roomj+1.bed num, roomj.bed num)。strcpy(roomj.bednum,t)。strcpy(t,roomj+1.num)。strcpy(roomj+1. nu m,roomj. num)。strcpy(roomj.num,t)。strcpy(t,roomj+1.name)。strcpy(roomj+1. name,roomj. name)。strcpy(,t)。void Sort_by

7、_roomnum(Student room,int n) /* 按房间号排序 */int i,j,*p,*q,s。char t10。for(i=0oin-1。i+)/* 冒泡法排序 */for(j=0。j0)strcpy(t,roomj+1.roo mnum)。strcpy(roomj+1.roo mnu m,roomj.roo mnum)。strcpy(roomj.roomnum,t)。strcpy(t,roomj+1.bednum)。strcpy(roomj+1.bed nu m,roomj.bed num)。strcpy(roomj.bednum,t)。strcpy(t,roomj+1.

8、num)。strcpy(roomj+1. nu m,roomj. num)。strcpy(roomj.num,t)。strcpy(t,roomj+1.name)。strcpy(roomj+1. name,roomj. name)。 strcpy(,t)。int Insert_a_record(Student room,int n)/* 插入一条记录 */char x100。/*清除多余输入所用*/printf(tt 学生房间号:)。/*交互式输入*/sca nf(tt%s,&room n.roo mnum)。printf(tt 学生床位号:)。scan f(tt%s

9、,&room n.bed num)。printf(tt 学生学号:)。scan f(tt%s,&room n.n um)。printf(tt 学生姓名:)。scan f(tt%s,&room n. name)。gets(x)。n+。return(n)。char i=0,j。printf(tt 输入他(她)的姓名:)。scanf(%s,s)。while(strcmp(,s)!=O&in) i+。/* 查找判断 */if(i=n)printf(tt 对不起没找到该学生!n)。/*返回失败信息*/return(n)。Sort_by_

10、num(room,n)。/*调用排序函数*/printf(tt 插入记录成功!n)。/*返回成功信息*/int Delete_a_record(Stude nt room,i ntn)/*按姓名查找,删除一条记录 */*交互式问寻*/for(j=i。jn-1。j+)/* 删除操作 */strcpy(roomj.roo mnu m,roomj+1.roo mnum)。strcpy(roomj.bed nu m,roomj+1.bed num)。strcpy(roomj. nu m,roomj+1. num)。strcpy(,roomj+1.name)。printf(tt)。s

11、ystem(pause)。return(n)。fscanf(fp,%d,&num)。/*读入总记录量*/printf(tt 删除记录成功!n”)。/*返回成功信息*/return(n-1)。void Query_a_record(Stude nt room,i ntn)/*查找并显示一个记录*/char i=0。printf (tt 输入他(她)的姓名:) 。/*交互式输入*/scanf(tt%s,&s)。while(strcmp(roomi. name,s)!=0&in) i+/*查找判断*/if(i=n)printf(tt对不起没找到/*输入失败信息

12、*/return。printf(tt他(她)的房间号:%sn,roomi.roomnum)。/*输出该学生信息*/printf(tt他(她)的床位号:%sn,roomi.bednum)。printf(tt他(她)的学号:%sn,roomi.num)。int AddfromText(Stude nt room,i ntn)/*从文件中读入数据*/int i=0,num。FILE*fp。/*定义文件指针*/char filename20。/*定义文件名*/printf(tt 输入文件名:)。scanf(tt%s,&filename)。/*输入文件名*/if(fp=fope n(filena

13、me,rb)=NULL)/* 打开文件*/printf(tt 无法打开该文件n)。/*打开失败信息*/while(inum)/*循环读入数据*/fsca nf(fp,%s%s%s%s,room n+i.roo mnu m,room n+i.bed nu m,room n+i. nu m,room n+i. name)。i+。n+=num。fclose(fp)o/* 关闭文件 */printf(tt 读入成功!n”)。printf(tt)osystem(pause)。return(n)。void WritetoText(Stude nt room,i nt n)/* 将所有记录写入文件 */in

14、t i=0oFILE *fpo/*定义文件指针*/char filename100。/* 定义文件名 */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:f*5按项的示据并显按删个数序并鞏,一入据找乔窮一! 万一名韋爲*运一育天姓找文环娶要遥讀查住按照提示选择“1”进

15、行记录的输入(输入一个数据后提示是否继续输入)如图:2”进行显示后提示按任意键继续,按任意键后选择“3”进行记录的按床位号排序并显示,女口图:121123241xiaomingrxiaozhan$ xiaolixiantjang10131-1203417请按任意犍继续-房间号 床位号 学号 姓名層|CDocuments and EettingATniinistator卓面苗權丈:件夹学主宿舍营理茎统心E示名韋量运12345678900知项选示显養据并显按删行教序并录,一入据書|P排畲显申入T行並并录排条号一录.1農呼人堆找丈坏至裳您馬问号 床位号 学号 姓名显示后提示按任意键继续,按任意键后选

16、择“4”进行记录的按学号排序并显示,如图: II X理S舍宿生学录显中入T羣*记看冇一运序x-iA姓找文环至聶.喬成;并录*33):排条*-?示号一录=i(9录Hi七项条;. 选一:M生-的-H CrDocurnents and SettingsAdministratoiiBii初协任无丄0*-选找人的煽纲按示显一忑据并显按删卩数序并器*1入据* 7:-?显示后提示按任意键继续,按任意键后选择“8”按提示步骤查找原有记录文件如果找不 到则显示如图:ffi11cDocuments and血也口护駄16沛朮貳011面新建文件耒。牝旳学主宿舍管理至齡砂电*-5J2:奈排条-?理示号一录i育显_|据按

17、宵畫技删个数如项-宿序并_入揖天选-注排序记tt-s*.的ffi学录IU显煲殳誓e8責记记一名茸暑*运入文继入一霄学入姓找文环 M*妥豊该犍天输显查?*您中件开意帀文打任12345 & 7C09 *选文入如果有该文件则显示如图:国CiDocumerits and SettinasAdministrato- 口f.SL才吕rri Ju IVR心養按删个数序并录,一入据李录萬P 排審豆計入$震US養记一名#:eww运入:*z- i=t背输显查您中骂意天.罪文成任1234-567890*选文人入按的据he将原有文件读入程序。显示后提示按任意键继续,按任意键后选择“9”按提示步骤循环写入记录,

18、如图:示显并录排条号一录QI CDocuments and $ettingsAdministrator.eb舍管理系统.exeCXM&OOCKOfxooMwcxxcoxooxoilK一邓並一盂+据并显枝删个数序并議-一入据找示彖TUS显中入T行记圖冇83*gl:SI霄学入姓找文环妥数数名J豐查您入入畫意.择与写文成任12345G7S9 0*选坏环人入按显示后提示按任意键继续,按任意键后选择“0”结束程序,如图:QIDocuments and EettingATrninistator桌面新建文件夬学主宿舍昔理薫统启XE_ n x学生宿舍管理系统 $1-他世垂1 2显下记录81花并曇示11 4-按学有排序并盛疋首| 5,蓮人_曇己录按半号港历并显示 | 氣按姓名吉找*删除一条狂录1 7查找并显示一林己录8.灭文侔中険入数据I 9.循环写入数16S 0-结東程序丄*盘*余*黃女*荽请选捷您要运行的选项按-乎 =0堂尊皐虽鏈萼鎏好运,毎见!* 14. 设计体会通过这次课程设计使我了解到我有很多的不足,在程序调试的时候常常会因为几个错 误而弄得心烦,这说明我对知识的掌握还不够牢,在程序设计的过程中也暴露出了我的诸 多弊端,借这次课程设计的机会我会认真的加以改正,为以后的学习打下坚实的基础。5. 参考文献1 Herbert Schi

温馨提示

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

评论

0/150

提交评论