《c語言程序設(shè)計》課程設(shè)計--工資管理查詢系統(tǒng)_第1頁
已閱讀1頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  《C語言程序設(shè)計》</b></p><p><b>  課程設(shè)計報告</b></p><p><b>  計算機學院</b></p><p>  2017 年 5月 10 日</p><p><b>  目錄</b></

2、p><p>  1設(shè)計內(nèi)容及要求.........................................2</p><p>  1.1設(shè)計內(nèi)容.....................................................2</p><p>  1.2設(shè)計任務(wù)及具體要求.................................

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

4、.......................................3</p><p>  2.3各個模塊之間的主要關(guān)系........................................4</p><p>  3 3設(shè)計過程或程序代碼............................................5</p><p>

5、  3.1各個模塊的程序流程圖及運行界面................................5</p><p>  3.2對關(guān)鍵代碼加以分析說明.......................................15</p><p>  4程序調(diào)試分析.....................................................23<

6、/p><p>  5小結(jié).............................................................25</p><p>  致謝...........................................................26</p><p>  參考文獻......................

7、.....................................27</p><p>  附:源程序..........................................................28</p><p>  1 設(shè)計內(nèi)容及要求</p><p><b>  1.1設(shè)計內(nèi)容</b></p>

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

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

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

11、言進行文件操作和繪圖應(yīng)用的編程技術(shù)水平;初步了解軟件開發(fā)的一般方法和步驟; 提高撰寫技術(shù)文檔的能力。</p><p><b>  2 概要設(shè)計</b></p><p>  2.1系統(tǒng)的功能簡介</p><p>  該系統(tǒng)的主要功能是實現(xiàn)職工工資的錄入,包括(錄入職工的基本工資、實發(fā)工資、津貼、崗貼、補貼、房帖、交通補貼、儲蓄、匯費)。對職工的

12、工資信息進行刪除、修改、個人所得稅的計算。并統(tǒng)計職工的所有信息。</p><p>  2.2 總體程序框圖</p><p>  圖2.2-A總體程序</p><p>  圖2.2-B添加職工的工資信息</p><p>  2.2各個模塊之間的主要關(guān)系</p><p>  該程序的功能主要是實現(xiàn)職工工資的錄入,并對工資的

13、相應(yīng)信息進行個人所得稅的計算。各個模塊之間的關(guān)系是相互聯(lián)系的。首先,主函數(shù)包含了所有的子函數(shù)。主函數(shù)是整個程序的核心。子函數(shù)之間也是有聯(lián)系的,對個人所得稅的計算、職工工資信息的修改、刪除、查詢、統(tǒng)計,必須是在職工工資錄入的情況下進行的。因此對職工工資信息的錄入是非常重要的。在職工工資的修改、刪除、查詢、統(tǒng)計與個人所得稅所有的子函數(shù)之間是沒有多大聯(lián)系的。</p><p>  3設(shè)計過程或程序代碼</p>

14、;<p>  3.1各個模塊的程序流程圖</p><p>  1)①主函數(shù)程序(N-S)流程圖及運行界面</p><p>  主函數(shù)程序(N-S)流程圖(見圖3.1-A)</p><p><b>  主函數(shù)main()</b></p><p>  圖3.1-A主函數(shù)程序</p><p&g

15、t;  簡單說明:該功能主要顯示的是給用戶一個進入界面,它主要的是顯示該程序主要能夠執(zhí)行的有哪些功能。下面是顯示給用戶的界面。(見圖3.1-A) </p><p>  ②主函數(shù)程序運行界面:</p><p>  圖3.1B主函數(shù)界面</p><p>  2)職工個人所得稅(N-S)流程圖(見圖3.1-B)</p><p>  圖3.2-A職工

16、個人所得稅程序</p><p>  該程序主要根據(jù)職工的工資信息進行個人所得稅的計算,當個人所得稅m大于等于5000時,個人所得稅tmp為(m-5000)*0.2;在1000<=m<5000時,個人所得稅為(5000-1000)*0.1;當800<=m<1000時,個人所得稅為(m-800)*0.5。</p><p>  3)①錄入職工的工資信息(N-S)流程圖及程

17、序運行界面</p><p>  錄入職工的工資信息(N-S)流程圖(見圖3.3-A)</p><p>  圖3.3-A錄入職工的工資信息程序</p><p>  該模塊主要是對職工的工資進行錄入,錄入的主要有職工的津貼、崗貼、補貼、房帖、交通補貼,并把該五項統(tǒng)計為職工的實發(fā)工資。還錄入職工的房租、儲蓄、匯費。</p><p> ?、阡浫肼毠さ?/p>

18、程序運行界面。(見圖3.3-B)</p><p>  圖3.3-B錄入職工的工資信息程序界面</p><p>  4)刪除職工記錄的(N-S)流程圖及程序運行界面</p><p>  刪除職工記錄的(N-S)流程圖(見圖3.4-A)</p><p>  圖3.4-A刪除職工記錄程序</p><p>  該模塊主要通過已

19、經(jīng)輸入的職工信息進行刪除,如果你輸入的信息存在或不存在,則分別顯示以下運行界面。見圖(3.4-B、C)</p><p>  圖3.4-B刪除職工記錄程序界面</p><p>  圖3.4-C刪除職工記錄程序界面</p><p>  5)修改個人記錄的(N-S)流程圖及運行界面</p><p>  修改個人記錄的(N-S)流程圖(見圖3.5-A

20、)</p><p>  圖3.5-A修改個人記錄程序</p><p>  修改個人記錄是在原有的基礎(chǔ)上對職工的工資信息進行修改,在修改的同時你可以看到該職工原來的工資信息。以下是修改職工工資信息過后的顯示界面。(見圖3.5-B)</p><p>  圖3.5-B修改個人記錄的運行界面</p><p>  6)查找職工記錄的(N-S)流程圖及運

21、行界面</p><p>  查找職工記錄的(N-S)流程圖(見圖3.6-A)</p><p>  圖3.6-A查找職工記錄的(N-S)流程圖</p><p>  該功能是對已經(jīng)錄入的職工信息進行查尋,如果你輸入的職工編號存在,則顯示職工的工資信息,如果不存在,則提示為“您查找的記錄不存在”。運行界面如下。(見圖3.6-B)</p><p> 

22、 圖3.6-B查找職工記錄的運行界面</p><p>  7)統(tǒng)計出所有的職工信息的(N-S)流程圖及運行界面 </p><p>  統(tǒng)計出所有的職工信息的N-S流程圖(見圖3.7-A)</p><p>  圖3.7-A統(tǒng)計出所有的職工信息的(N-S)流程圖</p><p>  在這個子模塊程序中,主要是對輸入的職工信息進行統(tǒng)計,統(tǒng)計過后并輸

23、出說有的職工工資信息。以下是程序的運行界面。(見圖3.7-B)</p><p>  圖3.7-B統(tǒng)計出所有的職工信息的運行界面</p><p>  3.2對關(guān)鍵代碼加以分析說明</p><p>  1)/* 結(jié)構(gòu)體聲明 */</p><p>  struct zhigong</p><p><b>  {&

24、lt;/b></p><p>  int month;</p><p>  double id;</p><p>  double jbgz;</p><p>  double jt;</p><p>  double gt;</p><p>  double bt;</p>

25、<p>  double ft;</p><p>  double jtbt;</p><p>  double sfgz;</p><p>  double fz;</p><p>  double cx;</p><p>  double hf;</p><p>  double

26、 grsds;</p><p>  double yks;</p><p>  double sfs;</p><p><b>  };</b></p><p>  這是對職工工資信息錄入的一個結(jié)構(gòu)體的申明,申明該職工的工資信息有哪些。Id 為職工編號,jbgz為職工的基本工資,jt為職工的津貼,gt為職工的崗帖,bt為

27、職工的補貼,ft為職工的房帖,jtbt為職工的交通補貼,cx為職工的儲蓄,hf為職工的匯費,grsds為職工的個人所得稅,yks為職工的應(yīng)扣數(shù),sfs為職工的實發(fā)數(shù),Sfgz為實發(fā)工資。</p><p>  /* 建立50個元素的結(jié)構(gòu)體數(shù)組 */</p><p>  struct zhigong zg[50]; </p><p>  /* 建立結(jié)構(gòu)體變量

28、 */</p><p>  struct zhigong zgone;</p><p>  /* 職員列表中的數(shù)量 */</p><p><b>  int n=0;</b></p><p>  /* 獲得字符串 */</p><p>  char numstr[50];<

29、;/p><p>  這是對職工的工資錄入的主要數(shù)據(jù)結(jié)構(gòu),zg[50]是可以錄入50個職工的工資信息,char numstr[50]為在錄入職工的工資信息時,可輸入的字符串的最大是50位。</p><p>  2)函數(shù)addone</p><p>  addone(void)</p><p><b>  {</b></p

30、><p>  printf("\n");</p><p>  printf("__________________________________>>><<<_____________________________________\n");</p><p>  printf("Rec

31、ord NO. %d \n",n+1);</p><p>  printf("請輸入月份: \n");</p><p>  gets(numstr);</p><p>  zg[n].month=atoi(numstr);</p><p>  printf("輸入職工基本信息\n");<

32、/p><p>  printf("請輸入職工的職工編號: \n");</p><p>  gets(numstr);</p><p>  zg[n].id=atof(numstr);</p><p>  printf("請輸入職工的基本工資: \n");</p><p>  gets

33、(numstr);</p><p>  zg[n].jbgz=atof(numstr);</p><p>  printf("請輸入職工的津貼: \n");</p><p>  gets(numstr);</p><p>  zg[n].jt=atof(numstr);</p><p>  prin

34、tf("請輸入職工的崗貼: \n");</p><p>  gets(numstr);</p><p>  zg[n].gt=atof(numstr);</p><p>  printf("請輸入職工的補貼: \n");</p><p>  gets(numstr);</p><p&

35、gt;  zg[n].bt=atof(numstr);</p><p>  printf("請輸入職工的房帖: \n");</p><p>  gets(numstr);</p><p>  zg[n].ft=atof(numstr);</p><p>  printf("請輸入職工的交通補貼: \n"

36、);</p><p>  gets(numstr);</p><p>  zg[n].jtbt=atof(numstr);</p><p>  zg[n].sfgz=(zg[n].jbgz)+(zg[n].jt)+(zg[n].gt)+(zg[n].bt)+(zg[n].ft)+(zg[n].jtbt);</p><p>  printf(&

37、quot;請輸入職工的房租: \n");</p><p>  gets(numstr);</p><p>  zg[n].fz=atof(numstr);</p><p>  printf("請輸入職工的儲蓄: \n");</p><p>  gets(numstr);</p><p> 

38、 zg[n].cx=atof(numstr);</p><p>  printf("請輸入職工的會匯: \n");</p><p>  gets(numstr);</p><p>  zg[n].hf=atof(numstr);</p><p>  zg[n].grsds=tgrsds(zg[n].sfgz);</p

39、><p>  zg[n].yks=(zg[n].fz)+(zg[n].cx)+(zg[n].hf)+(zg[n].grsds);</p><p>  zg[n].sfs=(zg[n].sfgz)-(zg[n].yks);</p><p><b>  n++;</b></p><p>  printf("添加成功!\

40、n");</p><p>  printf("__________________________________>>><<<_________________________________\n");</p><p><b>  return 0;</b></p><p>&l

41、t;b>  }</b></p><p>  通過這個函數(shù)可以創(chuàng)建一個職工的所有工資信息,首先程序提示輸入職工的編號,然后輸入職工的工資信息,包括(基本工資、津貼、崗貼、補貼、房帖、交通補貼,并統(tǒng)計這些工資為實發(fā)工資。然后輸入職工的房租、儲蓄、匯費)</p><p>  3)函數(shù)delone</p><p>  /*刪除個人記錄*/</p>

42、;<p>  delone(void)</p><p><b>  {</b></p><p>  struct zhigong tmp[50];</p><p>  double zhigongid;</p><p><b>  int j,k;</b></p><

43、;p>  int flagfind;</p><p>  flagfind=0;</p><p><b>  k=0;</b></p><p>  printf("---------------------------------------------------\n");</p><p> 

44、 printf("\n 請輸入某職工的職工編號: \n");</p><p>  gets(numstr);</p><p>  zhigongid=atof(numstr);</p><p>  for(j=0;j<=n;j++)</p><p><b>  {</b></p>

45、<p>  if(zg[j].id==zhigongid)</p><p><b>  {</b></p><p>  flagfind=1;</p><p><b>  }</b></p><p><b>  else</b></p><p>

46、;<b>  {</b></p><p>  tmp[k]=zg[j];</p><p><b>  k++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(fla

47、gfind==1)</p><p><b>  {</b></p><p>  for(j=0;j<=(n-1);j++)</p><p><b>  {</b></p><p>  zg[j]=tmp[j];</p><p><b>  }</b>

48、;</p><p>  printf("\n 成功刪除記錄 ! \n");</p><p>  printf("---------------------------------------------------\n");</p><p><b>  n=n-1;</b></p><

49、p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("\n 沒有你要刪除的記錄! \n");</p><p>  printf("--------

50、--------------------------------------------\n");</p><p><b>  }</b></p><p>  return (0);</p><p><b>  }</b></p><p>  程序提示用戶輸入要刪除的個人的工資記錄,使用線

51、形查找法查找相應(yīng)的記錄,如果找到,則刪除記錄。如果沒有,則提示用戶該記錄不存在。</p><p>  4)函數(shù)modone</p><p>  /*修改個人記錄*/</p><p>  modone(void)</p><p><b>  {</b></p><p>  double zhigon

52、gid;</p><p><b>  int j;</b></p><p>  int flagfind;</p><p>  flagfind=0;</p><p>  printf("\n 請輸入職工的職工編號: \n");</p><p>  gets(numstr);&

53、lt;/p><p>  zhigongid=atof(numstr);</p><p>  for(j=0;j<=n;j++)</p><p><b>  {</b></p><p>  if(zg[j].id==zhigongid)</p><p><b>  {</b>

54、</p><p>  printf("NO.:%d\n",j);</p><p>  printf("month:%d\n",zg[j].month);</p><p>  printf("\t職工編號%10.0f\n",zg[j].id);</p><p>  printf(&qu

55、ot;\t基本工資:%10.2f\n",zg[j].jbgz);</p><p>  printf("\t請輸入職工的基本工資: \n");</p><p>  gets(numstr);</p><p>  zg[j].jbgz=atof(numstr);</p><p>  printf("\t津貼

56、:%10.2f\n",zg[j].jt);</p><p>  printf("\t請輸入職工的津貼: \n");</p><p>  gets(numstr);</p><p>  zg[j].jt=atof(numstr);</p><p>  printf("\t崗貼:%10.2f\n"

57、,zg[j].gt);</p><p>  printf("\t請輸入職工的崗貼: \n");</p><p>  gets(numstr);</p><p>  zg[j].gt=atof(numstr);</p><p>  printf("\t補貼:%10.2f\n",zg[j].bt);<

58、/p><p>  printf("\t請輸入職工的補貼: \n");</p><p>  gets(numstr);</p><p>  zg[j].bt=atof(numstr);</p><p>  printf("\t房帖:%10.2f\n",zg[j].ft);</p><p&g

59、t;  printf("\t請輸入職工的房帖: \n");</p><p>  gets(numstr);</p><p>  zg[j].ft=atof(numstr);</p><p>  printf("\t交通補貼:%10.2f\n",zg[j].jtbt);</p><p>  printf(

60、"\t請輸入職工的交通補貼: \n");</p><p>  gets(numstr);</p><p>  zg[j].jtbt=atof(numstr);</p><p>  zg[j].sfgz=(zg[j].jbgz)+(zg[j].jt)+(zg[j].gt)+(zg[j].bt)+(zg[j].ft)+(zg[j].jtbt);<

61、;/p><p>  printf("\t房租:%10.2f\n",zg[j].fz);</p><p>  printf("\t請輸入職工的房租: \n");</p><p>  gets(numstr);</p><p>  zg[j].fz=atof(numstr);</p><p&

62、gt;  printf("\t儲蓄:%10.2f\n",zg[j].cx);</p><p>  printf("\t請輸入職工的儲蓄: \n");</p><p>  gets(numstr);</p><p>  zg[j].cx=atof(numstr);</p><p>  printf(&qu

63、ot;\t匯費:%10.2f\n",zg[j].hf);</p><p>  printf("\t請輸入職工的匯費: \n");</p><p>  gets(numstr);</p><p>  zg[j].hf=atof(numstr);</p><p>  printf("修改成功\n"

64、);</p><p>  zg[j].grsds=tgrsds(zg[j].sfgz);</p><p>  zg[j].yks=(zg[j].fz)+(zg[j].cx)+(zg[j].hf)+(zg[j].grsds);</p><p>  zg[j].sfs=(zg[j].sfgz)-(zg[j].yks);</p><p>  fla

65、gfind=1;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  flagfind=0;</p><p><b>  }</b><

66、;/p><p><b>  }</b></p><p>  if(flagfind!=0)printf("\n沒有此記錄! \n");</p><p>  return(0);</p><p><b>  }</b></p><p>  程序提示用戶輸入職工的

67、編號,使用線形查找相應(yīng)的記錄,如果找到,則提示用戶輸入新的相應(yīng)的職工信息。</p><p><b>  4設(shè)計結(jié)果與分析</b></p><p>  當把程序?qū)懞貌⑦M行調(diào)試時,并不是一帆風順的,總會遇到很多在調(diào)試時遇到的錯誤。</p><p>  首先在定義函數(shù)時,不能輸入漢字。否則會程序會顯示錯誤。</p><p>

68、  2.在程序中,如果定義職工的基本工資、津貼、崗貼、補貼、房帖、交通補貼等為float型,而后面其相應(yīng)的返回值為雙精度浮點型,會出現(xiàn)相應(yīng)的警告</p><p>  3.前后定義變量要統(tǒng)一。</p><p>  4.如果要調(diào)用添加函數(shù),修改函數(shù),修改函數(shù),查找函數(shù),統(tǒng)計函數(shù)等要在主函數(shù)前面進行申明。否則會顯示警告。</p><p>  5.對背景顏色設(shè)置的時候,當你

69、輸入的顏色在內(nèi)存中不存在時,運行程序過后,系統(tǒng)會告訴你相應(yīng)的顏色符號常數(shù)及數(shù)值。</p><p>  6.如果程序在運行的過程中,對于一個循環(huán)語句,如果你返回的值始終是真的,那么程序?qū)⑦M如死循環(huán)。</p><p>  7. 未注意int,float型數(shù)據(jù)的數(shù)值范圍,int型數(shù)據(jù)的數(shù)值范圍(-32768~32768)。對定義工資變量時,如果將職工工資定義為float型,將會出現(xiàn)警告。<

70、/p><p>  8.對應(yīng)該有花括弧的復合語句,忘記加花括弧。</p><p>  9. 所調(diào)用的函數(shù)在調(diào)用語句之后才定義,而又在調(diào)用前未加說明。</p><p><b>  5 小 結(jié)</b></p><p>  隨著我國成功加入WTO及信息化浪潮的日益臨近,企業(yè)、單位等一些部門在激烈的市場競爭環(huán)境下求得生存,就必須有效

71、地利用人才、時間、信息結(jié)合的優(yōu)勢。因此,如何使企業(yè)、單位等部門及時掌握本企業(yè)、單位等人才的各種信息、第一時間處理好隨時變化的工資管理問題,建立一套符合企業(yè)、單位實際的工資管理系統(tǒng)就顯得尤為重要。</p><p>  在本課程設(shè)計的設(shè)計過程中,我剛開始感覺到有點頭痛。要通過一學期C語言的學習后將所學知識運用起來有點困難,但回過頭來再去看教課書,對于這些知識點有關(guān)的背景,概念和解決方案更進一步的理解,感覺也不是很難。

72、</p><p>  另外我還體會了從事C語言課程設(shè)計工作需要特別謹慎認真地態(tài)度和作風,一點都不能馬虎。每個細微的細節(jié)都必須十分注意,如果不認真思考,就會出現(xiàn)或大或小的錯誤。如果把早期的錯誤隱藏下來,對后面的工作影響就會很大,甚至有時會推倒很多前面做的工作。有時候,我自己覺得我寫的程序非常正確,但是就是編譯通不過,在查找錯誤的過程中,面臨著否認自己的過程,非常的痛苦,而且由于自己的經(jīng)驗及各方面的能力的不足,所以進

73、展的速度非常的緩慢,往往幾天的時間沒有一點進展。這時候,我一般是先自己通過書本,手冊和資料找解決辦法,實在沒轍才向老師同學請教。</p><p>  在開始編寫程序的時候,我看到別人的程序功能非常的詳細,而且界面非常漂亮,總是希望自己的程序也非常的完善,但是,發(fā)現(xiàn)編一個好的程序不是一蹴而就的事情,需要長時間的積累和經(jīng)驗。</p><p>  在反反復復的學習中,我終于作出一個簡單的程序,雖

74、然這個程序的功能非常簡單,而且在實際運用中還有些不足,因為工資的的內(nèi)容非常豐富,我涉及到的僅僅是工資管理的一部分簡單內(nèi)容,離實際的客戶需求肯定還有差距。</p><p>  由于我的知識淺薄,經(jīng)驗不足及閱歷頗淺,在該系統(tǒng)的設(shè)計方面還有很多不足,比如功能過少,界面不醒目等問題,我會在以后的學習過程中,根據(jù)具體要求不斷的修改、完善,爭取使系統(tǒng)慢慢趨于完美。</p><p><b> 

75、 致謝</b></p><p>  在這次C語言課程設(shè)計中,我的老師和同學給了我及大的幫助。特別是我的指導老師熊茜老師,還有我的C語言任課老師金尚柱老師。在此,我對他們表示感謝!感謝他們在我面對困難時給了我?guī)椭椭С帧R哺兄x那些給我?guī)椭乃型瑢W!</p><p><b>  參考文獻</b></p><p>  [1]譚浩強著.C

76、程序設(shè)計(第二版).北京:清華大學出版社,1999</p><p>  [2]譚浩強,張基溫,唐永炎編著.C語言程序設(shè)計.北京:高等教育出版社,1992</p><p>  [3]譚浩強編著.QBASIC語言教程.北京:電子工業(yè)出版社,1997</p><p>  [4]譚浩強.C程序設(shè)計[M].3版.北京:清華大學出版社,2005</p><p

77、>  [5]Herbert Schildt著.戴健鵬譯.C語言大全(第二版).北京:電子工業(yè)出版社,1994</p><p>  [6][美]SCHILDTH.C語言大全[M].4版.王子恢等譯.北京:電子工業(yè)出版社,2001</p><p><b>  源程序</b></p><p>  #include "stdio.h&q

78、uot;</p><p>  #include "conio.h"</p><p>  #include"stdlib.h"</p><p>  #include "dos.h"</p><p>  /* 為了調(diào)用atof()等函數(shù) */</p><p>  

79、#include "stdlib.h"</p><p>  #define TRUE 1</p><p><b>  addone();</b></p><p><b>  delone();</b></p><p><b>  modone();</b>&

80、lt;/p><p><b>  idone();</b></p><p>  listall();</p><p><b>  wfile();</b></p><p><b>  rfile();</b></p><p>  /* 結(jié)構(gòu)體聲明 */<

81、;/p><p>  struct zhigong</p><p><b>  {</b></p><p>  int month;</p><p>  double id;</p><p>  double jbgz;</p><p>  double jt;</p>

82、;<p>  double gt;</p><p>  double bt;</p><p>  double ft;</p><p>  double jtbt;</p><p>  double sfgz;</p><p>  double fz;</p><p>  doub

83、le cx;</p><p>  double hf;</p><p>  double grsds;</p><p>  double yks;</p><p>  double sfs;</p><p><b>  };</b></p><p>  /* 建立50個元素

84、的結(jié)構(gòu)體數(shù)組 */</p><p>  struct zhigong zg[50];</p><p>  /* 建立結(jié)構(gòu)體變量 */</p><p>  struct zhigong zgone;</p><p>  /* 職員列表中的數(shù)量 */</p><p><b>  int n=0

85、;</b></p><p>  /* 獲得字符串 */</p><p>  char numstr[50];</p><p><b>  main()</b></p><p><b>  {</b></p><p><b>  char ch

86、;</b></p><p><b>  n=0;</b></p><p>  /*rfile(); 使用后啟動程序時系統(tǒng)會自動加載紀錄*/</p><p>  system("color 4e");</p><p>  while(TRUE)</p><p>&

87、lt;b>  {</b></p><p>  printf("\n");</p><p>  printf("================================================================================\n");</p><p>  prin

88、tf("\t\t〓〖歡迎來到職工工資管理系統(tǒng)〗〓 (請在<1-8>中選擇) \n");</p><p>  //printf("______________________________________________________\n");</p><p>  pr

89、intf("\t\t ★ 1.增加職工的工資信息 \n");</p><p>  printf("\t\t ★ 2.刪除某職工的工資信息 \n");</p>

90、<p>  printf("\t\t ★ 3.改變某職工的工資信息 \n");</p><p>  printf("\t\t ★ 4.輸出某職工的所有工資信息

91、 \n");</p><p>  printf("\t\t ★ 5.統(tǒng)計所有的職工工資信息 \n");</p><p>  printf("\t\t ★ 6.保存日期

92、 \n");</p><p>  printf("\t\t ★ 7.下載日期 \n");</p><p>  printf("\t\t

93、 ★ 8.退出 \n");</p><p>  printf("========================================================\n");</p><p>  printf("

94、;\t\t\t 請選擇(1-8) \n");</p><p>  ch=getche();</p><p>  switch(ch)</p><p><b>  {</b></p><p>  case &

95、#39;1': addone();break;</p><p>  case '2':delone();break;</p><p>  case '3':modone();break;</p><p>  case '4':idone();break;</p><p>  case &

96、#39;5':listall();break;</p><p>  case '6':wfile();break;</p><p>  case '7':rfile();break;</p><p>  case '8':exit(0);</p><p>  default:printf

97、("對不起,請重新選擇!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /*計算個人所得稅*/</p><p>  double

98、tgrsds(double m)</p><p><b>  {</b></p><p>  double sui1,sui2,sui3;</p><p>  double tmp;</p><p>  sui1=0;sui2=0;sui3=0;</p><p>  if(m>=5000)&

99、lt;/p><p><b>  {</b></p><p>  sui1=(m-5000)*0.2;</p><p>  sui2=(5000-1000)*0.1;</p><p>  sui3=(1000-800)*0.05;</p><p><b>  }</b></p

100、><p>  else if(m>=1000 && m<5000)</p><p><b>  {</b></p><p>  sui2=(m-1000)*0.1;</p><p>  sui3=(1000-800)*0.05;</p><p><b>  }&l

101、t;/b></p><p>  else if(m>=800 && m<1000)</p><p><b>  {</b></p><p>  sui3=(m-800)*0.05;</p><p><b>  }</b></p><p>  

102、tmp=sui1+sui2+sui3;</p><p>  return(tmp);</p><p><b>  }</b></p><p>  /* 添加職工的工資信息 */</p><p>  addone(void)</p><p><b>  {</b><

103、/p><p>  printf("\n");</p><p>  printf("__________________________________>>><<<_____________________________________\n");</p><p>  printf("R

104、ecord NO. %d \n",n+1);</p><p>  printf("請輸入月份: \n");</p><p>  gets(numstr);</p><p>  zg[n].month=atoi(numstr);</p><p>  printf("輸入職工基本信息\n");&l

105、t;/p><p>  printf("請輸入職工的職工編號: \n");</p><p>  gets(numstr);</p><p>  zg[n].id=atof(numstr);</p><p>  printf("請輸入職工的基本工資: \n");</p><p>  ge

106、ts(numstr);</p><p>  zg[n].jbgz=atof(numstr);</p><p>  // printf("請輸入職工的姓名:\n);</p><p>  //gets(numster);</p><p>  printf("請輸入職工的津貼: \n");</p>&l

107、t;p>  gets(numstr);</p><p>  zg[n].jt=atof(numstr);</p><p>  printf("請輸入職工的崗貼: \n");</p><p>  gets(numstr);</p><p>  zg[n].gt=atof(numstr);</p><

108、p>  printf("請輸入職工的補貼: \n");</p><p>  gets(numstr);</p><p>  zg[n].bt=atof(numstr);</p><p>  printf("請輸入職工的房帖: \n");</p><p>  gets(numstr);</p&

109、gt;<p>  zg[n].ft=atof(numstr);</p><p>  printf("請輸入職工的交通補貼: \n");</p><p>  gets(numstr);</p><p>  zg[n].jtbt=atof(numstr);</p><p>  zg[n].sfgz=(zg[n].

110、jbgz)+(zg[n].jt)+(zg[n].gt)+(zg[n].bt)+(zg[n].ft)+(zg[n].jtbt);</p><p>  printf("請輸入職工的房租: \n");</p><p>  gets(numstr);</p><p>  zg[n].fz=atof(numstr);</p><p>

111、;  printf("請輸入職工的儲蓄: \n");</p><p>  gets(numstr);</p><p>  zg[n].cx=atof(numstr);</p><p>  printf("請輸入職工的會匯: \n");</p><p>  gets(numstr);</p>

112、<p>  zg[n].hf=atof(numstr);</p><p>  zg[n].grsds=tgrsds(zg[n].sfgz);</p><p>  zg[n].yks=(zg[n].fz)+(zg[n].cx)+(zg[n].hf)+(zg[n].grsds);</p><p>  zg[n].sfs=(zg[n].sfgz)-(zg[n]

113、.yks);</p><p><b>  n++;</b></p><p>  printf("添加成功!\n");</p><p>  printf("__________________________________>>><<<_______________________

114、______________\n");</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  /*刪除個人記錄*/</p><p>  delone(void)</p><p><b>  {&

115、lt;/b></p><p>  struct zhigong tmp[50];</p><p>  double zhigongid;</p><p><b>  int j,k;</b></p><p>  int flagfind;</p><p>  flagfind=0;</

116、p><p><b>  k=0;</b></p><p>  printf("---------------------------------------------------\n");</p><p>  printf("\n 請輸入某職工的職工編號: \n");</p><p>

117、;  gets(numstr);</p><p>  zhigongid=atof(numstr);</p><p>  for(j=0;j<=n;j++)</p><p><b>  {</b></p><p>  if(zg[j].id==zhigongid)</p><p><b

118、>  {</b></p><p>  flagfind=1;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  tmp[k]=zg[j];&

119、lt;/p><p><b>  k++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(flagfind==1)</p><p><b>  {</b></p&g

120、t;<p>  for(j=0;j<=(n-1);j++)</p><p><b>  {</b></p><p>  zg[j]=tmp[j];</p><p><b>  }</b></p><p>  printf("\n 成功刪除記錄 ! \n");&

121、lt;/p><p>  printf("---------------------------------------------------\n");</p><p><b>  n=n-1;</b></p><p><b>  }</b></p><p><b>  e

122、lse</b></p><p><b>  {</b></p><p>  printf("\n 沒有你要刪除的記錄! \n");</p><p>  printf("----------------------------------------------------\n");</p

123、><p><b>  }</b></p><p>  return (0);</p><p><b>  }</b></p><p>  /*修改個人記錄*/</p><p>  modone(void)</p><p><b>  {</

124、b></p><p>  double zhigongid;</p><p><b>  int j;</b></p><p>  int flagfind;</p><p>  flagfind=0;</p><p>  printf("\n 請輸入職工的職工編號: \n&quo

125、t;);</p><p>  gets(numstr);</p><p>  zhigongid=atof(numstr);</p><p>  for(j=0;j<=n;j++)</p><p><b>  {</b></p><p>  if(zg[j].id==zhigongid)&l

126、t;/p><p><b>  {</b></p><p>  printf("NO.:%d\n",j);</p><p>  printf("month:%d\n",zg[j].month);</p><p>  printf("\t職工編號%10.0f\n",zg

127、[j].id);</p><p>  printf("\t基本工資:%10.2f\n",zg[j].jbgz);</p><p>  printf("\t請輸入職工的基本工資: \n");</p><p>  gets(numstr);</p><p>  zg[j].jbgz=atof(numstr)

128、;</p><p>  printf("\t津貼:%10.2f\n",zg[j].jt);</p><p>  printf("\t請輸入職工的津貼: \n");</p><p>  gets(numstr);</p><p>  zg[j].jt=atof(numstr);</p>&l

129、t;p>  printf("\t崗貼:%10.2f\n",zg[j].gt);</p><p>  printf("\t請輸入職工的崗貼: \n");</p><p>  gets(numstr);</p><p>  zg[j].gt=atof(numstr);</p><p>  printf

130、("\t補貼:%10.2f\n",zg[j].bt);</p><p>  printf("\t請輸入職工的補貼: \n");</p><p>  gets(numstr);</p><p>  zg[j].bt=atof(numstr);</p><p>  printf("\t房帖:%10

131、.2f\n",zg[j].ft);</p><p>  printf("\t請輸入職工的房帖: \n");</p><p>  gets(numstr);</p><p>  zg[j].ft=atof(numstr);</p><p>  printf("\t交通補貼:%10.2f\n",z

132、g[j].jtbt);</p><p>  printf("\t請輸入職工的交通補貼: \n");</p><p>  gets(numstr);</p><p>  zg[j].jtbt=atof(numstr);</p><p>  zg[j].sfgz=(zg[j].jbgz)+(zg[j].jt)+(zg[j].g

133、t)+(zg[j].bt)+(zg[j].ft)+(zg[j].jtbt);</p><p>  printf("\t房租:%10.2f\n",zg[j].fz);</p><p>  printf("\t請輸入職工的房租: \n");</p><p>  gets(numstr);</p><p> 

134、 zg[j].fz=atof(numstr);</p><p>  printf("\t儲蓄:%10.2f\n",zg[j].cx);</p><p>  printf("\t請輸入職工的儲蓄: \n");</p><p>  gets(numstr);</p><p>  zg[j].cx=atof(

溫馨提示

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

評論

0/150

提交評論