![C++课程设计设计一个排课程序_第1页](http://file4.renrendoc.com/view/0869ec281c8e7d43096101e4bb0185d5/0869ec281c8e7d43096101e4bb0185d51.gif)
![C++课程设计设计一个排课程序_第2页](http://file4.renrendoc.com/view/0869ec281c8e7d43096101e4bb0185d5/0869ec281c8e7d43096101e4bb0185d52.gif)
![C++课程设计设计一个排课程序_第3页](http://file4.renrendoc.com/view/0869ec281c8e7d43096101e4bb0185d5/0869ec281c8e7d43096101e4bb0185d53.gif)
![C++课程设计设计一个排课程序_第4页](http://file4.renrendoc.com/view/0869ec281c8e7d43096101e4bb0185d5/0869ec281c8e7d43096101e4bb0185d54.gif)
![C++课程设计设计一个排课程序_第5页](http://file4.renrendoc.com/view/0869ec281c8e7d43096101e4bb0185d5/0869ec281c8e7d43096101e4bb0185d55.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《计算机应用基础 》课件-第1章
- 2025-2030全球定制基因合成行业调研及趋势分析报告
- 2025年全球及中国理财预算记账服务行业头部企业市场占有率及排名调研报告
- 2025年全球及中国智能家用洗衣机行业头部企业市场占有率及排名调研报告
- 2025-2030全球鼓式限位开关行业调研及趋势分析报告
- 2025年全球及中国伪造 GPS 定位 App行业头部企业市场占有率及排名调研报告
- 2025年全球及中国冷冻毛发研磨仪行业头部企业市场占有率及排名调研报告
- 2025年全球及中国电动汽车绿地制造行业头部企业市场占有率及排名调研报告
- 2025-2030全球速冻青豆行业调研及趋势分析报告
- 必杀04 第七单元 我们邻近的地区和国家(综合题20题)(解析版)
- 2025年南京信息职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025-2030年中国硫酸钾行业深度调研及投资战略研究报告
- 课题申报参考:社会网络视角下村改居社区公共空间优化与“土客关系”重构研究
- 乡镇卫生院2025年工作计划
- 2024年山东省泰安市初中学业水平生物试题含答案
- 机械工程类基础知识单选题100道及答案解析
- 冠心病课件完整版本
- 2024年卫生资格(中初级)-中医外科学主治医师考试近5年真题集锦(频考类试题)带答案
- 中国大百科全书(第二版全32册)08
- 四川省宜宾市中学2025届九上数学期末统考模拟试题含解析
- 微生物组与胆汁性肝硬化
评论
0/150
提交评论