语c言课程设计学生宿舍管理系统大学毕设论文.docx
《语c言课程设计学生宿舍管理系统大学毕设论文.docx》由会员分享,可在线阅读,更多相关《语c言课程设计学生宿舍管理系统大学毕设论文.docx(30页珍藏版)》请在冰豆网上搜索。
语c言课程设计学生宿舍管理系统大学毕设论文
内蒙古科技大学
本科生课程设计说明书
题目:
C语言课程设计
——学生宿舍管理系统
学生姓名:
学号:
专业:
软件工程
班级:
15-软件1班
指导教师:
日期:
2016年1月4日
内蒙古科技大学课程设计任务书
课程名称
C语言课程设计
设计题目
宿舍管理系统
指导教师
时间
2015.1.5——2015.1.9
一、教学要求
1.巩固和加深学生对C语言课程的基本知识的理解和掌握
2.掌握C语言编程和程序调试的基本技能
3.利用C语言进行基本的软件设计
4.掌握书写程序设计说明文档的能力
5.提高运用C语言解决实际问题的能力
二、设计资料及参数
每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。
宿舍管理系统:
设有学生宿舍的数据,要求输入计算机并存放在内存中,然后增加3个宿舍的记录并可以输出材料清单,实现文件存盘和对所选择的记录进行删除,修改。
并统计宿舍的总人数,宿舍的基本信息包括楼号、房间号、所住学生班级、人数,要求设计菜单来调用其各功能模块:
v新建文件、打开文件
v输入记录、插入记录、修改记录
v查询记录、输出清单
v保存文件、退出
三、设计要求及成果
1.分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)
2.写出详细设计说明(至少包括功能实现分析和模块流程图)
3.编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少500行代码,不包括注释和花括号)
4.设计完成的软件要便于操作和使用
5.设计完成后提交课程设计报告(请严格按照模板进行排版)
四、进度安排
第一天 选择课程设计题目,分析课题的要求
第二天 编程
第三天 编程及调试
第四天 写课程设计报告
第五天 提交课程设计报告(打印稿及电子稿)
五、评分标准
1.根据平时上机考勤、表现和进度,教师将每天点名和检查
2.根据课程设计完成情况,必须有可运行的软件。
3.根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。
六、建议参考资料
1.《C语言程序设计》,谭浩强,清华大学出版社
2.《C语言程序设计课程设计》,刘振安,机械工业出版社
目录
目录III
第一章需求分析4
1.1引言...................................................................................................................................4
1.2任务概述4
第二章概要设计5
2.1总体设计5
第三章详细设计8
3.1输入模块设计8
3.2输出模块设计9
3.3查找模块设计9
3.4排序模块设计10
第四章测试分析13
4.1测试程序执行情况13
4.2出现的问题和解决的方法13
第五章用户手册(可选)14
5.1使用说明14
5.2运行说明14
第六章课程设计总结15
附录:
程序代码16
参考文献50
致谢50
第一章需求分析
1.1引言
宿舍管理主要在各个中学和高校中经常提到。
宿舍管理是后勤部门的一个重要工作。
但是现在很多后勤部门都还是在使用最原始的宿舍管理方法。
而且在学生入住的过程中学生住宿的信息得不到有效的更新,同时学生经常会更换宿舍等等。
这样,无法保证学生住宿信息的完整性。
也就是说现在没有一个很好的办法来管理学生的住宿信息。
这也是后勤管理的一个缺陷。
每个学校都会有自己的一套管理方法和管理制度。
同时很多学校的管理方法都是大同小异。
在宿舍管理过程中宿舍管理制度是一个依据,同时也是一种规范。
1.2任务概述
用来记录不同宿舍的每一位学生的相关数据,有条理,查询方便,能方便管理员管理学生。
第二章概要设计
2.1
总体设计
2.3接口设计
函数名
函数格式//即函数首部
函数功能
main
main1()
主函数
input
input();
添加学生信息
modify
modify();
修改已录入学生的信息
list
list();
显示学生信息
zm1
zm1();
查询学生信息的主函数
zm3
zm3();
统计学生信息的主函数
cx1
voidcx1();
按学号查询
cx2
voidcx2();
按姓名查询
cx3
voidcx3();
按楼号查询
cx4
voidcx4();
按楼号+寝室号查询
tj1
tj1();
按班级统计
tj2
tj2();
按楼号统计
tj3
tj3();
按楼号+寝室号统计
dele
dele();
删除已经录入的学生信息
explain
explain();
版权相关信息
cx1()
cx2()
Zm1cx3()
cx4()
第三章详细设计
3.1输入模块设计
voidinput()
{
XSSSa;
while
(1)
{
system("cls");
printf("\n\n\n**********输入信息**********\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");
}
pers[n++]=a;
printf("是否继续录入(Y/N)?
");
if(toupper(getch())=='N')
break;}}
3.2输出模块设计
主界面:
3.3查找模块设计
查寻学生信息主函数
查询学生信息分函数
3.5保存及读取模块设计
1.将输入的文件信息保存在xsss.txt中
第四章测试分析
4.1测试程序执行情况
测试中遇到挺多问题,但通过问老师,XX找出问题所在。
最终问题得以解决
最终程序得以正常的运行,程序可以找出航班的信息,也可以给航班信息进行排序
用户人员也可以进行购票与退票
航班人员也可以进行对航班管理,如对航班进行删除与更改查看航班信息
4.2出现的问题和解决的方法
当按终点站进行查询时会出现多航班于是通过思考使用二维数组进行储存航班号并调用订票函数
当不知道怎样对没有头指针的单链表进行排序时通过XX进行查看最终解决了问题
第五章用户手册(可选)
5.1使用说明
进入程序按相应数字可以进行相应模块的功能。
5.2运行说明
程序中出现的y/n用户可以按其余键进行跳出此页面,运行应该按照页面的提示进行操作,否则回返回头页面
第六章课程设计总结
这次课程设计是我发现了学的东西不够扎实通过这次课程设计使我学到了关于程序化的优点与字符串的应用也使我明白写代码要有耐心急性子是不会写出更好的代码,虽然没有问题但是程序不能正确的调试出来是很麻烦的
附录:
程序代码
#include
#include
#include
#include
#include
#defineM10000
typedefstructsushe
{charnum[10];
charname[20];
charsex[5];
charclass1[10];
charlh[10];
charqsh[10];
chartel[15];
}XSSS;
XSSSpers[M];
intn=0;
voidcx1();
voidcx2();
voidcx3();
voidcx4();
voidtj1();
voidtj2();
voidtj3();
intisnum(char*);
voidzm();
voidload();
voidmodify();
voidinput();
voidsave();
voidlist();
voidzm1();
voidzm3();
voidexplain();
voiddele();
main()
{charc;
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");
}
}
}
voidzm()
{printf("**************************************************************\n");
printf("**\n");
printf("**\n");
printf("*内蒙古科技大学学生宿舍管理系统*\n");
printf("**\n");
printf("**\n");
printf("*************************************************************\n");
printf("\n\n\n");
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");
}
voidzm1()
{charc;
system("cls");
printf("**************************************************************\n");
printf("**\n");
printf("**\n");
printf("*内蒙古科技大学学生宿舍管理系统*\n");
printf("**\n");
printf("**\n");
printf("**************************************************************\n");
printf("\n\n\n");
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;
}
}
voidzm3()
{charc;
system("cls");
printf("**************************************************************\n");
printf("**\n");
printf("**\n");
printf("*内蒙古科技大学学生宿舍管理系统*\n");
printf("**\n");
printf("**\n");
printf("**************************************************************\n");
printf("\n\n\n");
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;
}
}
voidcx1()
{charname[10];
inti,m;
system("cls");
printf("\n\n\n**********按学号查询**********\n");
printf("\n请输入要查询的学号:
");
scanf("%s",name);
m=0;
for(i=0;iif(strcmp(pers[i].num,name)==0)
{printf("#Record学号姓名性别班级楼号寝室号本人电话\n");
printf("%7d%-8s%-8s%-6s%-8s%-8s%-8s%-8s\n",i+1,pers[i].num,pers[i].name,pers[i].sex,pers[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel);
m++;
}
if(m==0)
printf("\n查无此人!
\n");
printf("pressanykeycontinue\n");
getch();
}
voidcx2()
{charname[20];
inti,m;
system("cls");
printf("\n\n\n**********按姓名查询**********\n");
printf("\n请输入姓名:
");
scanf("%s",name);
m=0;
for(i=0;iif(strcmp(pers[i].name,name)==0)
{printf("#Record学号姓名性别班级楼号寝室号本人电话\n");
printf("%7d%-8s%-8s%-6s%-8s%-8s%-8s%-8s\n",i+1,pers[i].num,pers[i].name,pers[i].sex,pers[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel);
m++;
}
if(m==0)
printf("\n查无此人!
\n");
printf("pressanykeycontinue\n");
getch();
}
voidcx3()
{charname[10];
inti,m;
system("cls");
printf("\n\n\n**********按楼号查询**********\n");
printf("\n请输入要查询的楼号:
");
scanf("%s",name);
m=0;
for(i=0;iif(strcmp(pers[i].lh,name)==0)
{printf("#Record学号姓名性别班级楼号寝室号本人电话\n");
printf("%7d%-8s%-8s%-6s%-8s%-8s%-8s%-8s\n",i+1,pers[i].num,pers[i].name,pers[i].sex,pers[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel);
m++;
}
if(m==0)
printf("\n文件中没有该楼的学生数据!
\n");
printf("pressanykeycontinue\n");
getch();
}
voidcx4()
{charname[10];
charnum[10];
inti,m;
system("cls");
printf("\n\n\n**********按楼号+寝室号查询**********\n");
printf("\n请输入要查询的楼号:
");
scanf("%s",name);
printf("\n请输入要查询的寝室号:
");
scanf("%s",num);
m=0;
for(i=0;iif(strcmp(pers[i].lh,name)==0&&strcmp(pers[i].qsh,num)==0)
{printf("#Record学号姓名性别班级楼号寝室号本人电话\n");
printf("%7d%-8s%-8s%-6s%-8s%-8s%-8s%-8s\n",i+1,pers[i].num,pers[i].name,pers[i].sex,pers[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel);
m++;
}
if(m==0)
printf("\n文件中没有符合条件的数据!
\n");
printf("pressanykeycontinue\n");
getch();
}
voidload()
{FILE*fp;
n=0;
if((fp=fopen("xsss.txt","rb"))==NULL)
{printf("Thefileisnotfound!
\npleaseappendnewdata!
\n");
return;
}
while(fread(&pers[n],sizeof(XSSS),1,fp)!
=0)/*(!
feof(fp))*/
{
n++;
}
printf("数据导入成功!
\n");
fclose(fp);
}
voidsave()
{FILE*fp;
inti=0;
if((fp=fopen("xsss.txt","wb"))==NULL)
{printf("Thefileisnotfound!
\npleaseappendnewdata!
\n");
return;
}
for(i=0;ifwrite(&pers[i],sizeof(XSSS),1,fp);
fclose(fp);
printf("数据已保存\n");
}
voidinput()
{
XSSSa;
while
(1)
{
system("cls");
printf("\n\n\n**********输入信息**********\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");
}
pers[n++]=a;
printf("是否继续录入(Y/N)?
");
if(toupper(getch())=='N')
break;
}
}
voidlist()
{inti;
system("cls");
printf("\n\n\n********显示所有个人信息********\n");
for(i=0;i{printf("#Record学号姓名性别班级楼号寝室号本人电话\n");
printf("%7d%-8s%-8s%-6s%-8s%-8s%-8s%-8s\n",i+1,pers[i].num,pers[i].name,pers[i].sex,pers[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel);
}
printf("pressanykeycontinue\n");
getch();
}
voidmodify()
{charnum[20];
inti;
system("cls");
printf("\n\n\n**********修改学生住宿信息**********\n");
printf("\n请输入要修改学生的学号:
");
scanf("%s",num);
for(i=0;iif(strcmp(pers[i].num,num)==0)break;
if(i