數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì)-- 簡(jiǎn)單工資管理系統(tǒng)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

9、設(shè)計(jì)時(shí),有許多的小問(wèn)題,通過(guò)不斷的修改代碼改正問(wèn)題也很好的鍛煉了耐心。</p><p> ?。ò耍?duì)課程設(shè)計(jì)的建議</p><p>  可以再多一些創(chuàng)新型課題,鼓勵(lì)同學(xué)們用圖形界面做課程設(shè)計(jì)。</p><p><b>  (九)附錄源程序</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 "姓名 編號(hào) 基本工資 津貼 崗位津貼 應(yīng)發(fā)數(shù) 個(gè)人所得稅 應(yīng)扣數(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;//員工編號(hào)</p><p>  char name[15];//姓名</p><

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

14、 float yingkou;//應(yīng)扣數(shù)</p><p>  float shifa;//實(shí)發(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;//員工編號(hào)</p><p>  float basesalary;//基本工資</p><p>  float jingtie;//津貼</p&g

23、t;<p>  float gangweijt;//崗位津貼</p><p>  float yingfa;//應(yīng)發(fā)數(shù)</p><p>  float tax;//個(gè)人所得稅</p><p>  float yingkou;//應(yīng)扣數(shù)</p><p>  float shifa;//實(shí)發(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<<" 菜單選項(xiàng)

29、 "<<endl;</p><p>  cout<<" 1.創(chuàng)建工資檔案 "<<endl;</p><p>  cout<<" 2.每人的應(yīng)發(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<<" 輸入選項(xiàng):";</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<<" 歡迎來(lái)到工資管理系統(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;//員工編號(hào)</p><p>  char name[15];//姓名</p><p>  float basesalary;//基本工資</p><p>  float jingtie;//津貼</p>

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

40、  cout<<"請(qǐng)輸入員工信息\n編號(hào):";</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<<"應(yīng)發(fā)數(shù):";</p><p>  cin>>yingfa;</p><p>  cout<<"個(gè)人所得稅:";</p><p><b>  cin>>

43、;tax;</b></p><p>  cout<<"應(yīng)扣數(shù)";</p><p>  cin>>yingkou;</p><p>  cout<<"實(shí)發(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<<"沒(méi)有員工信息\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<<"請(qǐng)輸入員工編號(hào):";</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<<"未找到對(duì)應(yīng)員工信息\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<<"沒(méi)有員工";};</p><p>  int i,n,k;</p><p>  int ID;//員工編號(hào)</p><p>  char *name;//姓名</p><p>  float

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

60、u;//應(yīng)扣數(shù)</p><p>  float shifa;//實(shí)發(fā)數(shù)</p><p>  cout<<"請(qǐng)輸入需要修改員工編號(hào):";</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<<"需要修改員工當(dāng)前信息\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<<"請(qǐng)輸入需要修改值的選項(xiàng)\n 1.基本工資 2.津貼 3.崗位津貼 4.應(yīng)發(fā)數(shù) 5.個(gè)人所得稅 6.應(yīng)扣數(shù) 7.實(shí)發(fā)數(shù)";</p><p><b>  cin>>k;</b></p><p>  cout<<"請(qǐng)輸入新值:\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<<"沒(méi)有該員工信息\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<<"沒(méi)有員工";};</p><p>  int i,n,k;</p><p>  cout<<"請(qǐng)輸入需要修改員工編號(hào):";</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<<"沒(méi)有找到該員工信息\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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論