c語言課程設(shè)計---職工信息管理系統(tǒng)設(shè)計_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設(shè) 計 報 告</p><p>  課程名稱: C語言程序設(shè)計 </p><p><b>  院 (系): </b></p><p>  專 業(yè): </p><p>  班 級: </p><p>  學(xué) 號:

2、 </p><p>  姓 名: </p><p>  指導(dǎo)老師: </p><p><b>  目 錄</b></p><p>  題目··········&

3、#183;····································

4、;···········3</p><p>  需求和規(guī)格說明····················&#

5、183;·······················3</p><p>  算法設(shè)計········&#

6、183;····································

7、·····3</p><p>  詳細(xì)設(shè)計···························

8、·······················4</p><p>  調(diào)試分析·········

9、····································

10、3;···14</p><p>  調(diào)試結(jié)果····························

11、83;·····················14</p><p>  調(diào)試數(shù)據(jù)··········&#

12、183;····································

13、···15</p><p>  2.1調(diào)試建立文件并輸入職工信息···························

14、;····15</p><p>  2.2調(diào)試添加職工信息··························

15、83;··············15</p><p>  2.3調(diào)試查詢職工信息················&

16、#183;························16</p><p>  2.3.1調(diào)試按學(xué)歷查詢·····

17、3;···································16</p

18、><p>  2.3.2調(diào)試按工資查詢································

19、;·········16</p><p>  2.4調(diào)試修改職工信息·····················

20、83;···················17</p><p>  2.5調(diào)試刪除職工信息···········&

21、#183;·····························17</p><p>  2.6調(diào)試輸出職工信息·

22、;····································

23、83;···18</p><p>  五.總結(jié)····························&#

24、183;·······················18</p><p>  參考文獻(xiàn)········&

25、#183;····································

26、;·······19</p><p>  題目:職工信息管理系統(tǒng)設(shè)計</p><p>  一、需求和規(guī)格說明:問題描述,即題目要解決的問題是什么</p><p>  對企業(yè)而言,人力資源是企業(yè)最寶貴的資源,也是企業(yè)的“生命線”。隨著當(dāng)今企業(yè)人員數(shù)量的不斷增加、分工的不斷細(xì)化、各行業(yè)間聯(lián)系的不斷密切

27、,對職工信息管理的要求也不斷提高,實現(xiàn)職工管理自動化也無疑將帶來高效率的企業(yè)管理。</p><p>  最初的職工信息管理采用人工方式,記錄量大、易出錯,越來越不適應(yīng)實際管理工作地需要。職工信息管理系統(tǒng)就是用電腦代替大量的人工記錄,完成更多的信息處理,具有方便、準(zhǔn)確度高且可以長期保存的特點。</p><p>  職工信息管理系統(tǒng)主要用于高效地收集和管理職工的相關(guān)信息,便于以后的查找及應(yīng)用,

28、本系統(tǒng)可以提供對職工信息的查詢、添加、修改、刪除等功能。</p><p>  二、算法設(shè)計(程序流程圖)</p><p><b>  圖1 文件流程圖</b></p><p><b>  k=1</b></p><p><b>  k=2 </b></p><

29、;p><b>  default </b></p><p><b>  圖2 查詢流程圖</b></p><p><b>  m=1 </b></p><p><b>  m=2 </b></p><p><b>  m=3 </b

30、></p><p><b>  m=4 </b></p><p><b>  m=5 </b></p><p><b>  m=0</b></p><p><b>  圖3 菜單流程圖</b></p><p>  三、詳細(xì)設(shè)計

31、(程序)</p><p>  #include <stdio.h></p><p>  #include <stdlib.h></p><p>  #include <string.h></p><p>  struct staff</p><p><b>  {</

32、b></p><p>  char name[8];</p><p>  char num[10];</p><p>  char sex[10];</p><p>  char age[10];</p><p>  char record[10];</p><p>  char posi

33、tion[15];</p><p>  char wages[10];</p><p>  char tel[15];</p><p>  char addr[50];</p><p>  }worker; /*定義一個結(jié)構(gòu)體*/</p><p>  c

34、har filename[20]; /*文件名*/</p><p>  FILE *fp; </p><p>  void creat(); /*定義一個創(chuàng)建函數(shù)*/</p><p>  void output();

35、 /*定義一個輸出信息的函*/</p><p>  void search(); /*定義一個查詢的函數(shù)*/</p><p>  void search1(); /*定義一個按學(xué)歷查詢數(shù)*/</p><p> 

36、 void search2(); /*定義一個按工資查詢數(shù)*/</p><p>  void append(); /*定義一個添加函數(shù)*/</p><p>  void modify(); /*定義一個修改函數(shù)*/</

37、p><p>  void deleted(); /*定義一個刪除函數(shù)*/</p><p>  void main() /*主函數(shù)*/</p><p><b>  {</b></p><p><b>

38、  int m;</b></p><p><b>  creat();</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  printf("=====職工信息管理系統(tǒng)=====\n&qu

39、ot;);</p><p>  printf("---------------------------------\n");</p><p>  printf("\n添加職工信息,請按1");</p><p>  printf("\n查詢職工信息,請按2");</p><p>  p

40、rintf("\n修改職工信息,請按3");</p><p>  printf("\n刪除職工信息,請按4");</p><p>  printf("\n輸出職工信息,請按5");</p><p>  printf("\n退出系統(tǒng),請按0\n"); /*

41、輸出提示信*/</p><p>  printf("---------------------------------\n");</p><p>  printf("請您在上述功能中選擇(0——5):");</p><p>  scanf("%d",&m);</p><p>

42、  if(m>=0&&m<=5)</p><p><b>  {</b></p><p><b>  switch(m)</b></p><p><b>  {</b></p><p>  case 1: append();break;</p&

43、gt;<p>  case 2: search();break;</p><p>  case 3: modify();break;</p><p>  case 4: deleted();break;</p><p>  case 5: output();break;</p><p>  case 0: exit(1);<

44、;/p><p><b>  }</b></p><p>  printf("\n\n操作完畢,請再次選擇!");</p><p><b>  }</b></p><p><b>  else</b></p><p>  printf(&q

45、uot;\n\n選擇錯誤,請再次選擇!");</p><p><b>  }</b></p><p><b>  }</b></p><p>  void creat()</p><p><b>  {</b></p><p>  struct

46、 staff one;</p><p>  printf("\n請輸入文件名:");</p><p>  scanf("%s",filename); /*創(chuàng)建一個文件的名字*/</p><p>  if((fp=fopen(filename,"w"))==NULL)

47、 /*打開文件,實現(xiàn)向文件數(shù)*/</p><p><b>  {</b></p><p>  printf("\n不能建立!");</p><p><b>  exit(1);</b></p><p><b>  }</b></p><

48、;p>  fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n","姓名","工號","性別","年齡","學(xué)歷","職位","工資","電話號碼","住址");</p&g

49、t;<p>  printf("\n請輸入職工信息(以0結(jié)束)\n");</p><p>  printf("姓名:\n");</p><p>  scanf("%s",one.name);</p><p>  while(strcmp(one.name,"0"))<

50、/p><p><b>  {</b></p><p>  printf("工號:\n");</p><p>  scanf("%s",one.num);</p><p>  printf("性別:\n");</p><p>  scanf(&

51、quot;%s",one.sex);</p><p>  printf("年齡:\n");</p><p>  scanf("%s",one.age);</p><p>  printf("學(xué)歷:\n");</p><p>  scanf("%s",on

52、e.record);</p><p>  printf("職位:\n");</p><p>  scanf("%s",one.position);</p><p>  printf("工資:\n");</p><p>  scanf("%s",one.wages)

53、;</p><p>  printf("電話:\n");</p><p>  scanf("%s",one.tel);</p><p>  printf("住址:\n");</p><p>  scanf("%s",one.addr);

54、 /*輸出職工的相關(guān)信*/</p><p>  fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wages,one.tel,one.addr);</p><p>  scanf(&

55、quot;%s",one.name);</p><p><b>  }</b></p><p>  fclose(fp); /*關(guān)閉文件*/</p><p><b>  }</b></p><p>  void output()

56、 /*輸出函數(shù)*/</p><p><b>  {</b></p><p>  struct staff one;</p><p>  if((fp=fopen(filename,"r"))==NULL) /*打開文件*/</p><

57、p><b>  {</b></p><p>  printf("\n不能打開該文件!");</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p>  printf("\n\n%20s\n

58、","職工信息管理系統(tǒng)");/*向文件輸入數(shù)據(jù)*/</p><p>  while(!feof(fp))</p><p><b>  {</b></p><p>  fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age

59、,one.record,one.position,one.wages,one.tel,one.addr);</p><p>  printf("%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wages,one.tel,one.add

60、r);</p><p><b>  }</b></p><p>  fclose(fp);/*關(guān)閉文件*/</p><p><b>  }</b></p><p>  void append() /*添加函數(shù)*/</p><

61、p><b>  {</b></p><p>  struct staff one;</p><p>  if((fp=fopen(filename,"a"))==NULL) /*打開文件*/</p><p><b>  {</b></p><p>  printf(

62、"\n不能打開該文件!");</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p>  printf("\n請輸入添加職工信息(姓名、工號、性別、年齡、學(xué)歷、職位、工資、電話、地址)\n");

63、 /*向文件中輸入數(shù)據(jù)*/</p><p>  scanf("%s%s%s%s%s%s%s%s%s",one.name,one.num,one.sex,one.age,one.record,one.position,one.wages,one.tel,one.addr);</p><p>  fprintf(fp,"%-10s%-8s%-5s%-5s%-1

64、0s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wages,one.tel,one.addr);</p><p>  fclose(fp); /*關(guān)閉文件*/</p><p><b>  }</b

65、></p><p>  void search() /*查詢函數(shù)*/</p><p><b>  {</b></p><p><b>  int k;</b></p><p>  printf("按學(xué)歷查詢,請按1\n");&l

66、t;/p><p>  printf("按工資查詢,請按2\n");</p><p>  scanf("%d",&k);</p><p><b>  switch(k)</b></p><p><b>  {</b></p><p>

67、  case 1:search1();break;</p><p>  case 2:search2();break;</p><p>  default:printf("退出查詢!");break;</p><p><b>  }</b></p><p><b>  }</b>

68、</p><p>  void search1()</p><p><b>  {</b></p><p>  int k=0,t;</p><p>  char record[8];</p><p>  struct staff one;</p><p>  printf

69、("\n請輸入您要查找的學(xué)歷:");</p><p>  scanf("%s",record);</p><p>  if((fp=fopen(filename,"rb"))==NULL) /*打開文件*/</p><p><b>  {</b></p>&

70、lt;p>  printf("\n不能打開文件!");</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p>  while(!feof(fp))</p><p><b>  {</b></

71、p><p>  fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wages,one.tel,one.addr);</p><p>  if(!strcmp(record,one.record))</p><p>

72、<b>  {</b></p><p>  printf("\n\n已查到,記錄為:");</p><p>  printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.positio

73、n,one.wages,one.tel,one.addr);</p><p><b>  k=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(!k)</b></p>

74、<p>  printf("\n\n對不起,查無此人!。");</p><p>  fclose(fp);</p><p>  printf("\n\n繼續(xù)請輸入1");</p><p>  printf("\n\n返回請輸入0");</p><p>  scanf(&

75、quot;%d",&t);</p><p><b>  switch(t)</b></p><p><b>  {</b></p><p>  case 1:search1();break;</p><p>  case 0:break;</p><p> 

76、 default:break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void search2()</p><p><b>  {</b></p><p>  int k=0,t;</p

77、><p>  char wages[8];</p><p>  struct staff one;</p><p>  printf("\n請輸入您要查找的工資:");</p><p>  scanf("%s",wages);</p><p>  if((fp=fopen(file

78、name,"rb"))==NULL) /*打開文件*/</p><p><b>  {</b></p><p>  printf("\n不能打開文件!");</p><p><b>  exit(1);</b></p><p><b>

79、  }</b></p><p>  while(!feof(fp))</p><p><b>  {</b></p><p>  fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,on

80、e.wages,one.tel,one.addr);</p><p>  if(!strcmp(wages,one.wages))</p><p><b>  {</b></p><p>  printf("\n\n已查到,記錄為:");</p><p>  printf("\n%-10s%

81、-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wages,one.tel,one.addr);</p><p><b>  k=1;</b></p><p><b>  }</b><

82、;/p><p><b>  }</b></p><p><b>  if(!k)</b></p><p>  printf("\n\n對不起,查無此人!。");</p><p>  fclose(fp);</p><p>  printf("\n\n

83、繼續(xù)請輸入1");</p><p>  printf("\n\n返回請輸入0");</p><p>  scanf("%d",&t);</p><p><b>  switch(t)</b></p><p><b>  {</b></p

84、><p>  case 1:search2();break;</p><p>  case 0:break;</p><p>  default:break;</p><p><b>  }</b></p><p><b>  }</b></p><p>

85、  void modify() /*修改函數(shù)*/</p><p><b>  {</b></p><p>  int m,k=0;</p><p>  long offset;</p><p>  char namekey[8];</p><p>

86、  struct staff one;</p><p>  printf("\n請輸入您要修改的職工的姓名:");</p><p>  scanf("%s",namekey);</p><p>  if((fp=fopen(filename,"r+"))==NULL) /*打開文件*/</p

87、><p><b>  {</b></p><p>  printf("\n不能打開該文件!");</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p>  while(!feof(f

88、p))</p><p><b>  {</b></p><p>  offset=ftell(fp); /*查找信息*/</p><p>  fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.re

89、cord,one.position,one.wages,one.tel,one.addr);</p><p>  if(!strcmp(namekey,one.name))</p><p><b>  {</b></p><p><b>  k=1;</b></p><p><b>  b

90、reak;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(k)</b></p><p><b>  {</b></p><p>  printf

91、("\n已查到,記錄為:");</p><p>  printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wages,one.tel,one.addr);</p><p>  

92、printf("\n請輸入信息(按照姓名、工號、性別、年齡、學(xué)歷、職位、工資、電話、地址的順序輸入):");</p><p>  scanf("%s%s%s%s%s%s%s%s%s",one.name,one.num,one.sex,one.age,one.record,one.position,one.wages,one.tel,one.addr);</p>

93、<p>  fseek(fp,offset,SEEK_SET);</p><p>  printf("%ld",ftell(fp));</p><p>  fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one

94、.record,one.position,one.wages,one.tel,one.addr);</p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("\n對不起,查無此人,無法進(jìn)行修改。");</p><p>

95、;  fclose(fp); /*文件關(guān)閉*/</p><p><b>  }</b></p><p>  void deleted() /*刪除函數(shù)*/</p><p><b>  {</b></p>

96、<p>  int m,k=0,flag;</p><p>  long offset1,offset2;</p><p>  char namekey[8], valid[4];</p><p>  struct staff one;</p><p>  printf("\n請輸入您要刪除的職工姓名:");

97、</p><p>  scanf("%s",namekey);</p><p>  if((fp=fopen(filename,"r+"))==NULL) /*打開文件*/</p><p><b>  {</b></p><p>  printf("\n不能打開該

98、文件!");</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p>  while(!feof(fp))</p><p><b>  {</b></p><p>  offset1=fte

99、ll(fp); /*查詢文件中相關(guān)的信息*/</p><p>  fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wages,one.tel,one.addr);</p><p>  if(!s

100、trcmp(namekey,one.name))</p><p><b>  {</b></p><p><b>  k=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><

101、p><b>  }</b></p><p><b>  if(k)</b></p><p><b>  {</b></p><p>  printf("\n已查到,記錄為");</p><p>  printf("\n%-10s%-8s%-5

102、s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wages,one.tel,one.addr);</p><p>  printf("\n確實要刪除,按1;不刪除,按0:");</p><p>  scanf("%

103、d",&m);</p><p><b>  if(m)</b></p><p><b>  {</b></p><p>  fseek(fp,offset1,SEEK_SET);</p><p>  fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-

104、8s%-8s%-10s%-15s\n","","","","","","","","","");</p><p><b>  }</b></p><p><b>  }&

105、lt;/b></p><p><b>  else</b></p><p>  printf("\n對不起,查無此人。");</p><p>  fclose(fp); /*關(guān)閉文件*/</p><p><b>  }</b>&l

106、t;/p><p><b>  四、調(diào)試分析</b></p><p><b>  1.調(diào)試結(jié)果:</b></p><p>  當(dāng)在VC++里運行的時候出現(xiàn)的情況是</p><p>  --------------------Configuration: 課程設(shè)計 - Win32 Debug--------

107、------------</p><p>  Compiling...</p><p><b>  課程設(shè)計.cpp</b></p><p>  c:\documents and settings\administrator\課程設(shè)計.cpp(51) : error C2065: 'exit' : undeclared iden

108、tifier</p><p>  執(zhí)行 cl.exe 時出錯.</p><p>  課程設(shè)計.obj - 1 error(s), 0 warning(s)</p><p>  說明缺少頭函數(shù)<stdlib.h>,不能在VC++運行,添加此頭函數(shù)后可以運行。</p><p>  當(dāng)在TC里運行時可以正常運行,說明程序沒有問題。<

109、;/p><p><b>  2.調(diào)試數(shù)據(jù)</b></p><p>  2.1調(diào)試建立文件并輸入職工信息</p><p>  圖4 調(diào)試建立文件并輸入職工信息</p><p>  說明創(chuàng)建文件并輸入職工信息這部分程序沒有問題。</p><p>  2.2調(diào)試添加職工信息</p><p

110、>  圖5 調(diào)試添加職工信息</p><p>  說明添加職工信息這部分程序沒有問題。</p><p>  2.3調(diào)試查詢職工信息</p><p>  2.3.1調(diào)試按學(xué)歷查詢</p><p>  圖6 調(diào)試按學(xué)歷查詢</p><p>  說明按學(xué)歷查詢這部分程序沒有問題。</p><p>

111、;  2.3.2調(diào)試按工資查詢</p><p>  圖7 調(diào)試按工資查詢</p><p>  說明按工資查詢這部分程序沒有問題。</p><p>  2.4調(diào)試修改職工信息</p><p>  圖8 調(diào)試修改職工信息</p><p>  說明修改職工信息這部分程序沒有問題。</p><p>  

112、2.5調(diào)試刪除職工信息</p><p>  圖9 調(diào)試刪除職工信息</p><p>  說明刪除職工信息這部分程序沒有問題。</p><p>  2.6調(diào)試輸出職工信息</p><p>  圖10 調(diào)試輸出職工信息</p><p>  說明輸出職工信息這部分程序沒有問題。</p><p>  總

113、結(jié):在調(diào)試數(shù)據(jù)這部分沒沒有為問題。</p><p><b>  五.課程設(shè)計總結(jié)</b></p><p>  經(jīng)過這兩周的課程設(shè)計學(xué)習(xí),職工信息管理系統(tǒng)已經(jīng)基本完成。通過這次的課程設(shè)計,使我對C語言有了更進(jìn)一步的認(rèn)識和了解,想學(xué)好它不是只有理論就行的,同時還要通過不斷地上機(jī)操作才能更好地學(xué)習(xí)它,我也發(fā)現(xiàn)我的好多不足之處,首先是自己在指法上還不行,經(jīng)常按錯字母,通過學(xué)習(xí)

114、也有所改進(jìn);再有對C語言的一些標(biāo)準(zhǔn)庫函數(shù)不太了解,還有對函數(shù)調(diào)用的正確使用不夠熟悉,這些不足我會在日后加以改進(jìn)。同時在這兩周的設(shè)計過程中,我也學(xué)習(xí)到了很多東西,通過查閱書籍、上網(wǎng)搜集資料,請教指導(dǎo)老師以及詢問同學(xué),使自己更加理解了本系,熟悉了在設(shè)計過程中所用到的編譯環(huán)境的使用方法以及編程語言。也使自身的系統(tǒng)設(shè)計能力得到了提高,看待問題更加的全面,同時在請教老師和詢問同學(xué)過程中我也看到了合作的力量,提高了自己的合作意識。本系統(tǒng)功能比較簡單

溫馨提示

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

評論

0/150

提交評論