- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
河 南 城 建 学 院
Henan University of Urban Construction
《面向对象程序设计》
课程设计报告
学 号: 084412153
姓 名: 张世斌
专 业: 软件工程
题 目: 教师排课程序
指导老师: 周二强 苏靖枫
设计时间: 第十七周
计算机科学与工程系
2013 年06 月
目录
一.设计目的 2
二.设计内容 3
三.概要设计 4
(一).功能模块图 4
(二).各个模块详细的功能描述 4
四.详细设计 5
(一).结点设计 5
(二).结构设计 5
(三).子类设计 6
(四).类设计 6
(五).算法设计 6
五.测试数据及运行结果 8
(一).正常数据测试 8
(二).非正常数据测试 11
六.设计技巧及体会 12
七.参考文献 13
八.源程序 13
一.设计目的
(二).各个模块详细的功能描述
主菜单 主菜单的主要是为客户显示本程序的主要功能及相关操作,人性化的主菜单可以让客户很容易地使用程序相关功能。本程序主菜单设计简洁,界面简单,使用者可以根据相关提示进行操作,方便快捷。
信息载入 信息载入模块主要实现教师信息载入和课程信息载入,教师信息主要包括教师姓名,教师编号,工作量及对相应课程的期望值。课程信息主要包括课程名,课程号,周学时,总学时,优先级。此模块是使用者(客户)把相关信息载入数据库进行排课操作的前提,它提供了良好的交互界面,操作简单方便。
信息保存 信息保存模块主要实现教师信息和课程信息的保存功能。由于教师信息和课程信息载入量大,为以后查询方便最好存储在文件中,同时也算对数据的备份。此模块提供路径选择功能,客户可以根据自己的情况选择相应的路径存储信息文件,安全高效。
教师排课 教师排课模块主要实现根据课程优先级,教师对课程的期望值大小来安排课程情况的功能。此模块考虑到不同课程优先级可能相同及不同教师对某门课程期望值可能相同的情况,为了让教师达到最大满意度,本模块采用随机分配原则,通过生成伪随机数来安排期望值相同的课程,从而达到公平公正原则。同时本模块实现每门课都得到安排,不出现漏课,重复选择的功能,达到教师工作量得到满足且超出工作量,合理有效。
排课结果打印 此模块主要实现排课完成后相关信息的显示功能,主要显示教师姓名,工作量,教授课程。打印页面简单明了,易于查看。
系统保护 系统保护模块主要实现非法操作是对程序的损坏或恶意破坏。此模块主要应用于当操作人员(客户)没有事先载入教师信息和课程信息就进行保存及排课操作行为的保护,安全可靠。
退出 此模块只要事先操作完毕后的退出功能。退出时,此模块会显示一个感谢界面,并完成后台资源释放等功能,很人性化。
四.详细设计
(一).结点设计
本程序主要采用结构体存储相关结点信息,教师信息通过tlist结构体实现,其中包括教师姓名,教师号,工作量,相应课程期望值及预留缓存区空间。课程信息通过clist结构体实现,其中包括课程名,课程号,周学时,总学时,优先级,被选标记(是否已经分配)信息。tclist结构体存储教师期望值比较高的课程信息,包括课程名及教师对其期望值。
(二).结构设计
本程序采用结构体存储结点信息,通过链表完成相关操作,如查询,删除等,链表添加删除结点灵活高效。
(三).子类设计
本程序设计一个教师类和一个课程类,教师类在其内部主要实现初始化教师链表(教师信息),保存教师信息到文件功能。课程类主要实现初始化课程链表(课程信息),保存课程信息到文件功能。同时,在教师类中增加一个print友元函数,实现由给定字符串查找相信课程结点并返回指向该结点指针的功能。.
(四).类设计
教师类:数据成员 tlist* pt
功能说明 pt为指向教师结点的指针,维持着整个教师链表,通过它可以动态添加删除教师信息
成员函数 void initdata(); void save();
friend void print(teacher,ptlist);
功能说明 initdata()初始化教师链表(教师信息),
save()保存教师信息到文件。
print(teacher,ptlist)排课结果打印
课程类:数据成员 clist* pc
功能说明 pc为指向课程结点的指针,维持着整个课程链表,通过它可以动态添加删除课程信息。
成员函数 void initdata(); void save();
friend pclist convert(course,
您可能关注的文档
最近下载
- 国家安全知识竞赛试题(含答案).docx VIP
- 水利工程质量保证体系.doc VIP
- 注册化工工程师专业案例分析.pdf VIP
- 5.1植被(教学课件)(共50张PPT)高中地理人教版(2019)必修一.pptx VIP
- 小学初中手抄报word可编辑模板 抗日小报.doc VIP
- Part1-2+Unit2+Community+Life课件-【中职专用】2023-2024学年高二英语(高教版2021基础模块3).pptx VIP
- 2023-2024学年四川省成都市七中物理九上期中统考模拟试题含解析.doc VIP
- 大学英语6级词汇.pdf VIP
- 2025年合肥交通投资控股有限公司校园招聘笔试备考试题及答案解析.docx VIP
- 执法证考试题库(附答案).doc VIP
文档评论(0)