欢迎来到天天文库
浏览记录
ID:25171355
大小:134.00 KB
页数:9页
时间:2018-11-18
《《教学计划编制》word版》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、(教学计划编制问题)目录1.需求分析………………….3-52.概要设计………………….6-83.详细设计………………..8-134.调试分析………………14-155.用户使用说明…………….156.测试结果………………15-177.附录………………………..17题目:教学计划编制问题(1)需求分析1.1问题描述假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个
2、教学计划编制程序。1.2基本要求(1)输入参数包括:学期总数,一学期的学分上限,每门课的课程名、课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。(2)允许用户采用下列编排策略:使学生在各学期中的学习负担尽量均匀;(3)若根据给定的条件问题无解,则报告适当的信息;否则输出各学年每学期应开设的课程。(2)概要设计存储结构设计分析题目可知,这属于图的拓扑排序,所以要建立链表structCourseHead//表头结点的结构体,保存课程信息{intflag;//标记该门课程是否已经编排intpriornum;//给课程的直接先修课的个数charName[30];/
3、/课程的名字charOfcourse[4];//课程号floatScore;//学分CourseLink*first;//以该门课程为先修的后修课程};structCourseLink//表头结点的链结点,即该门课程的后继课程{intIndex;//该课程在表头结点的下标,CourseLink*next;//下一门与它有公共先修课的课程};structTopo//保存课程安排的最终结果{intlevel;//标记是否平均分配,ArryInTopo*toporesualt;//一个一维数组保存课程的具体安排Topo*next;//下一种课程安排的情况};structAr
4、ryInTopo//用于保存课程编排的具体信息{intIndex;//保存课程的序号intTime;//保存课程的开课时间};structZero//保存可以选择的课程{intzero;//课程在原始数据里的下标Zero*next;//下一个可选课程结点的地址};用到的函数的功能voidInitData();//完成数据初始化voidInitData(intnum);//由课程数目num来完成数据的细节floatInitData(char*b);//方便判断输入数据的准确性而已voidStartTopoSort();//初始化要用到的各个数据再调用递归voidTopo
5、Sort(inttopotempsum,inttime);//递归函数,完成拓扑排序,voidCheck(intindex);//当选择course[index]时,相应的课//程的priornum项要减一voidCheckBack(intindex);//当退选course[index]时,相应的课程//的priornum项要加intZERO();//统计该层递归可以选择的课程//并且完成可选课程的记录voidIfsuccessed();//当课程安排成功时将课程安排记录保存//并对课程安排做评价voidPrint();//根据客户要求输出相应的课程安排voidpr
6、intf0();//界面voidprintf1(int);//负责输出课程信息voidprintf2();//输出课程的联系voidprintf1(FILE*);//负责将课程信息写入文件voidprintf2(FILE*);//将课程的联系写入文件程序主函数关键部分的执行流程图软件介绍判断非退出程序子函数调用调用三次子函数(I)用于正确输入调用右边函数完返回学期总数,学分上限成数据初始化课程总数调用子函数(II)正确输入每一门课程的返回课程名,课程号,学分然后正确输入课程之间的关系子函数初始化各个需要调用子函数(IV)用到的全局变量返调用在每一层
7、递归数然后调用递归函数回递归函数(III)开始时返回该层某种课程递归开始递归可选课程安排成功返回数目并临时保存返回条件合理则递归调用自己调用退选某门课选择某门课调用子函数(VI)返调返当选择某门课时回回回将它的后继课程子函数(VIII)子函数(VII)的先修课个数-1当某一种排序成当退选某门课时功时保存并评估将它的后继课程的先修课个数+1子函数根据客户要求输出课程编排完成了课程的编排测试用例设计学期总数:6一学期的学分上限:10该专业共开课程数目:12(4).调试分析首先,第一次调试递归时,发现在输入合理的数据的情况下,如果数据过大,则不能运行,原因
此文档下载收益归作者所有