![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/22/2e761c90-3151-475a-a654-60469c7bca60/2e761c90-3151-475a-a654-60469c7bca60pic.jpg)
![教師排課系統(tǒng)課程設(shè)計報告(c++)_第1頁](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/22/2e761c90-3151-475a-a654-60469c7bca60/2e761c90-3151-475a-a654-60469c7bca601.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 面向?qū)ο蠹夹g(shù)與C++課程設(shè)計任務(wù)書</p><p><b> 一.系統(tǒng)總體方案:</b></p><p> 某學(xué)校每位教師都有教學(xué)工作量,教師對他所希望講授的課程表達為一個期望值,1,2…,n,其中1是最高的期望值。課程也有優(yōu)先級,1,2…,n,用來決定將課程分給教師的順序,其中1是最高的優(yōu)先級。設(shè)計一個程序針對某些課程給某些教師進行排課。&
2、lt;/p><p><b> 要求:</b></p><p> ?。ㄒ唬┏绦蜻\行時,用戶輸入教師信息(姓名、教師號、工作量)、課程信息(課程名、課程號、周學(xué)時、總學(xué)時、優(yōu)先級),教師對所希望講授課程的期望值以及教學(xué)工作量等相關(guān)信息,所有信息應(yīng)保存在文件中。</p><p> ?。ǘ┏绦蚋鶕?jù)課程的優(yōu)先級以及教師對課程的期望值進行排課。最后輸出排課
3、情況,即某位老師上某門課程,以及某位老師的工作量。</p><p> ?。ㄈ┛梢詫崿F(xiàn)對文件的修改。</p><p> (四)可以在各個界面中實現(xiàn)退出以及進入的循環(huán)。</p><p> (五)可以退出本系統(tǒng)。</p><p> ?。┏绦驊?yīng)能實現(xiàn)對不少于20門課和10個教師的排課,并且使每個教師的滿意度達到最大,不存在工作量不滿的教師以
4、及未分配的課等情況。</p><p><b> 方法:</b></p><p> 為了公平起見,程序隨機分配課程,如果10門課程都有優(yōu)先級1,程序以隨機的順序?qū)⑦@些課程分給教師,如果10位教師對某門課程的期望值為1,程序應(yīng)從10位教師中隨機選擇一個。</p><p> 2.設(shè)計思路和主要步驟:</p><p>
5、我們使用面向?qū)ο蟪绦蛟O(shè)計方法的思路進行分析,得出了整個系統(tǒng)應(yīng)該涉及三個類的信息和操作,分別是教師類,課程類,排課類。各類信息以文件方式的儲存以及實現(xiàn)各種功能和界面的實現(xiàn)是在main函數(shù)中體現(xiàn)。</p><p> ?。ㄒ唬┙處燁?teacher:包括私有數(shù)據(jù)成員 姓名 name,編號 id ,工作量work_load ,已有工作量 total(方便判斷是否排滿課)。成員函數(shù)包括設(shè)置和得到私有成員值的成員函數(shù)與輸出教
6、師信息的成員函數(shù)。</p><p> ?。?)課程類 course:私有成員有 課程名 course_name,課程號 course_id,周課時 week_hour,總課時 total_hour,優(yōu)先度 N。</p><p> ?。?)由于考慮到這應(yīng)該是一個完整的排系統(tǒng),加上我們希望這個系統(tǒng)的界面能夠做到清晰、明了,我們經(jīng)討論后決定采用一個總操作界面,一個分操作界面。</p>
7、<p> 總操作界面應(yīng)該包括 (分別對應(yīng) 1.輸入教師信息 2.輸入課程信息 3輸入教師對課程期望度 4.排課 5.輸出排課結(jié)果 6.顯示操作菜單 7.輸出教師文件信息 8.輸出課程文件信息 9.輸出教師期望度文件信息 10.修改文件信息 0.退出)</p><p> 修改文件信息界面中又因該包括 1.修改教師文件 2.修改課程文件 3.修改教師期望度信息 0.退出</p><
8、;p> 3.各功能模塊與流程圖:</p><p> 說明:以下是對應(yīng)上面系統(tǒng)功能模塊實圖的系統(tǒng)流程圖,因為制圖的不便,故只將成功完成一次操作的流程給出,而“各個流程中中途如果輸入了菜單中沒有的項以及數(shù)據(jù)保存文件中沒有的數(shù)據(jù)而被強制退出”的流程因為過于復(fù)雜(每步都要進行判斷)而沒有給出,實際情況讀者朋友一試便知。在此我們對此表示深深的歉意,我們以后一定會努力完善我們各方面的工作的。</p>
9、<p><b> 各功能模塊:</b></p><p><b> (五)程序代碼:</b></p><p> Teacher.h:</p><p> #include<iostream.h></p><p> #include<string.h></
10、p><p> class teacher</p><p><b> {</b></p><p><b> private:</b></p><p> char name[11];</p><p><b> int id;</b></p>
11、<p> int work_load;</p><p> int total;</p><p><b> public:</b></p><p> teacher();</p><p> void set_teacher(char *pn,int i,int w);</p><
12、p> void set_total(int t)</p><p><b> {</b></p><p><b> total=t;</b></p><p><b> }</b></p><p> char *get_name()</p><p
13、> {return name;}</p><p> int get_id()</p><p> {return id;}</p><p> int get_work_load()</p><p> {return work_load;}</p><p> int get_total()</p&g
14、t;<p> {return total;}</p><p> void print();</p><p><b> };</b></p><p> teacher::teacher()</p><p><b> {</b></p><p> str
15、cpy(name,"無");</p><p><b> id=0;</b></p><p> work_load=0;</p><p><b> total=0;</b></p><p><b> }</b></p><p>
16、 void teacher::set_teacher(char *pn,int i,int w)</p><p><b> {</b></p><p> strcpy(name,pn);</p><p><b> id=i;</b></p><p> work_load=w;</p&
17、gt;<p><b> }</b></p><p> void teacher::print()</p><p><b> {</b></p><p> cout<<"姓名:"<<name<<endl;</p><p>
18、 cout<<"編號:"<<id<<endl;</p><p> cout<<"工作量:"<<work_load<<endl;</p><p><b> }</b></p><p><b> Course.h:<
19、/b></p><p> #include<string.h></p><p> class course</p><p><b> {</b></p><p><b> private:</b></p><p> char course_name
20、[15];</p><p> int course_id;</p><p> int week_hour;</p><p> int total_hour;</p><p><b> int N;</b></p><p><b> public:</b></p
21、><p> course(void);</p><p> void set_course(char *pname,int i,int w,int t,int n);</p><p> char *get_course_name()</p><p> {return course_name;}</p><p> i
22、nt get_course_id()</p><p> {return course_id;}</p><p> int get_week_hour()</p><p> {return week_hour;}</p><p> int get_total_hour()</p><p> {return to
23、tal_hour;}</p><p> int get_N()</p><p> {return N;}</p><p> void print();</p><p><b> };</b></p><p> course::course(void)</p><p&g
24、t;<b> {</b></p><p> strcpy(course_name,"無");</p><p> course_id=0;</p><p> week_hour=0;</p><p> total_hour=0;</p><p><b> N
25、=0;</b></p><p><b> }</b></p><p> void course::set_course(char *pname,int i,int w,int t,int n)</p><p><b> {</b></p><p> strcpy(course_n
26、ame,pname);</p><p> course_id=i;</p><p> week_hour=w;</p><p> total_hour=t;</p><p><b> N=n;</b></p><p><b> }</b></p>&l
27、t;p> void course::print()</p><p><b> {</b></p><p> cout<<"課程名:"<<course_name<<endl;</p><p> cout<<"編號:"<<course_
28、id<<endl;</p><p> cout<<"周學(xué)時:"<<week_hour<<endl;</p><p> cout<<"總學(xué)時:"<<total_hour<<endl;</p><p> cout<<"優(yōu)
29、先級:"<<N<<endl;</p><p><b> }</b></p><p> Arrange.h:</p><p> class arrange</p><p><b> {</b></p><p><b> pr
30、ivate:</b></p><p><b> int x;</b></p><p><b> int y;</b></p><p><b> public:</b></p><p> arrange(void)</p><p>&l
31、t;b> {</b></p><p><b> x=0;</b></p><p><b> y=0;</b></p><p><b> }</b></p><p> void set_x(int a)</p><p><
32、b> {</b></p><p><b> x=a;</b></p><p><b> }</b></p><p> void set_y(int b)</p><p><b> {</b></p><p><b>
33、 y=b;</b></p><p><b> }</b></p><p> int get_x()</p><p> {return x;}</p><p> int get_y()</p><p> {return y;}</p><p><
34、b> };</b></p><p><b> 排課.cpp:</b></p><p> #include<iostream.h></p><p> #include <stdlib.h></p><p> #include<fstream.h></p&
35、gt;<p> #include<iomanip.h></p><p> #include<stdio.h></p><p> #include"teacher.h"</p><p> #include"course.h"</p><p> #includ
36、e"arrange.h"</p><p> #include <time.h></p><p> //using namespace std;</p><p> void input_teacher(teacher *t,int n,int m); //教師基本數(shù)據(jù)輸入</p><p> void i
37、nput_course(course *c,int m); //課程基本信息輸入</p><p> void input_num(int **num,int n,int m); //教師對課程滿意度輸入</p><p> void arranging(int **num,teacher *t,course *c,arrange *a,int n,int m); //排課</
38、p><p> void print(teacher *t,course *c,arrange *a,int m); //輸出排課結(jié)果</p><p> void print_help(); //幫助函數(shù)</p><p> void print_teacher(); //輸出教師信息</p><p> void print_course(
39、); //輸出課程信息</p><p> void print_num(); //輸出教師對課程的滿意度</p><p> void change(int **num,teacher *t,course *c,arrange *a,int n,int m); //修改文件信息</p><p> void change_teacher(teach
40、er *t,int n); //修改教師信息</p><p> void change_course(course *c,int m); //修改課程信息</p><p> void change_num(teacher *t,course *c,int **num,int n,int m); //修改教師對課程滿意度</p><p> void
41、main()</p><p><b> {</b></p><p> int i,n,m;</p><p> cout<<"==========================教師排課系統(tǒng)==========================="<<endl;</p><p&g
42、t; cout<<"教師人數(shù):";cin >>n;</p><p> cout<<"課程數(shù):";cin>>m;</p><p> int** num=new int*[n]; //為每一行分配空間</p><p> for(i=0; i<n; ++i) <
43、;/p><p><b> {</b></p><p> num[i]=new int[m];</p><p><b> }</b></p><p> teacher *t;</p><p> course *c;</p><p> arrang
44、e *a;</p><p> t=new teacher[n];</p><p> c=new course[m];</p><p> a=new arrange[m];</p><p> if(t==NULL||c==NULL||a==NULL)</p><p> { cout<<"內(nèi)
45、存分配失敗"<<endl;</p><p><b> return ;</b></p><p><b> }</b></p><p> cout<<" 1. 輸入教師基本數(shù)據(jù)\n";</p><p> cout<<"
46、; 2. 輸入課程基本數(shù)據(jù)\n";</p><p> cout<<" 3. 輸入教師對課程滿意度\n";</p><p> cout<<" 4. 排課\n";</p><p> cout<<" 5. 輸出排課結(jié)果\n";</p>&l
47、t;p> cout<<" 6. 幫助\n";</p><p> cout<<" 7. 輸出教師信息\n";</p><p> cout<<" 8. 輸出課程信息\n";</p><p> cout<<" 9. 輸出教師對課程滿意
48、度\n";</p><p> cout<<" 10.修改文件數(shù)據(jù)\n";</p><p> cout<<" 0. 退出\n";</p><p> cout<<"\n 輸入你的選擇:";</p><p><b>
49、 int ch;</b></p><p><b> do </b></p><p><b> {</b></p><p> //cout<<"\n\n 請選擇:\n";</p><p> //cout<<" 1. 輸
50、入教師基本數(shù)據(jù)\n";</p><p> //cout<<" 2. 輸入課程基本數(shù)據(jù)\n";</p><p> //cout<<" 3. 輸入教師對課程滿意度\n";</p><p> //cout<<" 4. 排課\n";</p>&
51、lt;p> //cout<<" 5. 輸出排課結(jié)果\n";</p><p> //cout<<" 6. 幫助\n";</p><p> //cout<<" 0. 退出\n";</p><p> //cout<<"\n 輸入你
52、的選擇:";</p><p><b> cin>>ch;</b></p><p> switch(ch)</p><p> { case 1 : input_teacher(t,n,m);break;</p><p> case 2 : input_course(c,m);break;<
53、;/p><p> case 3 : input_num(num,n,m);break;</p><p> case 4 : arranging(num,t,c,a,n,m);break;</p><p> case 5 : print(t,c,a,m);break;</p><p> case 6 : print_help();break
54、;</p><p> case 7 : print_teacher();break;</p><p> case 8 : print_course();break;</p><p> case 9 : print_num();break;</p><p> case 10: change(num,t,c,a,n,m);break;&l
55、t;/p><p> case 0 : break;</p><p><b> }</b></p><p><b> }</b></p><p> while(ch);</p><p> //刪除每一行分配的空間</p><p> for(i=0
56、; i<n; ++i)</p><p><b> {</b></p><p> delete[] num[i];</p><p><b> }</b></p><p><b> //刪除行指針數(shù)組</b></p><p> delete[
57、] num;</p><p> delete []t;</p><p> delete []c;</p><p> delete []a; //釋放內(nèi)存</p><p><b> }</b></p><p> void input_teacher(teacher *t,int n,in
58、t m) //教師基本數(shù)據(jù)輸入</p><p><b> {</b></p><p> fstream teachers("d:\\teachers.txt",ios::out);</p><p> teachers<<"姓名"<<setw(20)<<"
59、;編號"<<setw(20)<<"工作量"<<endl;</p><p> int i,j,work,id;</p><p> char name[11],nn[11];</p><p> cout<<"\n 請輸入教師基本數(shù)據(jù):"<<endl;&l
60、t;/p><p><b> while(1)</b></p><p><b> {</b></p><p> int total=0;</p><p> for(i=0;i<n;i++)</p><p><b> { </b></p&g
61、t;<p> cout<<"第"<<i+1<<"個教師:\n";</p><p> cout<<"編號:";</p><p><b> while(1)</b></p><p><b> {</b&g
62、t;</p><p> if (cin >> id) break;</p><p><b> else </b></p><p><b> {</b></p><p> cout<<"編號應(yīng)為數(shù)字,請重新輸入:"<<endl;</
63、p><p> cin.clear();</p><p> cin.ignore();</p><p><b> }</b></p><p><b> }</b></p><p> cout<<"姓名:";</p><p
64、><b> while(1)</b></p><p><b> {</b></p><p> cin>>name;</p><p> for(j=0;j<11;j++)</p><p><b> { </b></p><p&
65、gt; if ( ('!'<=name[j]&&name[j]<='@')||('['<=name[j]&&name[j]<='`')||'{'<=name[j]&&name[j]<='~' )</p><p><b>
66、nn[j]=0; </b></p><p><b> else </b></p><p><b> nn[j]=1;</b></p><p><b> }</b></p><p> if(nn[0]*nn[1]*nn[2]*nn[3]*nn[4]*nn[5]
67、*nn[6]*nn[7]*nn[8]*nn[9]*nn[10]==1) break;</p><p><b> else</b></p><p><b> {</b></p><p> cout<<"姓名應(yīng)為字母,請重新輸入:"<<endl;</p><
68、p> cin.clear();</p><p> cin.ignore();</p><p><b> }</b></p><p><b> }</b></p><p> cout<<"工作量:";</p><p><b&
69、gt; while(1)</b></p><p><b> {</b></p><p> if (cin >> work) break;</p><p><b> else </b></p><p><b> {</b></p>
70、<p> cout<<"工作量應(yīng)為數(shù)字,請重新輸入:"<<endl;</p><p> cin.clear();</p><p> cin.ignore();</p><p><b> }</b></p><p><b> }</b>&
71、lt;/p><p> total=total+work;</p><p> if(total>m) {cout<<"總工作量大于課程數(shù),請重新輸入:"<<endl;break;}</p><p> t[i].set_teacher(name,id,work);</p><p> teach
72、ers<<name<<setw(20)<<id<<setw(20)<<work<<endl;</p><p><b> }</b></p><p> if(total==m) break;</p><p> if(total>m) continue;</p
73、><p><b> }</b></p><p> teachers.close();</p><p><b> }</b></p><p> void input_course(course *c,int m) //課程基本信息輸入</p><p><b>
74、 {</b></p><p> fstream courses("d:\\courses.txt",ios::out);</p><p> courses<<"課程名"<<setw(10)<<"課程號"<<setw(10)<<"周學(xué)時"
75、;<<setw(10)<<"總學(xué)時"<<setw(10)<<"優(yōu)先級"<<endl;</p><p> int week_hour,total_hour,d1,id,i,j;</p><p> char name[11];</p><p> char nn[11
76、];</p><p> for(i=0;i<m;i++)</p><p> { cout<<"第"<<i+1<<"門課:\n";</p><p> cout<<"課程號:";</p><p><b> while
77、(1)</b></p><p><b> {</b></p><p> if (cin >> id) break;</p><p><b> else </b></p><p><b> {</b></p><p> c
78、out<<"課程號應(yīng)為數(shù)字,請重新輸入:"<<endl;</p><p> cin.clear();</p><p> cin.ignore();</p><p><b> }</b></p><p><b> }</b></p>&
79、lt;p> cout<<"課程名:";</p><p><b> while(1)</b></p><p><b> {</b></p><p> cin>>name;</p><p> for(j=0;j<11;j++)</p
80、><p><b> { </b></p><p> if ( ('!'<=name[j]&&name[j]<='@')||('['<=name[j]&&name[j]<='`')||'{'<=name[j]&&n
81、ame[j]<='~' )</p><p><b> nn[j]=0; </b></p><p><b> else </b></p><p><b> nn[j]=1;</b></p><p><b> }</b></
82、p><p> if(nn[0]*nn[1]*nn[2]*nn[3]*nn[4]*nn[5]*nn[6]*nn[7]*nn[8]*nn[9]*nn[10]==1) break;</p><p><b> else</b></p><p><b> {</b></p><p> cout<&l
83、t;"課程名應(yīng)為字母,請重新輸入:"<<endl;</p><p> cin.clear();</p><p> cin.ignore();</p><p><b> }</b></p><p><b> }</b></p><p>
84、 cout<<"周學(xué)時:";</p><p><b> while(1)</b></p><p><b> {</b></p><p> if (cin >> week_hour ) break;</p><p><b> else &l
85、t;/b></p><p><b> {</b></p><p> cout<<"周學(xué)時應(yīng)為數(shù)字,請重新輸入:"<<endl;</p><p> cin.clear();</p><p> cin.ignore();</p><p><
86、;b> }</b></p><p><b> }</b></p><p> cout<<"總學(xué)時:";</p><p><b> while(1)</b></p><p><b> {</b></p>&
87、lt;p> if (cin >> total_hour ) break;</p><p><b> else </b></p><p><b> {</b></p><p> cout<<"總學(xué)時應(yīng)為數(shù)字,請重新輸入:"<<endl;</p>
88、<p> cin.clear();</p><p> cin.ignore();</p><p><b> }</b></p><p><b> }</b></p><p> cout<<"優(yōu)先級:";</p><p>
89、<b> while(1)</b></p><p><b> {</b></p><p> if (cin >> d1) break;</p><p><b> else </b></p><p><b> {</b></p&g
90、t;<p> cout<<"優(yōu)先級應(yīng)為數(shù)字,請重新輸入:"<<endl;</p><p> cin.clear();</p><p> cin.ignore();</p><p><b> }</b></p><p><b> }</b&
91、gt;</p><p> c[i].set_course(name,id,week_hour,total_hour,d1);</p><p> courses<<name<<setw(10)<<id<<setw(10)<<week_hour<<setw(10)<<total_hour<<se
92、tw(10)<<d1<<endl;</p><p><b> }</b></p><p> courses.close();</p><p><b> }</b></p><p> void input_num(int **num,int n,int m) //教師
93、對課程滿意度輸入</p><p><b> {</b></p><p> fstream nums("d:\\hope.txt",ios::out);</p><p> nums<<setw(4)<<"滿意度"<<setw(6);</p><p
94、> int nu,i,j,k;</p><p> for(k=0;k<m;k++)</p><p><b> {</b></p><p> nums<<"第"<<k+1<<"門課程"<<setw(5);</p><p&
95、gt;<b> }</b></p><p> nums<<endl;</p><p> for(i=0;i<n;i++)</p><p> {nums<<"第"<<i+1<<"名老師"<<setw(3);</p>&
96、lt;p> for(j=0;j<m;j++)</p><p><b> {</b></p><p> cout<<"第"<<i+1<<"位老師對第"<<j+1<<"門課程的滿意度"<<endl;</p>&
97、lt;p> //cin>>nu;</p><p><b> while(1)</b></p><p><b> {</b></p><p> if (cin >> nu) break;</p><p><b> else </b><
98、/p><p><b> {</b></p><p> cout<<"滿意度應(yīng)為數(shù)字,請重新輸入:"<<endl;</p><p> cin.clear();</p><p> cin.ignore();</p><p><b> }<
99、;/b></p><p><b> }</b></p><p> num[i][j]=nu;</p><p> nums<<nu<<setw(13);</p><p><b> }</b></p><p> nums<<en
100、dl;</p><p><b> }</b></p><p> nums.close();</p><p><b> }</b></p><p> void arranging(int **num,teacher *t,course *c,arrange *a,int n,int m) //
101、排課</p><p><b> {</b></p><p> int h,s,i,j,b,k=1,min,min1,q=0;</p><p> min=c[0].get_N();</p><p> srand((unsigned)time(NULL));</p><p> for(s=0
102、;s<m;s++)</p><p><b> {</b></p><p> if(c[s].get_N()<min)</p><p> min=c[s].get_N();</p><p><b> }</b></p><p><b> whil
103、e(h)</b></p><p><b> {</b></p><p> for(i=0;i<m;i++)</p><p><b> {</b></p><p> if(c[i].get_N()==min) //判斷課程優(yōu)先級</p><p><
104、;b> {</b></p><p> min1=num[0][i];</p><p> for(j=0;j<n;j++)</p><p><b> {</b></p><p> if ( num[j][i]<min1&&t[j].get_total()<t[j
105、].get_work_load() )</p><p> min1=num[j][i];</p><p><b> }</b></p><p> while(1>0)</p><p><b> {</b></p><p> b=rand()%n;</p&
106、gt;<p><b> if(b>n)</b></p><p><b> continue;</b></p><p> else if(t[b].get_total()>t[b].get_work_load())</p><p><b> continue;</b>&
107、lt;/p><p> else if(num[b][i]!=min1) //判斷教師優(yōu)先級</p><p><b> continue;</b></p><p><b> else</b></p><p><b> {</b></p><p>
108、a[q].set_x(b);a[q].set_y(i);q++;</p><p> int w=t[b].get_total()+1;</p><p> t[b].set_total(w);</p><p><b> //k=0;</b></p><p> cout<<"第"<
109、;<q<<"次排課"<<endl;</p><p><b> }</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b>&
110、lt;/p><p> //if(i=m-1) min++;</p><p><b> }</b></p><p><b> min++;</b></p><p> if(q<m) h=1;</p><p><b> else h=0;</b>
111、</p><p><b> }</b></p><p><b> }</b></p><p> void print(teacher *t,course *c,arrange *a,int m) //輸出排課結(jié)果</p><p><b> {</b></p>
112、<p> int i,a1,b1;</p><p> for(i=0;i<m;i++)</p><p><b> {</b></p><p> a1=a[i].get_x();</p><p> b1=a[i].get_y();</p><p> cout<&
113、lt;"第"<<a1+1<<"位老師上第"<<b1+1<<"門課"<<endl;</p><p> t[a1].print();</p><p> c[b1].print();</p><p><b> }</b><
114、;/p><p><b> }</b></p><p> void print_help() //幫助函數(shù)</p><p><b> {</b></p><p> cout<<" 1. 輸入教師基本數(shù)據(jù)\n";</p><p> cout
115、<<" 2. 輸入課程基本數(shù)據(jù)\n";</p><p> cout<<" 3. 輸入教師對課程滿意度\n";</p><p> cout<<" 4. 排課\n";</p><p> cout<<" 5. 輸出排課結(jié)果\n";&
116、lt;/p><p> cout<<" 6. 幫助\n";</p><p> cout<<" 7. 輸出教師信息\n";</p><p> cout<<" 8. 輸出課程信息\n";</p><p> cout<<"
117、 9. 輸出教師對課程滿意度\n";</p><p> cout<<" 10.修改文件數(shù)據(jù)\n";</p><p> cout<<" 0. 退出\n";</p><p><b> }</b></p><p> void print_te
118、acher() //輸出教師信息</p><p><b> { </b></p><p> ifstream fin("d:\\teachers.txt",ios::nocreate);</p><p><b> if(!fin)</b></p><p><b>
119、; {</b></p><p> cout<<"File open error!\n";</p><p><b> return;</b></p><p><b> }</b></p><p> char c[80];</p>&l
120、t;p> while(!fin.eof()) //判斷文件是否讀結(jié)束</p><p><b> {</b></p><p> fin.read(c,80);</p><p> cout.write(c,fin.gcount()); </p><p><b> }</b></p
121、><p> fin.close();</p><p><b> }</b></p><p> void print_course() //輸出課程信息</p><p><b> {</b></p><p> ifstream fin("d:\\courses
122、.txt",ios::nocreate);</p><p><b> if(!fin)</b></p><p><b> {</b></p><p> cout<<"File open error!\n";</p><p><b> ret
123、urn;</b></p><p><b> }</b></p><p> char c[80];</p><p> while(!fin.eof()) //判斷文件是否讀結(jié)束</p><p><b> {</b></p><p> fin.read(c
124、,80);</p><p> cout.write(c,fin.gcount()); </p><p><b> }</b></p><p> fin.close();</p><p><b> }</b></p><p> void print_num()
125、 //輸出教師對課程的滿意度</p><p><b> {</b></p><p> ifstream fin("d:\\hope.txt",ios::nocreate);</p><p><b> if(!fin)</b></p><p><b> {<
126、/b></p><p> cout<<"File open error!\n";</p><p><b> return;</b></p><p><b> }</b></p><p> char c[80];</p><p>
127、 while(!fin.eof()) //判斷文件是否讀結(jié)束</p><p><b> {</b></p><p> fin.read(c,80);</p><p> cout.write(c,fin.gcount()); </p><p><b> }</b></p>&l
128、t;p> fin.close();</p><p><b> }</b></p><p> void change(int **num,teacher *t,course *c,arrange *a,int n,int m) //修改文件信息</p><p><b> {</b></p>
129、<p><b> int ch;</b></p><p><b> do </b></p><p><b> {</b></p><p> cout<<"\n\n 請選擇:\n";</p><p> cout<&
130、lt;" 1. 修改教師基本數(shù)據(jù)\n";</p><p> cout<<" 2. 修改課程基本數(shù)據(jù)\n";</p><p> cout<<" 3. 修改教師對課程滿意度\n";</p><p> cout<<" 0. 退出\n";<
131、/p><p> cout<<"\n 輸入你的選擇:";</p><p><b> cin>>ch;</b></p><p> switch(ch)</p><p> { case 1 : change_teacher(t,n);break;</p>&l
132、t;p> case 2 : change_course(c,m);break;</p><p> case 3 : change_num(t,c,num,n,m);break;</p><p> case 0 : break;</p><p><b> }</b></p><p><b> }&
133、lt;/b></p><p> while(ch);</p><p><b> }</b></p><p> void change_teacher(teacher *t,int n) //修改教師數(shù)據(jù)</p><p><b> {</b></p><p>
134、 int i,aa,bb,k,j,ii;</p><p> char na[11];</p><p> char nn[11];</p><p> cout<<"請輸入要修改教師編號:";</p><p><b> cin>>ii;</b></p><
135、;p> for(i=0;i<n;i++)</p><p> if(t[i].get_id()==ii)</p><p> {cout<<"此教師原信息:"<<endl;</p><p> t[i].print();</p><p><b> k=i;</b&g
136、t;</p><p><b> }</b></p><p> cout<<"請輸入此教師新信息:"<<endl;</p><p> cout<<"編號:";</p><p><b> while(1)</b><
137、/p><p><b> {</b></p><p> if (cin >> aa) break;</p><p><b> else </b></p><p><b> {</b></p><p> cout<<"
138、編號應(yīng)為數(shù)字,請重新輸入:"<<endl;</p><p> cin.clear();</p><p> cin.ignore();</p><p><b> }</b></p><p><b> }</b></p><p> cout<
139、<"姓名:";</p><p><b> while(1)</b></p><p><b> {</b></p><p><b> cin>>na;</b></p><p> for(j=0;j<11;j++)</p&g
140、t;<p><b> { </b></p><p> if ( ('!'<=na[j]&&na[j]<='@')||('['<=na[j]&&na[j]<='`')||'{'<=na[j]&&na[j]<=
141、9;~' )</p><p><b> nn[j]=0; </b></p><p><b> else </b></p><p><b> nn[j]=1;</b></p><p><b> }</b></p><p&g
142、t; if(nn[0]*nn[1]*nn[2]*nn[3]*nn[4]*nn[5]*nn[6]*nn[7]*nn[8]*nn[9]*nn[10]==1) break;</p><p><b> else</b></p><p><b> {</b></p><p> cout<<"姓名應(yīng)為字母
143、,請重新輸入:"<<endl;</p><p> cin.clear();</p><p> cin.ignore();</p><p><b> }</b></p><p><b> }</b></p><p> cout<<&q
144、uot;工作量:";</p><p><b> while(1)</b></p><p><b> {</b></p><p> if (cin >> bb) break;</p><p><b> else </b></p><
145、;p><b> {</b></p><p> cout<<"工作量應(yīng)為數(shù)字,請重新輸入:"<<endl;</p><p> cin.clear();</p><p> cin.ignore();</p><p><b> }</b><
146、/p><p><b> }</b></p><p> t[k].set_teacher(na,aa,bb);</p><p> fstream teachers("d:\\teachers.txt",ios::out);</p><p> teachers<<"姓名"
147、;<<setw(20)<<"編號"<<setw(20)<<"工作量"<<endl;</p><p> for(j=0;j<n;j++)</p><p><b> {</b></p><p><b> if(j==k)<
148、/b></p><p> teachers<<na<<setw(20)<<aa<<setw(20)<<bb<<endl;</p><p><b> else</b></p><p> teachers<<t[j].get_name()<<
149、setw(20)<<t[j].get_id()<<setw(20)<<t[j].get_work_load()<<endl; </p><p><b> }</b></p><p> teachers.close();</p><p><b> }</b></
150、p><p> void change_course(course *c,int m) //修改課程信息</p><p><b> {</b></p><p> int i,aa,bb,cc,dd,k,j,ii;</p><p> char na[11];</p><p> char nn[
151、11];</p><p> cout<<"請輸入要修改課程編號:";</p><p><b> cin>>ii;</b></p><p> for(i=0;i<m;i++)</p><p> if(c[i].get_course_id()==ii)</p&g
152、t;<p> {cout<<"此課程原信息:"<<endl;</p><p> c[i].print();</p><p><b> k=i;</b></p><p><b> }</b></p><p> cout<<
153、;"請輸入此課程新信息:"<<endl;</p><p> cout<<"課程號:";</p><p><b> while(1)</b></p><p><b> {</b></p><p> if (cin >>
154、 aa) break;</p><p><b> else </b></p><p><b> {</b></p><p> cout<<"課程號應(yīng)為數(shù)字,請重新輸入:"<<endl;</p><p> cin.clear();</p>
155、<p> cin.ignore();</p><p><b> }</b></p><p><b> }</b></p><p> cout<<"課程名:";</p><p><b> while(1)</b></p
156、><p><b> {</b></p><p><b> cin>>na;</b></p><p> for(j=0;j<11;j++)</p><p><b> { </b></p><p> if ( ('!'
157、<=na[j]&&na[j]<='@')||('['<=na[j]&&na[j]<='`')||'{'<=na[j]&&na[j]<='~' )</p><p><b> nn[j]=0; </b></p><
158、;p><b> else </b></p><p><b> nn[j]=1;</b></p><p><b> }</b></p><p> if(nn[0]*nn[1]*nn[2]*nn[3]*nn[4]*nn[5]*nn[6]*nn[7]*nn[8]*nn[9]*nn[10]==1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于c++的教師排課程序課程設(shè)計
- c++課程設(shè)計—教師管理系統(tǒng)報告
- c++課程設(shè)計報告
- 課程設(shè)計用c++設(shè)計一個排課程序
- c++課程設(shè)計報告-- 學(xué)籍管理系統(tǒng)
- c++課程設(shè)計報告--飛機訂票系統(tǒng)
- c++課程設(shè)計報告---飛機訂票系統(tǒng)
- 酒店管理系統(tǒng)_c++課程設(shè)計報告
- c++課程設(shè)計報告--酒店管理系統(tǒng)
- c++課程設(shè)計報告---飛機訂票系統(tǒng)
- c++課程設(shè)計報告--成績管理系統(tǒng)
- c++掃雷課程設(shè)計報告
- c++課程設(shè)計報告-商品管理系統(tǒng)
- c++課程設(shè)計報告飛機訂票管理系統(tǒng)
- c++課程設(shè)計報告--高校人員管理系統(tǒng)
- c++課程設(shè)計報告---銀行管理系統(tǒng)
- visual c++超市管理系統(tǒng)課程設(shè)計報告
- c++課程設(shè)計——學(xué)生信息管理系統(tǒng)課程設(shè)計報告
- c++語言課程設(shè)計報告--影像管理系統(tǒng)
- c++課程設(shè)計報告(學(xué)生學(xué)籍管理系統(tǒng))
評論
0/150
提交評論