教師排課系統(tǒng)課程設(shè)計報告(c++)_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論