版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、沈 阳 航 空 工 业 学 院 课程设计 学 号 班 级 姓 名 指导教师 年 月 日沈阳航空工业学院课程设计任务书一、课程设计题目:教室管理系统二、课程设计工作自2007年9月10日至2006年9月14日止三、课程设计内容:已知学校可用的教室都存放在文件file25_1.txt中;每天的上课时间段存放在文件file25_2.txt中;教学周116周;每周仅允许在周1周5上课。某位任课教师想通过你编写的软件申请上课教室。教师申请时,将提供以下信息:教学周,星期,课节,教室。例如:第3周,周4,12节,B楼112教室。如果此教室的此时间段已经被占用,则提示教师,另作其它申请;否则,批准申请,并及
2、时将新的占用信息写入file25_1.txt。 说明:file25_1.txt文件中每行的内容按照顺序为:教学楼号,教室号,若干占用信息。四、课程设计要求:程序质量:l 贯彻结构化程序设计思想。l 用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。l 代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书: 课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:l 封面l 课程设计任务书l 目录l 需求分析(分析题目的要求)l 程序流程图(总体流程图和主要功能模块流程图)l 核心技术的实现说明及相应程序段l 个人总结l 参考资料l 源程序及适当的注释指导教师:_
3、学生签名:_目录一、需求分析.1二、程序流程图.5三、核心技术的实现说明及相应程序段.8四、个人总结.13五、参考文献.14六、源程序.14一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为六个模块,其中每一个模块对应一个函数,他们的功能分别是:读取教室数据函数(load),输入数据函数(write),确定请求函数(complet),显示菜单函数(menu)。1、读取教室数据函数 主要实现程序最初运行时读取教室占用信息并且将其显示至选课系统界面上.2、输入数据函数 实现的功能是用户借以确认要选的教室是否被占用.3、确定请求函数 按照题目的具体要求将新的占用信息写入到指定的文件
4、中去.4、显示菜单函数 显示友好的用户界面,引导用户使用该软件除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。 每一个教室信息都包括教学楼号,教室号,是被占用.在程序当中,将教室使用信息类型定义为结构体类型,添加以及追加的教室信息直接写R入D盘的file25_1.txt文件中,其他函数每次对教室占用信息的访问,其数据来源都是file25_1.txt文件,这样做不但可以保证教室信息数据的一致性,而且可以对教室信息进行永久保存,保证每次运行程序都可以采用原来的数据。程序整体流程图及各子函数流程图打开文件1.程序整体流程图读取文件 保存
5、数据显示结果输入请求读出数据数据分析退出系统1 程序总体结构图(1)读取输入请求 打开文件 请 输 入 1 3 4 读取数据 返 回 (2)数据分析 输入2 building A B 真 假 classroom111,112 121,122 真 information 假 3-4-12, 5-4-56 真 假 1、 具体功能框图(1)读取教室数据函数(load) 读写方式打开D盘文件flie25_1.txt不成功 真 假 循环变量i=1 当i小于8时 读取文件中的教室信息 输出“不能打开该文件” 输出教学楼号 教室号 占用信息 循环变量i=1 当i小于8时 依次从文件中输出教室信息 回到显示菜
6、单函数(menu) (2)输入数据函数(write) 输出教学楼号 从键盘输入要查询的教学楼号 输出教室号 从键盘输入要查询的教室号 输出上课信息 从键盘输入要上课的时间段 循环变量i=1 当i小于8时 依次将输入的信息与文件中原有的信息进行比较,结果相等? 真 假输出“对不起,该教室已被占用!” 输出“可以使用该教室” 将输入的占用信息保存到原文件中 continue回到显示菜单函数(menu)(3) 确定请求函数(complet) 输出 “ 确 定? 1)是 2)不是” 2) 不 是 1) 是 打开D盘文件flie25_1.txt不成功 真 假 return; 输出“不能打 循环变量i=1
7、 开该文件 当i小于8时 依次将新的结构体 数组里的信息写到 原文件中 关闭文件 回到显示菜单函数(menu) return; (4) 显示菜单函数(menu) 输出表格 真 输入值c=1? 假 读取教室数据 真 输入值c=2? 假 函数(load) 输入值c=3? 输入数据函数 真 假 (write) 确定请求 输入c= 函数 真 4 假 (complet) 退出 continue 三、核心技术的实现说明及相应程序段 本程序主要由四个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,读取教室数据函数(load)、输入数据函数(write)和确
8、定请求函数(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;i8;i+) fscanf(fp,%s%d%s,&clai.building,&clai.classroom,&rmation) ;fclose(fp);pri
9、ntf(教学楼号 教室号 占用信息n);for(i=0;i8;i+)printf(%s%d%sn,clai.building,clai.classroom,rmation);menu();1、 输入数据函数该函数的核心部分是一段比较语句if(strcmp(clai.building,a)=0)&(clai.classroom=b) if(strcmp(rmation,c)=0),对于题目所给的building,classroom和information三项信息,只能首先要求前两项的一致性,如果前两项信息不一致,就直接退出比较程序而不比较第三项,如果前两项信息
10、一致的话则比较第三项,因为教学楼号和教室号是客观存在的,而上课时间信息是主观因素,这样比较的好处是避免了系统将比较的八项结果依次输出,本人之前就是直接进行了三项比较从而导致用户界面信息的繁杂;strcpy(rmation,c)也是一条重要的语句,它的作用是将用户输入的上课时间段写入file25_1.txt文件中,更新新的占用信息。具体的程序段如下:void write_()FILE *fp; int i,b; char a8,c20; printf(教学楼号:); scanf(%s,a); printf(教室号:); scanf(%d,&b); printf(占用信息:);
11、scanf(%s,c);for(i=0;i8;i+)if(strcmp(clai.building,a)=0)&(clai.classroom=b) if(strcmp(rmation,c)=0) printf(对不起,该教室已被占用!n); elseprintf(可以使用该教室n); strcpy(rmation,c); continue;menu();2、 确定请求函数 该函数的核心程序语句是for(i=0;i8;i+)fwrite(&clai,sizeof(struct cla),1,fp); fclose(fp);该语句的作用是将新的教室信息全部写入
12、file25_1.txt中,与strcpy(rmation,c)语句做用不同的是后者只是将一项信息写入文件,而前者是将整个信息重新写入file25_1.txt中,保证了文件的完整性。具体的程序段如下:void complet_()int i;printf(确 定? 1)是 2)不是n);scanf(%d,&i);if(i=2) return;if(i=1)FILE*fp;if(fp=fopen(C:file25_1.txt,wb+)=NULL) printf(不能打开该文件n); return; for(i=0;i4|c4|c1)printf(-错误-!n);switch(c
13、) case 1:load_();break; case 2:write_();break; case 3:complet_(); break; case 4:exit(0); void load_()int i;FILE *fp;if(fp=fopen(C:file25_1.txt,rb)=NULL) printf(不能打开该文件/n); for(i=0;i8;i+) fscanf(fp,%s%d%s,&clai.building,&clai.classroom,&rmation) ;fclose(fp);printf(教学楼号 教室号 占用信息n);for(i=0;i8;
14、i+)printf( %s %d %sn,clai.building,clai.classroom,rmation);menu();void write_()FILE *fp; int i,b; char a8,c20; printf(教学楼号:); scanf(%s,a); printf(教室号:); scanf(%d,&b); printf(占用信息:); scanf(%s,c);for(i=0;i8;i+)if(strcmp(clai.building,a)=0)&(clai.classroom=b) if(strcmp(rmation,c)=0) printf(对不起,该教室已被占用!n); elseprintf(可以使用该教室n); strcpy(rmation,c); continue;menu();void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 强化学习提升广告ROI方案课程设计
- vfp员工离职课程设计
- 浙江奠基活动策划方案(3篇)
- 春季高校活动方案策划(3篇)
- 开年策划活动方案模板(3篇)
- 全民健康活动策划方案(3篇)
- 小学12.9活动策划方案(3篇)
- 水池卷材施工方案(3篇)
- 农场活动定制方案策划(3篇)
- 汽车消音施工方案(3篇)
- 中职中式面点说课课件
- 2025年贵州省中考物理试卷真题(含答案详解)
- 企业公司情报管理制度
- 鹦鹉热治疗讲课件
- 江西司法警官语言测试题及答案
- T/CWAN 0015-2020钎焊接头质量评价规范
- 水电合同协议模板下载
- 花球啦啦操课件
- 《留置导尿护理指南》课件
- 陕旅版三年级英语下册教学计划
- 绿色施工实施策划方案
评论
0/150
提交评论