1、程序类课程设计 说明书 指导教师: 姓 名: 学 号: 年 月 日 一需求分析一需求分析 本应用程序是基于 C+的教师排课程序 该程序可以根据教师对 课程的期望,课程优先级对相应课程,教师进行合理分配,既可以使 每位教师达到最大满意度, 又能很好的安排课程, 使课程不出现重排, 漏排等情况 .根据要求,本程序应该实现课程信息载入,教师信息载入,保存 相关信息到文件,排课,打印排课结果等同时,我们还要为使用者 即客户提供一个人性化的界面,使系统应用方便快捷更重要的是, 我们还要提供相应的错误处理机制 二系统功能实现二系统功能实现 根据需求分析,本程序实现以下功能: . 主菜单 主菜单主要是为客户
2、显示本程序的主要功能及相关操作 提示, 人性化的主菜单可以让客户很容易的使用程序相关功能 本 程序主菜单设计简洁,界面简单,使用者可以根据相关提示进行 操作,方便快捷 . 信息载入 信息载入模块主要实现教师信息载入和课程信息载 入教师信息主要包括教师姓名,教师号,工作量及对相应课程 的期望值课程信息主要包括课程名,课程号,周学时,总学时, 优先级 此模块是使用者(客户)把相关信息载入数据库进行排课操 作的前提,它提供了良好的交互界面,操作简单方便 . 信息保存 信息保存模块主要实现教师信息和课程信息的保存功 能由于教师信息和课程信息载入量大,为以后查询方便最好存 储在文件中,同时也算对数据的备
3、份此模块提供路径选择功能, 客户可以根据自己的情况选择相应的路径存储信息文件,安全高 效 . 教师排课 教师排课模块主要实现根据课程优先级,教师对课程 的期望值大小来安排课程情况的功能此模块考虑到不同课程优 先级可能相同及不同教师对某门课程期望值可能相同的情况为 让教师达到最大满意度,本模块采用随机分配原则,通过生成伪 随机数来安排期望值相同的课程,从而达到公平公正原则同时, 本模块实现每门课都得到安排, 不出现漏课, 重复选取的功能 达 到教师工作量得到满足且不会操工作量,合理有效 . 排课结果打印 此模块主要实现排课完成后相关信息的显示功 能主要显示教师姓名,工作量,教授课程打印界面简单明
4、了, 易于查看 . 系统保护 系统保护模块主要实现非法操作时对程序的损坏或恶 意破坏 此模块主要应用于当操作人员(客户)没有事先载入教师信 息和课程信息就进行保存,排课操作行为时的保护安全可靠 . 退出 此模块主要实现操作完毕后的退出功能退出时,此模块 会显示一个感谢界面,并完成后台资源释放等功能,很人性化 三流程图三流程图 程序流程图程序流程图 四数据结构设计四数据结构设计 .结点设计 本程序主要采用结构体存储相关结点信息,教师信息 通过 tlist 结构体实现,其中包括教师姓名,教师号,工作量,相应课 程期望值及预留缓存区空间课程信息通过 clist 结构体实现,其中 包括课程名,课程号,周学时,总学时,优先级,被选标记(是否已 经分配)等信息tclist 结构体存储教师期望值比较高的课程信息,包 括课程名及教师对其期望值 .结构设计 本程序采用结构体存储结点信息,通过链表完成相关 主菜单 提示按键选择操作