工資管理系統(tǒng)課程設計_第1頁
已閱讀1頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  設計題目:工資管理系統(tǒng) _</p><p><b>  課程設計任務書</b></p><p>  設計題目:工資管理系統(tǒng) </p><p>  1 設計內容、任務及具體要求</p><p><b>  1.1設計內容</b></p><p&g

2、t;  《工資管理查詢系統(tǒng)》主要根據(jù)課程設計要求進行設計,并了解了公司的職工的工資工作流程,該系統(tǒng)功能主要包括六大模塊:</p><p>  1)職工個人說得稅的計算模塊,根據(jù)工資多余5000,稅率5%,在1000—5000之間,稅率3%,少余1000不交稅三種情況進行計算。</p><p>  2)添加職工的工資信息模塊,用戶根據(jù)輸入職工編號后,對工資信息進行錄入。</p>

3、<p>  3)職工工資查詢模塊,根據(jù)用戶輸入職工編號后,方可進行查詢。</p><p>  4)職工工資修改模塊,用戶輸入職工編號后,對以前的信息進行修改。</p><p>  5)數(shù)據(jù)輸出模塊,輸出其相應的模塊功能。</p><p>  6)職工工資統(tǒng)計模塊,根據(jù)輸入的職工信息進行統(tǒng)計。 </p><p>  1.2設計任務及

4、具體要求</p><p>  主要利用c++的文件操作能力設計開發(fā)一個小型的管理信息系統(tǒng),至少具有如下功能:工資錄入,按人名、基本工資、實發(fā)工資、個人所得稅進行查詢和按部門進行分類統(tǒng)計。操作界面要符合用戶的一般習慣,圖形或文本界面都可以。</p><p>  要求:明確課程設計的目的,能根據(jù)課程設計的要求,查閱相關文獻,為完成設計準備必要的知識; 提高學生用高級語言進行程序設計的能力,重點

5、提高用C++語言進行文件操作和繪圖應用的編程技術水平;初步了解軟件開發(fā)的一般方法和步驟; 提高撰寫技術文檔的能力。</p><p><b>  目錄</b></p><p>  摘 要.............................................................5</p><p>  1設計內容、任

6、務及具體要求........................................6</p><p>  1.1設計內容....................................................6</p><p>  1.2設計任務及具體要求...........................................7</p>

7、<p>  2概要設計.........................................................8</p><p>  2.1該系統(tǒng)的功能簡介.............................................8</p><p>  2.2 總體程序框圖................................

8、................8</p><p>  2.3各個模塊之間的主要關系........................................9</p><p>  3系統(tǒng)功能模塊的具體設計..........................................10</p><p>  3.1各個模塊的程序流程圖及運行界面.....

9、..........................10</p><p>  3.2對關鍵代碼加以分析說明.......................................15</p><p>  4程序調試分析.....................................................45</p><p>  5程序使用說

10、明.....................................................45</p><p>  6總結.............................................................46</p><p>  致謝..................................................

11、.........47</p><p>  參考文獻..........................................................47</p><p>  附:源程序..........................................15--44</p><p><b>  摘要</b>&l

12、t;/p><p>  工資管理系統(tǒng)是針對企業(yè)的工資管理業(yè)務進行計算機處理而開發(fā)的應用軟件。該系統(tǒng)由系統(tǒng)維護、輸入、查詢、修改、輸出、統(tǒng)計等子模塊組成,功能基本涵蓋普通企業(yè)的工資管理業(yè)務范圍。企業(yè)應用本系統(tǒng)后,可以有效的提高工資管理水平。本文從需求分析、開發(fā)平臺選擇、系統(tǒng)模塊建立、數(shù)據(jù)庫設計、功能模塊編程實現(xiàn)及軟件測試等方面闡述了本應用系統(tǒng)的設計過程。為便于說明,文中繪制了程序結構框圖、數(shù)據(jù)流程圖和部分界面圖。最后附有

13、主要的源程序代碼清單。 </p><p>  關鍵詞:工資管理 系統(tǒng)維護 數(shù)據(jù)匯總 管理系統(tǒng) 軟件開發(fā) 鏈表</p><p><b>  1、1設計內容</b></p><p>  《工資管理查詢系統(tǒng)》主要根據(jù)課程設計要求進行設計,并了解了公司的職工的工資工作流程,該系統(tǒng)功能主要包括六大模塊:</p><p> ?。?

14、)職工個人說得稅的計算模塊,根據(jù)工資多余5000,稅率5%,在1000—5000之間,稅率3%,少余1000不交稅三種情況進行計算。</p><p> ?。?)添加職工的工資信息模塊,用戶根據(jù)輸入職工編號后,對工資信息進行錄入。</p><p> ?。?)職工工資查詢模塊,根據(jù)用戶輸入職工編號后,方可進行查詢。</p><p> ?。?)職工工資修改模塊,用戶輸入職

15、工編號后,對以前的信息進行修改。</p><p> ?。?)數(shù)據(jù)輸出模塊,輸出其相應的模塊功能。</p><p> ?。?)職工工資統(tǒng)計模塊,根據(jù)輸入的職工信息進行統(tǒng)計。 </p><p>  1.2設計任務及具體要求</p><p>  主要利用c++的文件操作能力設計開發(fā)一個小型的管理信息系統(tǒng),至少具有如下功能:工資錄入,按人名、基本工資

16、、實發(fā)工資、個人所得稅進行查詢和按部門進行分類統(tǒng)計。操作界面要符合用戶的一般習慣,圖形或文本界面都可以。</p><p>  要求:明確課程設計的目的,能根據(jù)課程設計的要求,查閱相關文獻,為完成設計準備必要的知識; 提高學生用高級語言進行程序設計的能力,重點提高用C++語言進行文件操作和繪圖應用的編程技術水平;初步了解軟件開發(fā)的一般方法和步驟; 提高撰寫技術文檔的能力。</p><p>&

17、lt;b>  2、概要設計</b></p><p>  2、1該系統(tǒng)的功能簡介</p><p>  該系統(tǒng)的主要功能是實現(xiàn)職工的工資信息(職工基本工資、實發(fā)工資、津貼、崗貼、補貼、房帖、交通補貼、儲蓄、匯費、水電費、稅額等等)的錄入、查詢、修改、統(tǒng)計工資信息、刪除個人信息、計算工人的個人所得稅、并統(tǒng)計工人所有信息。</p><p>  2.2 總體

18、程序框圖</p><p><b>  Main(職工</b></p><p>  圖2(2):主題函數(shù)</p><p>  Main() 函數(shù)很簡單,但其實現(xiàn)依據(jù)于其上方類中的眾多函數(shù)。</p><p>  2.3各個模塊之間的主要關系</p><p>  該程序的功能主要是實現(xiàn)職工工資的錄入,并

19、對工資的相應信息進行個人所得稅的計算。各個模塊之間的關系是相互聯(lián)系的。首先,主函數(shù)結構簡單,但之前的類中包含了所有的子函數(shù)。工人結構體與信息類以及主函數(shù)是整個程序的核心。子函數(shù)之間也是有聯(lián)系的,對個人所得稅的計算、職工工資信息的修改、刪除、查詢、統(tǒng)計,必須是在職工工資錄入的情況下進行的。因此對職工工資信息的錄入是非常重要的。在職工工資的修改、刪除、查詢、統(tǒng)計與個人所得稅所有的子函數(shù)之間是沒有多大聯(lián)系的。</p><p

20、>  3系統(tǒng)功能模塊的具體設計.</p><p>  3.1各個模塊的程序流程圖及運行界面</p><p>  簡單說明:該功能主要顯示的是給用戶一個進入界面,它主要的是顯示該程序主要能夠執(zhí)行的有哪些功能。下面是顯示給用戶的界面。</p><p>  (1)初始屏幕(圖二)如下(系統(tǒng)正常運行的基礎,源程序得以運行出現(xiàn)用戶開始界面):</p>&l

21、t;p><b> ?。▓D(2))</b></p><p>  程序界面下方顯示輸入管理員名稱,我們在此只需輸入高應允即可進入密碼輸入階段,而輸入密碼為20122501247.以后才會顯示圖(1)信息</p><p><b> ?。▓D(1))</b></p><p>  (2)職工工資的輸入與儲存(實現(xiàn)第一個與第八個功

22、能,以顯示程序的正常運行情況):</p><p> ?。?)職工工資排序:</p><p> ?。?)查找職工工資信息(為了滿足職工需求避免職工工資發(fā)放錯誤,以便及時準確的給職工進行確認與修改):</p><p>  (5)添加與刪除職工工資信息(一個工廠大多時候會伴隨有職工的加入與離開,這不得不要求我們的工資管理系統(tǒng)中要有一項精確嚴格的功能。)</p>

23、<p>  (表一){這個表為職工信息的添加}</p><p> ?。ū矶?{這個表為后來由于職工的辭職,而做的信息變更,刪除職工信息后的表格}</p><p> ?。?)職工工資管理系統(tǒng)中職工工資的修改功能</p><p>  3.2對關鍵代碼加以分析說明</p><p>  //----------->The Str

24、ucture Definition An Employee Information.</p><p>  struct worker</p><p><b>  { </b></p><p>  char name[N]; //Used to Store The Name.</p><p>  char s

25、ex[N]; //Used to Store The Staff Position.</p><p>  long id; //Used to Store The Gender.</p><p>  float paid[3]; //Used to Store The Wage.</p><p>  int total;

26、 //Used to Store The Total Wages</p><p>  struct worker *next;</p><p><b>  };</b></p><p>  結構體建立,職工結構體內含職工名字(字符型)、職工性別(字符型)、職工代碼(長整形)、儲存職工工資的數(shù)組(浮點型)、職工總工資(整形)、職工結構體鏈表指

27、針。</p><p>  //***************************************************************</p><p>  //------------>Wage Management System</p><p>  //The List of Program:</p><p> 

28、 #include <iomanip></p><p>  #include <iostream></p><p>  #include <fstream></p><p>  #include <malloc.h></p><p>  #include <stdlib.h><

29、/p><p>  #include <string.h></p><p>  #include<limits></p><p>  #include<stdio.h></p><p>  #include<conio.h></p><p>  #define NULL 0&l

30、t;/p><p>  int const N=20;</p><p>  #define LEN sizeof(struct worker)</p><p>  using namespace std; </p><p>  void Menu(); </p><p>  void Pass();</p>

31、<p>  int n=0; //Define A Global Variable Statistical Number of Employees.</p><p>  //***************************************************************</p><p>  //------------>Wage Manage

32、ment System</p><p>  //The List of Program:</p><p>  #include <iomanip></p><p>  #include <iostream></p><p>  #include <fstream></p><p> 

33、 #include <malloc.h></p><p>  #include <stdlib.h></p><p>  #include <string.h></p><p>  #include<limits></p><p>  #include<stdio.h></p&

34、gt;<p>  #include<conio.h></p><p>  #define NULL 0</p><p>  int const N=20;</p><p>  #define LEN sizeof(struct worker)</p><p>  using namespace std; </

35、p><p>  void Menu(); </p><p>  void Pass();</p><p>  int n=0; //Define A Global Variable Statistical Number of Employees.</p><p><b>  程序的頭文件信息</b></p>

36、<p>  //-------------->The Worker Class.</p><p>  class Information</p><p><b>  { </b></p><p><b>  public:</b></p><p>  Information() ;

37、 //Constructed Function. </p><p>  ~Information() ; //The Destructor. </p><p>  worker *creat(); //The Establishment of The List.</p><p>  void output(worker *head);

38、 //Display Information Workers.</p><p>  int count(worker *head); </p><p>  worker *insert(worker *head); </p><p>  worker *cancel(worker *head,long id); </p>&l

39、t;p>  worker *find(worker *head,long id); </p><p>  worker *modify(worker *head,long id); </p><p>  void paixu(worker *head); </p><p>  void average(worker *head);

40、 </p><p>  void save(worker *head); //Save The File Information.</p><p>  worker *Read(); //Read The File Information.</p><p><b>  privat

41、e:</b></p><p>  worker *p1,*p2,*p3,*head,st;</p><p><b>  };</b></p><p>  信息類,這里有職工的內嵌信息由職工指針以及各種職工工資計算與職工的信息添加與顯示函數(shù),有職工工資儲存函數(shù)、職工人數(shù)統(tǒng)計函數(shù)、職工及其工資信息構造函數(shù)、職工及其工資信息析構函數(shù)、刪除

42、職工工資與添加職工工資信息函數(shù)、修改職工工資與職工工資排序函數(shù)以及職工工資讀取函數(shù)</p><p>  Information::Information() </p><p><b>  {</b></p><p>  cout<<"*********************************************

43、******\n";</p><p>  cout<<"---<< Welcome to Use The Wage Management System>>---\n"; </p><p>  cout<<"*************************************************

44、**\n"; </p><p><b>  }</b></p><p>  信息類中構造函數(shù)的實現(xiàn)。</p><p>  Information::~Information()</p><p><b>  { </b></p><p>  cout<<&

45、quot;***************************************************\n";</p><p>  cout<<" <<Thank You for Welcoming to Use The Wage Management System>>\n"; </p><p>  cout<

46、;<"***************************************************\n"; </p><p><b>  }</b></p><p>  信息類中析構函數(shù)的實現(xiàn)。</p><p>  void zuozhe()</p><p><b>  {&

47、lt;/b></p><p>  cout<<"\n\t\t\tTheauthoroftheprogram:\n\n\t\t\tbany\n\n\t\t\tTEL:15739576671";</p><p>  cout<<"\n\n\t\t\tMade By VC6.0++\n\n\t\t\t July sixth 2013\

48、n\n\t\t\t Press the <Enter> key to enter the login interface!!!";</p><p>  cout<<"\n\n\t\t\tIf you need to operate on the original information, you select 0 reads the file information.\

49、n"<<endl;</p><p><b>  }</b></p><p>  此段為程序的作者信息顯示,在此無詳細說明,也不包含在信息類中。</p><p>  worker *Information::creat(void) </p><p><b>  {</b><

50、/p><p>  char ch[N];n=0; //Used to store the names of staff </p><p>  p1=p2=(worker *)malloc(LEN);</p><p>  cout<<" -<<Please Establish The Staff Information Ta

51、ble,The Name at The End of The Input to # Bond!>>-"<<endl;</p><p>  cout<<"Name:";</p><p><b>  cin>>ch;</b></p><p>  head=NULL;

52、 //The initial pointer to head Fu</p><p>  while (strcmp(ch,"#")!=0) </p><p><b>  { </b></p><p>  p1=(worker *)malloc(LEN); </p><p&g

53、t;  strcpy(p1->name,ch); </p><p>  cout<<" Sex:";</p><p>  cin>>p1->sex;</p><p>  cout<<" Id:";//How to input format specific

54、ation?</p><p>  cin>>p1->id;</p><p>  while((p1->id)<0||(p1->id)>100000) {</p><p>  cin.clear() ;</p><p>  cin.ignore (1024,'\n');<

55、/p><p>  cout<<" sorry for you to input error! Please re-enter 0~100000 numerical: ";</p><p>  cin>>p1->id;</p><p><b>  } </b></p><p>

56、  cout<<" Basic wage:";</p><p>  cin>>p1->paid[0];</p><p>  while((p1->paid[0])<0||(p1->paid[0])>100000) {</p><p>  cin.clear() ;</p>

57、;<p>  cin.ignore (1024,'\n');</p><p>  cout<<" sorry for you to input error! Please re-enter 0~100000 numerical: ";</p><p>  cin>>p1->paid[0];</p>

58、<p><b>  } </b></p><p>  cout<<" Overtime Wage:";</p><p>  cin>>p1->paid[1];</p><p>  while((p1->paid[1])<0||(p1->paid[1])>100

59、000) {</p><p>  cin.clear() ;</p><p>  cin.ignore (1024,'\n');</p><p>  cout<<" sorry for you to input error! Please re-enter 0~100000 numerical: ";<

60、;/p><p>  cin>>p1->paid[1];</p><p><b>  } </b></p><p>  cout<<" Other Bonuses:";</p><p>  cin>>p1->paid[2];</p><p&

61、gt;  while((p1->paid[2])<0||(p1->paid[2])>100000) {</p><p>  cin.clear() ;</p><p>  cin.ignore (1024,'\n');</p><p>  cout<<" sorry for you to in

62、put error! Please re-enter 0~100000 numerical: ";</p><p>  cin>>p1->paid[2];</p><p><b>  } </b></p><p>  p1->total=p1->paid[0]+p1->paid[1]+p1->

63、paid[2]; //Calculate the total amount</p><p><b>  if(n==0)</b></p><p>  head=p1; </p><p><b>  else </b></p><p>  p2->next=p1; p

64、2=p1; </p><p>  n++; //The number of employees n value plus 1.</p><p>  cout<<"\n Name:";</p><p>  cin>>ch; //The stored input

65、 name into a character array Ch.</p><p><b>  }</b></p><p>  p2->next=NULL;</p><p>  return (head); </p><p><b>  }</b></p><p>  /

66、/------------>The Establishment of The List Information</p><p>  信息類中鏈表的總體信息函數(shù),其內容詳細具體而豐富。這也是程序完成的一個關鍵環(huán)節(jié)。</p><p>  void Information::output(worker *head) </p><p><b>  {<

67、/b></p><p>  system("cls");</p><p>  if(head==NULL)</p><p>  cout<<" This Is An Empty Table, Please Enter The Information Workers!\n";</p><p&

68、gt;<b>  else</b></p><p><b>  {</b></p><p>  cout<<"------------------------------------------------------\n";</p><p>  cout<<" *Sa

69、lary Information Table*\n";</p><p>  cout<<"----------------------------------------------------------\n"; cout<<"|Id |Name| |Sex| |Basic wage| |Overtime wage| |oth

70、er bonuses| |Total|\n";</p><p>  cout<<"---------------------------------------------------------\n"; </p><p>  p1=head; //The head pointer is assigned to p.</p>

71、<p><b>  do</b></p><p><b>  {</b></p><p>  cout<<p1->id</p><p>  <<setw(8)<<p1->name</p><p>  <<setw(12)<&

72、lt;p1->sex</p><p>  <<setw(12)<<p1->paid[0]</p><p>  <<setw(12)<<p1->paid[1]</p><p>  <<setw(12)<<p1->paid[2]</p><p>  &

73、lt;<setw(12)<<p1->total<<endl;</p><p>  cout<<"------------------------------------------------------\n"; </p><p>  p1=p1->next; </p><p&g

74、t;<b>  }</b></p><p>  while(p1!=NULL); </p><p><b>  }</b></p><p><b>  }</b></p><p>  信息類中輸出類的實現(xiàn),通過指針鏈表將信息按一定規(guī)范性打印出來,此函數(shù)的實現(xiàn)使程序功能進一

75、步完善。</p><p>  int Information::count(struct worker *head) </p><p><b>  {</b></p><p>  if(head==NULL)return(0);</p><p>  else return(1+count(head->next

76、)); </p><p><b>  }</b></p><p>  //--------->Number of staff and workers in the statistical function.</p><p>  職工人員的記錄,用于記錄公司內員工人數(shù),以便于給工人分發(fā)工資。</p>&

77、lt;p>  worker *Information::insert( worker *head) </p><p><b>  {</b></p><p>  system("cls");</p><p>  cout<<"\t-<<Please enter new informat

78、ion wages of staff and workers>>-\n"<<endl;</p><p>  p1=(worker *)malloc(LEN); //使p1指向插入的新結點</p><p>  cout<<" Id:";</p><p>  cin>>p1->

79、id;</p><p>  while((p1->id)<0||(p1->id)>100000)</p><p><b>  {</b></p><p>  cin.clear() ;</p><p>  cin.ignore (1024,'\n');</p><

80、;p>  cout<<" Sorry for you to input error! Please re-enter 0~100000 numerical: ";</p><p>  cin>>p1->id; //將輸入的編號存放到p1所指結構體的數(shù)組id中</p><p><b>  } </b></

81、p><p>  cout<<" Name:";</p><p>  cin>>p1->name; //將輸入的姓名存放到結構體名為p1的數(shù)組name中</p><p>  cout<<" Sex:";</p><p>  cin>>p1->sex

82、; </p><p>  cout<<" Basic wage:";</p><p>  cin>>p1->paid[0];</p><p>  while((p1->paid[0])<0||(p1->paid[0])>100000)</p><p><b>

83、  {</b></p><p>  cin.clear() ;</p><p>  cin.ignore (1024,'\n');</p><p>  cout<<" Sorry for you to input error! Please re-enter 0~100000 numerical: ";&l

84、t;/p><p>  cin>>p1->paid[0]; //將輸入的基本工資存放到p1所指結構體的數(shù)組paid中</p><p><b>  }</b></p><p>  cout<<" Overtime wage:";</p><p>  cin>>p1-&

85、gt;paid[1];</p><p>  while((p1->paid[1])<0||(p1->paid[1])>100000)</p><p><b>  {</b></p><p>  cin.clear() ;</p><p>  cin.ignore (1024,'\n'

86、;);</p><p>  cout<<" Sorry for you to input error! Please re-enter 0~100000 numerical: ";</p><p>  cin>>p1->paid[1]; //將輸入的加班工資存放到p1所指結構體的數(shù)組paid中</p><p>&l

87、t;b>  }</b></p><p>  cout<<" other bonuses:";</p><p>  cin>>p1->paid[2];</p><p>  while((p1->paid[2])<0||(p1->paid[2])>100000)</p>

88、;<p><b>  {</b></p><p>  cin.clear() ;</p><p>  cin.ignore (1024,'\n');</p><p>  cout<<" Sorry for you to input error! Please re-enter 0~100000

89、 numerical: ";</p><p>  cin>>p1->paid[2]; //將輸入的其他獎金存放到p1所指結構體的數(shù)組paid中</p><p><b>  } </b></p><p>  p1->total=p1->paid[0]+p1->paid[1]+p1->paid[

90、2];//計算總工資 </p><p>  p2=head; //將頭指針賦給p2</p><p>  if(head==NULL) //若沒調用次函數(shù)以前的頭指針head為空</p><p><b>  {</b></p><p>  head=p1;p1->next=NULL;</p&g

91、t;<p>  } //則將p1賦給頭指針head并將p1所指結構體成員指針next賦空值</p><p><b>  else </b></p><p><b>  {</b></p><p>  while(( p1->id > p2->id ) && (p2->

92、next !=NULL ))</p><p><b>  {</b></p><p>  p3=p2; //p3指向原p2指向的結點</p><p>  p2=p2->next;</p><p>  } //p2后移一個結點</p><p>  if(p1-

93、>id<=p2->id)</p><p><b>  {</b></p><p>  if(head==p2)</p><p><b>  {</b></p><p>  p1->next=head;</p><p><b>  head=p

94、1;</b></p><p>  } //插入到第一個結點之前</p><p><b>  else </b></p><p><b>  {</b></p><p>  p3->next=p1;</p><p>  p1->next=p2

95、;</p><p>  } //插入到p3所指結點之后</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  p2->next=p1;</p&g

96、t;<p>  p1->next=NULL;</p><p>  } //插入到尾結點之后</p><p><b>  }</b></p><p>  n++; //將職工人數(shù)加1</p><p>  cout<<"\t----------------<<You

97、enter the employee information has been successfully inserted>>----------------"<<endl;</p><p>  return (head);</p><p>  } //----------->Add the wage of staff funct

98、ion</p><p>  信息類中添加工人工資的函數(shù)的實現(xiàn),此函數(shù)的實現(xiàn)給工廠員工的流動提供了記錄依據(jù),員工流動給公司分發(fā)工資提供保障!</p><p>  worker *Information::cancel(worker *head,long id) </p><p><b>  { </b></p><p>

99、;  system("cls");</p><p>  if(head==NULL) //若調用次函數(shù)以前的頭指針head為空</p><p><b>  { </b></p><p>  return(head);</p><p><b>  }</b></p&

100、gt;<p><b>  else</b></p><p><b>  {</b></p><p>  p1=head; //否則將頭指針賦給p1</p><p>  while(id!=p1->id&&p1->next!=NULL) {</p>

101、<p><b>  p2=p1;</b></p><p>  p1=p1->next;</p><p>  } //p2指向原p1指向的結點p1后移一個結點</p><p>  if(id==p1->id) //如果輸入的職工編號是p1所指的職工編號//結點找到后刪除<

102、;/p><p><b>  {</b></p><p>  if(p1==head)</p><p>  head=p1->next; </p><p><b>  else </b></p><p>  p2->next=p1->next;

103、 </p><p>  cout<<" Delete the id of"<<id<<"worker is\n";</p><p>  n--; //將職工人數(shù)減1 </p><p><b>  }</b></p><p&

104、gt;  return(head); //將頭指針返回</p><p><b>  }</b></p><p><b>  }</b></p><p>  刪除職工信息,類成員函數(shù)在此得以實現(xiàn),員工離去后,為了便于管理,企業(yè)將離去員工信息刪除以便判斷是否招收新員工。</p><p>  wo

105、rker *Information::modify(worker *head,long id)</p><p><b>  {</b></p><p>  system("cls");</p><p>  cout<<"\t--<<Salaryinformationpleaseinputmu

106、stbemodified>>--\n"<<endl;</p><p>  p1=(worker *)malloc(LEN); //使p1指向輸入的結點</p><p>  p1=head; //否則將頭指針賦給p1</p><p>  while(id!=p1->id&&p1-

107、>next!=NULL) {</p><p>  p1=p1->next; //p2指向原p1指向的結點p1后移一個結點</p><p>  } </p><p>  if(id==p1->id) //如果要查找的職工編號是p1所指的職工編號</p><p><b&g

108、t;  {</b></p><p>  cout<<"You need to modify the employee information:\n";</p><p>  cout<<"----------------------------------------------------------\n"; co

109、ut<<"|Id| |Name| |Sex| |Basic wage| |Overtime wage| |Other bonuses| |Total|\n";</p><p>  cout<<"----------------------------------------------------------\n";<

110、;/p><p>  cout<<setw(6)<<p1->id</p><p>  <<setw(8)<<p1->name</p><p>  <<setw(12)<<p1->sex</p><p>  <<setw(12)<<p1-

111、>paid[0]</p><p>  <<setw(12)<<p1->paid[1]</p><p>  <<setw(12)<<p1->paid[2]</p><p>  <<setw(12)<<p1->total<<endl;</p><

112、;p>  cout<<"------------------------------------------------------\n";</p><p>  cout<<" Id:";</p><p>  cin>>p1->id;</p><p>  while((p1-&g

113、t;id)<0||(p1->id)>100000)</p><p><b>  {</b></p><p>  cin.clear() ;</p><p>  cin.ignore (1024,'\n');</p><p>  cout<<" sorryforyou

114、toinputerror! Please re-enter 0~100000 numerical: ";</p><p>  cin>>p1->id; //將輸入的編號存放到p1所指結構體的數(shù)組id中</p><p><b>  } </b></p><p>  cout<<" Na

115、me:";</p><p>  cin>>p1->name; //將輸入的姓名存放到結構體名為p1的數(shù)組name中</p><p>  cout<<" Sex:";</p><p>  cin>>p1->sex; </p><p>  cout<<

116、" Basic wage:";</p><p>  cin>>p1->paid[0];</p><p>  while((p1->paid[0])<0||(p1->paid[0])>100000)</p><p><b>  {</b></p><p>  c

117、in.clear() ;</p><p>  cin.ignore (1024,'\n');</p><p>  cout<<" sorryforyoutoinputerror! Please re-enter 0~100000 numerical: ";</p><p>  cin>>p1->pai

118、d[0]; //將輸入的基本工資存放到p1所指結構體的數(shù)組paid中</p><p><b>  }</b></p><p>  cout<<" Overtime wage:";</p><p>  cin>>p1->paid[1];</p><p>  while((

119、p1->paid[1])<0||(p1->paid[1])>100000)</p><p><b>  {</b></p><p>  cin.clear() ;</p><p>  cin.ignore (1024,'\n');</p><p>  cout<<&qu

120、ot; sorryforyoutoinputerror! Please re-enter 0~100000 numerical: ";</p><p>  cin>>p1->paid[1]; //將輸入的加班工資存放到p1所指結構體的數(shù)組paid中</p><p><b>  }</b></p><p>  cou

121、t<<" Other bonuses:";</p><p>  cin>>p1->paid[2];</p><p>  while((p1->paid[2])<0||(p1->paid[2])>100000)</p><p><b>  {</b></p>

122、<p>  cin.clear() ;</p><p>  cin.ignore (1024,'\n');</p><p>  cout<<" sorryforyoutoinputerror! Please re-enter 0~100000 numerical: ";</p><p>  cin>&g

123、t;p1->paid[2]; //將輸入的其他獎金存放到p1所指結構體的數(shù)組paid中</p><p><b>  } </b></p><p>  p1->total=p1->paid[0]+p1->paid[1]+p1->paid[2]; //計算總分 </p><p><b>  }</b

124、></p><p><b>  else </b></p><p>  cout<<"noneedtomodifythenumberofinformationintheid"<<id<<"of workers\n\n"; //沒有想要修改的結點信息</p><p>

125、;  getchar();</p><p>  return(head);</p><p><b>  }</b></p><p>  /************************修改職工數(shù)據(jù)***********************/</p><p>  由于種種原因,部分工人工資出現(xiàn)錯誤,他們會找到管理人員

126、去核實,并索要其應得工資,為此工資管理系統(tǒng)中添加了修改工資函數(shù),此函數(shù)使工資管理系統(tǒng)中有了修改功能。</p><p>  worker *Information::find(worker *head,long id) {</p><p>  system("cls");</p><p>  if(head==NULL) //若調用次函數(shù)以前

127、的頭指針head為空</p><p><b>  {</b></p><p>  cout<<"Thisisanemptytable,pleaseentertheinformationwithemployees!\n";</p><p>  return(head); </p><p>&

128、lt;b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  p1=head; //否則將頭指針賦給p1</p><p>  while(id!=p1->id&&p1->

129、next!=NULL)//尋找結點當p1所指的職工編號不是輸入的職工編號并且p1所指的next指針不為空</p><p><b>  {</b></p><p>  p1=p1->next; //p2指向原p1指向的結點p1后移一個結點</p><p><b>  }</b></p><p

130、>  if(id==p1->id) //如果要查找的職工編號是p1所指的職工編號</p><p><b>  {</b></p><p>  cout<<"------------------------------------------------------\n";</p><p>  cou

131、t<<"|Id| |Name| |Sex| |Basic wage| |Overtime wage| |other bonuses| |Total|\n";</p><p>  cout<<"------------------------------------------------------\n";</p><p&

132、gt;  cout<<setw(6)<<p1->id</p><p>  <<setw(10)<<p1->name</p><p>  <<setw(10)<<p1->sex</p><p>  <<setw(10)<<p1->paid[0]<

133、;/p><p>  <<setw(10)<<p1->paid[1]</p><p>  <<setw(12)<<p1->paid[2]</p><p>  <<setw(12)<<p1->total<<endl;</p><p>  cout&l

134、t;<"------------------------------------------------------\n";</p><p><b>  }</b></p><p><b>  else</b></p><p>  cout<<"Therearenoworke

135、rswhoseidis"<<id<<"of workers.\n"; //結點沒找到</p><p>  return(head);</p><p><b>  }</b></p><p><b>  }</b></p><p>  //----

溫馨提示

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

評論

0/150

提交評論