數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---員工管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩17頁(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)課程設(shè)計(jì)</b></p><p><b>  員工管理系統(tǒng)</b></p><p>  目 錄</p><p>  1、 課程設(shè)計(jì)的目的:1</p><p>  2、 需求分析:1</p><p><b>  

2、1. 要求:1</b></p><p>  2. 詳細(xì)功能:1</p><p>  3、課程設(shè)計(jì)報(bào)告內(nèi)容:1</p><p>  員工管理系統(tǒng)調(diào)用關(guān)系圖:1</p><p>  2. 設(shè)計(jì)結(jié)構(gòu)體及函數(shù)表:2</p><p>  3. 實(shí)現(xiàn)主程序和各模塊的調(diào)用關(guān)系:2</p><

3、;p>  4、 詳細(xì)設(shè)計(jì):3</p><p>  1. 各個(gè)操作的算法實(shí)現(xiàn):3</p><p>  2.程序清單:(見附錄)4</p><p><b>  5、參考文獻(xiàn):5</b></p><p>  6、 部分運(yùn)行結(jié)果界面:5</p><p><b>  1.調(diào)試分析:

4、7</b></p><p>  2. 調(diào)試中遇到的問題:7</p><p><b>  7、總結(jié):8</b></p><p>  8、附錄:(程序)8</p><p><b>  課程設(shè)計(jì)的目的:</b></p><p>  用〈〈數(shù)據(jù)結(jié)構(gòu)〉〉所學(xué)的知識(shí)作

5、數(shù)據(jù)結(jié)構(gòu),并結(jié)合C語(yǔ)言基本知識(shí)。編寫一個(gè)簡(jiǎn)單的職工管理系統(tǒng)。以把所學(xué)數(shù)據(jù)結(jié)構(gòu)知識(shí)應(yīng)用到實(shí)際軟件開發(fā)中去。了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)能力;初步掌握軟件開發(fā)過(guò)程的問題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能;提高綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問題的能力;訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開發(fā)一般規(guī)范進(jìn)行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風(fēng);</p><p>&

6、lt;b>  需求分析:</b></p><p><b>  要求:</b></p><p>  職工對(duì)象包括姓名、性別、出生年月、學(xué)歷、職務(wù)、住址、電話等信息。</p><p>  (1)新增一名職工:將新增職工對(duì)象按姓名以字典方式職工管理文件中。</p><p> ?。?)刪除一名職工:從職工管理文

7、件中刪除一名職工對(duì)象。</p><p> ?。?)查詢:從職工管理文件中查詢符合某些條件的職工。</p><p> ?。?)修改:檢索某個(gè)職工對(duì)象,對(duì)其某些屬性進(jìn)行修改。</p><p>  (5)排序:按某種需要對(duì)職工對(duì)象文件進(jìn)行排序。</p><p><b>  詳細(xì)功能:</b></p><p&

8、gt;  信息排序sort():</p><p>  按員工的工號(hào)進(jìn)行排序,并輸出排序結(jié)果。</p><p>  B.信息修改num_modify():</p><p>  按員工工號(hào)找出員工信息,然后從新輸入,進(jìn)行覆蓋,實(shí)現(xiàn)修改。</p><p>  C.信息添加 add():</p><p>  系統(tǒng)將提示輸入新紀(jì)

9、錄所需信息,信息包含:姓名、性別、出生年月、學(xué)歷、職務(wù)、住址、電話。</p><p>  D.信息刪除num_del():</p><p>  首先提示用戶輸入要?jiǎng)h除的員工工號(hào),然后調(diào)用刪除函數(shù),刪除該紀(jì)錄的相關(guān)資料,支持重名選擇刪除和循環(huán)刪除。</p><p>  E.查找num_query():</p><p>  提示用戶輸入要查找的

10、員工工號(hào),然后系統(tǒng)調(diào)用查找函數(shù)查找,接著系統(tǒng)使用相關(guān)命令輸出查到的全部信息。</p><p>  F.顯示全部disp():</p><p>  將內(nèi)存中的紀(jì)錄內(nèi)容全部輸出,包括未保存到磁盤的記錄項(xiàng)。</p><p>  G.保存save():</p><p>  將操作結(jié)果實(shí)時(shí)保存到磁盤文件employee.txt中,完成后返回到主菜單界面

11、。</p><p>  H.退出系統(tǒng)exit(0):</p><p>  直接退出系統(tǒng),不保存修改。</p><p>  3、課程設(shè)計(jì)報(bào)告內(nèi)容:</p><p>  員工管理系統(tǒng)調(diào)用關(guān)系圖:</p><p><b>  略。。。。</b></p><p>  設(shè)計(jì)結(jié)構(gòu)體及函

12、數(shù)表:</p><p><b>  (1)結(jié)構(gòu)體:</b></p><p>  struct employee</p><p><b>  {</b></p><p>  char num[10];</p><p>  char name[15];</p>&l

13、t;p>  char sex[5];</p><p>  char born[20];</p><p>  char xl[20];</p><p>  char zz[10];</p><p>  char tel[20];</p><p><b>  };</b></p>

14、<p><b> ?。?)函數(shù)目錄表:</b></p><p>  int read_file(struct employee em[]);</p><p>  void menu();</p><p>  void write_file(struct employee em[]);</p><p>  voi

15、d add(); </p><p>  void select(); //查看職工所有信息</p><p>  void num_query(); //按工號(hào)查詢</p><p>  void num_del(); //按工號(hào)刪除</p><p>  void sort(); //排序</p

16、><p>  void num_modify(); //按工號(hào)修改職工信息</p><p>  void save(); //保存信息</p><p>  void disp(); //顯示職工信息</p><p>  void fh(); //返回主菜單</p><p>

17、  struct employee em[300]; //這個(gè)數(shù)組用來(lái)保存所有的職工信息 和文件里面的一致</p><p>  實(shí)現(xiàn)主程序和各模塊的調(diào)用關(guān)系:</p><p>  void main()</p><p><b>  {</b></p><p>  int choose=0;</p><

18、;p>  FILE *fp=NULL;</p><p>  char yesorno;</p><p>  if((fp=fopen("employee1.txt","rb+"))==NULL)</p><p><b>  {</b></p><p>  printf(&qu

19、ot;\n=========>提示:文件不存在,是否要?jiǎng)?chuàng)建一個(gè)?(y/n)\n");</p><p>  scanf("%c",&yesorno);</p><p>  if(yesorno=='y'||yesorno=='Y')</p><p><b>  { </b>

20、;</p><p>  //這里僅為了建立文件</p><p>  fp=fopen("employee1.txt","wb+");</p><p>  fclose(fp); //關(guān)閉fp所指的文件,釋放文件緩沖區(qū)</p><p><b>  }</b></p>&

21、lt;p><b>  else</b></p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></

22、p><p>  Number=read_file(em); //要是文件已經(jīng)有數(shù)據(jù) 將數(shù)據(jù)初始化到數(shù)組中</p><p><b>  }</b></p><p>  system("cls"); </p><p><b>  while(1) </b></p><

23、;p><b>  { </b></p><p><b>  menu();</b></p><p>  printf("\t\t====>請(qǐng)選擇:");</p><p>  scanf("%d",&choose);</p><p>  sy

24、stem("cls");</p><p>  switch(choose)</p><p><b>  {</b></p><p><b>  case 0: </b></p><p>  exit(0); //退出 </p>

25、<p><b>  break; </b></p><p><b>  case 1: </b></p><p><b>  add();</b></p><p>  fh();//增加職工信息</p><p><b>  break;</b

26、></p><p><b>  case 2:</b></p><p><b>  select();</b></p><p>  fh();//查看職工信息</p><p>  break; </p><p><b>  case 3:

27、</b></p><p>  num_query();</p><p>  fh();// 查找 </p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  num_del();

28、 </p><p>  fh();//刪除 </p><p><b>  break;</b></p><p><b>  case 5: </b></p><p><b>  sort();</b></p><p>  fh();//排序 </

29、p><p><b>  break;</b></p><p><b>  case 6: </b></p><p>  num_modify();</p><p>  fh();//修改后返回</p><p><b>  break;</b></p

30、><p><b>  case 7:</b></p><p><b>  save();</b></p><p>  fh();//保存 </p><p><b>  break;</b></p><p><b>  case 8:</b

31、></p><p><b>  disp();</b></p><p><b>  fh();</b></p><p>  break;//顯示</p><p><b>  default:</b></p><p><b>  break

32、;</b></p><p><b>  }</b></p><p>  fflush(stdin);</p><p>  getchar();</p><p>  system("cls");</p><p><b>  }</b></p

33、><p><b>  }</b></p><p>  void menu()//顯示菜單</p><p><b>  {</b></p><p>  printf("\t**************************************************************

34、*********\n");</p><p>  printf("\t* *\n");</p><p>  printf("\t* 職工信息管理系統(tǒng)_結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)

35、 *\n");</p><p>  printf("\t* *\n");</p><p>  printf("\t* [1] 增加職工信息 [2

36、] 查看職工信息 *\n");</p><p>  printf("\t* [3] 查找職工信息 [4] 刪除職工信息 *\n");</p><p>  printf("\t* [5] 職工工資排列 [6] 修改

37、職工信息 *\n");</p><p>  printf("\t* [7] 保存職工信息 [8] 顯示職工信息 *\n");</p><p>  printf("\t* [0] 退出系統(tǒng)

38、 *\n");</p><p>  printf("\t* *\n");</p><p>  printf("\t***************************************

39、********************************\n");</p><p><b>  }</b></p><p>  各個(gè)操作的算法實(shí)現(xiàn):</p><p> ?。?)程序菜單的顯示</p><p>  void menu()</p><p><b>  {&l

40、t;/b></p><p><b>  ……</b></p><p><b>  ……</b></p><p><b>  ……</b></p><p><b>  }</b></p><p><b> ?。?)增加

41、員工信息</b></p><p>  void add()//增加職工 </p><p><b>  {</b></p><p>  int numberTemp=0;</p><p><b>  int i=0;</b></p><p>  struct emp

42、loyee temp; //臨時(shí)保存信息</p><p><b>  ……</b></p><p><b>  ……</b></p><p><b>  }</b></p><p>  printf("添加成功\n");</p><p&g

43、t;<b>  }</b></p><p> ?。?)按員工學(xué)號(hào)查找</p><p>  void num_query()//按工號(hào)查找 </p><p><b>  { </b></p><p>  char num[20];</p><p><b>  i

44、nt i=0;</b></p><p>  printf("請(qǐng)輸入要查找職工工號(hào):");</p><p>  scanf("%s",&num);</p><p>  system("cls");</p><p>  printf("\t工號(hào)\t姓名\t性

45、別\t出生年月\t電話\t學(xué)歷\t住址\n");</p><p>  for (i=0;i<Number;i++)</p><p><b>  {</b></p><p>  if (strcmp(num,em[i].num)==0)</p><p><b>  {</b></

46、p><p>  printf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",em[i].num,em[i].name,em[i].sex,em[i].born,em[i].tel,em[i].xl,em[i].zz); </p><p><b>  }</b></p><p><b>  }&l

47、t;/b></p><p><b>  }</b></p><p>  void save()</p><p><b>  {</b></p><p>  printf("\t=====程序在運(yùn)行時(shí)已自動(dòng)保存.....\n");</p><p>&l

48、t;b>  }</b></p><p><b>  void fh()</b></p><p><b>  {</b></p><p>  printf("\t===>按Enter鍵返回主菜單\n");</p><p><b>  }</b

49、></p><p><b>  (4)顯示所有記錄</b></p><p>  void disp ()//顯示所有紀(jì)錄 </p><p>  { //顯示內(nèi)存中的所有記錄</p><p><b>  ……;</b></p><p><b>  ……;<

50、/b></p><p><b>  } </b></p><p><b>  刪除指定記錄</b></p><p>  void num_del() //刪除紀(jì)錄</p><p>  { //輸入要?jiǎng)h除的姓名</p><p><b>  ……;</b&

51、gt;</p><p><b>  ……;</b></p><p>  //查找符合條件的記錄,對(duì)于每條記錄詢問是否刪除;</p><p>  //滿足條件的輸出結(jié)束,詢問是否刪除其他記錄,循環(huán)</p><p><b>  ……;</b></p><p><b> 

52、 ……;</b></p><p><b>  }</b></p><p>  保存到磁盤文件(實(shí)時(shí)寫入文件)</p><p>  void save()// </p><p>  { //寫入文件操作</p><p><b>  ……;</b></p>

53、;<p><b>  ……;</b></p><p><b>  }</b></p><p>  2.程序清單:(見附錄)</p><p><b>  5、參考文獻(xiàn):</b></p><p>  [1] 嚴(yán)蔚敏,吳偉民 編著. 數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)——北京: 清華

54、大學(xué)出版社,2007.</p><p>  [2] 王秀貴 曹江蓮 編著 (C語(yǔ)言程序設(shè)計(jì)教程)—— 中國(guó)鐵道出版社出版 2007年印刷 </p><p><b>  部分運(yùn)行結(jié)果界面:</b></p><p>  1.調(diào)試分析:經(jīng)過(guò)反復(fù)測(cè)試,最終提供了一個(gè)較為友好的界面和操作模式,而且容錯(cuò)能力較好,穩(wěn)定性很強(qiáng)。下面做一些簡(jiǎn)單的說(shuō)明:<

55、;/p><p> ?。?)2級(jí)菜單只是作為一種嘗試,并非必須!</p><p>  在界面排版上,我學(xué)習(xí)了互聯(lián)網(wǎng)上部分程序的界面編排,其中以格式控制方式顯示提 高了界面顯示的穩(wěn)定性,較為理想。</p><p>  在文件讀取和保存方面,該程序做到了實(shí)時(shí)保存保存和讀取,操作非常簡(jiǎn)便。</p><p>  在查找方面,我將其設(shè)計(jì)為一次多記錄的顯示方

56、式,也更合乎操作習(xí)慣,界面較為友 好,對(duì)于無(wú)符合條件的結(jié)果,只是結(jié)果集為空,界面保持不變。</p><p>  刪除功能我做了較多的工作,整體界面和設(shè)計(jì)都較為合理。對(duì)于輸入的員工工號(hào),查 找出結(jié)果后提示是否刪除。</p><p><b>  調(diào)試中遇到的問題:</b></p><p>  在對(duì)于工號(hào)修改的時(shí)候,由于某些原因造成老是修改不

57、成功,最后經(jīng)過(guò)多次的和 同學(xué)的一起研究和討論,最后找出結(jié)果,由于少了一個(gè)對(duì)于文件標(biāo)記的修改,造成的,最后加入了一個(gè)標(biāo)記的修改,最后終于成功了。</p><p>  在員工信息的排列中,還是存在著一些問題,比如它并不按照我所寫的那個(gè)排序的程序進(jìn)行排序,連它是按照那個(gè)排序進(jìn)行的排序我都不清楚,希望老師可以幫我看看。</p><p><b>  7、總結(jié):</b><

58、/p><p>  通過(guò)做這個(gè)課程設(shè)計(jì)讓我了解并掌握了數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法,初步掌握了獨(dú)立分析和設(shè)計(jì)能力;以及軟件開發(fā)過(guò)程的問題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能;使我提高了編寫技術(shù)文獻(xiàn)的能力(尤其是目錄的提取,結(jié)構(gòu)圖的繪制等)。</p><p><b>  8</b></p><p><b>  、附錄:(程序)</

59、b></p><p>  //C語(yǔ)言課程設(shè)計(jì) 職工信息管理系統(tǒng)-結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)</p><p>  #include <stdio.h></p><p>  #include <stdlib.h></p><p>  #include <string.h></p><p>  

60、struct employee</p><p><b>  {</b></p><p>  char num[10];</p><p>  char name[15];</p><p>  char sex[5];</p><p>  char born[20];</p><p

61、>  char xl[20];</p><p>  char zz[10];</p><p>  char tel[20];</p><p><b>  };</b></p><p>  int read_file(struct employee em[]);</p><p>  void

62、menu();</p><p>  void write_file(struct employee em[]);</p><p>  void add(); </p><p>  void select(); //查看職工所有信息</p><p>  void num_query(); //按工號(hào)查詢</p>

63、<p>  void num_del(); //按工號(hào)刪除</p><p>  void sort(); //排序</p><p>  void num_modify(); //按工號(hào)修改職工信息</p><p>  void save(); //保存信息</p><p>  vo

64、id disp(); //顯示職工信息</p><p>  void fh(); //返回主菜單</p><p>  struct employee em[300]; //這個(gè)數(shù)組用來(lái)保存所有的職工信息 和文件里面的一致</p><p>  int Number=0; //記錄總的職工人數(shù) 也就是數(shù)組/文件里面的職工人數(shù)</p&g

65、t;<p>  void menu()</p><p><b>  {</b></p><p>  printf("\t***********************************************************************\n");</p><p>  printf(&q

66、uot;\t* *\n");</p><p>  printf("\t* 職工信息管理系統(tǒng)_結(jié)構(gòu)體數(shù)組實(shí)現(xiàn) *\n");</p><p>  printf

67、("\t* *\n");</p><p>  printf("\t* [1] 增加職工信息 [2] 查看職工信息 *\n");</p><p>  

68、printf("\t* [3] 查找職工信息 [4] 刪除職工信息 *\n");</p><p>  printf("\t* [5] 職工工資排列 [6] 修改職工信息 *\n");</p><p>  printf

69、("\t* [7] 保存職工信息 [8] 顯示職工信息 *\n");</p><p>  printf("\t* [0] 退出系統(tǒng) *\n");</p><p>  prin

70、tf("\t* *\n");</p><p>  printf("\t***********************************************************************\n");</p>

71、;<p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p>  int choose=0;</p><p>  FILE *fp=NULL;</p><p>  char yesorno;

72、</p><p>  if((fp=fopen("employee1.txt","rb+"))==NULL)</p><p><b>  {</b></p><p>  printf("\n=========>提示:文件不存在,是否要?jiǎng)?chuàng)建一個(gè)?(y/n)\n");</p&g

73、t;<p>  scanf("%c",&yesorno);</p><p>  if(yesorno=='y'||yesorno=='Y')</p><p><b>  { </b></p><p>  //這里僅為了建立文件</p><p>  

74、fp=fopen("employee1.txt","wb+");</p><p>  fclose(fp); //關(guān)閉fp所指的文件,釋放文件緩沖區(qū)</p><p><b>  }</b></p><p><b>  else</b></p><p><

75、b>  exit(0);</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Number=read_file(em); //要是文件已經(jīng)有數(shù)據(jù) 將數(shù)據(jù)初始化

76、到數(shù)組中</p><p><b>  }</b></p><p>  system("cls"); </p><p><b>  while(1) </b></p><p><b>  { </b></p><p><b>

77、;  menu();</b></p><p>  printf("\t\t====>請(qǐng)選擇:");</p><p>  scanf("%d",&choose);</p><p>  system("cls");</p><p>  switch(choose

78、)</p><p><b>  {</b></p><p><b>  case 0: </b></p><p>  exit(0); //退出 </p><p><b>  break; </b></p><p&g

79、t;<b>  case 1: </b></p><p><b>  add();</b></p><p>  fh();//增加職工信息</p><p><b>  break;</b></p><p><b>  case 2:</b><

80、/p><p><b>  select();</b></p><p>  fh();//查看職工信息</p><p>  break; </p><p><b>  case 3: </b></p><p>  num_query();</p>&

81、lt;p>  fh();// 查找 </p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  num_del(); </p><p>  fh();//刪除 </p><p><

82、;b>  break;</b></p><p><b>  case 5: </b></p><p><b>  sort();</b></p><p>  fh();//排序 </p><p><b>  break;</b></p><

83、;p><b>  case 6: </b></p><p>  num_modify();</p><p>  fh();//修改后返回</p><p><b>  break;</b></p><p><b>  case 7:</b></p>&l

84、t;p><b>  save();</b></p><p>  fh();//保存 </p><p><b>  break;</b></p><p><b>  case 8:</b></p><p><b>  disp();</b></

85、p><p><b>  fh();</b></p><p>  break;//顯示</p><p><b>  default:</b></p><p><b>  break;</b></p><p><b>  }</b><

86、/p><p>  fflush(stdin);</p><p>  getchar();</p><p>  system("cls");</p><p><b>  }</b></p><p><b>  }</b></p><p>

87、  void num_query()//按工號(hào)查找 </p><p><b>  { </b></p><p>  char num[20];</p><p><b>  int i=0;</b></p><p>  printf("請(qǐng)輸入要查找職工工號(hào):");</p

88、><p>  scanf("%s",&num);</p><p>  system("cls");</p><p>  printf("\t工號(hào)\t姓名\t性別\t出生年月\t電話\t學(xué)歷\t住址\n");</p><p>  for (i=0;i<Number;i++)&

89、lt;/p><p><b>  {</b></p><p>  if (strcmp(num,em[i].num)==0)</p><p><b>  {</b></p><p>  printf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",em[i].nu

90、m,em[i].name,em[i].sex,em[i].born,em[i].tel,em[i].xl,em[i].zz); </p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void

91、 save()</p><p><b>  {</b></p><p>  printf("\t=====程序在運(yùn)行時(shí)已自動(dòng)保存.....\n");</p><p><b>  }</b></p><p><b>  void fh()</b></p&

92、gt;<p><b>  {</b></p><p>  printf("\t===>按Enter鍵返回主菜單\n");</p><p><b>  }</b></p><p>  void num_modify() //修改職工信息</p><p><

93、b>  {</b></p><p>  FILE *fp=NULL;</p><p>  char gh[60];</p><p><b>  int i=0;</b></p><p>  int changeIndex=0; //changeIndex 改變標(biāo)記</p><p>

94、;  int index=0;</p><p>  printf("請(qǐng)輸入要修改的職工工號(hào):");</p><p>  scanf("%s",gh);</p><p>  for (i=0;i<Number;i++)</p><p><b>  {</b></p>

95、<p>  if (strcmp(gh,em[i].num)==0) //比較輸入工號(hào)和數(shù)組中已有工號(hào)</p><p><b>  {</b></p><p>  changeIndex=i; //保存要修改的人的下標(biāo)</p><p><b>  break;</b></p><p&g

96、t;<b>  }</b></p><p><b>  }</b></p><p>  printf("\t工號(hào)\t姓名\t性別\t出生年月\t電話\t學(xué)歷\t住址\n");</p><p>  printf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n"

97、;,em[changeIndex].num,em[changeIndex].name,em[changeIndex].sex,em[changeIndex].born,em[changeIndex].tel,em[changeIndex].xl,em[changeIndex].zz);</p><p>  printf("請(qǐng)重新輸入該職工信息");</p><p>  

98、printf("工號(hào):");</p><p>  scanf("%s",em[changeIndex].num);</p><p>  printf("姓名:");</p><p>  scanf("%s",em[changeIndex].name);</p><p&

99、gt;  printf("性別:");</p><p>  scanf("%s",em[changeIndex].sex);</p><p>  printf("出生年月:");</p><p>  scanf("%s",&em[changeIndex].born);</p

100、><p>  printf("電話:");</p><p>  scanf("%s",&em[changeIndex].tel);</p><p>  printf("學(xué)歷:");</p><p>  scanf("%s",&em[changeInd

101、ex].xl);</p><p>  printf("住址:");</p><p>  scanf("%s",&em[changeIndex].zz);</p><p>  //信息修改后重新更新文件里面的數(shù)據(jù) 以保持?jǐn)?shù)據(jù)一致性</p><p>  fp=fopen("employee

102、1.txt","wb+");</p><p>  for (i=0;i<Number;i++)</p><p><b>  {</b></p><p>  fwrite(&em[i],sizeof(struct employee),1,fp); //把ptr所指向n*size個(gè)字節(jié)輸入到fp所指向的

103、文件中</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  printf("\t=======>修改成功\n");</p><p><b>  }</b></p><p>  void disp()

104、 //輸出所有職工信息 </p><p><b>  {</b></p><p><b>  int i=0;</b></p><p>  for (i=0;i<Number;i++)</p><p><b>  {</b></p><p>  p

105、rintf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",em[i].num,em[i].name,em[i].sex,em[i].born,em[i].tel,em[i].xl,em[i].zz); </p><p><b>  }</b></p><p><b>  }</b></p>

106、<p>  void sort()//排序 </p><p><b>  {</b></p><p>  struct employee t;</p><p>  int wantNUmber=0;</p><p><b>  int i=0;</b></p><p&

107、gt;<b>  int j=0;</b></p><p><b>  int k=0;</b></p><p>  for(i=0;i<Number-1;i++)</p><p><b>  {k=i;</b></p><p>  for(j=i+1;j<Numb

108、er;j++)</p><p><b>  {</b></p><p>  if(em[j].num>em[k].num)</p><p><b>  k=j;</b></p><p><b>  }</b></p><p><b>  

109、if(k!=i)</b></p><p><b>  {</b></p><p><b>  t=em[i];</b></p><p>  em[i]=em[k];</p><p><b>  em[k]=t;</b></p><p><

110、;b>  }</b></p><p><b>  }</b></p><p>  printf("你想輸出前幾名職工的信息:");</p><p>  scanf("%d",&wantNUmber);</p><p>  if (wantNUmber>

111、;Number)</p><p><b>  {</b></p><p>  wantNUmber=Number;</p><p><b>  }</b></p><p>  printf("\t工號(hào)\t姓名\t性別\t出生年月\t電話\t學(xué)歷\t住址\n");</p>

112、;<p>  for(i=0;i<wantNUmber;i++)</p><p><b>  {</b></p><p>  printf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",em[i].num,em[i].name,em[i].sex,em[i].born,em[i].tel,em[i].xl

113、,em[i].zz); </p><p><b>  } </b></p><p><b>  }</b></p><p>  void num_del()</p><p><b>  {</b></p><p><b>  FILE *fp

114、;</b></p><p>  char gh[60];</p><p><b>  char ch;</b></p><p>  int i=0,j=0;</p><p>  int changeIndex=0; //changeIndex 改變標(biāo)記</p><p>  int in

115、dex=0;</p><p>  printf("請(qǐng)輸入要?jiǎng)h除的人員工號(hào):");</p><p>  scanf("%s",gh);</p><p>  for(i=0;i<Number;i++)</p><p><b>  {</b></p><p>

116、;  if(strcmp(gh,em[i].num)==0)</p><p><b>  {</b></p><p>  printf("找到要?jiǎng)h除的人員信息如下\n");</p><p>  printf("-----------------------------------------------------

117、----\n");</p><p>  printf("\t工號(hào)\t姓名\t性別\t出生年月\t電話\t學(xué)歷\t住址\n");</p><p>  printf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",em[i].num,em[i].name,em[i].sex,em[i].born,em[i].tel,em[

118、i].xl,em[i].zz); </p><p>  printf("---------------------------------------------------------\n");</p><p>  printf("你確定要?jiǎng)h除該人員信息嗎?(y/Y):");</p><p>  scanf("%

119、s",&ch);</p><p>  if(ch=='Y'||ch=='y')</p><p><b>  {</b></p><p>  for(j=i;j<Number-1;j++)</p><p>  em[j]=em[j+1];</p><

120、;p><b>  Number--;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  break;</b></p><p><b>  }</b><

121、/p><p><b>  }</b></p><p>  if(strcmp(gh,em[i].num)!=0)</p><p>  printf("\t\t\t警告:沒有你要?jiǎng)h除的相關(guān)數(shù)據(jù)!");</p><p>  fp=fopen("employee.txt","wb&

122、quot;);</p><p>  for(i=0;i<Number;i++)</p><p><b>  {</b></p><p>  fwrite(&em[i],sizeof(struct employee),1,fp);</p><p><b>  }</b></p>

123、;<p>  fclose(fp);</p><p>  if(ch=='Y'||ch=='y')</p><p>  printf("----->刪除成功!");</p><p><b>  }</b></p><p>  void select(

124、)//查看職工 </p><p><b>  {</b></p><p><b>  int i=0;</b></p><p>  printf("以下是全部職工信息\n");</p><p>  printf("\t工號(hào)\t姓名\t性別\t出生年月\t電話\t學(xué)歷\t

125、住址\n");</p><p>  for(i=0;i<Number;i++)</p><p><b>  {</b></p><p>  printf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",em[i].num,em[i].name,em[i].sex,em[i].born,e

126、m[i].tel,em[i].xl,em[i].zz); </p><p><b>  }</b></p><p><b>  }</b></p><p>  void add()//增加職工 </p><p><b>  {</b></p><p> 

127、 int numberTemp=0;</p><p><b>  int i=0;</b></p><p>  struct employee temp; //臨時(shí)保存信息</p><p>  printf("請(qǐng)輸入要增加職工信息的個(gè)數(shù):");</p><p>  scanf("%d&quo

128、t;,&numberTemp);</p><p>  for(i=0;i<numberTemp;i++)</p><p><b>  {</b></p><p>  printf("輸入第%d個(gè)職工信息\n",i+1);</p><p>  printf("工號(hào):")

129、;</p><p>  scanf("%s",temp.num);</p><p>  printf("姓名:");</p><p>  scanf("%s",temp.name);</p><p>  printf("性別:");</p><

130、p>  scanf("%s",temp.sex);</p><p>  printf("出生年月:");</p><p>  scanf("%s",&temp.born);</p><p>  printf("電話:");</p><p>  sca

131、nf("%s",&temp.tel);</p><p>  printf("學(xué)歷:");</p><p>  scanf("%s",&temp.xl);</p><p>  printf("住址:");</p><p>  scanf("

132、%s",&temp.zz);</p><p>  em[Number++]=temp; //將剛添加的寫入到數(shù)組</p><p>  write_file(&temp); //將剛添加的寫入到文件</p><p><b>  }</b></p><p>  printf("添加成功\n

133、");</p><p><b>  }</b></p><p>  void write_file(struct employee *em)</p><p><b>  {</b></p><p>  FILE *fp=NULL;</p><p>  fp=fope

134、n("employee1.txt","rb+");</p><p>  fwrite(em,sizeof(struct employee),1,fp);</p><p>  fclose(fp);</p><p><b>  }</b></p><p>  int read_fil

135、e(struct employee em[])</p><p><b>  {</b></p><p>  FILE *fp=NULL;</p><p><b>  int i=0;</b></p><p>  fp=fopen("employee1.txt","rb&

136、quot;);</p><p>  while(fread(&em[i],sizeof(struct employee),1,fp))</p><p><b>  i++;</b></p><p>  fclose(fp);</p><p><b>  return i;</b></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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論