課程設(shè)計--使用c++面向?qū)ο缶幊痰墓べY管理系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  ********大學(xué)</p><p>  計算機(jī)科學(xué)與技術(shù)學(xué)院</p><p><b>  面向?qū)ο笳n程設(shè)計</b></p><p>  題 目:工資管理系統(tǒng)的設(shè)計實現(xiàn)</p><p>  專業(yè)班級: 07計算機(jī)應(yīng)用 </p><p>  姓 名:

2、 </p><p>  學(xué) 號: </p><p><b>  目 錄</b></p><p><b>  序 言III</b></p><p><b>  摘 要IV</b></p&g

3、t;<p><b>  設(shè)計總結(jié)11</b></p><p><b>  參考文獻(xiàn)11</b></p><p>  附錄:源代碼(帶注釋)12</p><p><b>  序 言</b></p><p>  借助現(xiàn)代信息技術(shù)和管理理論,建立學(xué)校管理信息系統(tǒng)

4、勢在必行。對學(xué)校而言,全面開發(fā)和應(yīng)用計算機(jī)管理信息系統(tǒng)就是有必要的。在學(xué)校管理中,教師是學(xué)校的寶貴資源,也是學(xué)校的“生命線”,因此人事管理是學(xué)校的計算機(jī)管理信息系統(tǒng)重要組成部分。而工資管理又是人力資源管理的重中之重。實行電子化的工資管理,可以讓人力資源管理人員從繁重瑣碎的案頭工作解脫出來,去完成更重要的工作。</p><p>  在本次課程設(shè)計當(dāng)中,我的課題就是設(shè)計“學(xué)校教師工資管理系統(tǒng)”的仿真軟件。通過設(shè)計任務(wù)

5、書中的要求以及介紹,大致確定了主要的目的是:學(xué)習(xí)和掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能。</p><p>  為了更好的完成此次課程設(shè)計,我首先了解了學(xué)校教師的管理結(jié)構(gòu),并查詢了大量書籍,制訂了合理的方案,然后設(shè)計出大體的框架,接下來將各個部分慢慢的擴(kuò)充起來,使其充盈豐實,然后完成了大致的雛形,并通過不斷地測試和調(diào)試,完成了最終的成品。</p><p>  

6、最后,經(jīng)過自己的一番努力以及指導(dǎo)老師的悉心指導(dǎo),終于完成了此方針軟件的設(shè)計,通過這次課程設(shè)計,我基本了解并且學(xué)習(xí)了如何分析研究數(shù)據(jù)對象的特性、數(shù)據(jù)的組織方法、如何選取合適的數(shù)據(jù)邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)。這對以后的學(xué)習(xí)都有著很大的幫助。</p><p><b>  摘 要</b></p><p>  本系統(tǒng)基本上能夠滿足學(xué)校教師工資管理的需求。工資管理系統(tǒng)中使用了各種表格,

7、保存相關(guān)的工資信息,方便查詢,瀏覽,修改等操作。本系統(tǒng)結(jié)合實際的人事、財務(wù)制度,經(jīng)過實際的需求分析,采用功能強(qiáng)大的VC++作為開發(fā)工具開發(fā)出來的學(xué)校教師工資管理系統(tǒng)。</p><p>  本文首先分析了學(xué)校教師工資管理的應(yīng)用現(xiàn)狀,闡述了本工資管理系統(tǒng)的開發(fā)目的。通過對一系列問題的分析,確定了系統(tǒng)的開發(fā)平臺。接著詳細(xì)給出了從學(xué)校教師工資管理系統(tǒng)分析到總體設(shè)計詳細(xì)設(shè)計與實現(xiàn)及測試的各個環(huán)節(jié),最后對本次課程設(shè)計作出了總

8、結(jié)。</p><p>  本系統(tǒng)以Visual C++ 6.0為平臺,使用C++編程語言編寫實現(xiàn),包含冒泡排序的數(shù)據(jù)結(jié)構(gòu),和對文件夾的基本操作等基礎(chǔ)知識。本系統(tǒng)能夠打印報表,方便保存和管理。</p><p>  關(guān)鍵詞:面向?qū)ο?、課程設(shè)計、計算機(jī)科學(xué)與技術(shù)學(xué)院、教師工資管理</p><p>  1.系統(tǒng)需求及功能分析</p><p> ?。?

9、)、這是一個小型學(xué)院教工工資管理系統(tǒng),工資管理的數(shù)據(jù)文件中存儲有教工姓名、月工資、教工號、性別、年齡、電話號碼,該程序可以錄入和顯示所有員工的相關(guān)資料。在錄入所有教工后,系統(tǒng)會自動對教工按工資進(jìn)行降序排列存入文件中。</p><p> ?。?)、項目運行的軟、硬件環(huán)境: Windows操作系統(tǒng)以及相應(yīng)的軟硬件 Microsoft  Visual C++ 6.0 </p>&l

10、t;p>  (3)、項目具體的功能要求: 、數(shù)據(jù)錄入:輸入各種數(shù)據(jù); 、數(shù)據(jù)統(tǒng)計:各行政人員的工資計算最終按工資進(jìn)行的冒</p><p>  泡排序; 、數(shù)據(jù)打印:打印表格; 、數(shù)據(jù)備份:把相關(guān)數(shù)據(jù)寫入文件;</p><p>  、退出:退出本系統(tǒng)。</p><p> ?。?)、類層次結(jié)構(gòu)圖</p>

11、<p>  類層次結(jié)構(gòu)圖如圖1所示:</p><p>  圖1 類層次結(jié)構(gòu)圖</p><p><b>  2.設(shè)計方案</b></p><p>  首先定義教工類employee;再通過employee類分別派生出講師類technician、輔導(dǎo)員類manager、教授類seller;還有行政人員類sellermanager是從

12、講師類和教授類派生得到。各類中產(chǎn)成員函數(shù)就只是對數(shù)據(jù)成員的設(shè)置和取出操作。另外有四個函數(shù)inputmanager、inputseller、inputsellermanager、inputtechnician</p><p>  分別對類manager、seller、sellermanager、technician四個類的對象的賦值操作。在本系統(tǒng)中我用的是數(shù)組操作所有的教工,因為此系統(tǒng)是為小型公司所設(shè)計,所以在系統(tǒng)

13、中預(yù)設(shè)教工為1000個。一開始用“employee employeeall[EMP];”語句定義一個一維數(shù)組用來存放employee的對象。當(dāng)操作員輸入完成后,系統(tǒng)會自動調(diào)用一個函數(shù)(compositorall)對所有員工的工資進(jìn)行降序排列。然后用函數(shù)(outputtofile)把排列好了的數(shù)據(jù)自動保存在“E:\\小型公司工資管理系統(tǒng)文檔.txt” 文件中。資料保存后,系統(tǒng)會提示:“是否打印?” ,若打印則顯示出來打印,若不打印則就直接

14、退出系統(tǒng)。本程序從整體上來看是通過函數(shù)之間的調(diào)用來實現(xiàn)的。</p><p><b>  3.數(shù)據(jù)結(jié)構(gòu)表</b></p><p>  數(shù)據(jù)成員結(jié)構(gòu)圖如圖1所示:</p><p>  表1 數(shù)據(jù)成員結(jié)構(gòu)圖</p><p><b>  4.數(shù)據(jù)測試表</b></p><p>  

15、數(shù)據(jù)測試表如表2所示:</p><p><b>  表2 數(shù)據(jù)測試表</b></p><p><b>  5.運行和調(diào)試</b></p><p>  輸入第1個教工的資料如圖3所示:</p><p>  圖3 輸入第1個教工的資料</p><p>  輸入第2個教工的

16、資料如圖4所示:</p><p>  圖4 輸入第2個教工的資料</p><p>  輸入第3個教工的資料如圖5所示:</p><p>  圖5 輸入第3個教工的資料</p><p>  輸入第4個教工的資料如圖6所示:</p><p>  圖6 輸入第4個教工的資料</p><p

17、>  輸入“5”退出程序并自動排序、保存文件如圖7所示:</p><p>  圖7 輸入“5”退出程序并自動排序、保存文件</p><p>  問題1、在以下這段程序段中:</p><p><b>  ……</b></p><p><b>  ……</b></p><

18、p><b>  int n;</b></p><p><b>  cin>>n;</b></p><p><b>  switch(n)</b></p><p><b>  {</b></p><p><b>  case 1:

19、 </b></p><p>  inputtechnician(employeeall[i]);</p><p><b>  i++;</b></p><p><b>  break;</b></p><p><b>  case 2:</b></p>

20、<p>  inputmanager(employeeall[i]); </p><p><b>  i++;</b></p><p><b>  break;</b></p><p><b>  case 3: </b></p><p>  inputseller

21、(employeeall[i]); </p><p><b>  i++;</b></p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  inputsellermanager(employeeall[i]);&

22、lt;/p><p><b>  i++;</b></p><p><b>  break;</b></p><p><b>  case 5: </b></p><p>  system("cls");//刷新屏幕****</p><p>

23、;  compositorall(employeeall);//教工的工資降序排列outputtofile(employeeall);//把資料保存到文件中*</p><p>  cout<<"是否打印資料(y/n)";</p><p>  char a[5];</p><p><b>  cin>>a;

24、</b></p><p>  if(a[0]=='y'||a[0]=='Y')</p><p>  printfile();//把文件中的資料顯示到顯示器上 return 1;</p><p><b>  default: </b></p><p>  co

25、ut<<"\t錯誤!請重新輸入!\n";</p><p><b>  }</b></p><p><b>  ……</b></p><p><b>  ……</b></p><p>  若輸入的是整數(shù)程序可以正常運行,如果誤輸入了非數(shù)字字符

26、(比如:a)則程序運行到這里時會是一個“死循環(huán)”中。</p><p><b>  解決方法:</b></p><p>  把int型變量“n”定義為一個字符數(shù)組char[5];再把switch(n)改為switch(n[0]),通過比較字符數(shù)組中的第一個元素。但是如果用戶輸入“145”</p><p>  這樣的話,程序比較字符數(shù)組中的第一個字

27、符是“1”程序還是會正確運行下去。這個問題的解決方案是在switch(n[0])前加一條語句if(strlen(n)==1),else</p><p>  cout<<"\t錯誤!請重新輸入!\n"。修改后的程序段如下:</p><p><b>  ……</b></p><p><b>  ……<

28、/b></p><p>  char n[5];</p><p><b>  cin>>n;</b></p><p>  if(strlen(n)==1)</p><p><b>  {</b></p><p>  switch(n[0])</p>

29、;<p><b>  {</b></p><p>  case '1': </p><p>  inputtechnician(employeeall[i]);</p><p><b>  i++;</b></p><p><b>  break;</b

30、></p><p><b>  case '2':</b></p><p>  inputmanager(employeeall[i]); </p><p><b>  i++;</b></p><p><b>  break;</b></p>

31、<p>  case '3': </p><p>  inputseller(employeeall[i]); </p><p><b>  i++;</b></p><p><b>  break;</b></p><p><b>  case '4

32、':</b></p><p>  inputsellermanager(employeeall[i]);</p><p><b>  i++;</b></p><p><b>  break;</b></p><p>  case '5': </p>

33、<p>  system("cls"); //刷新屏幕**********************</p><p>  compositorall(employeeall);//教工的工資降序排列</p><p>  outputtofile(employeeall);//把資料保存到文件中*</p><p>  cout<&l

34、t;"是否打印資料(y/n)";</p><p>  char a[5];</p><p><b>  cin>>a;</b></p><p>  if(a[0]=='y'||a[0]=='Y')</p><p>  printfile();//把文件中的資

35、料顯示到顯示器上</p><p><b>  return 1;</b></p><p><b>  default: </b></p><p>  cout<<"\t錯誤!請重新輸入!\n";</p><p><b>  }</b><

36、;/p><p><b>  }</b></p><p><b>  else</b></p><p>  cout<<"\t錯誤!請重新輸入!\n";</p><p><b>  ……</b></p><p><b>

37、;  ……</b></p><p>  問題2、提高數(shù)據(jù)錄入的正確性</p><p><b>  解決方法:</b></p><p>  在錄入數(shù)據(jù)的時候由于性別只有男、女兩性別不可能有另外的第三性別出現(xiàn),所以錄入性別時是通過選擇的方式錄入而不是鍵入性別這樣就能有效的避免第三性別的出現(xiàn)。</p><p>  

38、一個人的姓名都會在英文15個字母、漢字4個內(nèi),所以通過加一條語句:if(strlen(temp)>15來判斷姓名的長度,若不符合則要求重新輸入,符合則繼續(xù)運行下去。</p><p>  在錄入年齡的時候,年齡不可能是一個小于0的數(shù),也不可能是太大的數(shù),通過if(temp<=18||temp>65)語句來判斷該年齡是否在18至65之間。年齡在大于18是因為我們國家的法定成年年齡是18歲,要滿18歲

39、才能參加工作;而小于65周歲呢,一般年高60歲就是退休年齡不再參加工作了。</p><p><b>  設(shè)計總結(jié)</b></p><p>  面向?qū)ο笳n程設(shè)計是計算機(jī)專業(yè)一門重要的專業(yè)基礎(chǔ)課。此次課程設(shè)計的目的是以C++程序設(shè)計語言為基礎(chǔ),通過完成一些具有一定難度的課程設(shè)計題目的編寫、調(diào)試、運行工作,使我進(jìn)一步掌握面向過程和面向?qū)ο蟪绦蛟O(shè)計的基本方法和編程技巧,鞏固所

40、學(xué)理論知識,使理論與實際相結(jié)合。從而提高自我分析問題、解決問題的能力。培養(yǎng)獨立的C++語言程序?qū)嶋H與算法設(shè)計方法,具備初步的獨立分析和設(shè)計能力;軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能;能夠綜合運用所學(xué)的理論知識和方法進(jìn)行獨立分析和解決問題的能力。</p><p>  總的來說這次課設(shè)讓我學(xué)到了很多東西,在網(wǎng)上找的參考資料不僅僅對這次課設(shè)有用處,而且對以后的學(xué)習(xí)也有不小的幫助,因為從中我學(xué)

41、到了不少很實用的編程技巧。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]陳維興,林小茶.c++面向?qū)ο蟪绦蛟O(shè)計教程. 北京: 清華大學(xué)出版社,1996.2004.</p><p>  [2]譚浩強(qiáng). C++面向?qū)ο蟪绦蛟O(shè)計. 北京: 清華大學(xué)出版社,2009. </p><p>  [3]張松

42、梅. C++語言教程. 電子科技大學(xué)出版社,1993. </p><p>  [4]閻龍. C程序員的C++指南. 北京航空航天大學(xué)出版社,1992.</p><p>  [5]王博. 面向?qū)ο蟮慕?、設(shè)計技術(shù)與方法. 北京希望電腦公司,1990. </p><p>  [6]汪成為. 面向?qū)ο蠓治?、設(shè)計及應(yīng)用. 國防工業(yè)出版社,1992. </p>

43、<p>  [7]江明德. 面向?qū)ο蟪绦蛟O(shè)計. 電子工業(yè)出版社,1993. </p><p>  [8]呂鳳翥.C++語言程序設(shè)計.電子工業(yè)出版社,2001.</p><p>  附錄:源代碼(帶注釋)</p><p>  #include<iostream.h></p><p>  #include<string

44、.h></p><p>  #include<fstream.h></p><p>  #include<stdlib.h> </p><p>  const int EMP=1000;//學(xué)院教工總?cè)藬?shù)(跟據(jù)需要可以放縮)************************</p><p>  void numb

45、ertochar(char*,double);</p><p>  //定義基類教工類employee******************************************************</p><p>  class employee{</p><p><b>  private:</b></p><

46、;p>  // 姓名 教工號 職位 性別 電話號碼************************</p><p>  char name[10],number[10],post[10],sex[10],telephone[15];</p><p>  int age;//年齡************************************

47、*************************</p><p>  double monthwages;//月工資*************************************************</p><p>  static long employees;//學(xué)院教工人數(shù)***************************************</p&g

48、t;<p><b>  public:</b></p><p>  long getemployees()</p><p><b>  {</b></p><p>  return employees;</p><p><b>  }</b></p>

49、<p>  char*getnumber()</p><p><b>  {</b></p><p>  return number;</p><p><b>  }</b></p><p>  char*getname()</p><p><b>  

50、{</b></p><p>  return name;</p><p><b>  }</b></p><p>  char*getpost()</p><p><b>  {</b></p><p>  return post;</p><

51、p><b>  }</b></p><p>  char*getsex()</p><p><b>  {</b></p><p>  return sex;</p><p><b>  }</b></p><p>  char*getteleph

52、one()</p><p><b>  {</b></p><p>  return telephone;</p><p><b>  }</b></p><p>  int getage()</p><p><b>  {</b></p>

53、<p>  return age;</p><p><b>  }</b></p><p>  double getmonthwages()</p><p><b>  {</b></p><p>  return monthwages;</p><p><

54、b>  }</b></p><p>  void setnumber(char temp[])</p><p><b>  {</b></p><p>  renumber:if(strlen(temp)>15)</p><p><b>  {</b></p>

55、<p>  cout<<"輸入錯誤(不能多余15個字母或5個漢字)!請重新輸入。\n";</p><p>  char temp1[15];</p><p>  cout<<"教 工 號:\t";</p><p>  cin>>temp1;</p>&l

56、t;p>  if(strlen(temp1)>15)</p><p>  goto renumber;</p><p><b>  else </b></p><p>  strcpy(number,temp1);</p><p><b>  }</b></p><p

57、><b>  else</b></p><p>  strcpy(number,temp);</p><p><b>  }</b></p><p>  void setname(char temp[])</p><p><b>  {</b></p>&l

58、t;p>  renumber:if(strlen(temp)>15)</p><p><b>  {</b></p><p>  cout<<"輸入錯誤(不能多余15個字母或5個漢字)!請重新輸入。\n";</p><p>  char temp1[10];</p><p>

59、  cout<<"姓 名:\t";</p><p>  cin>>temp1;</p><p>  if(strlen(temp1)>15)</p><p>  goto renumber;</p><p><b>  else </b></p&g

60、t;<p>  strcpy(name,temp1);</p><p><b>  }</b></p><p><b>  else</b></p><p>  strcpy(name,temp);</p><p>  employees++;</p><p>

61、<b>  }</b></p><p>  void setpost(char temp[])</p><p><b>  {</b></p><p>  renumber:if(strlen(temp)>10)</p><p><b>  {</b></p>

62、;<p>  cout<<"輸入錯誤(不能多余十個字母或五個漢字)!請重新輸入。\n";</p><p>  char temp1[10];</p><p>  cout<<"職 位\t";</p><p>  cin>>temp1;</p>

63、<p>  if(strlen(temp1)>10)</p><p>  goto renumber;</p><p><b>  else </b></p><p>  strcpy(post,temp1);</p><p><b>  }</b></p><p

64、><b>  else</b></p><p>  strcpy(post,temp);</p><p><b>  }</b></p><p>  void setsex()</p><p><b>  {</b></p><p>  cout&

65、lt;<"性別(1、男;2、女):";</p><p>  resex:char temp1[5];</p><p>  cin>>temp1;</p><p>  if(strlen(temp1)==1)</p><p><b>  {</b></p><p

66、>  switch(temp1[0])</p><p><b>  {</b></p><p><b>  case '1':</b></p><p>  strcpy(sex,"男");</p><p><b>  break;</b>

67、;</p><p><b>  case '2':</b></p><p>  strcpy(sex,"女");</p><p><b>  break;</b></p><p><b>  default:</b></p>&

68、lt;p>  cout<<"錯誤(請選擇1或2)";</p><p>  goto resex;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p>

69、;<p><b>  {</b></p><p>  cout<<"錯誤(請選擇1或2)";</p><p>  goto resex;</p><p><b>  }</b></p><p><b>  }</b></p&g

70、t;<p>  void settelephone(char temp[])</p><p><b>  {</b></p><p>  retelephone:if(strlen(temp)>20)</p><p><b>  {</b></p><p>  cout<

71、<"輸入錯誤(不能多余二十個數(shù)字)!請重新輸入。\n";</p><p>  char temp1[20];</p><p>  cout<<"電 話 號 碼:\t";</p><p>  cin>>temp1;</p><p>  if(strlen(temp1)&

72、gt;20)</p><p>  goto retelephone;</p><p><b>  else </b></p><p>  strcpy(telephone,temp1);</p><p><b>  }</b></p><p><b>  else&

73、lt;/b></p><p>  strcpy(telephone,temp);</p><p><b>  }</b></p><p>  void setage(int temp)</p><p><b>  {</b></p><p>  renumber:if

74、(temp<=18||temp>65)</p><p><b>  {</b></p><p>  cout<<"輸入錯誤!請重新輸入。\n";</p><p>  int temp1;</p><p>  cout<<"年 齡:\t&q

75、uot;;</p><p>  cin>>temp1;</p><p>  if(temp1<=0||temp1>120)</p><p>  goto renumber;</p><p><b>  else </b></p><p>  age=temp1;</p

76、><p><b>  }</b></p><p><b>  else</b></p><p><b>  age=temp;</b></p><p><b>  }</b></p><p>  void setmonthwages(d

77、ouble temp)</p><p><b>  {</b></p><p>  monthwages=temp;</p><p><b>  }</b></p><p><b>  };</b></p><p>  long employee::em

78、ployees=0;</p><p>  //講師類的定義*****************************************************************</p><p>  class technician: public employee{</p><p>  protected:</p><p>  

79、static int technicians;//用來記數(shù)講師的數(shù)量********************************</p><p><b>  public:</b></p><p>  int gettechnicians()</p><p><b>  {</b></p><p&g

80、t;  return technicians;</p><p><b>  }</b></p><p>  void setnumber(char temp[])</p><p><b>  {</b></p><p>  technicians++;</p><p>  e

81、mployee::setnumber(temp);</p><p><b>  }</b></p><p>  void monthly_wages(double temp)</p><p><b>  {</b></p><p>  setmonthwages(temp*100);</p&g

82、t;<p>  //講師的工資為課程量*課時工資100每課時**************************</p><p><b>  }</b></p><p><b>  };</b></p><p>  int technician::technicians=0;</p><p

83、>  //輔導(dǎo)員類的定義***************************************************************</p><p>  class manager:public employee{</p><p>  static int managers;//輔導(dǎo)員的數(shù)量**************************************

84、***</p><p><b>  public:</b></p><p>  int getmanagers()</p><p><b>  {</b></p><p>  return managers;</p><p><b>  }</b><

85、;/p><p>  void monthly_wages()</p><p><b>  {</b></p><p>  setmonthwages(5000);//輔導(dǎo)員的工資為五千固定***************************</p><p>  managers++;</p><p>

86、;<b>  }</b></p><p><b>  };</b></p><p>  int manager::managers=0;</p><p>  //教授類的定義*****************************************************************</p>

87、<p>  class seller:public employee{</p><p>  protected:</p><p>  static double sellroom;</p><p>  static double sellrooms;</p><p>  static int sellers;</p>

88、<p><b>  public:</b></p><p>  int getsellers()</p><p><b>  {</b></p><p>  return sellers;</p><p><b>  }</b></p><p&

89、gt;  double getsellroom()</p><p><b>  {</b></p><p>  return sellroom;</p><p><b>  }</b></p><p>  double getsellrooms()</p><p><b

90、>  {</b></p><p>  return sellrooms;</p><p><b>  }</b></p><p>  void setsellroom(double temp)</p><p><b>  {</b></p><p>  se

91、llroom=temp;</p><p>  sellrooms=sellrooms+temp;</p><p><b>  }</b></p><p>  void monthly_wages()</p><p><b>  {</b></p><p>  setmont

92、hwages(sellroom*0.04);</p><p>  sellers++;</p><p><b>  }</b></p><p><b>  };</b></p><p>  double seller::sellroom=0;</p><p>  doubl

93、e seller::sellrooms=0;</p><p>  int seller::sellers=0;</p><p>  //行政人員類的定義*************************************************************</p><p>  class sellermanager:public seller{&l

94、t;/p><p>  static int sellermanagers;//行政人員的數(shù)量*********************************</p><p><b>  public:</b></p><p>  int getsellermanagers()</p><p><b>  {<

95、;/b></p><p>  return sellermanagers;</p><p><b>  }</b></p><p>  double getsellrooms()</p><p><b>  {</b></p><p>  return sellroom

96、s;</p><p><b>  }</b></p><p>  void monthly_wages()</p><p><b>  {</b></p><p>  setmonthwages(sellrooms*0.005+5000);</p><p>  sellerm

97、anagers++;</p><p><b>  }</b></p><p><b>  };</b></p><p>  int sellermanager::sellermanagers=0;</p><p>  //各數(shù)據(jù)輸入的原函數(shù)聲明****************************

98、***************************</p><p>  void inputtechnician(employee&);</p><p>  void inputmanager(employee&);</p><p>  void inputseller(employee&);</p><p>  

99、void inputsellermanager(employee&);</p><p>  void compositorall(employee*);//對所有教工的工資降序排列***********************</p><p>  int printfile();//把文件中的資料顯示到顯示器上*********************************<

100、;/p><p>  void outputtofile(employee*);//把資料保存到文件中******************************</p><p>  //主函數(shù)***********************************************************************</p><p>  int main

101、()</p><p><b>  {</b></p><p>  employee employeeall[EMP];</p><p><b>  int i=0;</b></p><p>  while(i<EMP)</p><p><b>  {</

102、b></p><p>  system("cls"); //刷新屏幕**********************************************</p><p>  cout<<"*** 本系統(tǒng)能存入"<<EMP<<"個教工的資料 ***\n";</p>

103、<p>  cout<<" *** 已經(jīng)輸入了"<<employeeall[0].getemployees()</p><p>  <<"教工的資料 ****\n";</p><p>  cout<<" ********************************\n

104、";</p><p>  cout<<" *** 1、輸入講 師的資料; ***\n";</p><p>  cout<<" *** 2、輸入輔 導(dǎo) 員的資料; ***\n";</p><p>  cout<<" *** 3、輸入教 授的

105、資料; ***\n";</p><p>  cout<<" *** 4、輸入行政人員的資料; ***\n";</p><p>  cout<<" *** 5、退出輸入! ***\n";</p><p>  cout<<" ****

106、****************************\n";</p><p>  cout<<"請選擇:";</p><p>  char n[5];</p><p><b>  cin>>n;</b></p><p>  if(strlen(n)==1)<

107、/p><p><b>  {</b></p><p>  switch(n[0])</p><p><b>  {</b></p><p>  case '1': </p><p>  inputtechnician(employeeall[i]);</p&

108、gt;<p><b>  i++;</b></p><p><b>  break;</b></p><p><b>  case '2':</b></p><p>  inputmanager(employeeall[i]); </p><p>

109、<b>  i++;</b></p><p><b>  break;</b></p><p>  case '3': </p><p>  inputseller(employeeall[i]); </p><p><b>  i++;</b></p&g

110、t;<p><b>  break;</b></p><p><b>  case '4':</b></p><p>  inputsellermanager(employeeall[i]);</p><p><b>  i++;</b></p><p

111、><b>  break;</b></p><p>  case '5': </p><p>  system("cls"); //刷新屏幕**************************************</p><p>  compositorall(employeeall);//對所有教

112、工的工資降序排列**********</p><p>  outputtofile(employeeall);//把資料保存到文件中*****************</p><p>  cout<<"是否打印資料(y/n)";</p><p>  char a[5];</p><p><b>  c

113、in>>a;</b></p><p>  if(a[0]=='y'||a[0]=='Y')</p><p>  printfile();//把文件中的資料顯示到顯示器上*****************</p><p><b>  return 1;</b></p><

114、p><b>  default: </b></p><p>  cout<<"\t錯誤!請重新輸入!\n";</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  els

115、e</b></p><p>  cout<<"\t錯誤!請重新輸入!\n";</p><p><b>  }</b></p><p>  compositorall(employeeall);//對所有教工的工資降序排列**********************</p><p&g

116、t;  outputtofile(employeeall);//把資料保存到文件中*****************************</p><p>  printfile();//把文件中的資料顯示到顯示器上*********************************</p><p><b>  return 0;</b></p><

117、;p><b>  }</b></p><p>  //教工基本信息的輸入函數(shù)*******************************************************</p><p>  void inputtechnician(employee &empl)</p><p><b>  {</

118、b></p><p>  technician tech;</p><p>  cout<<"\n★★教工資料:\n";</p><p>  char temp[20];</p><p>  cout<<"姓 名:\t";</p><p

119、>  cin>>temp;</p><p>  empl.setname(temp); </p><p>  cout<<"教 工 號:\t";</p><p>  cin>>temp;</p><p>  empl.setnumber(temp);

120、 </p><p>  empl.setpost("講 師"); </p><p>  empl.setsex(); </p><p>  cout<<"電 話 號 碼:\t";</p><p>  cin>>temp;&l

121、t;/p><p>  empl.settelephone(temp); </p><p>  int tempq=0;</p><p>  cout<<"年 齡:\t";</p><p>  cin>>tempq;</p><p>  empl.seta

122、ge(tempq); </p><p>  double tempp=0;</p><p>  cout<<"工作時間(課時):\t";</p><p>  cin>>tempp;</p><p>  tech.monthly_wages(tempp);

123、 </p><p>  empl.setmonthwages(tech.getmonthwages()); </p><p><b>  }</b></p><p>  //輔導(dǎo)員的基本信息的輸入函數(shù)***************************************************</p><p

124、>  void inputmanager(employee &empl)</p><p><b>  {</b></p><p>  manager mana;</p><p>  cout<<"\n★★輔導(dǎo)員資料:\n";</p><p>  char temp[20];&

125、lt;/p><p>  cout<<"姓 名:\t";</p><p>  cin>>temp;</p><p>  empl.setname(temp);</p><p>  cout<<"教 工 號:\t";</p><

126、;p>  cin>>temp;</p><p>  empl.setnumber(temp);</p><p>  empl.setpost("輔 導(dǎo) 員");</p><p>  empl.setsex();</p><p>  cout<<"電 話 號 碼:\t&quo

127、t;;</p><p>  cin>>temp;</p><p>  empl.settelephone(temp);</p><p>  int tempq=0;</p><p>  cout<<"年 齡:\t";</p><p>  cin>>

128、;tempq;</p><p>  empl.setage(tempq);</p><p>  mana.monthly_wages();</p><p>  empl.setmonthwages(mana.getmonthwages());</p><p><b>  }</b></p><p>

129、;  //教授的基本信息的輸入函數(shù)*****************************************************</p><p>  void inputseller(employee &empl)</p><p><b>  {</b></p><p>  seller sell;</p>&

130、lt;p>  cout<<"\n★★教授資料:\n";</p><p>  char temp[20];</p><p>  cout<<"姓 名:\t";</p><p>  cin>>temp;</p><p>  empl.setname

131、(temp);</p><p>  cout<<"教 工 號:\t";</p><p>  cin>>temp;</p><p>  empl.setnumber(temp);</p><p>  empl.setpost("教 授");</p>&l

132、t;p>  empl.setsex();</p><p>  cout<<"電 話 號 碼:\t";</p><p>  cin>>temp;</p><p>  empl.settelephone(temp);</p><p>  int tempq=0;</p><

133、;p>  cout<<"年 齡:\t";</p><p>  cin>>tempq;</p><p>  empl.setage(tempq);</p><p>  double tempp=0;</p><p>  cout<<"課 程 量

134、:\t";</p><p>  cin>>tempp;</p><p>  sell.setsellroom(tempp);</p><p>  sell.monthly_wages();</p><p>  empl.setmonthwages(sell.getmonthwages());</p><

135、;p><b>  }</b></p><p>  //行政人員的基本信息的輸入函數(shù)*************************************************</p><p>  void inputsellermanager(employee &empl)</p><p><b>  {</

136、b></p><p>  sellermanager sellmana;</p><p>  cout<<"\n★★行政人員資料:\n";</p><p>  char temp[20];</p><p>  cout<<"姓 名:\t";</p&g

137、t;<p>  cin>>temp;</p><p>  empl.setname(temp);</p><p>  cout<<"教 工 號:\t";</p><p>  cin>>temp;</p><p>  empl.setnumber(temp);&l

138、t;/p><p>  empl.setpost("行政人員");</p><p>  empl.setsex();</p><p>  cout<<"電 話 號 碼:\t";</p><p>  cin>>temp;</p><p>  empl.set

139、telephone(temp);</p><p>  int tempq=0;</p><p>  cout<<"年 齡:\t";</p><p>  cin>>tempq;</p><p>  empl.setage(tempq);</p><p>  s

140、ellmana.setsellroom(sellmana.getsellrooms());</p><p>  sellmana.monthly_wages();</p><p>  empl.setmonthwages(sellmana.getmonthwages());</p><p><b>  }</b></p><

141、;p>  //把資料保存到文件中***********************************************************</p><p>  void outputtofile(employee *empl)</p><p><b>  {</b></p><p>  ofstream fout;</p

142、><p>  fout.open("E:\\ 計算機(jī)與通信學(xué)院教師工資管理系統(tǒng)文檔.txt");</p><p><b>  if(!fout)</b></p><p>  cout<<"Open file error!";</p><p><b>  else&

143、lt;/b></p><p><b>  {</b></p><p>  fout<<"姓 名"<<"\t";</p><p>  fout<<"教工號"<<"\t";</p><p>

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論