c++課程設(shè)計(jì)--小型公司工資管理系統(tǒng)_第1頁
已閱讀1頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  C++程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告</p><p>  課 題: 小型公司工資管理系統(tǒng)</p><p>  專業(yè)班級: xxxxx </p><p>  學(xué) 號: xxxxxxxx </p><p>  姓 名: xxxxx </p>&

2、lt;p>  指導(dǎo)教師: xxxxx </p><p><b>  目錄</b></p><p><b>  目錄</b></p><p>  一、課程設(shè)計(jì)內(nèi)容……………………………………………………3</p><p>  1.1課程設(shè)計(jì)的目的…………………………

3、…………………3</p><p>  2設(shè)計(jì)題目及要求……………………………………………3</p><p>  二、設(shè)計(jì)思路…………………………………………………………4</p><p>  三、程序清單…………………………………………………………7</p><p>  1程序源代碼…………………………………………………7</p>

4、<p>  四、運(yùn)行結(jié)果…………………………………………………………30</p><p>  4.1程序運(yùn)行………………………………………………………31</p><p>  2備份文本信息…………………………………………………34</p><p>  五、程序使用說明……………………………………………………36</p><p>

5、;  六、總結(jié)及心得體會…………………………………………………36</p><p>  (要求:給出一級目錄,宋體加粗,四號字, 1.5倍行距)</p><p><b>  一:課程設(shè)計(jì)內(nèi)容</b></p><p>  1.1、課程設(shè)計(jì)的目的</p><p>  此次課程設(shè)計(jì)的目的是以《程序設(shè)計(jì)語言(C/C++)》為基

6、礎(chǔ),針對具有一定難度的綜合性題目,進(jìn)行分析、編程、調(diào)試和運(yùn)行,進(jìn)一步掌握面向?qū)ο蠛兔嫦蜻^程程序設(shè)計(jì)的基本方法和編程技巧,鞏固所學(xué)理論知識,使理論與實(shí)踐相結(jié)合,提高分析問題、解決問題的能力。</p><p>  通過設(shè)計(jì)一個(gè)簡單的小型公司工資管理系統(tǒng),進(jìn)一步熟悉C++中類的概念、類的封裝、繼承和多態(tài)的實(shí)現(xiàn)方式。了解系統(tǒng)開發(fā)的需要分析,類層次設(shè)計(jì),模塊分析,編碼測試,模塊組裝與整體調(diào)試的全過程,逐步熟悉程序設(shè)計(jì)的方法

7、,并養(yǎng)成良好的編程習(xí)慣。</p><p>  1.2、設(shè)計(jì)題目及要求</p><p>  (1) 題目:小型公司工資管理系統(tǒng) 設(shè)計(jì)</p><p>  (2) 設(shè)計(jì)題目及要求:</p><p>  1.公司主要有4類人員:經(jīng)理、技術(shù)員、銷售員、銷售經(jīng)理。要求存儲這些人的職工號、姓名、月工資、崗位、年齡、性別等信息。其中</p>

8、<p>  (1)職工編號在輸入人員信息時(shí)生成,每輸入一個(gè)人員信息編號順序加1。</p><p> ?。?)程序?qū)λ腥藛T有提升級別的功能。   </p><p>  (3)能夠按照不同身份進(jìn)行月薪的計(jì)算。   </p><p> ?。?)能按姓名或者編號查找各類人員的信息。</p><p>

9、 ?。?)能夠修改/刪除各類人員的信息。</p><p>  (6)能夠顯示所有人員的信息。</p><p>  2.工資的計(jì)算辦法:</p><p>  經(jīng)理:固定月薪為8000;</p><p>  技術(shù)員:工作時(shí)間*小時(shí)工資(100元每小時(shí));</p><p>  銷售員:銷售額*4%提成;</p>

10、<p>  銷售經(jīng)理:底薪(5000)+所轄部門銷售額總額*0.5%;</p><p>  3)類的層次結(jié)構(gòu)大體如下:</p><p>  1.3 課程設(shè)計(jì)步驟與方法 </p><p>  1.需求分析:對用戶提出的問題提出解決的辦法和思路。 </p><p>  2.根據(jù)需求,設(shè)計(jì)系統(tǒng)功能模塊,并設(shè)計(jì)相應(yīng)的類和界面。 </

11、p><p>  3.根據(jù)基本思路,確定輸入和輸出,設(shè)計(jì)程序的算法。 </p><p>  4.確定用到的所有類的描述和定義,并設(shè)計(jì)測試程序來對類進(jìn)行測試。 </p><p>  6.在計(jì)算機(jī)上編譯程序,檢驗(yàn)程序的可運(yùn)行性。</p><p>  1.4 課程設(shè)計(jì)報(bào)告內(nèi)容 </p><p>  寫設(shè)計(jì)報(bào)告(要求正規(guī)打印,A4幅

12、面),內(nèi)容包括:</p><p><b>  題目</b></p><p><b>  系統(tǒng)功能模塊結(jié)構(gòu)圖</b></p><p>  數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及用法說明</p><p>  程序結(jié)構(gòu)(畫流程圖)</p><p><b>  各模塊的功能</b>&l

13、t;/p><p>  試驗(yàn)結(jié)果(包括輸入數(shù)據(jù)和輸出結(jié)果)</p><p><b>  體會</b></p><p><b>  參考文獻(xiàn)</b></p><p><b>  附錄:源程序清單</b></p><p><b>  二、設(shè)計(jì)思路<

14、/b></p><p>  1、整體考慮程序應(yīng)該實(shí)現(xiàn)的功能,有員工信息管理、職務(wù)管理、月薪計(jì)算、查找信息、顯示所有人員的信息和退出系統(tǒng)6個(gè)。</p><p>  2、首先定義一個(gè)Employee的雇員基類,然后由此派生出Manager、Seller、Tech三個(gè)分別為經(jīng)理類、銷售員類、技術(shù)員類;再由Seller派生出銷售經(jīng)理類Xmanager。每個(gè)類中的成員都是public型的,所有

15、的繼承都是公有繼承,基類中定義有數(shù)據(jù)輸入和輸出函數(shù)。</p><p>  3、整個(gè)程序由主函數(shù)的一個(gè)for循環(huán)控制,根據(jù)輸入的操作選項(xiàng)通過一個(gè)switch語句判斷該進(jìn)行什么操作,每一個(gè)case后面對應(yīng)一個(gè)函數(shù),每個(gè)函數(shù)對應(yīng)一個(gè)操作,1對應(yīng)信息管理,2對應(yīng)職務(wù)管理,3對應(yīng)月薪計(jì)算,4對應(yīng)查找信息,5對應(yīng)顯示所有人員的信息,0對應(yīng)退出系統(tǒng)。</p><p>  4、case中調(diào)用了五個(gè)無參的函

16、數(shù)</p><p>  allSave()Exit();dataManagement() ;postManaMenu() ;calculateSal() ;findMenu() ;allDisplay() ;五個(gè)函數(shù)均用了模板函數(shù)的實(shí)例化分別進(jìn)行輸入、職務(wù)管理、計(jì)算月薪、顯示全部信息。如輸入中的一個(gè):</p><p>  template <class T , class Ti &g

17、t; void showMember(T & t , Ti * ti )</p><p><b>  {</b></p><p>  if(t.n <= 0 ) return ; </p><p>  for(t.p = t.head ; t.p != NULL ; t.p = t.p -> next ) t.p ->

18、 show() ;</p><p><b>  }</b></p><p>  showMember()函數(shù)在各個(gè)類中都定義,并且同名,這樣能簡化程序。</p><p>  5、在進(jìn)行信息輸入時(shí),在基類中定義了一個(gè)虛函數(shù),避免了值的副本,首先給出提示語句,首先選擇要輸入的職工類型,然后依次調(diào)用saveFile(),首先創(chuàng)建類的對象指針,如Sel

19、ler * t ;ofstream cout ("S.txt"),建立文件流,創(chuàng)建鏈表,將所輸入的數(shù)據(jù)都保存至文件,并且對備份文件進(jìn)行命名,同時(shí)確定存儲位置。以便之后的查找和刪除功能的實(shí)現(xiàn)。</p><p>  6、在進(jìn)行工資計(jì)算時(shí),每個(gè)類都定義了各自的calcuSalary()函數(shù),依次計(jì)算出每一種職工的工資,由提示語句選擇是否輸出。</p><p>  7、職務(wù)管理

20、功能的實(shí)現(xiàn),是通過編號來查找要提升職位的人員,選擇要升為哪一種職位,然后將多余的數(shù)據(jù)成員刪除,在提升后的成員中將工資重新進(jìn)行計(jì)算,予以賦值。</p><p>  8、查找時(shí),建立函數(shù)模板,參數(shù)為class T , class Ti,需要在哪一個(gè)類中查找就將模板實(shí)例化為哪一個(gè)類,每一次查找時(shí),指針都是先指向文件的起始位置,然后用for循環(huán)來控制,先要輸入編號,如t.p != NULL && t.p

21、-> num != no;若當(dāng)前對象的編號與輸入的編號不相等,則指針移向下一個(gè)對象繼續(xù)查找,若相等則停止查找,并將所找到的信息全部輸出。</p><p>  9、考慮各種數(shù)據(jù)類型還有所需的C++內(nèi)的函數(shù),要引用<iostream><cstring></p><p>  <fstream><iomanip></p><

22、p>  這四個(gè)頭文件。<fstream>用于數(shù)據(jù)保存至文件。 </p><p>  10、修改和刪除的功能都是按照編號、利用模板函數(shù)實(shí)例化來實(shí)現(xiàn)的,找到后由switch控制,1.姓名 2.性別 3.年齡 4.編號 5.工資,先選擇要修改的屬性,然后輸入新信息,將原有信息替換;刪除時(shí),首先在每一個(gè)類中由指針找到要?jiǎng)h除的職工,然后將這個(gè)對象的每一個(gè)數(shù)據(jù)成員用NULL覆蓋,即清零處理,該職工的信

23、息就被刪除了。</p><p>  11、整體構(gòu)思比較簡單,基本能夠?qū)崿F(xiàn)各項(xiàng)功能</p><p><b>  源程序清單:</b></p><p>  #include<iostream></p><p>  #include<cstring></p><p>  #inc

24、lude<fstream></p><p>  #include<iomanip></p><p>  using namespace std ;</p><p>  class Employee</p><p><b>  {</b></p><p><b> 

25、 public:</b></p><p>  Employee * next ;</p><p>  char name[50];</p><p><b>  int num;</b></p><p><b>  int age;</b></p><p> 

26、 char sex[8];</p><p>  double salary;</p><p>  char post[30];</p><p>  char * getName()</p><p><b>  {</b></p><p>  return name ;</p>&l

27、t;p><b>  }</b></p><p>  int getNum()</p><p><b>  {</b></p><p>  return num ;</p><p><b>  }</b></p><p>  int getAge()

28、</p><p><b>  {</b></p><p>  return age ;</p><p><b>  }</b></p><p>  char * getSex()</p><p><b>  {</b></p><p&

29、gt;  return sex ;</p><p><b>  }</b></p><p>  double getSalary()</p><p><b>  {</b></p><p>  return salary ;</p><p><b>  }</

30、b></p><p>  char * getPost()</p><p><b>  {</b></p><p>  return post ;</p><p><b>  }</b></p><p>  virtual void get()</p>&

31、lt;p><b>  {</b></p><p>  cout<<"\t姓名:";</p><p>  cin>>name;</p><p>  cout<<"\t性別:";</p><p><b>  cin>>se

32、x;</b></p><p>  cout<<"\t年齡:";</p><p><b>  cin>>age;</b></p><p>  cout<<"\t編號:";</p><p><b>  cin>>nu

33、m;</b></p><p><b>  }</b></p><p>  Employee()</p><p><b>  {</b></p><p>  salary = 0.0 ;</p><p><b>  }</b></p>

34、;<p>  virtual void show()</p><p><b>  {</b></p><p>  cout<<"\t"<<name<<"\t"<<sex<<"\t"<<age<<"\t&

35、quot;<<num<<"\t"<<salary<<"\t"<<post<<endl ;</p><p><b>  }</b></p><p><b>  };</b></p><p>  class Tech

36、:virtual public Employee</p><p><b>  {</b></p><p><b>  public:</b></p><p>  int hour ;</p><p>  Tech * next ;</p><p>  void get()&l

37、t;/p><p><b>  {</b></p><p>  Employee::get(); </p><p>  cout<<"\t工作時(shí)間(小時(shí)):" ;</p><p>  cin>>hour ;</p><p><b>  }</b

38、></p><p>  double gethour()</p><p><b>  {</b></p><p>  return hour ;</p><p><b>  }</b></p><p>  double calcuSalary() </p>

39、<p><b>  {</b></p><p>  salary = 100 * hour ;</p><p>  return salary;</p><p><b>  } </b></p><p><b>  };</b></p><p&g

40、t;  class Seller:virtual public Employee</p><p><b>  {</b></p><p><b>  public:</b></p><p>  Seller *next ;</p><p>  double income ;</p>&

41、lt;p>  void get()</p><p><b>  {</b></p><p>  Employee::get();</p><p>  cout<<"\t請輸入營業(yè)額:";</p><p>  cin>>income ;</p><p&g

42、t;<b>  }</b></p><p>  double calcuSalary()</p><p><b>  {</b></p><p>  salary = income * 0.04 ;</p><p>  return salary ;</p><p><

43、b>  }</b></p><p>  double getIncome() { return income ; }</p><p><b>  };</b></p><p>  class Manager:virtual public Employee</p><p><b>  {

44、</b></p><p><b>  public:</b></p><p>  Manager * next ;</p><p>  void calcuSalary()</p><p><b>  {</b></p><p>  salary = 8000.0

45、0 ;</p><p><b>  }</b></p><p><b>  };</b></p><p>  class SellerList{</p><p><b>  public :</b></p><p><b>  int n ;&

46、lt;/b></p><p>  Seller * head , *p ;</p><p>  SellerList()</p><p><b>  {</b></p><p><b>  n = 0 ;</b></p><p>  p = head = NULL ;&

47、lt;/p><p><b>  }</b></p><p>  void inputFile() ;</p><p>  void saveFile() ;</p><p><b>  } S ;</b></p><p>  template <class TT , cl

48、ass Ti > void addMember(TT & t , Ti * ti )</p><p><b>  {</b></p><p>  Ti * p = t.head ;</p><p>  t.head = ti ;</p><p>  if(p == NULL) t.head -> ne

49、xt = NULL ;</p><p>  t.head -> next = p ;</p><p><b>  t.n ++ ;</b></p><p><b>  }</b></p><p>  void SellerList::inputFile()</p><p&

50、gt;<b>  {</b></p><p>  Seller * t;</p><p>  char na[50] ;</p><p>  ifstream cins ("S.txt") ;</p><p>  while(cins >> na )</p><p>

51、;<b>  {</b></p><p>  t = new Seller() ;</p><p>  t -> next = NULL ;</p><p>  strcpy(t -> name , na ) ;</p><p>  cins >> (t -> post ) >>

52、 (t -> sex) >> (t -> num) >> (t -> age) >> (t -> salary) >> (t -> income) ;</p><p>  addMember(S , t ) ;</p><p><b>  }</b></p><p>

53、<b>  }</b></p><p>  void SellerList::saveFile() </p><p><b>  {</b></p><p>  Seller * t ;</p><p>  ofstream cout ("S.txt") ;</p>

54、<p>  for(t = S.head ; t != NULL ; t = t ->next )</p><p>  cout<< (t -> name)<<' ' << (t -> post ) <<' '<< (t -> sex) <<' '<&l

55、t; (t -> num)</p><p>  <<' '<< (t -> age) <<' '<< (t -> salary) <<' '<< (t -> income)<<endl ;</p><p><b>  }<

56、;/b></p><p>  class XManager:virtual public Manager,public Seller</p><p><b>  {</b></p><p><b>  public :</b></p><p>  XManager * next , *p ;&

57、lt;/p><p>  double calcuSalary() ;</p><p><b>  } ; </b></p><p>  double XManager::calcuSalary()</p><p><b>  {</b></p><p>  Seller * t;

58、</p><p>  salary = income * 0.005 ;</p><p>  for(t = S.head ; t != NULL ; t = t -> next ) salary += t -> income * 0.005 ;</p><p>  return salary ;</p><p><b>

59、;  }</b></p><p>  class TechList{</p><p><b>  public :</b></p><p><b>  int n ;</b></p><p>  Tech * head , * p ;</p><p>  Tech

60、List()</p><p><b>  {</b></p><p><b>  n = 0 ;</b></p><p>  p = head = NULL ;</p><p><b>  }</b></p><p>  void inputFile()

61、 ;</p><p>  void saveFile() ;</p><p><b>  } T ;</b></p><p>  template <class T , class Ti > void showMember(T & t , Ti * ti )</p><p><b>  {&

62、lt;/b></p><p>  if(t.n <= 0 ) return ; </p><p>  for(t.p = t.head ; t.p != NULL ; t.p = t.p -> next ) t.p -> show() ;</p><p><b>  }</b></p><p> 

63、 void TechList::inputFile()</p><p><b>  {</b></p><p>  char na[50] ;</p><p>  Tech * t ;</p><p>  ifstream cint ("T.txt") ;</p><p>  

64、while(cint>> na )</p><p><b>  {</b></p><p>  t = new Tech() ;</p><p>  t -> next = NULL ;</p><p>  strcpy(t -> name , na ) ;</p><p>

65、;  cint >> (t -> post ) >> (t -> sex) >> (t -> num) >> (t -> age) >> (t -> salary) >> (t -> hour) ;</p><p>  addMember(T , t ) ;</p><p><

66、b>  }</b></p><p><b>  }</b></p><p>  void TechList::saveFile() </p><p><b>  {</b></p><p>  Tech * t ;</p><p>  ofstream co

67、ut ("T.txt") ;</p><p>  for(t = T.head ; t != NULL ; t = t ->next )</p><p>  cout<< (t -> name)<<' ' << (t -> post ) <<' '<< (t -

68、> sex) <<' '<< (t -> num)</p><p>  <<' '<< (t -> age) <<' '<< (t -> salary) <<' '<< (t -> hour)<<endl ;<

69、;/p><p><b>  }</b></p><p>  class XManagerList{</p><p><b>  public :</b></p><p><b>  int n ;</b></p><p>  XManager * head

70、, * p ;</p><p>  XManagerList()</p><p><b>  {</b></p><p><b>  n = 0 ;</b></p><p>  p = head = NULL ;</p><p><b>  }</b>&

71、lt;/p><p>  void inputFile() ;</p><p>  void saveFile() ;</p><p><b>  } X ;</b></p><p>  void XManagerList::inputFile()</p><p><b>  {</b&

72、gt;</p><p>  XManager * t ;</p><p>  char na[50] ;</p><p>  ifstream cinx ("X.txt") ;</p><p>  while(cinx >> na )</p><p><b>  {</b

73、></p><p>  t = new XManager() ;</p><p>  t -> next ;</p><p>  strcpy(t -> name , na ) ;</p><p>  cinx >> (t -> post ) >> (t -> sex) >>

74、(t -> num) >> (t -> age) >> (t -> salary) ;</p><p>  addMember(X , t ) ;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void

75、XManagerList::saveFile() </p><p><b>  {</b></p><p>  XManager * t ;</p><p>  ofstream cout ("X.txt") ;</p><p>  for(t = X.head ; t != NULL ; t = t

76、 ->next )</p><p>  cout<< (t -> name)<<' ' << (t -> post ) <<' '<< (t -> sex) <<' '<< (t -> num)</p><p>  <<

77、;' '<< (t -> age) <<' '<< (t -> salary)<<endl ;</p><p><b>  }</b></p><p>  class ManagerList{</p><p><b>  public :<

78、;/b></p><p><b>  int n ;</b></p><p>  Manager * head , *p ;</p><p>  ManagerList()</p><p><b>  {</b></p><p><b>  n = 0 ;&l

79、t;/b></p><p>  p = head = NULL ;</p><p><b>  }</b></p><p>  void inputFile() ;</p><p>  void saveFile() ;</p><p><b>  } M;</b>&l

80、t;/p><p>  void ManagerList::inputFile()</p><p><b>  {</b></p><p>  Manager * t;</p><p>  char na[50] ;</p><p>  ifstream cinm ("M.txt")

81、 ;</p><p>  while(cinm >> na )</p><p><b>  {</b></p><p>  t = new Manager() ;</p><p>  t -> next = NULL ;</p><p>  strcpy(t -> name

82、 , na ) ;</p><p>  cinm >> (t -> post ) >> (t -> sex) >> (t -> num) >> (t -> age) >> (t -> salary ) ;</p><p>  addMember(M , t ) ;</p><p&g

83、t;<b>  }</b></p><p><b>  }</b></p><p>  void ManagerList::saveFile() </p><p><b>  {</b></p><p>  Manager * t ;</p><p> 

84、 ofstream cout ("M.txt") ;</p><p>  for(t = M.head ; t != NULL ; t = t ->next )</p><p>  cout<< (t -> name)<<' ' << (t -> post ) <<' '&

85、lt;< (t -> sex) <<' '<< (t -> num)</p><p>  <<' '<< (t -> age) <<' '<< (t -> salary)<<endl ;</p><p><b>  }&

86、lt;/b></p><p>  void Exit()</p><p><b>  {</b></p><p>  cout<<"\t您已成功退出系統(tǒng)!!!"<<endl;</p><p><b>  exit(0) ;</b></p>

87、<p><b>  }</b></p><p>  int mainMenu()</p><p><b>  {</b></p><p>  cout<<"\t__________________________"<<endl ;</p><p&

88、gt;  cout<<"\t 主菜單"<<endl ;</p><p>  cout<<"\t__________________________\n\n"<<endl ;</p><p>  cout<<"\t 1. 員工信息管理"<<e

89、ndl;</p><p>  cout<<"\t 2. 職務(wù)管理"<<endl;</p><p>  cout<<"\t 3. 月薪計(jì)算"<<endl;</p><p>  cout<<"\t 4. 員工信息查找"<&

90、lt;endl;</p><p>  cout<<"\t 5. 顯示所有人員信息"<<endl;</p><p>  cout<<"\t 0. 退出程序 "<<endl;</p><p>  cout<<"\t_________

91、_________________\n\n"<<endl ;</p><p>  cout<<"\t請選擇 >> " ;</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>

92、  void addDataMenu() </p><p><b>  {</b></p><p><b>  int sel ;</b></p><p>  Tech * ti ;</p><p>  Seller *si ;</p><p>  Manager * mi

93、;</p><p>  XManager * xi ;</p><p>  cout<<"\n\n\n\n\t**************************"<<endl ;</p><p>  cout<<"\t 添加員工信息"<<endl ;</p>

94、<p>  cout<<"\t**************************\n"<<endl ;</p><p>  cout<<"\t 1. 技術(shù)員"<<endl;</p><p>  cout<<"\t 2. 銷售員"<&l

95、t;endl;</p><p>  cout<<"\t 3. 銷售經(jīng)理"<<endl;</p><p>  cout<<"\t 4. 總經(jīng)理"<<endl;</p><p>  cout<<"\t 0. 返回"<<

96、;endl;</p><p>  cout<<"\t__________________________\n\n"<<endl ;</p><p>  cout<<"\t請選擇 : >> " ;</p><p>  while(cin>>sel &&

97、(sel > 4 || sel < 0 ) ) cout<<"\n\t您的輸入有誤,請重新輸入: " ;</p><p>  switch(sel )</p><p><b>  {</b></p><p>  case 0 : return ;</p><p><b&g

98、t;  case 1 :</b></p><p>  ti = new Tech() ;</p><p>  strcpy(ti -> post, "技術(shù)員") ; </p><p>  ti -> get() ;</p><p>  //ti -> show() ;</p>&

99、lt;p>  addMember(T , ti) ;</p><p><b>  break ;</b></p><p><b>  case 2 :</b></p><p>  si = new Seller() ;</p><p>  strcpy(si -> post , &quo

100、t;銷售員") ;</p><p>  si -> get() ;</p><p>  addMember(S , si ) ;</p><p><b>  break ;</b></p><p><b>  case 3 :</b></p><p>  xi

101、 = new XManager() ;</p><p>  strcpy(xi -> post , "銷售經(jīng)理") ;</p><p>  xi -> get() ;</p><p>  addMember(X , xi) ;</p><p><b>  break ;</b></p

102、><p><b>  case 4 :</b></p><p>  mi = new Manager() ;</p><p>  strcpy(mi -> post , "總經(jīng)理") ;</p><p>  mi -> get() ;</p><p>  addMemb

103、er(M , mi ) ;</p><p><b>  break ;</b></p><p>  default : break ;</p><p><b>  }</b></p><p><b>  }</b></p><p>  template

104、<class T , class Ti > void renewMember(T & t , Ti * ti )</p><p><b>  {</b></p><p>  int no , sel ;</p><p>  cout<<"\n\t請輸入員工編號: " ;</p>

105、<p><b>  cin>>no ;</b></p><p>  if(findMember(t , ti , no ) == false )</p><p><b>  {</b></p><p>  cout<<"\n\t該員工不存在,操作失敗! "<<

106、;endl ;</p><p><b>  return ;</b></p><p><b>  }</b></p><p>  cout<<"\n\n\n\t━━━━━━━━━━━━━━━━━━━━━━━━━━\n";</p><p>  cout<<&

107、quot;\t"<<"1.姓名"<<"\t"<<"2.性別"<<"\t"<<"3.年齡"<<"\t"<<"4.編號"<<"\t"<<"5.工資"

108、;<<endl ;</p><p>  cout<<"\t━━━━━━━━━━━━━━━━━━━━━━━━━━\n";</p><p>  t.p -> show() ;</p><p>  cout<<"\n\t━━━━━━━━━━━━━━━━━━━━━━━━━━\n";</p

109、><p>  cout<<"\n\t請輸入要修改的屬性編號:" ;</p><p>  cin>>sel ;</p><p>  if(sel < 1 || sel > 5 )</p><p><b>  {</b></p><p>  cout

110、<<"\n\t對不起,您的輸入有誤,操作失敗 !"<<endl ;</p><p><b>  return ;</b></p><p><b>  }</b></p><p>  char na[50] , s[8] ;</p><p>  int a

111、, nu ;</p><p>  double sal ;</p><p>  switch(sel )</p><p><b>  {</b></p><p><b>  case 1: </b></p><p>  cout<<"\n\t請輸入姓名:

112、 " ;</p><p><b>  cin>>na ;</b></p><p>  strcpy(t.p -> name , na ) ;</p><p>  cout<<"\n\t修改成功 ! "<<endl ;</p><p><b>

113、;  break ;</b></p><p><b>  case 2: </b></p><p>  cout<<"\n\t請輸入性別: " ;</p><p><b>  cin>>s ;</b></p><p>  strcpy(t.p

114、-> sex , s ) ;</p><p>  cout<<"\n\t修改成功 ! "<<endl ;</p><p><b>  break ;</b></p><p><b>  case 3: </b></p><p>  cout<&

115、lt;"\n\t請輸入年齡: " ;</p><p><b>  cin>>a ;</b></p><p>  t.p -> age = a ;</p><p>  cout<<"\n\t修改成功 ! "<<endl ;</p><p>

116、<b>  break ;</b></p><p><b>  case 4: </b></p><p>  cout<<"\n\t請輸入編號: " ;</p><p><b>  cin>>nu ;</b></p><p>  t.

117、p -> num = nu ;</p><p>  cout<<"\n\t修改成功 ! "<<endl ;</p><p><b>  break ;</b></p><p><b>  case 5: </b></p><p>  cout<

118、<"\n\t請輸入工資: ";</p><p>  cin>>sal ;</p><p>  t.p -> salary = sal ;</p><p>  cout<<"\n\t修改成功 ! "<<endl ;</p><p><b>  br

119、eak ;</b></p><p><b>  default :</b></p><p><b>  break ;</b></p><p><b>  }</b></p><p><b>  }</b></p><p&g

120、t;  void renewData()</p><p><b>  {</b></p><p><b>  int sel ;</b></p><p>  Tech * t ;</p><p>  Seller * s ;</p><p>  XManager * x ;&

121、lt;/p><p>  Manager * m ;</p><p>  cout<<"\n\n\n\t━━━━━━━━━━━━━━\n";</p><p>  cout<<"\t 修改員工信息"<<endl ;</p><p>  cout<<&quo

122、t;\t━━━━━━━━━━━━━━\n";</p><p>  cout<<"\t 1. 技術(shù)員"<<endl;</p><p>  cout<<"\t 2. 銷售員"<<endl;</p><p>  cout<<"\t

123、3. 銷售經(jīng)理"<<endl;</p><p>  cout<<"\t 4. 總經(jīng)理"<<endl;</p><p>  cout<<"\t 0. 返回"<<endl;</p><p>  cout<<"\t━━━━━

124、━━━━━━━━━\n";</p><p>  cout<<"\t請選擇 : >> " ;</p><p>  while(cin>>sel && (sel > 4 || sel < 0 ) ) cout<<"\n\t您的輸入有誤,請重新輸入: " ;</p&

125、gt;<p>  switch(sel )</p><p><b>  {</b></p><p>  case 0 : return ;</p><p><b>  case 1 :</b></p><p>  renewMember(T , t ) ;</p><

126、;p><b>  break ;</b></p><p><b>  case 2 : </b></p><p>  renewMember(S , s ) ;</p><p><b>  break ;</b></p><p><b>  case 3 : &

127、lt;/b></p><p>  renewMember(X , x ) ;</p><p><b>  break ;</b></p><p><b>  case 4 :</b></p><p>  renewMember(M , m ) ;</p><p><

128、;b>  break ;</b></p><p>  default : break ;</p><p><b>  }</b></p><p><b>  }</b></p><p>  template <class T , class Ti > bool dele

129、teMember(T & t , Ti * ti , int no)</p><p><b>  {</b></p><p>  if(findMember(t , ti , no ) == false )</p><p><b>  {</b></p><p>  cout<<

130、"\n\t該員工不存在,操作失敗! "<<endl ;</p><p>  return false;</p><p><b>  }</b></p><p><b>  t.n -- ;</b></p><p>  if(t.head -> num == no

131、 )</p><p><b>  {</b></p><p>  delete(t.head ) ;</p><p>  t.head = NULL ;</p><p>  return true;</p><p><b>  }</b></p><p&g

132、t;<b>  Ti * pi ;</b></p><p>  for(ti = t.head ; ti -> next != NULL && ( (ti -> next -> num) != no) ; ti = ti -> next ) ;</p><p>  pi = ti -> next -> next ;&

133、lt;/p><p>  delete(ti -> next ) ;</p><p>  ti -> next = pi ;</p><p>  return true ;</p><p><b>  }</b></p><p>  void deleteData()</p>

134、<p><b>  {</b></p><p><b>  int sel ;</b></p><p>  Tech * t ;</p><p>  Seller * s ;</p><p>  XManager * x ;</p><p>  Manager *

135、m ;</p><p>  cout<<"\n\n\n\t**************************"<<endl ;</p><p>  cout<<"\t__________________________\n"<<endl ;</p><p>  cout<

136、<"\t 刪除員工信息"<<endl ;</p><p>  cout<<"\t**************************\n"<<endl ;</p><p>  cout<<"\t 1. 技術(shù)員"<<endl;</p>&

137、lt;p>  cout<<"\t 2. 銷售員"<<endl;</p><p>  cout<<"\t 3. 銷售經(jīng)理"<<endl;</p><p>  cout<<"\t 4. 總經(jīng)理"<<endl;</p>&

138、lt;p>  cout<<"\t 0. 返回"<<endl;</p><p>  cout<<"\t__________________________\n\n"<<endl ;</p><p>  cout<<"\t請選擇 : >> " ;&l

139、t;/p><p>  while(cin>>sel && (sel > 4 || sel < 0 ) ) cout<<"\n\t您的輸入有誤,請重新輸入: " ;</p><p>  cout<<endl ;</p><p><b>  int no ;</b>&l

140、t;/p><p>  switch(sel )</p><p><b>  {</b></p><p>  case 0 : return ;</p><p><b>  case 1 :</b></p><p>  cout<<"\t請輸入編號 : >

141、;> " ;</p><p><b>  cin>>no ;</b></p><p>  if(deleteMember(T ,t , no)) cout<<"\n\t刪除成功 !"<<endl ;</p><p><b>  break ;</b>

142、;</p><p><b>  case 2 : </b></p><p>  cout<<"\t請輸入編號 : >> " ;</p><p><b>  cin>>no ;</b></p><p>  if(deleteMember(S ,

143、s , no))cout<<"\n\t刪除成功 !"<<endl ;</p><p><b>  break ;</b></p><p><b>  case 3 : </b></p><p>  cout<<"\t請輸入編號 : >> &qu

144、ot; ;</p><p><b>  cin>>no ;</b></p><p>  if(deleteMember(X , x, no) ) cout<<"\n\t刪除成功 !"<<endl ;</p><p><b>  break ;</b></p>

145、;<p><b>  case 4 :</b></p><p>  cout<<"\t請輸入編號 : >> " ;</p><p><b>  cin>>no ;</b></p><p>  if(deleteMember(M , m , no) ) c

146、out<<"\n\t刪除成功 !"<<endl ;</p><p><b>  break ;</b></p><p>  default : break ;</p><p><b>  }</b></p><p><b>  }</b&g

147、t;</p><p>  void dataManagement() </p><p><b>  {</b></p><p><b>  int sel ;</b></p><p><b>  while(1)</b></p><p><b>

148、;  {</b></p><p>  cout<<"\n\n\n\n\t**************************"<<endl ;</p><p>  cout<<"\t 員工信息管理"<<endl ;</p><p>  cout<<&

149、quot;\t**************************\n"<<endl ;</p><p>  cout<<"\t 1. 添加信息"<<endl;</p><p>  cout<<"\t 2. 修改信息"<<endl;</p><p

150、>  cout<<"\t 3. 刪除信息"<<endl;</p><p>  cout<<"\t 0. 返回"<<endl;</p><p>  cout<<"\t__________________________\n\n"<<endl

151、 ;</p><p>  cout<<"\t請選擇 : -> " ;</p><p>  while(cin>>sel && (sel > 3 || sel < 0 ) ) cout<<"\n\t您的輸入有誤,請重新輸入: " ;</p><p>  swi

152、tch(sel )</p><p><b>  {</b></p><p>  case 0 : return ;</p><p>  case 1 : addDataMenu() ; break ;</p><p>  case 2 : renewData() ; break ;</p><p>

153、;  case 3 : deleteData() ; break ;</p><p>  default : break ;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p

154、>  template <class T , class Ti > bool findMember(T & t , Ti * ti , int no)</p><p><b>  {</b></p><p>  for(t.p = t.head ; t.p != NULL && t.p -> num != no ; t.

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論