课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1计算机科学与技术学院《C高级语言程序设计》课程设计报告(2014/2015学年第一学期)学生姓名:夏彬学生专业:网络工程学生班级:132003学生学号:201320030326指导教师:乔钢柱2015年1月10日2计算机科学与技术学院课程设计成绩评审表课程设计名称《C高级语言程序设计》课程设计课程设计题目教师课程排课系统学生姓名夏彬专业班级网络工程132003同组人无学号201320030326指导教师乔钢柱设计成绩评价内容签字:时间:年月日3计算机科学与技术学院课程设计任务书课程设计名称《C高级语言程序设计》课程设计课程设计题目教师课程排课系统学生姓名夏彬专业班级网络工程132003学号201320030326课程设计任务内容[问题描述]设计一个教师课程排课程序,学校每位教师都有教学工作量,教师对他所希望讲授的课程表达为一个期望值,1,2„,n,其中1是最高的期望值。课程也有优先级,1,2„,n,用来决定将课程分给教师的顺序,其中1是高的优先级。设计一个程序针对某些课程给某些教师进行排课。[要求](1)程序运行时,用户输入教师信息(姓名、教师号、工作量)、课程信息(课程名、课程号、周学时、总学时、优先级),教师对所希望讲授课程的期望值以及教学工作量等相关信息,所有信息应保存在文件中。(2)程序根据课程的优先级以及教师对课程的期望值进行排课。最后输出排课情况,即某位老师上某门课程,以及某位老师的工作量。(3)可以实现对文件的修改。(4)可以在各个界面中实现退出以及进入的循环。(5)可以退出本系统。(6)程序应能实现对不少于20门课和10个教师的排课,并且使每个教师的满意度达到最大,不存在工作量不满的教师以及未分配的课等情况。指导教师:时间:年月日4目录一、设计问题描述与分析…………………………………51.1、设计问题详细描述…………………………………51.2、设计问题分析…………………………………6二、算法设计与描…………………………………7三、程序设计编码与测试…………………………………83.1、运行程序…………………………………83.2增加信息…………………………………93.2.1、教师人数输入:10………………………………………93.2.2、输入课程数:20………………………………………93.2.3、按提示输入:1………………………………………103.2.4、输入:2,输入课程数据………………………………………113.2.5、输入:3,并输入教师对课程的满意度期望值……………………113.2.6、输入:4,排课………………………………………123.2.7、输入:5,输出排课结果………………………………………12四、设计过程总结与分析…………………………………13五、附录…………………………………145.1附录一…………………………………145.2附录二…………………………………325.2.1、问题描述………………………………………325.2.2、问题分析………………………………………325.2.3、测试截图………………………………………335.2.4、源代码程序………………………………………345一、设计问题描述与分析1.1、设计问题详细描述某学校每位教师都有教学工作量,教师对他所希望讲授的课程表达为一个期望值,1,2,…,n,其中1是最高的期望值。课程也有优先级,1,2,…,n,用来决定将课程分给教师的顺序,其中1是高的优先级。设计一个程序针对某些课程给某些教师进行排课。要求:(1)程序运行时,用户输入教师信息(姓名、教师号、工作量)、课程信息(课程名、课程号、周学时、总学时、优先级),教师对所希望讲授课程的期望值以及教学工作量等相关信息,所有信息应保存在文件中。(2)程序根据课程的优先级以及教师对课程的期望值进行排课。最后输出排课情况,即某位老师上某门课程,以及某位老师的工作量。(3)可以实现对文件的修改。(4)可以在各个界面中实现退出以及进入的循环。(5)可以退出本系统。(6)程序应能实现对不少于20门课和10个教师的排课,并且使每个教师的满意度达到最大,不存在工作量不满的教师以及未分配的课等情况。61.1.1、期望值筛选功能此功能是提供对教师对课程的期望值以及课程的优先级进行筛选,其中期望值或优先值为1最大,依次类推,主要目的是为了能够尽可能的满足教师的期望以及课程的优先或后。1.1.2、自动排课根据以上优先值以及期望值的筛选进行排课,实现对教师及课程的编排。1.2、设计问题分析1.2.1、分析根据设计需求的详细分析可知,程序需要实现对一系列数据信息的存储、管理、应用功能。需要信息文件存取功能,实现信息从文件输入和输出至文件,信息管理功能,实现对基本信息的录入、查找、删除、修改功能,信息应用功能,实现教师及课程成功编排。由此可以绘制如下系统设计框图:图1-1系统设计框图1.2.2、数据类型的分析命令对应函数功能描述1input_teacher输入数据并写入文件2input_course输入数据并写入文件3input_num输入数据并写入文件4arranging排课5print输出排课结果6print_help帮助77print_teacher输出文件信息8print_course输出文件信息9print_num输出文件信息10change修改文件信息(1)教师类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.退出二、算法设计与描述根据规定的类对象及函数功能,可以画出流程图,如下所示。首先分别对教师对课程的期望值进行筛选,然后再对课程的优先值进行筛选,再根据得出的情况进行排课,并判断是否最大程度的使期望值和优先值得到满足,最后输出结果。操作完后返回再另行操作。8三、程序设计编码与测试3.1、运行程序将源程序编译、链接后生成可执行文件,如下图所示:图3-1运行初始阶段,显示输入教师人数9运行主函数时,首先要调用主函数,该主函数主要是用输出函数来输出的。3.2增加信息3.2.1、教师人数输入:10图3-2-1输入教师人数后3.2.2、输入课程数:20图3-2-2输入课程数后当教师人数及课程数输入完后,可以在输入:0,测试是否可以使用退出,同理,也可以输入0~10任意数。103.2.3、按提示输入:1图3-2-3-1输入1后显示11图3-2-3-2图3-2-3-3输入10个教师的信息这一函数实现了对字符串赋值的功能【1】。系统提示输入“编号、教师姓名以及工作量”的相应信息,然后用scanf函数获取输入数据。每次输入结束后,系统会自动跳到下一个,知道输完教师应有个数为止。然后可以输入其他数字,执行其他步骤。3.2.4、输入:2,输入课程数据图3-2-4输入2,并输入部分课程数据这一函数实现了对字符串赋值的功能【2】,系统会提示输入相应的课程信息,然后用scanf函数获取输入数据,然后执行下一语句。每次输入结束后,系统会自动跳到下一个,知道输完课程应有个数为止。然后可以输入其他数字,执行其他步骤。123.2.5、输入:3,并输入教师对课程的满意度期望值图3-2-5-1图3-2-5-2输入教师对课程的满意度输入“3”后可以输入教师对课程的满意度期望值,执行while(1)语句,直到输完10名教师对20门课程的期望值,然后可以输入其他数字,执行其他步骤。3.2.6、输入:4,排课图3-2-6排课输入“4”后开始执行while(1》0)语句,开始实现初始的排课,然后可以输入其他数字,执行其他步骤。3.2.7、输入:5,输出排课结果13图3-2-5输出排课结果输入“5”后则开始执行voidprint()语句,输出排课结果。然后还可以输入“6”、“7”、“8”、“9”、“10”,而执行相关语句,实现相关的信息。四、设计过程总结与分析此次的课程设计是我第一次写一个较为完整的、系统性的程序,也是我写的最长的程序。虽然代码的多少并不能代表程序的复杂与否,但是通过编写这么长的程序,使我感受到了需求分析与程序结构设计的重要性。如果先期没有做好分析、规划工作,到后期越写下去就越会发现维护困难,重构的代价越来越大,也会导致程序越来越繁杂。通过课程设计,我一方面体会到了准备工作的重要性,另一方面也对编程有了更好的理解。虽然准备工作很重要,但是我们在开始时就无法考虑到每一个细节,甚至程序模块全部完成时,也不可能面面俱到,没有漏洞。因此,在编程过程中边写边学才是最好的方法,要充分利用好书籍资料以及互联网,通过对一个难题的解决,可以很深刻的了解一个知识点。一个好的程序员是从错误中成长起来的。最后,对于程序设计过程中的错误和解决方法要及时的总结,思路也要经常梳理,这样才能将自己的经验教训很好的保留下来,在今后的开发过程中受益。14附录一:源代码程序Teacher.h:#includeiostream.h#includestring.hclassteacher{private:charname[11];intid;intwork_load;inttotal;public:teacher();voidset_teacher(char*pn,inti,intw);voidset_total(intt){total=t;}char*get_name(){returnname;}intget_id(){returnid;}intget_work_load(){returnwork_load;}intget_total(){returntotal;}voidprint();};teacher::teacher(){strcpy(name,无);id=0;work_load=0;total=0;}voidteacher::set_teacher(char*pn,inti,intw){strcpy(name,pn);id=i;work_load=w;}15voidteacher::print(){cout姓名:nameendl;cout编号:idendl;cout工作量:work_loadendl;}Course.h:#includestring.hclasscourse{private:charcourse_name[15];intcourse_id;intweek_hour;inttotal_hour;intN;public:course(void);voidset_course(char*pname,inti,intw,intt,intn);char*get_course_name(){returncourse_name;}intget_course_id(){returncourse_id;}intget_week_hour(){returnweek_hour;}intget_total_hour(){returntotal_hour;}intget_N(){returnN;}voidprint();};course::course(void){strcpy(course_name,无);course_id=0;week_hour=0;total_hour=0;N=0;}voidcourse::set_course(char*pname,inti,intw,intt,intn){strcpy(cour

1 / 35
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功