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

下載本文檔

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

文檔簡介

1、<p><b>  數(shù)據(jù)結構課程設計</b></p><p><b>  員工管理系統(tǒng)</b></p><p>  目 錄</p><p>  1、 課程設計的目的:1</p><p>  2、 需求分析:1</p><p><b>  

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

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

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

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

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

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

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

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

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

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

12、數(shù)表:</p><p><b> ?。?)結構體:</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(); //按工號查詢</p><p>  void num_del(); //按工號刪除</p><p>  void sort(); //排序</p

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

17、  struct employee em[300]; //這個數(shù)組用來保存所有的職工信息 和文件里面的一致</p><p>  實現(xiàn)主程序和各模塊的調(diào)用關系:</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=========>提示:文件不存在,是否要創(chuàng)建一個?(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); //關閉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====>請選擇:");</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)_結構體數(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>  各個操作的算法實現(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; //臨時保存信息</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> ?。?)按員工學號查找</p><p>  void num_query()//按工號查找 </p><p><b>  { </b></p><p>  char num[20];</p><p><b>  i

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

45、別\t出生年月\t電話\t學歷\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=====程序在運行時已自動保存.....\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> ?。?)顯示所有記錄</b></p><p>  void disp ()//顯示所有紀錄 </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() //刪除紀錄</p><p>  { //輸入要刪除的姓名</p><p><b>  ……;</b&

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

52、 ……;</b></p><p><b>  }</b></p><p>  保存到磁盤文件(實時寫入文件)</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、參考文獻:</b></p><p>  [1] 嚴蔚敏,吳偉民 編著. 數(shù)據(jù)結構(C語言版)——北京: 清華

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

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

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

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

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

59、b></p><p>  //C語言課程設計 職工信息管理系統(tǒng)-結構體數(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(); //按工號查詢</p>

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

64、id disp(); //顯示職工信息</p><p>  void fh(); //返回主菜單</p><p>  struct employee em[300]; //這個數(shù)組用來保存所有的職工信息 和文件里面的一致</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)_結構體數(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=========>提示:文件不存在,是否要創(chuàng)建一個?(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); //關閉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====>請選擇:");</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()//按工號查找 </p><p><b>  { </b></p><p>  char num[20];</p><p><b>  int i=0;</b></p><p>  printf("請輸入要查找職工工號:");</p

88、><p>  scanf("%s",&num);</p><p>  system("cls");</p><p>  printf("\t工號\t姓名\t性別\t出生年月\t電話\t學歷\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=====程序在運行時已自動保存.....\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 改變標記</p><p>

94、;  int index=0;</p><p>  printf("請輸入要修改的職工工號:");</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) //比較輸入工號和數(shù)組中已有工號</p><p><b>  {</b></p><p>  changeIndex=i; //保存要修改的人的下標</p><p><b>  break;</b></p><p&g

96、t;<b>  }</b></p><p><b>  }</b></p><p>  printf("\t工號\t姓名\t性別\t出生年月\t電話\t學歷\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("請重新輸入該職工信息");</p><p>  

98、printf("工號:");</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("學歷:");</p><p>  scanf("%s",&em[changeInd

101、ex].xl);</p><p>  printf("住址:");</p><p>  scanf("%s",&em[changeIndex].zz);</p><p>  //信息修改后重新更新文件里面的數(shù)據(jù) 以保持數(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個字節(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工號\t姓名\t性別\t出生年月\t電話\t學歷\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 改變標記</p><p>  int in

115、dex=0;</p><p>  printf("請輸入要刪除的人員工號:");</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("找到要刪除的人員信息如下\n");</p><p>  printf("-----------------------------------------------------

117、----\n");</p><p>  printf("\t工號\t姓名\t性別\t出生年月\t電話\t學歷\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("你確定要刪除該人員信息嗎?(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警告:沒有你要刪除的相關數(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工號\t姓名\t性別\t出生年月\t電話\t學歷\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; //臨時保存信息</p><p>  printf("請輸入要增加職工信息的個數(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個職工信息\n",i+1);</p><p>  printf("工號:")

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

評論

0/150

提交評論