版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、荆楚理工学院课程设计成果学院:计算机工程学院_班级:09级计算机科学与技术(一)班学生姓名:李其德学号:设计地点(单位)观涧3栋102宿舍一设计题目:设计一个排课程序一完成日期:2011年12月30日指导教师评语:成绩(五级记分制):_教师签名:_C+面向对象程序设计课程设计目录-H-第一节课程设计的问题描述H-第二节本次设计的基本要求A/YH-第三节源程序第四节测试数据及结果第五节总结第六节参考资料课程设计的问题描述每位教师都有教学工作量,教师对他所希望讲授的课程表达为一个期望值,1,2.,n,其中1位最高的期望值。课程也有优先级,1,2,n,用来决定将课程分给教师的顺序,其中1时最高的优先
2、级。设计一个程序针对某些课程给某些教师进行排课。本次设计的基本要求程序运行时,用户输入教师信息(姓名、教师号、工作量)、课程信息(课程名、课程号、周学时、总学时、优先级)、教师对所希望讲授课程的期望值以及教学工作量等相关信息,所有信息应保存在文件中,程序根据课程的优先级以及教师对课程的期望值进行排课。为了公平起见,程序随机分配课程,如果10门课程都有优先级1,程序以随机的顺序将这些课程分给教师,如果10位教师对某门课程的期望值为1,程序应从10位教师中随机选择一个。最后输出排课情况,即某位老师上某门课程,以及某位老师的工作量。测试数据:程序应能实现对不少于20门课和10个教师的排课,并且使每个
3、教师的满意度达到最大,不存在工作量不满的教师以及未分配的课等情况。实现提示:可定义一个教师类存放教师信息,所有教师的信息可以用链表存储;定义一个课程类存放课程信息,所有课程的信息可以用链表存储;定义一个排课类进行排课,排课类可以访问课程和教师信息。选作内容:对两个同类班级安排一学期(20周)的课程,程序应能处理某些限制,如一个老师不能同时给两个班上课。A/yll第三节源程序#include#include#include#include#defineN10#defineM20#defineSIZE40usingnamespacestd;typedefstructtcnodecharname20
4、;intipri;tclist,*ptclist;typedefstructnodecharname20;charnum20;intwork_time;tclisttcM;charcbufSIZE;structnode*next;tlist,*ptlist;typedefstructNodecharname20;charnum20;intweek_time;intall_time;intpriority;boolmc;/是否被选structNode*next;clist,*pclist;classteacherpublic:teacher();teacher();voidinitdata();
5、voidsave();friendvoidprint(teacher&,ptlist);tlist*pt;classcoursepublic:course();course();voidinitdata();voidsave();friendpclistconvert(course&,char*s);private:clist*pc;teacher:teacher()pt=NULL;teacher:teacher()ptlistp;while(pt)p=pt;pt=pt-next;deletep;voidteacher:initdata()chartag;ptlistp=pt;ptlists;
6、intt=0;coutvv请输入教师信息:vvendl;coutvv姓名t教师号t工作量vvendl;doif(t=1)coutvv请输入教师信息:vvendl;coutvv姓名t教师号t工作量vvendl;s=(ptlist)malloc(sizeof(tlist);cins-names-nums-work_time;coutvv请输入相应课程名及期望值:vvendl;for(inti=0;ivM;i+)s-tci.ipri;fflush(stdin);s-next=NULL;if(!pt)pt=s;p=pt;elsep-next=s;p=p-next;t+;cou
7、tvv是否继续输入信息:vvendl;fflush(stdin);cintag;system(cls);while(tag=y|tag=Y)&tvN);voidteacher:save()ptlistp=pt;charpath20=D:teacher.txt;charstr50=0;coutvv请选择保存教师信息文件的路径:vvendl;cinpath;ofstreamoutfile(path);if(!outfile)cerrvv保存失败,请检查所选路径是否正确!vvendl;return;sprintf(str,姓名t教师号t工作量n);outfile.write(char*)str,st
8、rlen(str);while(p)sprintf(str,%st%st%dn,p-name,p-num,p-work_time);outfile.write(char*)str,strlen(str);sprintf(str,对相应课程的期望值:n);outfile.write(char*)str,strlen(str);for(inti=0;ivM;i+)sprintf(str,%st%dn,,p-tci.ipri);outfile.write(char*)str,strlen(str);sprintf(str,n);outfile.write(char*)str,st
9、rlen(str);p=p-next;outfile.close();coutvv保存成功!vvendl;course:course()pc=NULL;course:course()pclistp;while(pc)p=pc;pc=pc-next;deletep;voidcourse:initdata()pclistp=pc;pclists;chartag;inti=0;coutvv请输入课程信息:vvendl;coutvv课程名t课程号t周学时t总学时t优先级vvendl;doif(i=1)coutvv请输入课程信息:vvendl;coutvv课程名t课程号t周学时t总学时t优先级vvend
10、l;s=(pclist)malloc(sizeof(clist);cins-names-nums-week_times-all_times-priority;fflush(stdin);s-mc=true;s-next=NULL;i+;if(!pc)pc=s;p=pc;elsep-next=s;p=p-next;coutvv是否继续载入课程信息?y/Yvvendl;cintag;system(cls);while(tag=y|tag=Y);voidcourse:save()charpath20=D:course.txt;pclistp=pc;charstr100=0;coutvv请输入文件保存
11、路径:vvendl;cinpath;ofstreamoutfile(path);if(!outfile)cerrvv保存失败,请检查输入路径是否正确;return;sprintf(str,课程名t课程号t周学时t总学时t优先级n);outfile.write(char*)str,strlen(str);while(p)sprintf(str,%st%st%dt%dt%dn,p-name,p-num,p-week_time,p-all_time,p-priority);outfile.write(char*)str,strlen(str);p=p-next;outfile.close();cou
12、tvv保存成功!vvendl;voidsort(teacher&t,course&c)ptlistq=t.pt;ptlistn=t.pt;ptlistm=n;intsum=0;intnum=-1;srand(time(0);for(inti=0;inext;if(m=NULL)break;for(intj=0;jtci.ipri=n-tcj.ipri)&(0=strcmp(,)num=rand()%2;switch(num)case0:(convert(c,)-mc=false;break;case1:(convert(c,q-t
13、)-mc=false;break;default:break;n=n-next;while(q)for(inti=0;)-mc)sum+=(convert(c,)-all_time;(convert(c,)-mc=false;if(i=0)strcpy(q-cbuf,);elsestrcat(q-cbuf,);strcat(q-cbuf,);if(sum=q-work_time)break;sum=0;q=q-next;coutvv课程已排好!vvendl;/testvoidpr
14、int(teacher&t)ptlistp=t.pt;coutvv最终排课情况:vvendl;coutvv教师姓名t工作量t教授课程vvendl;while(p)coutvvp-namevvttvvp-work_timevvtvvp-cbufvvendl;p=p-next;pclistconvert(course&c,char*s)pclistp=c.pc;while(p)if(0=strcmp(p-name,s)returnp;elsep=p-next;coutvv应用程序出错!vvendl;returnNULL;teachertea;coursecou;voiddis_menu()bool
15、ttag=false;boolctag=false;chartag;intchoice=0;dosystem(cls);cout欢迎使用教师排课系统,请根据提示完成相关操作l:载入教师信息vvendl;coutvv2:载入课程信息vvendl;coutvv3:存储教师信息vvendl;coutvv4:存储课程信息vvendl;coutvv5:教师排课vvendl;coutvv6:打印排课结果vvendl;coutvv0:退出vvendl;fflush(stdin);coutvv请输入选择:vvendl;cinchoice;switch(choice)casel:system(cls);cout
16、vv*教师信息载入*vvendl*tea.initdata();ttag=true;break;case2:system(cls);coutvv*课程信息载入*vvendl,cou.initdata();ctag=true;break;case3:system(cls);coutvv*教师信息保存*vvendl,if(!ttag)coutvv请先载入教师信息vvendl;elsetea.save();break;case4:system(cls);coutvv*课程信息保存*vvendl;if(!ctag)coutvv请先载入课程信息vvendl;elsecou.save();break;ca
17、se5:system(cls);coutvv*教师排序界面*if(!ttag|!ctag)coutvv请先载入相关信息vvendl;elsesort(tea,cou);break;case6:system(cls);coutvv*排课信息打印*vvendl;if(!ttag|!ctag)coutvv请先载入相关信息vvendl;elseprint(tea);break;default:system(cls);coutvvt*THANKSFORYOURUSE*vvendl;coutvvt*感谢使用本系统!*vvendl;exit(0);coutvv系统使用中vvendl;coutvv是否继续其他
18、操作?y/Yvvendl;cintag;while(tag=y|tag=Y);voidmain()dis_menu();第四节测试数据及结果teacherljcoarse?icourse6teachei2coupsellcourse?teachei3course20course8couise2teachei4coupsel2coupsel3teacher5course4icourselteachei6coupseScourse5teachei7counsel?coupsel0teacherScoupseScourselSteacher?couisel?courselSteachei10course3课程守配情况如下:耳M耳MJC啟师姓名课程名tlellcSt2c9c3t3ci2c4t4c7t5cl3clt6c5c20t?cScl?cl0tsc20cl5t9cl?c6tlSci8pessanykeitocontinue,T第五节总结在老师和同学的帮助下,通过自己的努力,终于完成了这次职工信息表的简单课程设计。我经过这段时间的编程,对其中的艰辛
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年中国根茎收割机市场调查研究报告
- 2024年中国外用导尿套市场调查研究报告
- 2024年中国二位三通电磁空气阀市场调查研究报告
- 2024至2030年中国智能节水设备行业投资前景及策略咨询研究报告
- 工程原理课程设计果酱
- 山东农业工程学院《美术(1)》2023-2024学年第一学期期末试卷
- 山东农业工程学院《城市轨道交通票务组织实训》2023-2024学年第一学期期末试卷
- 山东劳动职业技术学院《素描4(油画方向)》2023-2024学年第一学期期末试卷
- 山东劳动职业技术学院《供应商开发与管理》2023-2024学年第一学期期末试卷
- 投影仪课程设计
- 分子生物学试题及答案(整理版)3篇
- 开办酒厂的可行性方案
- 大坝安全监测自动化系统的运行与维护
- P92焊缝IV型蠕变开裂机理
- 农业机械学课件
- 江苏省宿迁市沭阳县2023-2024学年八年级上学期期末数学试题
- 2024普通高中物理课程标准解读
- 二次根式计算专项训练150题含答案
- 2024北京海淀区初三(上)期末化学试卷及答案
- 广东省阳江市江城区2023-2024学年部编版八年级历史上学期期末试卷
- 《中药膏方讲座》课件
评论
0/150
提交评论