语c言课程设计宿舍管理系统大学毕设论文.docx
《语c言课程设计宿舍管理系统大学毕设论文.docx》由会员分享,可在线阅读,更多相关《语c言课程设计宿舍管理系统大学毕设论文.docx(44页珍藏版)》请在冰豆网上搜索。
![语c言课程设计宿舍管理系统大学毕设论文.docx](https://file1.bdocx.com/fileroot1/2022-10/1/9d297338-6e68-449b-aebd-958d568708e6/9d297338-6e68-449b-aebd-958d568708e61.gif)
语c言课程设计宿舍管理系统大学毕设论文
内蒙古科技大学
本科生课程设计说明书
题目:
C语言课程设计
——学生宿舍管理系统
学生姓名:
学号:
专业:
软件工程
班级:
2015-1
指导教师:
日期:
2016年1月5日
内蒙古科技大学课程设计任务书
课程名称
C语言课程设计
设计题目
学生宿舍管理系统
指导教师
时间
2015.12.15---2016.1.5
一、教学要求
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语言程序设计课程设计》,刘振安,机械工业出版社
3.6统计模块设计................................................................................................19
第一章需求分析
1.1引言
学生宿舍管理系统对于一个学校来说是必不可少的组成部分。
目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。
而且当查找某条记录时,由于数据量庞大,还只能靠人工去一条条的查找,这样不但麻烦还浪费了许多时间,效率也比较低。
当今社会是飞速进步的世界,原始的记录方式已经被社会所淘汰了,计算机化管理正是适应时代的产物。
信息世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并取代旧技术。
21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。
针对如此,本人设计了一套学生宿舍管理系统。
1.2任务概述
熟悉宿舍的学生管理流程,进行需求分析第15周
总体设计,详细设计第16周
编写代码第17周
测试第18周
1.3数据描述
需录入学生的个人信息,数据流程图如下:
报表
structst_message/*学生信息*/
{charname[20];/*学生姓名*/
charnum[20];/*学号*/
charsex[5];/*性别*/
charage[4];/*年龄*/
charmajor[20];/*专业*/
charclasss[8];/*班级*/
chardorm[7];/*宿舍号*/
}st[N],t;
1.4功能需求
输入学生信息
输入学生在校信息,包括学号,姓名,宿舍号,性别,班级,专业等
修改学生信息
修改指定的学生信息
删除学生信息
删除指定学生信息
添加学生信息
新进一个学生,录入他的信息在数据库中
查找学生信息
按学生信息进行查找
统计学生信息
按学生情况进行统计显示
保存学生信息
学生信息自动保存在申请的文件中
1.5性能需求
(1)此管理系统:
功能全面,操作简单,检索迅速,查询方便,存储量大,成本低等优势。
(2)可以大大节约工作时间,减少工作量,提高工作效率,方便管理学生。
1.6任务计划
(1)构思与设计15周
(2)编写代码16-17周
(3)检查与测试18周
第二章概要设计
2.1
总体设计
2.2数据类型设计(或数据结构设计)
学生信息用了一个结构体,包含学生的基本信息
structst_message/*学生信息*/
{
charname[20];/*学生姓名*/
chardorm[7];/*宿舍号*/
charnum[20];/*学号*/
charsex[7];/*性别*/
charage[5];/*年龄*/
charmajor[20];/*专业*/
charclasss[10];/*班级*/
}st[N],t;
2.3接口设计
函数名
函数格式
函数功能
input_message
voidinput_message()
对住宿学生信息进行录入
append_message
voidappend_message()
对新来学生信息进行添加录入
revise_message
revise_message()
对需修改学生的信息进行修
delete_message()
delete_message()
对某一学生信息进行删除操
find_message
find_message()
分别以姓名、学号、宿舍号对学生信息进行查询
census_message
census_message()
分别以学号、宿舍号、性别、班级、专业方式对学生信息进行统计,并按学号由小到大输出。
表2.1:
函数列表
2.4运行界面设计
如下图2.4:
图2.4运行界面
第三章详细设计
3.1输入模块设计
voidinput_message()/*输入模块*/
{inti;
charchoice;
FILE*fp;
fp=fopen("student.txt","at+");
if(fp==NULL)
{printf("\n\n*****库存文件不存在!
请建立。
按任意键退出!
");
getchar();
exit
(1);
}
for(i=0;;i++)
{system("cls");
getchar();
printf("请输入学生姓名:
");
gets(st[i].name);
printf("\n请输入学生班级:
");
gets(st[i].classs);
printf("\n请输入学生宿舍号:
");
gets(st[i].dorm);
printf("\n请输入学生学号:
");
gets(st[i].num);
printf("\n请输入学生性别:
");
gets(st[i].sex);
printf("\n请输入学生年龄:
");
gets(st[i].age);
printf("\n请输入学生专业:
");
gets(st[i].major);
fwrite(&st[i],sizeof(structst_message),1,fp);
printf("输入成功!
\n是否继续录入(Y/N)?
");
choice=getchar();
if(choice=='y'||choice=='Y')
continue;
else
{fclose(fp);
break;
}
}
}
图3.1输入测试
3.2查找模块设计
find_message()/*查找信息模块*/
{inti,choice,flag,fno,fsize,fnum;
charf_name[20];
charf_num[10];
charf_dorm[7];
FILE*fp;
system("cls");
do
{sort_message();
fp=fopen("student.txt","rt");
if(fp==NULL)
{printf("\n\n*****库存文件不存在!
请先建立。
按任意键退出!
");
getchar();
exit
(1);
}
fno=fileno(fp);
fsize=filelength(fno);
fnum=fsize/sizeof(structst_message);
system("cls");
printf("请选择查询方式:
\n");
printf("1.按姓名查询\n");
printf("2.按学号查询\n");
printf("3.按宿舍号查询\n");
printf("4.返回主页\n");
scanf("%d",&choice);
图3.2查询测试
3.3排序模块设计
voidsort_message()/*排序模块*/
{inti,j,fno,fsize,fnum;
FILE*fp;
fp=fopen("student.txt","rt+");
if(fp==NULL)
{printf("\n\n*****文件打开错误。
按任意键退出!
");
getchar();
exit
(1);
}
fno=fileno(fp);
fsize=filelength(fno);
fnum=fsize/sizeof(structst_message);
for(i=0;ifread(&st[i],sizeof(structst_message),1,fp);
for(i=0;ifor(j=i+1;jif(strcmp(st[i].num,st[j].num)>0)
{t=st[i];
st[i]=st[j];
st[j]=t;
}
rewind(fp);
for(i=0;ifwrite(&st[i],sizeof(structst_message),1,fp);
fclose(fp);
3.4删除模块
delete_message()/*删除模块*/
{inti,j,choice,fno,fsize,fnum;
chard_num[10];