教师排课系统课程设计报告(C++) 下载本文

内容发布更新时间 : 2024/6/27 1:31:11星期一 下面是文章的全部内容请认真阅读。

面向对象技术与C++课程设计任务书

课 程 面向对象技术与C++ 班级 xxxx 题 目 教师排课系统 指导教师 xxx 完成时间 xxxxx至xxxxx 1.问题描述 每位教师都有教学工作量,教师对他所希望讲授的课程表达为一个期望值,1,2…,n,其中1是最高的期望值。课程也有优先级,1,2…,n,用来决定将课程分给教师的顺序,其中1是最高的优先级。设计一个程序针对某些课程给某些教师进行排课。 2.基本要求 程序运行时,用户输入教师信息(姓名、教师号、工作量)、课程信息(课主要内容程名、课程号、周学时、总学时、优先级),教师对所希望讲授课程的期望值以及教学工作量等相关信息,所有信息应保存在文件中,程序根据课程的优先级以及教师对课程的期望值进行排课。为了公平起见,程序随机分配课程,如果10门课程都有优先级1,程序以随机的顺序将这些课程分给教师,如果10位教师对某门课程的期望值为1,程序应从10位教师中随机选择一个。最后输出排课情况,即某位老师上某门课程,以及某位老师的工作量。 3.测试数据 程序应能实现对不少于20门课和10个教师的排课,并且使每个教师的满意度达到最大,不存在工作量不满的教师以及未分配的课等情况。 设计报告要求1.封面:(格式附后) 2.课程设计任务书 3.课程设计报告: ⑴ 系统总体方案 ⑵ 设计思路和主要步骤 ⑶ 各功能模块和流程图 ⑷ 设计代码 ⑸ 心得体会和参考资料 说明:学生完成课程设计后,提交课程设计报告及软件,要求文字通畅、字迹工整(也可用以打印),文字不少于5000 字,并装订成册。 版面要求 1.题目用黑体三号,段后距18磅(或1行),居中对齐; 2.标题用黑体四号,段前、段后距6磅(或0.3行); 3.正文用小四号宋体,行距为1.25倍行距; 4.标题按“一”、“㈠”、“1”、“⑴”顺序编号。 星期 上机周次 时第17周 间安排

一 1-4 二 1-4 三 1-4 四 1-4 五 1-4 六 日 1

指导时间地点

上机时间,E520 一.系统总体方案:

某学校每位教师都有教学工作量,教师对他所希望讲授的课程表达为一个期望值,1,2?,n,其中1是最高的期望值。课程也有优先级,1,2?,n,用来决定将课程分给教师的顺序,其中1是最高的优先级。设计一个程序针对某些课程给某些教师进行排课。

要求:

(一)程序运行时,用户输入教师信息(姓名、教师号、工作量)、课程信息(课程名、课程号、周学时、总学时、优先级),教师对所希望讲授课程的期望值以及教学工作量等相关信息,所有信息应保存在文件中。

(二)程序根据课程的优先级以及教师对课程的期望值进行排课。最后输出排课情况,即某位老师上某门课程,以及某位老师的工作量。 (三)可以实现对文件的修改。

(四)可以在各个界面中实现退出以及进入的循环。 (五)可以退出本系统。

(六)程序应能实现对不少于20门课和10个教师的排课,并且使每个教师的满意度达到最大,不存在工作量不满的教师以及未分配的课等情况。 方法:

为了公平起见,程序随机分配课程,如果10门课程都有优先级1,程序以随机的顺序将这些课程分给教师,如果10位教师对某门课程的期望值为1,程序应从10位教师中随机选择一个。

2

2.设计思路和主要步骤:

我们使用面向对象程序设计方法的思路进行分析,得出了整个系统应该涉及三个类的信息和操作,分别是教师类,课程类,排课类。各类信息以文件方式的储存以及实现各种功能和界面的实现是在main函数中体现。

(一)教师类 teacher:包括私有数据成员 姓名 name,编号 id ,工作量work_load ,已有工作量 total(方便判断是否排满课)。成员函数包括设置和得到私有成员值的成员函数与输出教师信息的成员函数。

(2)课程类 course:私有成员有 课程名 course_name,课程号 course_id,周课时 week_hour,总课时 total_hour,优先度 N。

(3)由于考虑到这应该是一个完整的排系统,加上我们希望这个系统的界面能够做到清晰、明了,我们经讨论后决定采用一个总操作界面,一个分操作界面。

总操作界面应该包括 (分别对应 1.输入教师信息 2.输入课程信息 3输入教师对课程期望度 4.排课 5.输出排课结果 6.显示操作菜单 7.输出教师文件信息 8.输出课程文件信息 9.输出教师期望度文件信息 10.修改文件信息 0.退出)

修改文件信息界面中又因该包括 1.修改教师文件 2.修改课程文件 3.修改教师期望度信息 0.退出

3