logo资料库

教室管理系统(软件工程).doc

第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
资料共17页,剩余部分请下载后查看
一、需求分析
程序整体流程图及各子函数流程图
三、核心技术的实现说明及相应程序段
四、个人总结
五、参考文献
六、源程序
课 程 设 计 任 务 书 一、课程设计题目:教室管理系统 二、课程设计工作自 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 I
沈 阳 航 院 设 计 用 纸 一、需求分析 经过对程序设计题目的分析可知,整个程序的设计实 现大致分为六个模块,其中每一个模块对应一个函数,他 们的功能分别是:读取教室数据函数(load),输入数据函数 (write),确定请求函数(complet),显示菜单函数(menu)。 1、读取教室数据函数 主要实现程序最初运行时读取教 室占用信息并且将其显示至选课系统界面上. 2、输入数据函数 实现的功能是用户借以确认要选的教 室是否被占用. 3、确定请求函数 按照题目的具体要求将新的占用信息 写入到指定的文件中去. 4、显示菜单函数 显示友好的用户界面,引导用户使用该 软件 除上面介绍的功能之外,程序还具有退出功能,可以 在程序的一次运行当中循环执行所有的功能,并根据需要 终止程序的执行。 每一个教室信息都包括教学楼号,教室号,是被占 1
沈 阳 航 院 设 计 用 纸 用.在程序当中,将教室使用信息类型定义为结构体类 型 ,添 加以 及追 加的 教室 信息 直接 写 R 入 D 盘的 file25_1.txt 文件中,其他函数每次对教室占用信息的访 问,其数据来源都是 file25_1.txt 文件,这样做不但可 以保证教室信息数据的一致性,而且可以对教室信息 进行永久保存,保证每次运行程序都可以采用原来的 数据。 程序整体流程图及各子函数流程图 1.程序整体流程图 打开文件 读取文件 读出数据 输入请求 数据分析 保存数据 显示结果 退出系统 2
沈 阳 航 院 设 计 用 纸 1 程序总体结构图 (1)读取输入请求 打开文件 请 输 入 1 3 4 读取数据 返 回 (2)数据分析 输入 2 building 假 classroom A B 真 111,112 121,122 真 information 假 3-4-1~2, 5-4-5~6 真 假 1、 具体功能框图 (1)读取教室数据函数(load) 3
沈 阳 航 院 设 计 用 纸 读写方式打开 D 盘文件 flie25_1.txt 不成功 真 假 循环变量 i=1 当 i 小于 8 时 读取文件中的教室信息 输出“不能打开该文件” 输出教学楼号 教室号 占用信息 循环变量 i=1 当 i 小于 8 时 依次从文件中输出教室信息 回到显示菜单函数(menu) (2)输入数据函数(write) 输出教学楼号 从键盘输入要查询的教学楼号 输出教室号 从键盘输入要查询的教室号 输出上课信息 从键盘输入要上课的时间段 循环变量 i=1 当 i 小于 8 时 依次将输入的信息与文件中原有的信息进行比较,结果相等? 真 假 输出“对不起,该教室已被占用!” 输出“可以使用该教室” 将输入的占用信息保存到原文件中 continue 回到显示菜单函数(menu) 4
沈 阳 航 院 设 计 用 纸 (3) 确定请求函数(complet) 2) 不 是 return; 输出 “ 确 定? 1)是 2)不是” 1) 是 打开 D 盘文件 flie25_1.txt 不成功 真 假 输出“不能打 开该文件 循环变量 i=1 当 i 小于 8 时 依次将新的结构体 数组里的信息写到 原文件中 关闭文件 回到显示菜单函数(menu) return; (4) 显示菜单函数(menu) 真 输出表格 输入值 c=1? 假 读取教室数据 真 输入值 c=2? 假 函数(load) 输入值 c=3? 输入数据函数 真 假 (write) 确定请求 输入 c= 函数 假 (complet) 退出 continue 真 4 5
沈 阳 航 院 设 计 用 纸 三、核心技术的实现说明及相应程序段 本程序主要由四个自定义函数和一个主函数组成,其 中主函数以菜单的形式调用其他函数来实现要求的所有 功能。在这些函数当中,读取教室数据函数(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) ; 6
分享到:
收藏