數(shù)據(jù)結構與算法課程設計-- 簡單工資管理系統(tǒng)設計_第1頁
已閱讀1頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  “數(shù)據(jù)結構與算法”</b></p><p><b>  課程設計報告</b></p><p><b>  需求和規(guī)格說明</b></p><p>  設計某單位職工工資管理系統(tǒng),功能如下:</p><p>  對于每位職工存儲以下信息:職工編號、基

2、本工資、津貼、崗位津貼、應發(fā)數(shù)、個人所得稅、應扣數(shù)、實發(fā)數(shù)。個人所得稅計算方法設為:工資少于2000元的部分為0,2000—3000元部分為5%,3000—4000部分為10%,4000—5000部分為15%,5000元以上部分為20%。</p><p><b>  要求:</b></p><p> ?、?創(chuàng)建存儲職工工資信息的存儲文件;</p><

3、;p>  ② 添加某職工的工資信息;</p><p> ?、?刪除某職工的工資信息;</p><p> ?、?修改某職工的部分工資信息(當月開始增加或減少某些項工資或扣款數(shù)變化);</p><p> ?、?輸出指定編號職工的工資信息(查詢用)</p><p>  ⑥ 輸出全體職工的工資信息(發(fā)工資用)。</p><p

4、><b>  (二) 設計</b></p><p>  根據(jù)要求設計了一個,基yuangong.類的成員有 </p><p>  char name[15];//姓名</p><p>  float basesalary;//基本工資</p><p>  float jingtie;//津貼</p>

5、<p>  float gangweijt;//崗位津貼</p><p>  float yingfa;//應發(fā)數(shù)</p><p>  float tax;//個人所得稅</p><p>  float yingkou;//應扣數(shù)</p><p>  float shifa;//實發(fā)數(shù)</p><p>  

6、類中還有一個SET函數(shù)將各項值保存到類中。</p><p><b>  系統(tǒng)類圖</b></p><p><b>  否</b></p><p><b>  否</b></p><p><b> ?。ㄈ?用戶手冊</b></p><p

7、>  程序運行時,首先選擇是否讀入TXT文件中的數(shù)據(jù)</p><p>  然后根據(jù)界面提示進行相關操作。</p><p><b> ?。ㄋ模?調試及測試</b></p><p>  操作中插入成員是參數(shù)Num_P++,刪除成員時參數(shù)Num_P--。</p><p><b>  (五) 運行實例:</

8、b></p><p><b> ?。┻M一步改進</b></p><p>  可以根據(jù)固定公式設奇函數(shù)來計算并保存稅款值,而不用手輸。</p><p><b> ?。ㄆ撸┬牡皿w會</b></p><p>  做課程設計讓我對于類的構造更加熟悉,更加熟練的運用C++讀寫文件的方法。初步完成課程

9、設計時,有許多的小問題,通過不斷的修改代碼改正問題也很好的鍛煉了耐心。</p><p> ?。ò耍φn程設計的建議</p><p>  可以再多一些創(chuàng)新型課題,鼓勵同學們用圖形界面做課程設計。</p><p><b> ?。ň牛└戒浽闯绦?lt;/b></p><p>  #include <iostream>&l

10、t;/p><p>  #include<stdio.h></p><p>  #include <fstream></p><p>  #include <string></p><p>  #include<iomanip></p><p>  #include <i

11、o.h></p><p>  #include <string></p><p>  #include <algorithm></p><p>  #define INDEX "姓名 編號 基本工資 津貼 崗位津貼 應發(fā)數(shù) 個人所得稅 應扣數(shù) 實發(fā)數(shù)\n"</p><p>  using na

12、mespace std;</p><p>  const int P=100;</p><p>  class yuangong //員工類</p><p>  { public:</p><p>  int ID;//員工編號</p><p>  char name[15];//姓名</p><

13、;p>  float basesalary;//基本工資</p><p>  float jingtie;//津貼</p><p>  float gangweijt;//崗位津貼</p><p>  float yingfa;//應發(fā)數(shù)</p><p>  float tax;//個人所得稅</p><p> 

14、 float yingkou;//應扣數(shù)</p><p>  float shifa;//實發(fā)數(shù)</p><p>  yuangong(){ID=0;basesalary=0;jingtie=0;gangweijt=0;yingfa=0;tax=0;yingkou=0;shifa=0;};</p><p>  void SET(int id,char *Name,f

15、loat b,float j,float g,float y,float t,float yi,float s)</p><p><b>  { int i;</b></p><p><b>  ID=id;</b></p><p>  for(i=0;i<10;i++) name[i]=Name[i];</

16、p><p>  basesalary=b;</p><p>  jingtie=j;</p><p>  gangweijt=g;</p><p><b>  yingfa=y;</b></p><p><b>  tax=t;</b></p><p> 

17、 yingkou=yi;</p><p><b>  shifa=s;</b></p><p><b>  };</b></p><p>  int GETID(){return ID;};</p><p>  char *GETname(){return name;};</p>&l

18、t;p>  float GETbasesalary(){return basesalary;};</p><p>  float GETjingtie(){return jingtie;};</p><p>  float GETgangweijt(){return gangweijt;};</p><p>  float GETyingfa(){return

19、 yingfa;};</p><p>  float GETtax(){return tax;};</p><p>  float GETyingkou(){return yingkou;};</p><p>  float GETshifa(){return shifa;};</p><p><b>  };</b>&

20、lt;/p><p>  void readfile(int &Num_P,yuangong *YG)</p><p><b>  {</b></p><p>  system("cls");</p><p><b>  char c;</b></p><p

21、>  if((_access("pay.txt",0)==-1)) return;</p><p>  cout<<"有數(shù)據(jù),是否讀入(Y/N)?";</p><p><b>  cin>>c;</b></p><p>  if(c=='n'||c=='

22、;N'){system("cls");return;}</p><p><b>  int i;</b></p><p>  int ID;//員工編號</p><p>  float basesalary;//基本工資</p><p>  float jingtie;//津貼</p&g

23、t;<p>  float gangweijt;//崗位津貼</p><p>  float yingfa;//應發(fā)數(shù)</p><p>  float tax;//個人所得稅</p><p>  float yingkou;//應扣數(shù)</p><p>  float shifa;//實發(fā)數(shù)</p><p>

24、;  char name[15];//姓名</p><p>  ifstream fin("pay.txt");</p><p>  for(i=0;i<3;i++){</p><p>  while(fin>>name>>ID>>basesalary>>jingtie>>gang

25、weijt>>yingfa>>tax>>yingkou>>shifa)</p><p><b>  {</b></p><p>  YG[Num_P++].SET(ID,name,basesalary,jingtie,gangweijt,yingfa,tax,yingkou,shifa);</p><

26、p>  for(i=0;i<15;i++) name[i]='\0';</p><p><b>  }</b></p><p><b>  }</b></p><p>  fin.close();</p><p>  cout<<"讀取完成\n&qu

27、ot;;</p><p>  system("pause");</p><p>  system("cls");</p><p><b>  }</b></p><p>  int select()</p><p><b>  {</b>

28、;</p><p>  system("cls");</p><p>  cout<<" ********************"<<endl<<endl;</p><p>  cout<<" 菜單選項

29、 "<<endl;</p><p>  cout<<" 1.創(chuàng)建工資檔案 "<<endl;</p><p>  cout<<" 2.每人的應發(fā)工資 "<<endl;</p&

30、gt;<p>  cout<<" 3.修改工資信息 "<<endl;</p><p>  cout<<" 4.刪除工資信息 "<<endl;</p><p>  cout<<&quo

31、t; 5.查找工資信息 "<<endl;</p><p>  cout<<" 0.退 出 "<<endl;</p><p>  cout<<" ****************

32、*****"<<endl<<endl;</p><p>  cout<<" 輸入選項:";</p><p>  int choose;</p><p>  do{cin>>choose;}while(choose<0||choose>5);<

33、/p><p>  return choose;</p><p><b>  }</b></p><p>  void welcome()</p><p><b>  {</b></p><p>  cout<<"\n\n\n\n";</p&g

34、t;<p>  cout<<"******************************************************************\n\n"<<endl;</p><p>  cout<<" 歡迎來到工資管理系統(tǒng)\n\n"<<endl;</p>

35、<p>  cout<<" ******************************************************************\n\n";</p><p>  system("pause");</p><p><b>  }</b></p><p>

36、  void end()</p><p><b>  {</b></p><p>  cout<<"\n\n\n\n\n\t\t\t 謝謝您的使用! \n\n\n\n\n\n";</p><p>  system("pause");</p><p><b> 

37、 exit(0);</b></p><p><b>  }</b></p><p>  void insertnew(int &Num_P,yuangong *YG)</p><p><b>  {</b></p><p>  system("cls");&l

38、t;/p><p><b>  char c;</b></p><p>  int ID;//員工編號</p><p>  char name[15];//姓名</p><p>  float basesalary;//基本工資</p><p>  float jingtie;//津貼</p>

39、;<p>  float gangweijt;//崗位津貼</p><p>  float yingfa;//應發(fā)數(shù)</p><p>  float tax;//個人所得稅</p><p>  float yingkou;//應扣數(shù)</p><p>  float shifa;//實發(fā)數(shù)</p><p>

40、  cout<<"請輸入員工信息\n編號:";</p><p><b>  cin>>ID;</b></p><p>  cout<<"姓名:";</p><p>  cin>>name;</p><p>  cout<<

41、"基本工資:";</p><p>  cin>>basesalary;</p><p>  cout<<"津貼";</p><p>  cin>>jingtie;</p><p>  cout<<"崗位津貼";</p>&

42、lt;p>  cin>>gangweijt;</p><p>  cout<<"應發(fā)數(shù):";</p><p>  cin>>yingfa;</p><p>  cout<<"個人所得稅:";</p><p><b>  cin>>

43、;tax;</b></p><p>  cout<<"應扣數(shù)";</p><p>  cin>>yingkou;</p><p>  cout<<"實發(fā)數(shù)";</p><p>  cin>>shifa;</p><p>

44、  YG[Num_P++].SET(ID,name,basesalary,jingtie,gangweijt,yingfa,tax,yingkou,shifa);</p><p>  cout<<"繼續(xù)添加?(y或n):";</p><p><b>  cin>>c;</b></p><p>  if

45、(c=='y'||c=='Y') insertnew(Num_P,YG);</p><p><b>  }</b></p><p>  void typeallpeople(int &Num_P,yuangong *YG)</p><p>  { char *s;</p><p&g

46、t;  system("cls");</p><p>  if(Num_P==0)</p><p><b>  {</b></p><p>  cout<<"沒有員工信息\n";</p><p>  system("pause");</p>

47、;<p><b>  return;</b></p><p><b>  }</b></p><p><b>  int i;</b></p><p>  cout<<INDEX;</p><p>  for(i=0;i<Num_P;i++)&l

48、t;/p><p>  { s=YG[i].GETname();</p><p>  cout<<setiosflags(ios::left)<<setw(6)<<s;</p><p>  cout<<setiosflags(ios::left)<<setw(6)<<YG[i].GETID();&l

49、t;/p><p>  cout<<setiosflags(ios::left)<<setw(6)<<YG[i].GETbasesalary();</p><p>  cout<<setiosflags(ios::left)<<setw(8)<<YG[i].GETjingtie();</p><p>

50、  cout<<setiosflags(ios::left)<<setw(8)<<YG[i].GETgangweijt();</p><p>  cout<<setiosflags(ios::left)<<setw(10)<<YG[i].GETyingfa();</p><p>  cout<<setios

51、flags(ios::left)<<setw(8)<<YG[i].GETtax();</p><p>  cout<<setiosflags(ios::left)<<setw(8)<<YG[i].GETyingkou();</p><p>  cout<<setiosflags(ios::left)<<se

52、tw(6)<<YG[i].GETshifa()<<endl;</p><p><b>  }</b></p><p>  system("pause");</p><p><b>  }</b></p><p>  void Deletel(int &am

53、p;Num_P,yuangong*YG)</p><p><b>  {</b></p><p>  int n,i,j;</p><p>  system("cls");</p><p>  cout<<"請輸入員工編號:";</p><p>

54、<b>  cin>>n;</b></p><p>  for(i=0;i<=Num_P;i++)</p><p><b>  {</b></p><p>  if(n==YG[i].GETID()) break;</p><p><b>  }</b><

55、;/p><p>  if(i==Num_P) {</p><p>  cout<<"未找到對應員工信息\n";</p><p>  system("pause");</p><p><b>  return;</b></p><p><b>

56、;  }</b></p><p>  for(j=i;j<Num_P-1;j++)</p><p>  YG[j]=YG[j+1];</p><p><b>  Num_P--;</b></p><p>  cout<<"刪除成功\n";</p><p

57、>  system("pause");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  void Modify_Salary(int &Num_P,yuangong *YG)</p><p><b

58、>  {</b></p><p>  if(Num_P==0){cerr<<"沒有員工";};</p><p>  int i,n,k;</p><p>  int ID;//員工編號</p><p>  char *name;//姓名</p><p>  float

59、 basesalary;//基本工資</p><p>  float jingtie;//津貼</p><p>  float gangweijt;//崗位津貼</p><p>  float yingfa;//應發(fā)數(shù)</p><p>  float tax;//個人所得稅</p><p>  float yingko

60、u;//應扣數(shù)</p><p>  float shifa;//實發(fā)數(shù)</p><p>  cout<<"請輸入需要修改員工編號:";</p><p><b>  cin>>n;</b></p><p>  for(i=0;i<Num_P;i++)</p>

61、<p><b>  {</b></p><p>  if(n==YG[i].GETID())</p><p><b>  {</b></p><p>  cout<<"需要修改員工當前信息\n";</p><p>  cout<<INDEX;&l

62、t;/p><p>  cout<<setiosflags(ios::left)<<setw(6)<<YG[i].GETname();</p><p>  cout<<setiosflags(ios::left)<<setw(6)<<YG[i].GETID();</p><p>  cout<&

63、lt;setiosflags(ios::left)<<setw(6)<<YG[i].GETbasesalary();</p><p>  cout<<setiosflags(ios::left)<<setw(8)<<YG[i].GETjingtie();</p><p>  cout<<setiosflags(ios:

64、:left)<<setw(8)<<YG[i].GETgangweijt();</p><p>  cout<<setiosflags(ios::left)<<setw(10)<<YG[i].GETyingfa();</p><p>  cout<<setiosflags(ios::left)<<setw(8

65、)<<YG[i].GETtax();</p><p>  cout<<setiosflags(ios::left)<<setw(8)<<YG[i].GETyingkou();</p><p>  cout<<setiosflags(ios::left)<<setw(6)<<YG[i].GETshifa()&

66、lt;<endl;</p><p>  name=YG[i].GETname();</p><p>  ID=YG[i].GETID();</p><p>  basesalary=YG[i].GETbasesalary();</p><p>  jingtie=YG[i].GETjingtie();</p><p&

67、gt;  gangweijt=YG[i].GETgangweijt();</p><p>  yingfa=YG[i].GETyingfa();</p><p>  tax=YG[i].GETtax();</p><p>  yingkou=YG[i].GETyingkou();</p><p>  shifa=YG[i].GETshifa(

68、);</p><p>  cout<<"請輸入需要修改值的選項\n 1.基本工資 2.津貼 3.崗位津貼 4.應發(fā)數(shù) 5.個人所得稅 6.應扣數(shù) 7.實發(fā)數(shù)";</p><p><b>  cin>>k;</b></p><p>  cout<<"請輸入新值:\n";&

69、lt;/p><p><b>  switch(k)</b></p><p><b>  {</b></p><p>  case 1:cin>>basesalary;break;</p><p>  case 2:cin>>jingtie;break;</p>&l

70、t;p>  case 3:cin>>gangweijt;break;</p><p>  case 4:cin>>yingfa;break;</p><p>  case 5:cin>>tax;break;</p><p>  case 6:cin>>yingkou;break;</p><p

71、>  case 7:cin>>shifa;break;</p><p><b>  } </b></p><p>  YG[i].SET(ID,name,basesalary,jingtie,gangweijt,yingfa,tax,yingkou,shifa);</p><p>  cout<<"修

72、改成功\n";</p><p>  system("pause");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  c

73、out<<"沒有該員工信息\n";</p><p>  system("pause");</p><p><b>  }</b></p><p>  void search(int &Num_P,yuangong *YG)</p><p><b>  

74、{</b></p><p>  if(Num_P==0){cerr<<"沒有員工";};</p><p>  int i,n,k;</p><p>  cout<<"請輸入需要修改員工編號:";</p><p><b>  cin>>n;<

75、/b></p><p>  for(i=0;i<Num_P;i++)</p><p><b>  {</b></p><p>  if(n==YG[i].GETID())</p><p><b>  {</b></p><p>  cout<<INDE

76、X;</p><p>  cout<<setiosflags(ios::left)<<setw(6)<<YG[i].GETname();</p><p>  cout<<setiosflags(ios::left)<<setw(6)<<YG[i].GETID();</p><p>  cout&

77、lt;<setiosflags(ios::left)<<setw(6)<<YG[i].GETbasesalary();</p><p>  cout<<setiosflags(ios::left)<<setw(8)<<YG[i].GETjingtie();</p><p>  cout<<setiosflags(

78、ios::left)<<setw(8)<<YG[i].GETgangweijt();</p><p>  cout<<setiosflags(ios::left)<<setw(10)<<YG[i].GETyingfa();</p><p>  cout<<setiosflags(ios::left)<<se

79、tw(8)<<YG[i].GETtax();</p><p>  cout<<setiosflags(ios::left)<<setw(8)<<YG[i].GETyingkou();</p><p>  cout<<setiosflags(ios::left)<<setw(6)<<YG[i].GETshif

80、a()<<endl;</p><p>  system("pause");</p><p><b>  return;}</b></p><p><b>  }</b></p><p>  cout<<"沒有找到該員工信息\n";<

81、;/p><p>  system("pause");</p><p><b>  }</b></p><p>  int main()</p><p>  { int n;</p><p>  int NumOfPeople=0;</p><p>

82、;  yuangong *YG=new yuangong[P];</p><p>  welcome();</p><p>  readfile(NumOfPeople,YG);</p><p><b>  do{</b></p><p>  switch(select())</p><p>&l

83、t;b>  {</b></p><p>  case 1:insertnew(NumOfPeople,YG);break;</p><p>  case 2:typeallpeople(NumOfPeople,YG);break;</p><p>  case 3:Modify_Salary(NumOfPeople,YG);break;</p

84、><p>  case 4:Deletel(NumOfPeople,YG);break; </p><p>  case 5:search(NumOfPeople,YG);break;</p><p>  case 0:end();break;</p><p><b>  }</b></p><p>

溫馨提示

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

評論

0/150

提交評論