ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:149.10KB ,
资源ID:25004924      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25004924.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(宿舍管理系统课程设计报告.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

宿舍管理系统课程设计报告.docx

1、宿舍管理系统课程设计报告农业大学理学与信息科学学院高级语言课程设计报告设 计 题 目 宿舍管理系统学生专业班级班学生(学号)设计小组其他同学(学号)指 导 教 师完 成 时 间设 计 地 点2016年12月06日一、课程设计目的和任务高级语言程序设计课程设计是计算机相关专业的主要实践性教学环节。其目的在于加深对高级语言程序设计理论和基本知识的理解,掌握使用C语言进行面向过程设计的基本方法,提高运用面向过程知识解决实际问题的能力。为毕业设计和以后的工程实践打下良好的基础。宿舍管理系统:用C语言为学生宿舍管理人员编写一个宿舍管理软件。设某宿舍有:101,102,201,202四个房间,每个房间可住

2、学生=4人,存储结构:学号、房间号,按房间号有序,实现学生的入住、退房和查询,按给定学号、房号查询。二、分析与设计1.程序的基本功能:(1).实现新生入住登记(2).修改入住学生信息(3)实现退房(4)实现以查询学生信息(5)实现以学号查询学生信息(6)实现以寝室号查询学生信息(7)实现按照寝室号从小到大排序(8)实现按学号从小到大排序(9)实现显示所有学生信息(10)实现退出程序并保存数据2.定义的函数及说明:此程序由11个函数构成。 Add -添加学生信息函数(、学号、宿舍号、班级)Alter-修改学生信息函数Delete-删除学生信息函数Display_All-显示所有学生信息函数Que

3、ry_S_name -查询函数以为关键字进行查询Query_S_number -查询函数以学号为关键字进行查询Query_D_number -查询函数以寝室号为关键字进行查询Save -存储函数Judge_Save -退出程序时判断是否保存函数Menu -菜单Main-主函数3.系统总框图: 三、系统实施1.源程序代码:#include#include#include#includeint dirty=0; /用来判断是否已保存操作/定义一个存储学生相关信息的结构体typedef struct char S_name10; /学生 char S_number10; /学生学号 int D_nu

4、mber; /学生所在寝室的宿舍号 char S_class110; /班级 int Total; /学生总数Student16;int sushehao4=101,102,201,202;int count4=0;/判断学号是否与表中所存学号重复void S_number_Judge(Student S,int t) int i; for(i=1;iTotal)-1;i+) while(strcmp(Si.S_number,St.S_number)=0)/strcmp字符串比较函数,两个字符逐个比较,相等返回值为 printf(学号输入失败,该学号已存在,请重新输入学号!n); printf

5、(请输入学生的学号(10个字符以):); scanf(%s,St.S_number); getchar(); i=1; /添加学生信息函数void Add(Student S) int j; int flag=1; printf(请输入学生(10个字符以):); scanf(%s,S+(S-Total).S_name); getchar();/获取换行符 printf(请输入学生的学号(10个字符以):); scanf(%s,SS-Total.S_number); getchar(); S_number_Judge(S,S-Total);/判断输入的学号是否与表中所存在的学号重复 while(

6、flag) printf(请输入宿舍:); scanf(%d,&SS-Total.D_number); for (j=0;jTotal.D_number=sushehaoj & countjTotal.D_number=sushehaoj&countj=4) printf(该宿舍已满,请重新输入n); break; getchar(); printf(请输入所在班级:); scanf(%s,SS-Total.S_class1); getchar(); printf(添加成功!nn);/修改学生信息函数void Alter(Student S) int i; int flag=0; /用来判断表

7、中是否存在所要修改的学生的信息 char number10; printf(请输入你要修改学生的学号:);scanf(%s,number); getchar(); for(i=1;iTotal;i+) if(strcmp(Si.S_number,number)=0) flag=i; if(!flag) printf(你所要修改的学生信息在表中不存在!n); else printf(新信息如下:n); printf(请输入学生(10个字符以):); scanf(%s,Sflag.S_name); getchar(); printf(请输入学生的学号(10个字符以):); scanf(%s,Sfl

8、ag.S_number); getchar(); S_number_Judge(S,flag); printf(请输入宿舍号:); scanf(%d,&Sflag.D_number); getchar();printf(请输入床铺:); scanf(%s,&SS-Total.S_bednum); getchar(); printf(请输入所在班级:); scanf(%s,&SS-Total.S_class1); getchar(); dirty=1; printf(修改成功!n); putchar(n);/删除学生信息void Delete(Student S) int i,j; int fl

9、ag=0; /用来判断表中是否存在所要删除的学生的信息 char number10; printf(请输入你要删除学生的学号:); scanf(%s,number); getchar(); for(i=1;iTotal;i+) if(strcmp(Si.S_number,number)=0) flag=i; if(!flag) printf(你所要删除的学生在表中不存在!); else for(i=flag;iTotal;i+) j=i+1; strcpy(Si.S_name,Sj.S_name);/字符串拷贝函数,格式: strcpy (字符数组名,字符数组名),赋值给 strcpy(Si.

10、S_number,Sj.S_number); Si.D_number=Sj.D_number; strcpy(Si.S_bednum,Sj.S_bednum); strcpy(Si.S_class1,Sj.S_class1); (S-Total)-; dirty=1; printf(删除成功!); printf(nn);/显示所有学生信息函数void Display_All(Student S) int i; printf(全体学生信息如下:n); printf(-n); /*格式头*/ printf( 房间号床位号学号班级 n); printf(-n); for(i=1;iTotal;i+)

11、 printf( %-10d%-10s%-10s%-10s%-10sn,Si.D_number,Si.S_bednum,Si.S_number,Si.S_name,Si.S_class1); putchar(n);/查询函数以为关键字进行查询(顺序查找)void Query_S_name(Student S) int i,j=0; char name10; printf(请输入你要查找的学生的(10个字符以):); scanf(%s,name); getchar(); printf(所查找学生信息如下:n); printf(tt-n); /*格式头*/ printf(tt房间号床位号学号班级

12、n); printf(tt-n); for(i=1;iTotal;i+) if(strcmp(name,Si.S_name)=0) printf(tt%-10d%-10s%-10s%-10s%-10sn,Si.D_number,Si.S_bednum,Si.S_number,Si.S_name,Si.S_class1); j=1; if(!j) printf(n查找失败,表中不存在该学生的信息!nn);/查询函数以学号为关键字进行查询(折半查找)void Query_S_number(Student S) int i,j=0; char number10; printf(请输入你要查找的学生的

13、学号(10个字符以):); scanf(%s,number); getchar(); printf(所查找学生信息如下:n); printf(tt-n); /*格式头*/ printf(tt房间号床位号学号班级 n); printf(tt-n); for(i=1;iTotal;i+) if(strcmp(number,Si.S_number)=0) printf(tt%-10d%-10s%-10s%-10s%-10sn,Si.D_number,Si.S_bednum,Si.S_number,Si.S_name,Si.S_class1); j=1; if(!j) printf(n查找失败,表中不

14、存在该学生的信息!nn);/查询函数以寝室号为关键字进行查询(折半查找)void Query_D_number(Student 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(tt-n); /*格式头*/ printf(tt房间号床位号学号班级 n); printf(tt-n); if(i=S1.D_number&

15、iTotal.D_number) while(baseS-Total) break; if(n0) while(Sn.D_number=i) printf(tt%-10d%-10s%-10s%-10s%-10sn,Sn.D_number,Sn.S_bednum,Sn.S_number,Sn.S_name,Sn.S_class1); n-; if(nSmid.D_number) base=mid+1; else top=mid-1; if(!j) printf(n查找失败,表中不存在该寝室的信息!nn);/存储函数void Save(Student S)int i=0;FILE *fp; /*定

16、义文件指针*/char filename100; /*定义文件名*/ printf(tt输入文件名:); /*输入文件名*/ scanf(tt%s,&filename); if(fp=fopen(filename,w)=NULL) /*打开文件*/ printf(tt无法打开该文件n); system(pause); return; fprintf(fp,%dn,S-Total); /*循环写入数据*/ while(iTotal) fprintf(fp,%-10d%-10s%-10s%-10s%-10sn,Si.D_number,Si.S_bednum,Si.S_number,Si.S_nam

17、e,Si.S_class1); i+; fclose(fp); /*关闭文件*/ printf(写入成功!n); /*返回成功信息*/退出程序时判断是否保存函数void Judge_Save(int i,Student S) char ch; if(i) printf(表中数据已改变,是否保存后再退出(Y/N)?:); ch=getchar(); getchar(); while(ch!=n&ch!=N&ch!=y&ch!=Y) printf(请输入N(n)或者Y(y):); ch=getchar(); getchar(); if(ch=y|ch=Y) Save(S); /菜单void Men

18、u() system(cls); /*运行前清屏*/ printf(n); printf( 农业大学学生宿舍管理系统nn); printf( n); printf( 作者:明伟、善虎、胡蒙亨n); printf(n); printf(tt=学生宿舍管理系统=n); /*菜单选择*/ printf(tt n); printf(tt 1.新生入住 n); printf(tt 2.修改入住学生信息 n); printf(tt 3.退房服务 n); printf(tt 4.以查询学生信息 n); printf(tt 5.以学号查询学生信息 n); printf(tt 6.以寝室号查询学生信息 n);

19、printf(tt 7.查询全部学生信息 n); printf(tt 0.退出程序 n); printf(tt=n); int main() int i; Student S; S-Total=0; do Menu(); printf(请选择您要运行的选项按(0-9):); scanf(%d,&i); getchar(); /获取换行符 putchar(n); switch(i) case 1:Add(S); system(pause); break; case 2:Alter(S); system(pause); break; case 3:Delete(S); system(pause);

20、 break; case 4:Query_S_name(S); system(pause); break; case 5:Query_S_number(S); system(pause); break; case 6:Query_D_number(S); system(pause); break; case 7:Display_All(S);system(pause); break; case 0:Judge_Save(dirty,S); exit(0); break; default:printf(选择错误:请在选项到之间选择!nn); break; while(i!=10);(注:黑体部分

21、为我负责的部分)2.程序运行说明(包括结果说明)程序运行说明运行程序后,出现主菜单界面,按照主菜单上的编号进行操作即可,每输入一个编号后按回车即进入该子程序,然后按照提示输入或查询信息。结果说明:3.存在的问题 本程序在新生入住时将宿舍号限定在101,,12,201,202.当输入的宿舍号不符合要求时只是重复出现“请输入宿舍号”而没有明确的文字提示。而且在修改入住学生信息时对宿舍号没有限制。还需进一步完善。四、总结与体会当看到课程设计任务时,完全找不着头绪,由于对C语言的认识和了解只是停留在表面,所以不知道从何下手。后来在不停的复习课本,在老师和同学的帮助下,逐渐找到了方向,也对设计中需要用到的方法和结构有所了解和认识,学会了如何使用,之后的一次课又经过仔细的思考了解了这个程序的基本框架,确定了程序的流程图,为程序的完成奠定了基础,接下来在写代码的过程中仍然遇到了很多问题,经过不断的查阅课本和网络,逐步解决了代码问题,在实现整个程序功能方面,有些结构和方法不会用,最后在老师的帮助下才得以顺利解决。做出来的程序在执行过程中仍然有一些问题,比如在上述“存在的问题”中提到的。设计过程确实让我认识到了自己技术上的不足,在以后的学习中应该加强这方面的学习和重视。为以后的毕业设计和就业做准备。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1