资源描述
精选优质文档-倾情为你奉上学号2013-2014学年 第二学期高级语言程序设计课程设计报告题目:宿舍管理系统专业:计算机科学与技术班级:蔡朋姓名:蔡朋指导教师:吴海波成绩:计算机与信息工程系2014年 05月 01日目录1. C语言课程设计任务书.xx页2. 程序基本框架结构图.1页3. 程序设计说明书.2页4. 源代码清单.4页5. 课程设计总结.11页一、设计目的通过本次课程设计使学生进一步加深对C语言课程内容的理解,初步掌握一般应用程序的开发方法和步骤,进一步了解与掌握C语言的编程方法和技巧,提高学生用C语言解决实际问题的能力。二、设计要求1、认真查阅参考书、资料2、遵守课程设计时间安排3、按时上机,认真调试程序4、认真完成课程设计报告三、课设报告装订内容及顺序1、课程设计封皮2、目录3、课程设计任务书4、程序基本框架图 5、程序设计说明书 6、源代码清单7、实验总结四、设计题目1、淮南师范学院学生宿舍管理系统 五、时间安排1、查阅资料及程序设计(1天)2、程序编制及调试(3天)3、成绩评定(0.5天)3、打印报告(0.5天)专心-专注-专业程序基本框架结构图 学生宿舍管理系统 数据输入退出系统数据删除数据 统计数据修改数据查询数据追加数据显示按学号查询按姓名查询按楼号查询按楼寝查询返回程序设计说明书我组课程设计的课题沈阳工程学院学生宿舍管理系统。这个系统主要是实现对学生信息的输入,输出,追加,查询,修改,统计及删除等功能,完成对学生宿舍信息的管理。在学生宿舍管理系统中主要有输入、显示、追加、查询、修改、统计、删除及退出7大功能,我主要负责数据输入功能。首先用typedf进行类型定义,定义学号,姓名,性别,班级,楼号,寝室号,个人电话,定义为字符型变量,定义变量,进入主函数,用while语句控制输入学生信息,用switch,控制输入项目,否则,输出错误提提示。设计首页界面使其美观。源代码清单#include #include #include #include #include #define M 10000typedef struct sushechar num10;char name20;char sex5;char class110;char lh10;char qsh10;char tel15; XSSS;XSSS persM;int n=0;void cx1();void cx2();void cx3();void cx4();void tj1();void tj2();void tj3();int isnum(char *);void zm();void load();void modify();void input();void save();void list();void zm1();void zm3();void explain();void dele();main()char c;while(1)system(cls);zm();c=getch();switch(c)case 1: load(); input(); save(); break;case 2: load(); modify(); save(); break;case 3: load(); input(); save();break;case 4:load(); list(); save();break;case 5:load(); zm1(); save();break;case 6:load(); zm3(); save();break;case 7:load(); dele(); save();break;case 8:load(); explain(); save();break;case 0: exit(0);default : printf(n*输入错误,请重新输入!*n); void zm()printf( *n);printf( * *n);printf( * *n);printf( * 沈 阳 工 程 学 院 学 生 宿 舍 管 理 系 统 *n);printf ( * *n);printf( * *n);printf ( *n);printf(nnn);printf( 1. 录入信息n);printf( 2. 修改信息n);printf( 3. 追加信息n);printf( 4. 显示信息n);printf( 5. 查询信息n);printf( 6. 统计信息n);printf( 7. 删除信息n);printf( 8. 版权信息n);printf( 0. 退出本程序n);void zm1()char c;system(cls);printf( *n);printf( * *n);printf( * *n);printf( * 淮 南 师 范 学 院 学 生 宿 舍 管 理 系 统 *n);printf( * *n);printf( * *n);printf( *n);printf(nnn);printf( 1. 按学号查询n);printf( 2. 按姓名查询n);printf( 3. 按楼号查询n);printf( 4. 按楼号+寝室号查询n);printf( 0. 结束查询返回上层n);c=getch();switch(c)case 1: cx1(); break;case 2: cx2(); break;case 3: cx3();break;case 4: cx4();break;case 0: return ;default : printf(输入错误,按任意键返回!); getch(); return ;void zm3()char c;system(cls);printf( *n);printf( * *n);printf( * *n);printf( * 淮 南 师 范 学 院 学 生 宿 舍 管 理 系 统 *n);printf( * *n);printf( * *n);printf( *n);printf(nnn);printf( 1. 按班级统计n);printf( 2. 按楼号统计n);printf( 3. 按楼号+寝室号统计n);printf( 0. 结束统计返回上层n);c=getch();switch(c)case 1: tj1(); break;case 2: tj2(); break;case 3: tj3();break;case 0: return ;default : printf(输入错误,按任意键返回!); getch(); return ;void cx1()char name10;int i,m; system(cls);printf(nnn*按学号查询*n);printf(n 请输入要查询的学号:);scanf(%s,name);m=0;for(i=0;in;i+)if(strcmp(persi.num,name)=0 ) printf(#Record 学号 姓名 性别 班级 楼号 寝室号 本人电话n);printf(%7d %-8s%-8s%-6s%-8s%-8s%-8s%-8sn,i+1,persi.num,persi.name,persi.sex,persi.class1,persi.lh,persi.qsh,persi.tel);m+;if(m=0) printf(n 查无此人!n);printf(press any key continuen );getch(); void cx2()char name20;int i,m; system(cls);printf(nnn*按姓名查询*n);printf(n 请输入姓名:);scanf(%s,name);m=0;for(i=0;in;i+)if(strcmp(persi.name,name)=0 ) printf(#Record 学号 姓名 性别 班级 楼号 寝室号 本人电话n);printf(%7d %-8s%-8s%-6s%-8s%-8s%-8s%-8sn,i+1,persi.num,persi.name,persi.sex,persi.class1,persi.lh,persi.qsh,persi.tel);m+;if(m=0) printf(n 查无此人!n);printf(press any key continuen );getch();void cx3()char name10;int i,m; system(cls);printf(nnn*按楼号查询*n);printf(n 请输入要查询的楼号:);scanf(%s,name);m=0;for(i=0;in;i+)if(strcmp(persi.lh,name)=0 ) printf(#Record 学号 姓名 性别 班级 楼号 寝室号 本人电话n);printf(%7d %-8s%-8s%-6s%-8s%-8s%-8s%-8sn,i+1,persi.num,persi.name,persi.sex,persi.class1,persi.lh,persi.qsh,persi.tel);m+;if(m=0) printf(n 文件中没有该楼的学生数据!n);printf(press any key continuen );getch();void cx4()char name10;char num10;int i,m; system(cls);printf(nnn*按楼号+寝室号查询*n);printf(n 请输入要查询的楼号:);scanf(%s,name);printf(n 请输入要查询的寝室号:);scanf(%s,num);m=0;for(i=0;in;i+)if(strcmp(persi.lh,name)=0 & strcmp(persi.qsh,num)=0) printf(#Record 学号 姓名 性别 班级 楼号 寝室号 本人电话n);printf(%7d %-8s%-8s%-6s%-8s%-8s%-8s%-8sn,i+1,persi.num,persi.name,persi.sex,persi.class1,persi.lh,persi.qsh,persi.tel);m+;if(m=0) printf(n 文件中没有符合条件的数据!n);printf(press any key continuen );getch(); void load() FILE *fp; n=0;if(fp=fopen(xsss.txt,rb)=NULL)printf(The file is not found!nplease append new data!n); return ;while(fread(&persn,sizeof(XSSS),1,fp)!=0) /*(!feof(fp)*/ n+;printf(数据导入成功 !n);fclose(fp);void save()FILE *fp; int i=0;if(fp=fopen(xsss.txt,wb)=NULL)printf(The file is not found!nplease append new data!n);return ;for(i=0;in;i+)fwrite(&persi,sizeof(XSSS),1,fp);fclose(fp);printf(数据已保存n);void input()XSSS a; while(1)system(cls);printf(nnn* 输 入 信 息 *n);printf(n 请输入学生住宿信息n);printf(学号:);scanf(%s,a.num);printf(姓名:);scanf(%s,a.name);printf(性别:);scanf(%s,a.sex);printf(班级:);scanf(%s,a.class1);printf(楼号:);scanf(%s,a.lh); printf(寝室号:);scanf(%s,a.qsh);printf(本人电话:);scanf(%s,a.tel);if(isnum(a.tel)=0)printf(输入的电话号码错误,系统将以 0000 代替!n ); strcpy(a.tel,0000);persn+=a;printf(是否继续录入(Y/N)?);if (toupper(getch()=N) break;void list()int i;system(cls);printf(nnn*显示所有个人信息*n);for(i=0;in;i+)printf(#Record 学号 姓名 性别 班级 楼号 寝室号 本人电话n);printf(%7d %-8s%-8s%-6s%-8s%-8s%-8s%-8sn,i+1,persi.num,persi.name,persi.sex,persi.class1,persi.lh,persi.qsh,persi.tel);printf(press any key continuen );getch(); void modify()char num20;int i; system(cls);printf(nnn*修 改 学 生 住 宿 信 息*n);printf(n 请输入要修改学生的学号:);scanf(%s,num);for(i=0;in;i+)if(strcmp(persi.num,num)=0) break;if(i=n) printf(n 文件中没有该学生的数据,无法进行修改操作!n);elseprintf(#Record 学号 姓名 性别 班级 楼号 寝室号 本人电话n);printf(%7d %-8s%-8s%-6s%-8s%-8s%-8s%-8sn,i+1,persi.num,persi.name,persi.sex,persi.class1,persi.lh,persi.qsh,persi.tel);printf(n 真的要修改吗(Y/N)?);if (toupper(getch()=Y) printf(n 请输入新信息:n); printf(学号:);scanf(%s,persi.num);printf(姓名:);scanf(%s,persi.name);printf(性别:);scanf(%s,persi.sex);printf(班级:);scanf(%s,persi.class1);printf(楼号:);scanf(%s,persi.lh);printf(寝室号:);scanf(%s,persi.qsh);printf(本人电话:);scanf(%s,persi.tel);if(isnum(persi.tel)=0)printf(输入的电话号码错误,系统将以 0000 代替!n ); strcpy(persi.tel,0000); printf(n处理后的结果:n);printf(#Record 学号 姓名 性别 班级 楼号 寝室号 本人电话n);printf(%7d %-8s%-8s%-6s%-8s%-8s%-8s%-8sn,i+1,persi.num,persi.name,persi.sex,persi.class1,persi.lh,persi.qsh,persi.tel);printf(n处理结束!n);getch();void tj1()char name10;int i,m; system(cls);printf(nnn*按班级统计*n);printf(n 请输入要统计人数的班级号:);scanf(%s,name);m=0;for(i=0;in;i+)if(strcmp(persi.class1,name)=0 ) m+;if(m=0) printf(n 文件中没有符合条件的数据!n);elseprintf(%s 班有 %d 人住宿n,name,m);printf(nn统计结束!n );getch(); void tj2()char name10;int i,m; system(cls);printf(nnn*按楼号统计*n);printf(n 请输入要统计人数的楼号:);scanf(%s,name);m=0;for(i=0;in;i+)if(strcmp(persi.lh,name)=0 ) m+;if(m=0) printf(n 文件中没有符合条件的数据!n);elseprintf(%s 号楼有 %d 人住宿n,name,m);printf(nn统计结束!n );getch(); void tj3()char name10;char num10;int i,m; system(cls);printf(nnn*按楼号+寝室号统计*n);printf(n 请输入要统计人数的楼号:);scanf(%s,name);printf(n 请输入寝室号:);scanf(%s,num);m=0;for(i=0;i=0 & si=9) return 0;else i+;return 1;void explain()system(cls);printf( *n);printf( * *n);printf( * *n);printf( * 淮 南 师 范学 院 学 生 宿 舍 管 理 系 统 *n);printf( * *n);printf( * *n);printf( *n);printf(nnn);getch();void dele()char name10;int i,m,j,n;system(cls);printf(nnn* 删 除 信 息 *n);printf(n 请输入要删除的学生信息:);scanf(%s,name);m=0;for(i=0;in;i+)if(strcmp(persi.class1,name)=0 ) m+;break;if(m=0)printf(没有找到该学生信息);elseprintf(#Record 学号 姓名 性别 班级 楼号 寝室号 本人电话n);printf(%7d %-8s%-8s%-6s%-8s%-8s%-8s%-8sn,i+1,persi.num,persi.name,persi.sex,persi.class1,persi.lh,persi.qsh,persi.tel);printf(n 真的要删除吗(Y/N)?);if (toupper(getch()=Y) /toupper小写变大写 for(j=i;jn-1;j+) persj=persj+1; n-; printf(nn删除结束!n );getch(); 课程设计总结为期一周的C语言课程设计告已段落,经过这次课程设计,我学到了很多东西,对C语言有了进一步的了解和认识。刚开始,组长就给我分配了任务,要我负责查询模块。一开始在接到任务书之前,我对它充满了信心,因为我感觉自已C语言理论知识学的比较好,可是当看到任务书,真正要用C语言编程时,却不知道从何下手,似乎自已变得有点急躁,后来我认真查阅了有关书籍和资料,慢慢的找出了一些头绪,进入了状态,但是问题有出现了,当我满怀信心将自已编写C程序上机进行调试时,结果总是显示错误,这就是理论与实践的差距,之后我对C程序进行了修改和完善,发现有些错误都是由于自已的不认真导致的。 查询这一模块最重要的地方是,你要用所学的语句把你输入的信息一一的与已输入的信息对比,若是完全符合就输出信息;若是不符合则返回。所以我通过看书、问老师,就用了strcmp语句。但是问题又出来了,如果用if else语句来输出信息的对错则不行。然后再通过看书,想起了用控制变量来选择,之后就完成了我的任务。回顾起此次课程设计,至今我仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在一周的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于游逆而解。在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。不得不说这是精神的胜利,是永不言败的精神让我的程序重见天日。谢谢给我指点迷津的老师。
展开阅读全文