資源描述:
《高校自動(dòng)排課系統(tǒng)方案》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、//簡(jiǎn)化版高校自動(dòng)排課系統(tǒng)//排課任務(wù)簡(jiǎn)化后包含:年級(jí)專業(yè)(教學(xué)班級(jí),如計(jì)科13)、課程名稱、任課教師、上課地點(diǎn)和時(shí)間//教學(xué)班級(jí)簡(jiǎn)化為不分人數(shù),不分專業(yè)方向。//上課教室簡(jiǎn)化為不分理論課、實(shí)驗(yàn)課,不分教室容納人數(shù),不分是否多媒體。//上課時(shí)段簡(jiǎn)化為:一周五天,周一到周五,白天上課,上午四節(jié),下午四節(jié),//1~2(8:00~9:400)、3~4(10:00~11:40)、5~6(14:00~15:40)、7~8(16:00~17:40)//為了便于處理,將五天的所有上課時(shí)段用數(shù)字0~19表示//上課地點(diǎn)和時(shí)間
2、組合成一個(gè)整數(shù)數(shù)組(位集,bitset),每20個(gè)為1組為一個(gè)教室的上課時(shí)段安排//約束條件:1、教學(xué)班級(jí)的上課時(shí)間不能沖突//2、每個(gè)教室不能同時(shí)安排多個(gè)教學(xué)班級(jí)上課//3、任課教師的上課時(shí)間不能沖突//#include#include#include#include#include#include#include#includeusingnamespacestd;//原
3、始數(shù)據(jù)文件中的每一行數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)structschedule{stringgrade_special;//年級(jí)專業(yè)stringcourse;//課程名稱stringteacher;//任課教師stringtotal_hour;//總學(xué)時(shí)stringteach_hour;//講課學(xué)時(shí)stringexperiment_hour;//實(shí)驗(yàn)學(xué)時(shí)stringpractice_hour;//課程實(shí)踐學(xué)時(shí)stringcredit;//學(xué)分stringweek_hour;//周學(xué)時(shí)stringstart_stop;//起止
4、周stringspeciality_orientation;//專業(yè)方向stringperson_num;//人數(shù)};//排課任務(wù)的數(shù)據(jù)結(jié)構(gòu)structarrange{arrange(stringgs,stringc,stringt,intct=-1):grade_special(gs),course(c),teacher(t),classroom_time(ct){}stringgrade_special;//年級(jí)專業(yè)stringcourse;//課程名稱stringteacher;//任課教師//stri
5、ngclassroom;//上課地點(diǎn)//stringtime;//上課時(shí)間intclassroom_time;//上課地點(diǎn)、時(shí)間};//教師倒排表數(shù)據(jù)結(jié)構(gòu),通過教師姓名找到該教師的排課情況structteacher_inverted{teacher_inverted(stringtea,intcl=-1,intar=-1):teacher(tea),class_loc(cl),arrange_loc(ar){}stringteacher;intclass_loc;intarrange_loc;};//教室倒排
6、表數(shù)據(jù)結(jié)構(gòu),通過教室名稱查找該教室的排課情況structclassroom_inverted{classroom_inverted(stringcr,intcl=-1,intar=-1):classroom(cr),class_loc(cl),arrange_loc(ar){}stringclassroom;intclass_loc;intarrange_loc;};intmain(intargc,char**argv){if(argc!=3){cout<<"程序調(diào)用格式錯(cuò)誤!調(diào)用格式:csp排課計(jì)劃文件
7、可用教室文件";return0;}ifstreaminfile(argv[1]);vectorplan;strings;getline(infile,s);while(getline(infile,s)){schedulesch;istringstreamrecord(s);record>>sch.grade_special>>sch.course>>sch.teacher>>sch.total_hour>>sch.teach_hour>>sch.experiment_hour>>sc
8、h.practice_hour>>sch.credit>>sch.week_hour>>sch.start_stop>>sch.speciality_orientation>>sch.person_num;plan.push_back(sch);}infile.close();vector>arranges;//整個(gè)系的排課安排vectorarr;/