c语言教室管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
沈阳航空工业学院
课程设计任务书
一、课程设计题目:教室管理系统
二、课程设计工作自2007年9月10日至2006年9月14日止
三、课程设计内容:
已知学校可用的教室都存放在文件file25_1.txt中;每天的上课时间段存放在文件file25_2.txt中;教学周1~16周;每周仅允许在周1~周5上课。
某位任课教师想通过你编写的软件申请上课教室。教师申请时,将提供以下信息:教学周,星期,课节,教室。例如:第3周,周4,1~2节,B 楼112教室。
如果此教室的此时间段已经被占用,则提示教师,另作其它申请;否则,批准申请,并及时将新的占用信息写入file25_1.txt。
说明:file25_1.txt文件中每行的内容按照顺序为:教学楼号,教室号,若干占用信息。
四、课程设计要求:
程序质量:
●贯彻结构化程序设计思想。
●用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
●代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:
●封面
●课程设计任务书
●目录
●需求分析(分析题目的要求)
●程序流程图(总体流程图和主要功能模块流程图)
●核心技术的实现说明及相应程序段
●个人总结
●参考资料
●源程序及适当的注释
指导教师:________ 学生签名:________
目录
一、需求分析 (1)
二、程序流程图 (5)
三、核心技术的实现说明及相应程序段 (8)
四、个人总结 (13)
五、参考文献 (14)
六、源程序 (14)
一、需求分析
经过对程序设计题目的分析可知,整个程序的设计实现大致分为六个模块,其中每一个模块对应一个函数,他们的功能分别是:读取教室数据函数(load),输入数据函数(write),确定请求函数(complet),显示菜单函数(menu)。
1、读取教室数据函数主要实现程序最初运行时读取教室占用信息并且将其显示至选课系统界面上.
2、输入数据函数实现的功能是用户借以确认要选的教室是否被占用.
3、确定请求函数按照题目的具体要求将新的占用信息写入到指定的文件中去.
4、显示菜单函数显示友好的用户界面,引导用户使用该软件
除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
每一个教室信息都包括教学楼号,教室号,是被占
用.在程序当中,将教室使用信息类型定义为结构体类型,添加以及追加的教室信息直接写R入D盘的file25_1.txt文件中,其他函数每次对教室占用信息的访问,其数据来源都是file25_1.txt文件,这样做不但可以保证教室信息数据的一致性,而且可以对教室信息进行永久保存,保证每次运行程序都可以采用原来的数据。
程序整体流程图及各子函数流程图
1程序总体结构图
(1)读取输入请求
打开文件
请输入
1 3 4
读取数据返回
(2)数据分析
输入2
building
A B 真
假classroom
111,112
121,122 真
information
假3-4-1~2, 5-4-5~6 真
假
1、具体功能框图
(1)读取教室数据函数(load)
(2)输入数据函数(write)
输出教学楼号
从键盘输入要查询的教学楼号
输出教室号
从键盘输入要查询的教室号
输出上课信息
从键盘输入要上课的时间段
循环变量i=1
当i小于8时
依次将输入的信息与文件中原有的信息进行比较,结果相等?
真假
输出“对不起,该教室已被占用!”输出“可以使用该教室”
将输入的占用信息保存到原文件中
continue
回到显示菜单函数(menu)
(3)确定请求函数(complet)
输出“确定? 1)是2)不是”
2)不是1)是
打开D盘文件flie25_1.txt不成功
真假return; 输出“不能打循环变量i=1
开该文件当i小于8时
依次将新的结构体
数组里的信息写到
原文件中
关闭文件
回到显示菜单函数(menu)
return;
(4)显示菜单函数(menu)
输出表格
真输入值c=1? 假
读取教室数据真输入值c=2? 假函数(load)输入值c=3?
输入数据函数真假
(write)确定请求输入c=
函数真 4 假
(complet)退出continue
三、核心技术的实现说明及相应程序段
本程序主要由四个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,读取教室数据函数(load)、输入数据函数(write)和确定请求函数(complet)是程序中较为核心的部分,下面分别进行说明
1读取教室数据函数
读取教室数据函数是在文件file25_1.txt已经存在的情况下,此时文件要以读写方式打开,这样才可以保证以前已经存在的数据不丢失。具体的程序段如下:
void load_()
{
int i;
FILE *fp;
if((fp=fopen("C:\\file25_1.txt","rb"))==NULL)
{printf("不能打开该文件/n");
}
for(i=0;i<8;i++)
fscanf(fp,"%s %d
%s",&cla[i].building,&cla[i].classroom,&cla[i].information) ;