2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  任務(wù)書</b></p><p><b>  一、設(shè)計(jì)題目</b></p><p><b>  高校工資管理系統(tǒng)</b></p><p><b>  二、主要內(nèi)容</b></p><p>  三、具體要求及應(yīng)提交的材料</

2、p><p>  高校有五類職工:教師,實(shí)驗(yàn)員,行政人員,教師兼職實(shí)驗(yàn)員,行政人員兼職教師。為了實(shí)現(xiàn)工資發(fā)放的自動(dòng)功能,現(xiàn)要求編寫程序來自動(dòng)完成此功能。同時(shí)注意生成的相關(guān)數(shù)據(jù)結(jié)果以文件方式存放在硬盤中。程序應(yīng)具備從鍵盤錄入,文件的可繼續(xù)錄入,任意職工的工資查詢(可由職工編號(hào)和職工姓名來實(shí)現(xiàn)),如若有職工由于工作調(diào)動(dòng),則可進(jìn)行相對(duì)應(yīng)的刪除工作。</p><p><b>  相關(guān)信息:&l

3、t;/b></p><p>  每一學(xué)期將學(xué)校職工的本學(xué)期任職情況及上學(xué)期工作的相關(guān)情況輸入計(jì)算機(jī),則本學(xué)期職工的月工資按程序處理后的結(jié)果發(fā)放,其中職工的工資計(jì)算方法如下:</p><p>  其中工資的基本構(gòu)成如下:</p><p>  教師: 基本工資+課時(shí)費(fèi);</p><p>  實(shí)驗(yàn)員:

4、基本工資+實(shí)驗(yàn)室補(bǔ)助;</p><p>  行政人員: 基本工資+行政補(bǔ)貼;</p><p>  教師兼職實(shí)驗(yàn)員: 基本工資+課時(shí)費(fèi)+實(shí)驗(yàn)室補(bǔ)助;</p><p>  行政人員兼職教師:基本工資+行政補(bǔ)貼+課時(shí)費(fèi);</p><p><b>  (其中:</b></p><p>  

5、1.課時(shí)費(fèi):教師每一學(xué)期的基本工作量為120,實(shí)驗(yàn)員每學(xué)期基本工作量為70,行政人員沒有基本工作量,每節(jié)課時(shí)費(fèi)為20元;課時(shí)費(fèi)=(上學(xué)期工作量-基本工作量)*20;</p><p>  注意:如果上學(xué)期基本工作量沒完成,則其(上學(xué)期工作量-基本工作量)*20為負(fù)值。</p><p>  2.基本工資:教師800元,實(shí)驗(yàn)員650元,行政人員750元。</p><p>

6、  3.行政補(bǔ)貼:250元。</p><p>  4.實(shí)驗(yàn)室補(bǔ)助:150元。)</p><p>  四、主要技術(shù)路線提示</p><p><b>  五、進(jìn)度安排</b></p><p>  六、推薦參考資料(不少于3篇)</p><p><b>  1 引 言</b>&l

7、t;/p><p><b>  1.1 問題的提出</b></p><p>  隨著高等學(xué)校的快速發(fā)展,高校規(guī)模越來越大,教職工的數(shù)量也越來越多,高校工資管理更加的復(fù)雜化,兒工資管理是一項(xiàng)瑣碎、復(fù)雜而又十分細(xì)致的工作,工資計(jì)算、發(fā)放、核算的工作量很大,這就會(huì)耗費(fèi)工作人員大量的時(shí)間和精力,計(jì)算機(jī)進(jìn)行工資發(fā)放工作,不僅能夠保證工資核算準(zhǔn)確無誤,而且還可以利用計(jì)算機(jī)對(duì)有關(guān)工資的各

8、種信息進(jìn)行統(tǒng)計(jì),服務(wù)于財(cái)政部門其他發(fā)面的核算和財(cái)務(wù)處理,同時(shí)計(jì)算機(jī)具有著手工管理嗦無法比擬的優(yōu)點(diǎn)。高校工資管理系統(tǒng)便是以計(jì)算機(jī)為工具,通過對(duì)工資管理所需的信息管理,優(yōu)化了管理體系,使其高效化、智能化,也提高了透明度和互動(dòng)性。</p><p><b>  程序的主要功能</b></p><p><b>  2.1添加功能</b></p>

9、<p>  可以從鍵盤或文件錄入職工的相應(yīng)信息。</p><p><b>  2.2刪除功能</b></p><p>  能夠?qū)χ付ǖ穆毠ば畔⑦M(jìn)行刪除。</p><p><b>  2.3 顯示功能</b></p><p>  能夠顯示職工編號(hào)、姓名、類別、本學(xué)期任職情況和工資等信息。

10、</p><p><b>  2.4查找功能</b></p><p>  根據(jù)你鍵入的職工編號(hào),顯示其詳細(xì)信息。</p><p><b>  2.5計(jì)算功能</b></p><p>  根據(jù)你鍵入的職工相關(guān)信息自動(dòng)計(jì)算其工資功能。</p><p><b>  3 程

11、序運(yùn)行平臺(tái)</b></p><p><b>  4 總體設(shè)計(jì)</b></p><p><b>  5 模塊分析</b></p><p><b>  5.1 添加模塊</b></p><p>  系統(tǒng)將提示用戶輸入新添加的職員的信息,插入在鏈表中。</p>

12、<p>  void College::Add() //增加職工</p><p><b>  {</b></p><p>  Person *p=PL;</p><p>  while(p->next)p=p->next;</p><p><b>  int ch;</b&g

13、t;</p><p>  cout<<"輸入職工分類碼[0-教師,1-實(shí)驗(yàn)員,2-行政人員,3-教師兼實(shí)驗(yàn)員,4-行政兼教師]:\n"; </p><p>  cin>>ch; </p><p>  Teacher *pt; //創(chuàng)建新結(jié)點(diǎn),錄入數(shù)據(jù),連接到鏈表</p><p> 

14、 Assistant *pa;</p><p>  Manager *pm;</p><p>  Teacher_Assistant *pta;</p><p>  Manager_Teacher *pmt;</p><p>  switch(ch)</p><p><b>  {</b><

15、/p><p><b>  case 0: </b></p><p>  pt=new Teacher; </p><p>  pt->Input();</p><p>  p->next=pt; </p><p><b>  break;</b></p>

16、;<p><b>  case 1: </b></p><p>  pa=new Assistant; </p><p>  pa->Input();</p><p>  p->next=pa; </p><p><b>  break;</b></p>

17、<p><b>  case 2: </b></p><p>  pm=new Manager; </p><p>  pm->Input();</p><p>  p->next=pm; </p><p><b>  break;</b></p><p&

18、gt;<b>  case 3: </b></p><p>  pta=new Teacher_Assistant;</p><p>  pta->Input();</p><p>  p->next=pta; </p><p><b>  break;</b></p>&

19、lt;p><b>  case 4: </b></p><p>  pmt=new Manager_Teacher; </p><p>  pmt->Input();</p><p>  p->next=pmt;</p><p><b>  break;</b></p>

20、<p><b>  default: </b></p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  5.2 顯示模塊<

21、/b></p><p>  顯示模塊將輸出所有職員的主要資料 。</p><p>  void College::Print() //顯示輸出職工信息</p><p><b>  {</b></p><p>  cout<<"\n** 職工信息表 **\n";</p>

22、;<p>  cout<<"編號(hào) 姓名 崗位 課時(shí) 收入情況\n";</p><p>  Person *p=PL->next;</p><p><b>  if(!p)</b></p><p><b>  {</b></p><p>  

23、cout<<"無職工記錄!\n"; return;</p><p><b>  }</b></p><p>  while(p) //找到并輸出職工信息</p><p><b>  {</b></p><p>  p->Output();</

24、p><p>  p=p->next;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  5.3 刪除模塊</b></p><p>  首先由用戶輸入要?jiǎng)h除的單個(gè)職員姓名,然后調(diào)用刪除函數(shù),刪除該

25、名職員的資料。</p><p>  int College::Find(int ID,Person **p1,Person **p2) //查找職工結(jié)點(diǎn)</p><p><b>  {</b></p><p>  *p1=PL->next;</p><p><b>  *p2=PL;</b&g

26、t;</p><p>  while(*p1)</p><p><b>  {</b></p><p>  if((*p1)->no==ID)</p><p>  break; //找到</p><p><b>  else </b></p><p

27、><b>  {</b></p><p>  *p2=*p1; //繼續(xù)查找</p><p>  *p1=(*p1)->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  retu

28、rn *p1?1:0;</p><p><b>  }</b></p><p>  void College::Delete() //刪除職工</p><p><b>  {</b></p><p>  cout<<"\n** 刪除職工 **\n";</p&

29、gt;<p><b>  int no;</b></p><p>  Person *p1,*p2;</p><p>  cout<<"編號(hào):"; cin>>no;</p><p>  if(!Find(no,&p1,&p2))</p><p>

30、<b>  {</b></p><p>  cout<<"指定的人員沒有找到!\n";</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p

31、><p>  p2->next=p1->next; //連接</p><p>  delete p1;</p><p>  cout<<"正確刪除!\n";</p><p><b>  }</b></p><p><b>  }</b>

32、;</p><p><b>  5.4 查找模塊</b></p><p>  首先由用戶輸入要查找的職員姓名,然后系統(tǒng)用查找函數(shù)查找,然后系統(tǒng)就調(diào)用輸出函數(shù),輸出所查找的職員資料。</p><p>  int College::Find(int ID,Person **p1,Person **p2) //查找職工結(jié)點(diǎn)</p>

33、<p><b>  {</b></p><p>  *p1=PL->next;</p><p><b>  *p2=PL;</b></p><p>  while(*p1)</p><p><b>  {</b></p><p>  i

34、f((*p1)->no==ID)</p><p>  break; //找到</p><p><b>  else </b></p><p><b>  {</b></p><p>  *p2=*p1; //繼續(xù)查找</p><p>  *p1=(*p1)->

35、next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  return *p1?1:0;</p><p><b>  }</b></p><p>  void College::Find1()

36、 //查詢職工信息</p><p><b>  {</b></p><p>  cout<<"\n** 查詢職工 **\n";</p><p><b>  int no;</b></p><p>  Person *p1,*p2;</p><p&

37、gt;  cout<<"編號(hào):"; </p><p><b>  cin>>no;</b></p><p>  if(!Find(no,&p1,&p2))</p><p><b>  {</b></p><p>  cout<<

38、;"指定的人員沒有找到!\n";</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"編號(hào) 姓名 崗位 課時(shí) 收入情況\

39、n";</p><p>  cout<<setw(4)<<p1->no<<setw(6)<<p1->name<<setw(4)<<p1->duty<<setw(8)<<p1->hours<<setw(8)<<p1->Incoming()<<en

40、dl;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  結(jié)論</b></p><p>  通過這次課程設(shè)計(jì),我對(duì)C++又有了更深一步的了解,尤其是關(guān)于指針、鏈表等數(shù)據(jù)結(jié)構(gòu),還有類的使用,基本上可以靈活運(yùn)用指針數(shù)組了。類

41、與對(duì)象的使用使程序更加模塊化,與客觀世界的聯(lián)系也更為緊密。在編寫程序之前對(duì)自己所要編寫的程序所要實(shí)現(xiàn)的功能,使用什么結(jié)構(gòu)等要有大致的構(gòu)思,這樣在編寫時(shí)思路才會(huì)更清晰,程序出錯(cuò)的幾率降低,程序總體上的考慮也能更周全、運(yùn)行更順暢。</p><p><b>  附 錄</b></p><p>  附錄1 源程序代碼</p><p>  #in

42、clude <iostream.h></p><p>  #include <iomanip.h></p><p>  #include <stdlib.h></p><p>  #include <string.h></p><p>  #include <conio.h><

43、/p><p>  #include <fstream.h></p><p>  const int P=20;</p><p>  class Person //定義抽象類</p><p><b>  {</b></p><p>  protected:</p>

44、<p>  int no; //編號(hào)</p><p>  char name[20]; //姓名</p><p>  int duty; //人員類別:0-教師,1-實(shí)驗(yàn)員,2-行政人員,3-教師兼實(shí)驗(yàn)員,4-行政兼教師</p><p>  int hours; //基本工作量</p><

45、p>  Person *next; //指針域</p><p><b>  public:</b></p><p>  Person() //構(gòu)造基類</p><p><b>  {</b></p><p>  next=0; //指針域設(shè)為空</p>

46、<p><b>  }</b></p><p>  virtual ~Person() //基類虛析構(gòu)</p><p><b>  {}</b></p><p>  virtual void Input()=0; //從鍵盤輸入數(shù)據(jù)</p><p>

47、  virtual void Input(ifstream& ifs)=0; //從文件輸入數(shù)據(jù)</p><p>  virtual void Output()=0; //向屏幕輸出數(shù)據(jù)</p><p>  virtual void Output(ofstream& ofs)=0; //向文件輸出數(shù)據(jù)</p><

48、p>  virtual int Incoming()=0; //計(jì)算收入</p><p>  friend class College;</p><p><b>  };</b></p><p>  class Teacher:virtual public Person //教師類</p>&l

49、t;p><b>  {</b></p><p><b>  public: </b></p><p>  Teacher() //構(gòu)造函數(shù),初始化部分?jǐn)?shù)據(jù)</p><p><b>  {</b></p><p><b> 

50、 duty=0; </b></p><p><b>  }</b></p><p>  void Input() //鍵盤補(bǔ)充輸入其它數(shù)據(jù)</p><p><b>  {</b></p><p>  cout<<"編號(hào):"

51、;; cin>>no;</p><p>  cout<<"姓名:"; cin>>name;</p><p>  cout<<"教師上學(xué)期課時(shí):"; </p><p>  cin>>hours;</p><p><b>  } &l

52、t;/b></p><p>  void Input(ifstream& ifs) //從文件輸入數(shù)據(jù)</p><p><b>  {</b></p><p>  ifs>>no>>name>>duty>>hours;</p><p><b>

53、;  } </b></p><p>  void Output()</p><p><b>  {</b></p><p>  cout<<setw(4)<<no<<setw(6)<<name<<setw(4)<<duty<<setw(8)<&

54、lt;hours<<setw(8)<<Incoming()<<endl;</p><p><b>  }</b></p><p>  void Output(ofstream& ofs)</p><p><b>  {</b></p><p>  ofs&

55、lt;<setw(4)<<no<<setw(6)<<name<<setw(4)<<duty<<setw(8)<<hours<<setw(8)<<endl;</p><p><b>  }</b></p><p>  int Incoming()

56、//計(jì)算教師工資</p><p><b>  {</b></p><p>  return hours*P-1600; </p><p><b>  }</b></p><p><b>  };</b></p><p>  class Assistan

57、t:virtual public Person //實(shí)驗(yàn)員類</p><p><b>  {</b></p><p><b>  public:</b></p><p>  Assistant()</p><p><b>  {</b></p><p>

58、;<b>  duty=1; </b></p><p><b>  } </b></p><p>  void Input()</p><p><b>  {</b></p><p>  cout<<"編號(hào):"; </p><

59、;p><b>  cin>>no;</b></p><p>  cout<<"姓名:"; </p><p>  cin>>name;</p><p>  cout<<"實(shí)驗(yàn)員上學(xué)期課時(shí):"; </p><p>  cin>

60、;>hours;</p><p><b>  }</b></p><p>  void Input(ifstream& ifs) </p><p><b>  {</b></p><p>  ifs>>no>>name>>duty>>h

61、ours;</p><p><b>  } </b></p><p>  void Output()</p><p><b>  {</b></p><p>  cout<<setw(4)<<no<<setw(6)<<name<<setw(

62、4)<<duty<<setw(8)<<hours<<setw(8)<<Incoming()<<endl;</p><p><b>  }</b></p><p>  void Output(ofstream& ofs)</p><p><b>  {<

63、;/b></p><p>  ofs<<setw(4)<<no<<setw(6)<<name<<setw(4)<<duty<<setw(8)<<hours<<setw(8)<<endl;</p><p><b>  }</b></p>

64、;<p>  int Incoming()</p><p><b>  {</b></p><p>  return hours*P-600;</p><p><b>  }</b></p><p><b>  };</b></p><p>

65、;  class Manager:virtual public Person //行政人員類</p><p><b>  {</b></p><p><b>  public:</b></p><p><b>  Manager()</b></p><p><b>

66、  {</b></p><p><b>  duty=2;</b></p><p><b>  hours=0;</b></p><p><b>  }</b></p><p>  void Input()</p><p><b>

67、  {</b></p><p>  cout<<"編號(hào):";</p><p><b>  cin>>no;</b></p><p>  cout<<"姓名:"; </p><p>  cin>>name;</p>

68、;<p><b>  }</b></p><p>  void Input(ifstream& ifs) </p><p><b>  {</b></p><p>  ifs>>no>>name>>duty;</p><p><b&g

69、t;  } </b></p><p>  void Output()</p><p><b>  {</b></p><p>  cout<<setw(4)<<no<<setw(6)<<name<<setw(4)<<duty<<setw(8)<

70、<hours<<setw(8)<<Incoming()<<endl;</p><p><b>  }</b></p><p>  void Output(ofstream& ofs)</p><p><b>  {</b></p><p>  o

71、fs<<setw(4)<<no<<setw(6)<<name<<setw(4)<<duty<<hours<<setw(8)<<endl;</p><p><b>  }</b></p><p>  int Incoming()</p><p&

72、gt;<b>  {</b></p><p>  return 1000;</p><p><b>  }</b></p><p><b>  };</b></p><p>  class Teacher_Assistant:public Teacher,public Assi

73、stant //教師兼實(shí)驗(yàn)員類</p><p><b>  {</b></p><p><b>  public:</b></p><p>  Teacher_Assistant()</p><p><b>  {</b></p><p><b&g

74、t;  duty=3;</b></p><p><b>  }</b></p><p>  void Input()</p><p><b>  {</b></p><p>  cout<<"編號(hào):"; </p><p><b

75、>  cin>>no;</b></p><p>  cout<<"姓名:"; </p><p>  cin>>name;</p><p>  cout<<"教師兼職實(shí)驗(yàn)員上學(xué)期實(shí)驗(yàn)課時(shí):"; </p><p>  cin>>

76、Teacher::hours;</p><p><b>  }</b></p><p>  void Input(ifstream& ifs) </p><p><b>  {</b></p><p>  ifs>>no>>name>>duty>&

77、gt;Teacher::hours;</p><p><b>  } </b></p><p>  void Output()</p><p><b>  {</b></p><p>  cout<<setw(4)<<no<<setw(6)<<name

78、<<setw(4)<<duty<<setw(8)<<Teacher::hours<<setw(8)<<Incoming()<<endl;</p><p><b>  }</b></p><p>  void Output(ofstream& ofs)</p>&l

79、t;p><b>  {</b></p><p>  ofs<<setw(4)<<no<<setw(6)<<name<<setw(4)<<duty<<setw(8)<<Teacher::hours<<setw(8)<<endl;</p><p>

80、<b>  }</b></p><p>  int Incoming() //計(jì)算工資</p><p><b>  {</b></p><p>  return 1450+Teacher::hours*P;</p><p><b>  }</b></p>&l

81、t;p><b>  };</b></p><p>  class Manager_Teacher:public Manager,public Teacher //行政人員兼教師類</p><p><b>  {</b></p><p><b>  public:</b></p>&

82、lt;p>  Manager_Teacher()</p><p><b>  {</b></p><p><b>  duty=4;</b></p><p><b>  }</b></p><p>  void Input()</p><p>&l

83、t;b>  {</b></p><p>  cout<<"編號(hào):"; </p><p><b>  cin>>no;</b></p><p>  cout<<"姓名:"; </p><p>  cin>>name;

84、</p><p>  cout<<"行政人員兼職教師上學(xué)期課時(shí):"; </p><p>  cin>>Manager::hours;</p><p><b>  }</b></p><p>  void Input(ifstream& ifs) </p>

85、<p><b>  {</b></p><p>  ifs>>no>>name>>duty>>Manager::hours;</p><p><b>  } </b></p><p>  void Output()</p><p><

86、b>  {</b></p><p>  cout<<setw(4)<<no<<setw(6)<<name<<setw(4)<<duty<<setw(8)<<Manager::hours<<setw(8)<<Incoming()<<endl;</p>&

87、lt;p><b>  }</b></p><p>  void Output(ofstream& ofs)</p><p><b>  {</b></p><p>  ofs<<setw(4)<<no<<setw(6)<<name<<setw(4)&

88、lt;<duty<<setw(8)<<Manager::hours<<setw(8)<<endl;</p><p><b>  }</b></p><p>  int Incoming() //計(jì)算工資</p><p><b>  {</b></p&g

89、t;<p>  return 1000+Manager::hours*P;</p><p><b>  }</b></p><p><b>  };</b></p><p>  class College</p><p><b>  {</b></p>

90、<p><b>  private:</b></p><p>  Person *PL;</p><p>  void Clear();</p><p>  int College::Find(int ID,Person **p1,Person **p2);</p><p><b>  publi

91、c:</b></p><p>  College(); //構(gòu)造函數(shù)</p><p>  void Add(); //增加職工函數(shù)</p><p>  void Delete(); //刪除職工函數(shù)</p><p>  void Modify(); //修改職工函數(shù)</p><p> 

92、 void Print(); //輸出職工信息函數(shù)</p><p>  void Save(); //職工信息存盤函數(shù)</p><p>  void Load(); //職工信息裝入函數(shù)</p><p>  void Find1(); //查找職工信息函數(shù)</p><p>  ~College(); //析構(gòu)函數(shù)<

93、;/p><p><b>  };</b></p><p>  College::College() //構(gòu)造函數(shù)(創(chuàng)建1個(gè)頭結(jié)點(diǎn)的鏈表)</p><p><b>  {</b></p><p>  Person *p=new Teacher;</p><p><b>

94、  PL=p;</b></p><p><b>  Load();</b></p><p><b>  }</b></p><p>  College::~College() //析構(gòu)函數(shù)(僅保留1個(gè)頭結(jié)點(diǎn))</p><p><b>  {</b></p>

95、;<p>  Person *p=PL;</p><p>  while(p) //逐個(gè)刪除結(jié)點(diǎn),包括頭結(jié)點(diǎn)</p><p><b>  {</b></p><p>  PL=p->next;</p><p><b>  delete p;</b></p><

96、;p><b>  p=PL;</b></p><p><b>  }</b></p><p><b>  PL=0;</b></p><p><b>  }</b></p><p>  void College::Add() //增加職工</

97、p><p><b>  {</b></p><p>  Person *p=PL;</p><p>  while(p->next)p=p->next;</p><p><b>  int ch;</b></p><p>  cout<<"輸入

98、職工分類碼[0-教師,1-實(shí)驗(yàn)員,2-行政人員,3-教師兼實(shí)驗(yàn)員,4-行政兼教師]:\n"; </p><p>  cin>>ch; </p><p>  Teacher *pt; //創(chuàng)建新結(jié)點(diǎn),錄入數(shù)據(jù),連接到鏈表</p><p>  Assistant *pa;</p><p>  Manager

99、*pm;</p><p>  Teacher_Assistant *pta;</p><p>  Manager_Teacher *pmt;</p><p>  switch(ch)</p><p><b>  {</b></p><p><b>  case 0: </b>

100、</p><p>  pt=new Teacher; </p><p>  pt->Input();</p><p>  p->next=pt; </p><p><b>  break;</b></p><p><b>  case 1: </b><

101、/p><p>  pa=new Assistant; </p><p>  pa->Input();</p><p>  p->next=pa; </p><p><b>  break;</b></p><p><b>  case 2: </b></p&g

102、t;<p>  pm=new Manager; </p><p>  pm->Input();</p><p>  p->next=pm; </p><p><b>  break;</b></p><p><b>  case 3: </b></p>&l

103、t;p>  pta=new Teacher_Assistant;</p><p>  pta->Input();</p><p>  p->next=pta; </p><p><b>  break;</b></p><p><b>  case 4: </b></p>

104、;<p>  pmt=new Manager_Teacher; </p><p>  pmt->Input();</p><p>  p->next=pmt;</p><p><b>  break;</b></p><p><b>  default: </b></

105、p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void College::Clear() //清除職工結(jié)點(diǎn),僅保留頭結(jié)點(diǎn)</p><p><b>

106、  {</b></p><p>  Person *p=PL->next;</p><p><b>  while(p)</b></p><p><b>  { </b></p><p>  PL->next=p->next;</p><p>&

107、lt;b>  delete p;</b></p><p>  p->next=PL->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  int College::Find(int ID,Person **p1

108、,Person **p2) //查找職工結(jié)點(diǎn)</p><p><b>  {</b></p><p>  *p1=PL->next;</p><p><b>  *p2=PL;</b></p><p>  while(*p1)</p><p><b> 

109、 {</b></p><p>  if((*p1)->no==ID)</p><p>  break; //找到</p><p><b>  else </b></p><p><b>  {</b></p><p>  *p2=*p1; //繼續(xù)查找&

110、lt;/p><p>  *p1=(*p1)->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  return *p1?1:0;</p><p><b>  }</b></p>

111、<p>  void College::Delete() //刪除職工</p><p><b>  {</b></p><p>  cout<<"\n** 刪除職工 **\n";</p><p><b>  int no;</b></p><p>  P

112、erson *p1,*p2;</p><p>  cout<<"編號(hào):"; cin>>no;</p><p>  if(!Find(no,&p1,&p2))</p><p><b>  {</b></p><p>  cout<<"指定的

113、人員沒有找到!\n";</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  p2->next=p1->next; //連接</p><p&g

114、t;  delete p1;</p><p>  cout<<"正確刪除!\n";</p><p><b>  }</b></p><p><b>  }</b></p><p>  void College::Find1() //查詢職工信息</p>

115、<p><b>  {</b></p><p>  cout<<"\n** 查詢職工 **\n";</p><p><b>  int no;</b></p><p>  Person *p1,*p2;</p><p>  cout<<&qu

116、ot;編號(hào):"; </p><p><b>  cin>>no;</b></p><p>  if(!Find(no,&p1,&p2))</p><p><b>  {</b></p><p>  cout<<"指定的人員沒有找到!\n&

117、quot;;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"編號(hào) 姓名 崗位 課時(shí) 收入情況\n";</p>

118、<p>  cout<<setw(4)<<p1->no<<setw(6)<<p1->name<<setw(4)<<p1->duty<<setw(8)<<p1->hours<<setw(8)<<p1->Incoming()<<endl;</p><p

119、><b>  }</b></p><p><b>  }</b></p><p>  void College::Print() //輸出職工信息</p><p><b>  {</b></p><p>  cout<<"\n** 職工信息表

120、**\n";</p><p>  cout<<"編號(hào) 姓名 崗位 課時(shí) 收入情況\n";</p><p>  Person *p=PL->next;</p><p><b>  if(!p)</b></p><p><b>  {</b><

121、;/p><p>  cout<<"無職工記錄!\n";</p><p><b>  return;</b></p><p><b>  }</b></p><p>  while(p) //找到并輸出職工信息</p><p><b> 

122、 {</b></p><p>  p->Output();</p><p>  p=p->next;</p><p><b>  }</b></p><p>  void College::Save() //職工信息存盤</p><p><b>  {&l

123、t;/b></p><p>  ofstream f("Person.dat",ios::out); //打開文件</p><p><b>  //遍歷輸出至文件</b></p><p>  Person *p=PL->next;</p><p>  while(p) </p&g

124、t;<p><b>  {</b></p><p>  p->Output(f);</p><p>  p=p->next;</p><p><b>  }</b></p><p>  f.close(); //關(guān)閉文件</p><p> 

125、 cout<<"職工信息已經(jīng)保存在Person.dat.\n";</p><p><b>  }</b></p><p>  void College::Load() //職工信息裝入</p><p><b>  { </b></p><p>  char b

126、uf[81]; //臨時(shí)空間</p><p>  int duty; //人員類型</p><p>  Person *p2; //新建結(jié)點(diǎn)的指針</p><p>  long t; //讀寫位置 </p><p>  Clear(); //清除現(xiàn)有結(jié)點(diǎn)(保留頭結(jié)點(diǎn))</p><

127、;p>  ifstream f("Person.dat",ios::in); //打開文件</p><p>  Person *p=PL; //尾結(jié)點(diǎn)指針</p><p><b>  while(1)</b></p><p><b>  {</b></

128、p><p>  t=f.tellg() //讀取人員類型</p><p>  f>>buf>>buf>>duty;</p><p><b>  if(f)</b></p><p><b>  {</b></p><

129、;p>  switch(duty) //根據(jù)人員類型創(chuàng)建新結(jié)點(diǎn)</p><p><b>  {</b></p><p>  case 0: p2=new Teacher; break;</p><p>  case 1: p2=new Assistant; break;</p><p>  case 2:

130、p2=new Manager; break;</p><p>  case 3: p2=new Teacher_Assistant; break;</p><p>  case 4: p2=new Manager_Teacher; break;</p><p>  default: f.close(); return;</p><p>

131、;<b>  }</b></p><p>  p->next=p2;</p><p>  p=p->next;</p><p>  f.seekg(t);</p><p>  p->Input(f); </p><p><b>  }</b><

132、/p><p><b>  else</b></p><p><b>  break; </b></p><p><b>  }</b></p><p>  f.close(); //關(guān)閉文件</p><p><b>  }</b>

133、;</p><p>  void main()</p><p><b>  {</b></p><p><b>  int i,j;</b></p><p><b>  char ch;</b></p><p>  College c; //定義大學(xué)對(duì)

134、象</p><p>  do //顯示主菜單</p><p><b>  {</b></p><p>  cout<<"|-------------------------菜單----------------------|\n";</p><p>  cout<&l

135、t;"1-增加教職工信息\n";</p><p>  cout<<"2-刪除教職工信息\n";</p><p>  cout<<"3-輸出教職工信息\n";</p><p>  cout<<"4-查詢教職工信息\n";</p><p

136、>  cout<<"5-數(shù)據(jù)存盤\n";</p><p>  cout<<"0-結(jié)束"<<endl;</p><p>  cout<<"|---------------------------------------------------|"<<endl;<

137、/p><p>  cout<<"輸入1~4應(yīng)的操作 ,輸入0 結(jié)束"<<endl;</p><p><b>  cin>>ch; </b></p><p>  system("cls");</p><p>  switch(ch)</p>

138、<p><b>  {</b></p><p><b>  case '1':</b></p><p><b>  {</b></p><p>  cout<<"\n** 增加職工 **\n";</p><p>  

139、cout<<"請(qǐng)輸入需要增加的職工數(shù):";</p><p><b>  cin>>i;</b></p><p>  for(j=1;j<=i;j++)</p><p><b>  { </b></p><p>  c.Add(); </p&

140、gt;<p><b>  } </b></p><p><b>  break;}</b></p><p>  case '2':c.Delete();break;</p><p>  case '3':c.Print();break;</p><p>

141、  case '4':c.Find1();break;</p><p>  case '5':c.Save();break;</p><p>  default :break}</p><p>  }while(ch!='0');</p><p><b>  }</b>&l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論