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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)(論文)</b></p><p>  題 目 名 稱 職工信息管理系統(tǒng) </p><p>  課 程 名 稱 C語言程序課程設(shè)計(jì) </p><p>  2012年 5月 28 日</p><p><b>

2、  目 錄</b></p><p>  一、課程設(shè)計(jì)的目的與要求3</p><p><b>  1.1目的3</b></p><p><b>  1.2 要求3</b></p><p><b>  二、題目說明4</b></p><

3、p>  2.1程序開發(fā)背景4</p><p>  2.2開發(fā)工具介紹4</p><p><b>  三、總體設(shè)計(jì)5</b></p><p><b>  3.1總體思想5</b></p><p>  3.2軟件模塊結(jié)構(gòu)圖5</p><p>  3.3系統(tǒng)流程圖

4、6</p><p>  3.3.1主函數(shù)6</p><p>  3.3.2顯示函數(shù)7</p><p>  3.3.3錄入函數(shù)7</p><p>  3.3.4查詢函數(shù)8</p><p>  3.3.5刪除函數(shù)9</p><p>  3.3.6排序函數(shù)10</p><

5、;p>  四、詳細(xì)設(shè)計(jì)和系統(tǒng)實(shí)施11</p><p>  4.1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)11</p><p>  4.1.1定義數(shù)組11</p><p>  4.1.2定義結(jié)構(gòu)體11</p><p>  4.1.3函數(shù)功能描述11</p><p>  4.2界面設(shè)計(jì)12</p><p> 

6、 4.2.1用戶登錄界面12</p><p>  4.2.2 主界面13</p><p>  4.2.3顯示界面15</p><p>  4.2.4錄入界面16</p><p>  4.2.5信息查詢界面17</p><p>  4.2.6刪除界面19</p><p>  五、遇到的

7、問題及解決辦法20</p><p>  六、課程設(shè)計(jì)總結(jié)21</p><p><b>  七、參考文獻(xiàn)22</b></p><p>  附錄(源程序代碼)23</p><p>  一、課程設(shè)計(jì)的目的與要求</p><p><b>  1.1目的</b></p&g

8、t;<p>  1.掌握C語言編程的基礎(chǔ)知識(shí)較熟練的編寫C語言應(yīng)用程序。</p><p>  2.能夠利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的程序設(shè)計(jì)問題,增強(qiáng)獨(dú)立完成工作的能力。</p><p>  3.通過設(shè)計(jì)主要使學(xué)生有一個(gè)獨(dú)立編寫程序的過程,對(duì)理論學(xué)習(xí)及動(dòng)手能力都有一個(gè)很大的提高,進(jìn)一步培養(yǎng)學(xué)生熱愛專業(yè)的思想,同時(shí)對(duì)本專業(yè)綜合素質(zhì)的提高起一個(gè)積極的推動(dòng)作用。</p&

9、gt;<p><b>  1.2 要求 </b></p><p>  1.要求利用C語言面向過程的編程思想來完成系統(tǒng)的設(shè)計(jì); </p><p>  2.突出C語言的函數(shù)特征,以多個(gè)函數(shù)實(shí)現(xiàn)每一個(gè)子功能; </p><p>  3.畫出功能模塊圖; </p><p>  4. 進(jìn)行簡(jiǎn)單界面設(shè)計(jì),能夠?qū)崿F(xiàn)友好的

10、交互; </p><p>  5. 具有清晰的程序流程圖和數(shù)據(jù)結(jié)構(gòu)的詳細(xì)定義; </p><p>  6. 熟練掌握C語言對(duì)文件的各種操作。</p><p><b>  二、題目說明</b></p><p>  1.職工信息管理系統(tǒng)設(shè)計(jì),使之包括職工號(hào)、姓名、性別、年齡、學(xué)歷、工資、住址、電話等(職工號(hào)不重復(fù))。<

11、/p><p>  2.使這個(gè)管理系統(tǒng)具有以下功能:可以使系統(tǒng)以菜單方式工作、能夠錄入、查詢、刪除、排序職工的信息。</p><p>  3.可以按學(xué)歷、按工號(hào)查詢職工信息。使查詢職工信息變得方便、簡(jiǎn)單。</p><p><b>  2.1程序開發(fā)背景</b></p><p>  現(xiàn)在隨著社會(huì)的進(jìn)步和人民生活水平的逐漸提升,大

12、學(xué)生數(shù)量越來越多,相應(yīng)的所需要處理的的信息也越來越復(fù)雜,而憑借人力不可能準(zhǔn)確及時(shí)地處理所有信息,因此,編寫此程序是極為必要的。但由于各個(gè)學(xué)校的情況不同,所以難以編寫一個(gè)通用的成績(jī)管理程序。此程序是根據(jù)本校情況和老師指導(dǎo)所編寫,用以解決教師對(duì)學(xué)生成績(jī)的添加、修改、刪除以及學(xué)生對(duì)其成績(jī)的查詢等工作。</p><p><b>  2.2開發(fā)工具介紹</b></p><p>

13、  Visual C++ Visual C++是一個(gè)功能強(qiáng)大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出Visual C++1.0后,隨著其新版本的不斷問世,Visual C++已成為專業(yè)程序員進(jìn)行軟件開發(fā)的首選工具。 雖然微軟公司推出了Visual C++.NET(Visual C++7.0),但它的應(yīng)用的很大的局限性,只適用于Windows 2000,Windows XP和Windows NT4.0。所以實(shí)際中,更多

14、的是以Visual C++6.0為平臺(tái)。 Visual C++6.0不僅是一個(gè)C++編譯器,而且是一個(gè)基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境。 Visual C++6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lass Wizard等開發(fā)工具。 這些組件通過一個(gè)名為Developer Studio的組件集成為和諧的開發(fā)環(huán)境。 Visual C++它大概可以分成三個(gè)主要的部分: 1. Devel

15、oper Studio。2. MFC。3. Platform SDK。[1]</p><p><b>  三、總體設(shè)計(jì)</b></p><p><b>  3.1總體思想</b></p><p>  本系統(tǒng)主要的設(shè)計(jì)思想是實(shí)現(xiàn)對(duì)職工信息的錄入、刪除、排序、查詢等主要功能。職工信息以文件的形式存儲(chǔ)。系統(tǒng)的人機(jī)接口采用簡(jiǎn)單的字

16、符界面進(jìn)行交互。系統(tǒng)的設(shè)計(jì)方法是結(jié)構(gòu)化設(shè)計(jì)方法,采用C語言進(jìn)行開發(fā)。軟件開發(fā)平臺(tái)采用Visual C++6.0,主要考慮在VC中可以使用中文,用戶交互界面設(shè)計(jì)比較美觀清晰。</p><p>  3.2軟件模塊結(jié)構(gòu)圖</p><p>  根據(jù)需求分析結(jié)果,職工信息管理系統(tǒng)可以分為顯示員工資料、錄入員工資料、員工信息查詢、刪除員工信息、員工信息排序、退出信息系統(tǒng)。如圖3-1所示。</p&

17、gt;<p><b>  圖3-1</b></p><p><b>  3.3系統(tǒng)流程圖</b></p><p>  3.3.1主函數(shù) </p><p><b>  3.3.2顯示函數(shù)</b></p><p><b>  3.3.3錄入函數(shù)</

18、b></p><p><b>  3.3.4查詢函數(shù)</b></p><p><b>  3.3.5刪除函數(shù)</b></p><p><b>  3.3.6排序函數(shù)</b></p><p>  四、詳細(xì)設(shè)計(jì)和系統(tǒng)實(shí)施 </p><p><b&

19、gt;  4.1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p><b>  4.1.1定義數(shù)組</b></p><p>  定義一維數(shù)組struct worker work[50];用于定義員工的總?cè)藬?shù),當(dāng)員工總?cè)藬?shù)超過50后便不能再錄入員工資料。</p><p>  4.1.2定義結(jié)構(gòu)體</p><p>  結(jié)構(gòu)體s

20、truct worker用于存放存放員工的資料,包括員工的基本信息:工號(hào),姓名,年齡,學(xué)歷,工資,住址,電話號(hào)碼。</p><p>  struct worker</p><p><b>  {</b></p><p>  int num; 工號(hào)</p><p>  char name[15];

21、名字</p><p>  char xingbie; 性別</p><p>  int age; 年齡</p><p>  char exp[6]; 學(xué)歷</p><p>  int wage; 工資</p><p>  char address[20]; 住址<

22、;/p><p>  char tel[12]; 電話號(hào)碼</p><p><b>  };</b></p><p>  int count=0; 當(dāng)前工人個(gè)數(shù)</p><p>  int sort_type=0; 當(dāng)前排序類型</p><p>  4.1

23、.3函數(shù)功能描述</p><p>  函數(shù)主界面:void homepage();</p><p>  顯示職工成績(jī)信息:void display();</p><p>  錄入職工信息信息:void input();</p><p>  刪除職工信息:void del();</p><p>  查詢職工信息:void

24、 find();</p><p>  排序職工信息:void sort();</p><p>  用戶等待函數(shù):void waiting();</p><p>  退出系統(tǒng)函數(shù): void quit();</p><p><b>  4.2界面設(shè)計(jì)</b></p><p>  4.2.1用戶登錄界

25、面</p><p>  此模塊用于歡迎界面,同時(shí)要求用戶輸入用戶名和密碼,只有當(dāng)兩者都正確時(shí),才能進(jìn)入到系統(tǒng),當(dāng)有三次錯(cuò)誤,系統(tǒng)就會(huì)自動(dòng)退出,如圖4-1所示。</p><p><b>  圖4-1</b></p><p><b>  代碼實(shí)現(xiàn):</b></p><p>  void main()&l

26、t;/p><p>  { int i=0,k=0;</p><p>  char username[15],pwd[6];</p><p>  for(i=0;i<3;i++)</p><p><b>  {</b></p><p>  printf("\n請(qǐng)輸入用戶名:"

27、;);</p><p>  gets(username);</p><p>  printf("\n請(qǐng)輸入6位密碼:");</p><p>  gets(pwd);</p><p>  if((strcmp(username,"admin")==0)&&(strcmp(pwd,"

28、;123456")==0))</p><p><b>  {</b></p><p>  printf("\n您已經(jīng)成功登錄");</p><p><b>  k=1;</b></p><p>  for(i=0;i<20;i++)</p><

29、p><b>  {</b></p><p>  printf(".");</p><p>  Sleep(100);</p><p><b>  }</b></p><p>  system("cls");</p><p>  h

30、omepage();</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("\n用戶名或密碼無效 請(qǐng)重新輸入:\n");</p>

31、<p><b>  continue;</b></p><p><b>  }</b></p><p><b>  if(k==0)</b></p><p>  printf("\n連續(xù)輸入錯(cuò)誤3次 將退出程序\n");</p><p>  S

32、leep(2000);</p><p><b>  quit();</b></p><p><b>  }</b></p><p>  在此模塊中,if((strcmp(username,"Admin")==0)&&(strcmp(pwd,"123456")==0))

33、,用于檢測(cè)用戶名和密碼是否正確。</p><p>  for(i=0;i<3;i++)</p><p><b>  {</b></p><p>  printf("\n請(qǐng)輸入用戶名:");</p><p>  gets(username);</p><p>  print

34、f("\n請(qǐng)輸入6位密碼:");</p><p>  gets(pwd);</p><p>  此段代碼用于獲取賬戶名和密碼并計(jì)數(shù)是否超過三次,超過三次,則有Sleep(2000);實(shí)現(xiàn)退出程序。</p><p><b>  4.2.2 主界面</b></p><p>  此模塊主要實(shí)現(xiàn)進(jìn)入主界面和根

35、據(jù)用戶需要進(jìn)入相應(yīng)界面,包括顯示界面,錄入界面,刪除界面,排序界面并可以選擇退出,如圖4-2所示:</p><p><b>  圖4-2</b></p><p><b>  代碼實(shí)現(xiàn)</b></p><p>  void homepage()</p><p><b>  {</b&g

36、t;</p><p><b>  char n;</b></p><p>  while ((n!='1')&&(n!='2')&&(n!='3')&&(n!='4')&&(n!='5')&&(n!='

37、0'))</p><p><b>  {</b></p><p>  printf("\n請(qǐng)選擇:");</p><p>  fflush(stdin);</p><p>  scanf("%c",&n);</p><p><b>

38、  switch(n)</b></p><p><b>  {</b></p><p><b>  case '1':</b></p><p>  display();</p><p><b>  break;</b></p><

39、p><b>  case '2':</b></p><p>  if(count<50) input();</p><p><b>  else</b></p><p>  {printf("記錄數(shù)已滿\n");</p><p>  Sleep(200

40、0);</p><p>  system("cls");</p><p>  homepage();</p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  ……</b>&

41、lt;/p><p>  此模塊中,switch(n),case()用于判定主界面的選項(xiàng),根據(jù)選項(xiàng)進(jìn)行設(shè)置。其中if(count<50)用于限制錄入員工的人數(shù),超過50名員工就無法再進(jìn)行錄入,并且直接通過sleep(2000);homepage()回到主界面上。</p><p><b>  4.2.3顯示界面</b></p><p>  此模塊

42、是用來顯示員工的資料信息的,包括工號(hào),姓名,性別,年齡,學(xué)歷,工資,住址,電話等基本信息,一邊管理員能夠及時(shí)的掌握到所要員工的資料。如圖4-3所示。</p><p><b>  圖4-3</b></p><p><b>  代碼實(shí)現(xiàn)</b></p><p>  void display()</p><p

43、><b>  {</b></p><p><b>  int i;</b></p><p><b>  char c;</b></p><p>  printf("備注:學(xué)歷(1=中專,2=大專,3=本科,4=碩士,5=博士,6=其它):\n\n\n");</p>

44、<p>  switch(sort_type)</p><p><b>  {</b></p><p>  case 0: printf("\t\t未排序:\n\n"); break;</p><p>  case 1:printf("\t\t按工號(hào)排序:\n\n"); //sort();b

45、reak;</p><p>  case 2:printf("\t\t按工資排序:\n\n");//sort();break;</p><p><b>  }</b></p><p>  printf("\t工號(hào)\t姓名\t性別\t年齡\t學(xué)歷\t工資\t住址\t電話\n");</p>&l

46、t;p><b>  ……</b></p><p>  此模塊中有三種顯示方式,第一種是無序顯示,就是按照錄入時(shí)的順序顯示,,還有兩種分別是是按照工號(hào)和工資來排序。后兩種顯示方式主要是有switch(sort_type)語句來實(shí)現(xiàn)的,它相當(dāng)于一個(gè)開關(guān),與下面的case()相對(duì)應(yīng),相括號(hào)中的數(shù)字相對(duì)應(yīng)時(shí),就會(huì)執(zhí)行相應(yīng)的語句。</p><p><b>  4

47、.2.4錄入界面</b></p><p>  這個(gè)模塊主要是錄入員工資料,錄入的順序如圖所示,當(dāng)錄入的員工人數(shù)滿到50后,便不能再進(jìn)行錄入員工資料,此時(shí)已經(jīng)達(dá)到了錄入人數(shù)的最大值。如圖4-4所示。</p><p><b>  圖4-4</b></p><p><b>  代碼實(shí)現(xiàn)</b></p>

48、<p>  void input()</p><p>  { int i,numcheck;</p><p><b>  char c;</b></p><p><b>  do</b></p><p>  { printf("工號(hào):\n");</p>

49、<p>  scanf("%d",&work[count].num);</p><p>  numcheck=1;</p><p>  if(work[count].num<0)</p><p>  printf("請(qǐng)輸入正整數(shù):\n");</p><p>  for(i=0

50、;i<count;i++)</p><p><b>  {</b></p><p>  if(work[count].num==work[i].num)</p><p>  { numcheck=0;</p><p>  printf("工號(hào)重復(fù),重新輸入:\n");</p>&

51、lt;p><b>  }</b></p><p><b>  }</b></p><p><b>  ……</b></p><p><b>  do</b></p><p><b>  {</b></p><

52、p>  c=getchar();</p><p>  if(c=='y'||c=='Y')</p><p><b>  {</b></p><p><b>  count++;</b></p><p><b>  ……</b></p&

53、gt;<p>  此模塊中if(work[count].num==work[i].num);numcheck=0;很是重要,它判定錄入的工號(hào)是否重復(fù),重復(fù)的話會(huì)有重新輸入的提示,避免職工信息的重復(fù)。當(dāng)記錄數(shù)已滿時(shí),通過sleep(2000),使之回到主界面,進(jìn)行其他選項(xiàng)設(shè)置。</p><p>  4.2.5信息查詢界面</p><p>  此模塊用于職工信息的查詢,共分為兩種

54、查詢方式,一是按工號(hào)查詢,二是按學(xué)歷查詢。用if函數(shù)來實(shí)現(xiàn),可快速查詢到職工的姓名、工號(hào)、學(xué)歷、電話等詳細(xì)信息。如圖4-5所示。</p><p><b>  圖4-5</b></p><p><b>  代碼實(shí)現(xiàn)</b></p><p>  void find()</p><p><b>

55、  {</b></p><p><b>  int i,j;</b></p><p>  int choice=0;</p><p>  int find_num;</p><p>  char findedu[6];</p><p><b>  char c;</b&

56、gt;</p><p>  system("cls");</p><p>  printf("\t\t請(qǐng)選擇查詢功能:\n");</p><p>  printf("\t1.按工號(hào)查詢\n");</p><p>  printf("\t2.按學(xué)歷查詢\n");&l

57、t;/p><p>  printf("請(qǐng)輸入選擇:");</p><p><b>  do</b></p><p><b>  {</b></p><p>  scanf("%d",&choice);</p><p>  }whil

58、e ((choice!=1)&&(choice!=2));</p><p>  if (choice==1)</p><p><b>  {</b></p><p>  printf("\n\t請(qǐng)輸入要查詢的職工號(hào)\n");</p><p>  scanf("%d"

59、,&find_num);</p><p>  printf("\n正在查詢,請(qǐng)稍候");</p><p>  for(i=0;i<20;i++)</p><p><b>  {</b></p><p>  printf(".");</p><p&g

60、t;  Sleep(100);</p><p><b>  }</b></p><p>  system("cls");</p><p>  printf("\n\n按任意鍵返回\n");</p><p>  c=getch();</p><p>  sys

61、tem("cls");</p><p>  homepage();</p><p><b>  }</b></p><p>  此模塊中,通過while ((choice!=1)&&(choice!=2));這個(gè)選擇來實(shí)現(xiàn)查詢的方式,選擇“1”為工號(hào)查詢,選擇“2”則為按學(xué)歷查詢。 if (find_num=

62、=work[i].num)即為根據(jù)職工號(hào)進(jìn)行查詢,strcmp(findedu,work[i].exp)根據(jù)學(xué)歷進(jìn)行職工信息查詢。</p><p><b>  4.2.6刪除界面</b></p><p>  此模塊用于刪除員工信息,對(duì)于已經(jīng)無用的員工信息進(jìn)行刪除,采用按工號(hào)刪除的模式。如圖4-6所示。</p><p><b>  圖4

63、-6</b></p><p><b>  代碼實(shí)現(xiàn)</b></p><p>  void del()</p><p><b>  {</b></p><p>  int i,j,del_num,match=0;</p><p><b>  char c;

64、</b></p><p>  system("cls");</p><p>  printf("請(qǐng)輸入要?jiǎng)h除的員工工號(hào):\n");</p><p>  scanf("%d",&del_num);</p><p>  waiting();</p>&l

65、t;p>  for(i=0;i<count;i++)</p><p><b>  {</b></p><p>  if(work[i].num==del_num)</p><p><b>  {</b></p><p><b>  match=1;</b></

66、p><p>  for(j=i;j<count;j++)</p><p>  work[j]=work[j+1];</p><p><b>  count--;</b></p><p><b>  }</b></p><p><b>  }</b>&l

67、t;/p><p>  此模塊中,首先還是要先進(jìn)職工信息查詢模塊,然后再根據(jù)查詢到的職工號(hào)進(jìn)行刪除。printf("%d",&del_num);即為顯示要?jiǎng)h除的職工號(hào),if(c=='y'||c=='Y')則是確定是否刪除選定的職工信息。最后通過homepage()回到主界面。 五、遇到的問題及解決辦法 </p&g

68、t;<p>  1.在一些字符或字符串的定義上出項(xiàng)錯(cuò)誤,如定義職工電話號(hào)碼的時(shí)候,用成了float類型,而正確的應(yīng)該是char類型。</p><p>  2.在進(jìn)行模塊函數(shù)設(shè)計(jì)時(shí),find()函數(shù)功能沒有設(shè)計(jì)好,導(dǎo)致部分函數(shù)代碼過長(zhǎng),可讀性降低,以至于再次重寫里面的一小部分代碼,浪費(fèi)了大量的時(shí)間。</p><p>  3.在整個(gè)程序設(shè)計(jì)編寫完成后,編譯時(shí)出現(xiàn)了大量的錯(cuò)誤,而且

69、里面大部分是因?yàn)榇笮憜栴},還有void拼錯(cuò)拼成viod,還有“;”沒有寫,后來經(jīng)過程序錯(cuò)誤查詢,一一更改了過來。</p><p>  4. 在編寫代碼時(shí)沒有添加注解,降低了在調(diào)試測(cè)試時(shí)程序的可讀性,同時(shí)也降低了與其他同學(xué)的交流,雖然在測(cè)試過程中我把全部的注解加上, 但也延長(zhǎng)了整個(gè)程序的開發(fā)時(shí)間。</p><p><b>  六、課程設(shè)計(jì)總結(jié)</b></p>

70、;<p>  通過此次學(xué)生成績(jī)信息管理系統(tǒng),讓我熟悉了軟件開發(fā)的流程,相信在以后的工作中我能在最短的時(shí)間內(nèi)投入到大的程序開發(fā)項(xiàng)目中。</p><p>  在進(jìn)行課程設(shè)計(jì)的前兩天,不知道從何入手,很是不解,不知道我們究竟要做什么。后來通過上網(wǎng)找資料,才發(fā)現(xiàn)有好多做法,根本就看不完,此時(shí)才真正意識(shí)到差距所在。于是,通過借鑒網(wǎng)絡(luò)作品,才發(fā)現(xiàn)作品并不是一味的照搬照抄才實(shí)用,集眾家之所成,不斷完善,才能造出屬

71、于自己的作品,并且實(shí)用。</p><p>  在整個(gè)課程設(shè)計(jì)中,我認(rèn)為最重要的就是耐心和細(xì)心。細(xì)心,就是在編寫過程中注意拼寫,仔細(xì)編寫程序;耐心,就是程序編譯中出現(xiàn)很多錯(cuò)誤的時(shí)候能夠耐心去修改,只有這樣,才能很好的完成程序。</p><p>  雖然在整個(gè)過程中出現(xiàn)了不少錯(cuò)誤,但最終還是圓滿完成了,此次程序設(shè)計(jì)的經(jīng)歷讓我學(xué)到了太多,同時(shí)也讓我理解到參加的項(xiàng)目越大越能學(xué)到知識(shí),因此以后我會(huì)積

72、極主動(dòng)的去參加一些項(xiàng)目,以此來提高自己的技能和編程經(jīng)驗(yàn)。</p><p><b>  七、參考文獻(xiàn)</b></p><p>  【1】.《實(shí)用c語言簡(jiǎn)明教程》李金祥、顧小晶主編</p><p>  【2】.《c++語言程序設(shè)計(jì)》,劉振安,劉燕君,孫忱,機(jī)械工業(yè)出版社;</p><p>  【3】.《C語言程序設(shè)計(jì)一體化案

73、例教程》,劉維富,清華大學(xué)出版社;</p><p>  【4】.《C語言課程設(shè)計(jì)》,黃明,梁旭,萬洪莉,電子工業(yè)出版。</p><p><b>  附錄(源程序代碼)</b></p><p>  #include<stdio.h></p><p>  #include<string.h></

74、p><p>  #include<windows.h></p><p>  #include<conio.h></p><p>  void homepage(); //主界面</p><p>  void display(); //顯示全部信息</p><p>  v

75、oid input(); //錄入 插入</p><p>  void find();</p><p>  void del(); //刪除記錄</p><p>  void sort(); //排序</p><p>  void waiting(); //等待

76、界面</p><p>  void quit(); //退出界面</p><p>  struct worker</p><p><b>  {</b></p><p>  int num; //工號(hào)</p><p>  char name[15]; //名字&

77、lt;/p><p>  char xingbie; //性別</p><p>  int age; //年齡</p><p>  char exp[6]; //學(xué)歷</p><p>  int wage; //工資</p><p>  char address[20];//住址</p&

78、gt;<p>  char tel[12]; //電話號(hào)碼</p><p><b>  };</b></p><p>  int count=0; //當(dāng)前工人個(gè)數(shù)</p><p>  int sort_type=0; //當(dāng)前排序類型</p><p>  stru

79、ct worker work[50];</p><p>  void main()</p><p>  { int i=0,k=0;</p><p>  char username[15],pwd[6];</p><p>  system("color 3f");</p><p>  p

80、rintf("\n\n");</p><p>  printf(" \t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");</p><p>  printf(" \t┃**********************************************************┃\n");</

81、p><p>  printf(" \t┃***┏━━━━━━━━━━━━━━━━━━━━━━━━┓***┃\n");</p><p>  printf(" \t┃***┃************************************************┃***┃\n");</p><p>  printf(&qu

82、ot; \t┃***┃*** ****┃***┃\n");</p><p>  printf(" \t┃***┃*** 歡迎使用職工信息管理系統(tǒng) ****┃***┃\n");</p><p>  printf(" \t┃***┃***

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

84、 郝佳麗 ****┃***┃\n");</p><p>  printf(" \t┃***┃*** ****┃***┃\n");</p><p>  printf(" \t┃***┃***

85、 2011.06.20 ****┃***┃\n");</p><p>  printf(" \t┃***┃*** ****┃***┃\n");</p><p>  printf(" \t┃***┃*******************

86、*****************************┃***┃\n");</p><p>  printf(" \t┃***┗━━━━━━━━━━━━━━━━━━━━━━━━┛***┃\n");</p><p>  printf(" \t┃***************************************************

87、*******┃\n");</p><p>  printf(" \t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"); </p><p>  for(i=0;i<3;i++)</p><p><b>  {</b></p><p>  printf(&q

88、uot;\n請(qǐng)輸入用戶名:");</p><p>  gets(username);</p><p>  printf("\n請(qǐng)輸入6位密碼:");</p><p>  gets(pwd);</p><p>  if((strcmp(username,"admin")==0)&&

89、;(strcmp(pwd,"123456")==0))</p><p><b>  {</b></p><p>  printf("\n您已經(jīng)成功登錄");</p><p><b>  k=1;</b></p><p>  for(i=0;i<20;i+

90、+)</p><p><b>  {</b></p><p>  printf(".");</p><p>  Sleep(100);</p><p><b>  }</b></p><p>  system("cls");</p

91、><p>  homepage();</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("\n用戶名或密碼無效 請(qǐng)重新輸入:\n

92、");</p><p><b>  continue;</b></p><p><b>  }</b></p><p><b>  if(k==0)</b></p><p>  printf("\n連續(xù)輸入錯(cuò)誤3次 將退出程序\n");</p

93、><p>  Sleep(2000);</p><p><b>  quit();</b></p><p><b>  }</b></p><p>  void homepage()</p><p><b>  {</b></p><p&

94、gt;<b>  char n;</b></p><p>  printf("\n\n");</p><p>  printf("\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");</p><p>  printf("\t┃**********************

95、**************************************┃\n");</p><p>  printf("\t┃* * *┃\n");</p><p>  printf("\t┃* 1.顯示員工資料

96、 * 2.錄入員工資料 *┃\n");</p><p>  printf("\t┃* * *┃\n");</p><p>  printf("\t┃**********************************

97、**************************┃\n");</p><p>  printf("\t┃* * *┃\n");</p><p>  printf("\t┃* 3.員工信息查詢 * 4.刪

98、除員工記錄 *┃\n");</p><p>  printf("\t┃* * *┃\n");</p><p>  printf("\t┃**********************************************

99、**************┃\n");</p><p>  printf("\t┃* * *┃\n");</p><p>  printf("\t┃* 5.員工信息排序 * 0.退出信息系統(tǒng)

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

101、**┃\n");</p><p>  printf("\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");</p><p>  while ((n!='1')&&(n!='2')&&(n!='3')&&(n!='4')&am

102、p;&(n!='5')&&(n!='0'))</p><p><b>  {</b></p><p>  printf("\n請(qǐng)選擇:");</p><p>  fflush(stdin);</p><p>  scanf("%c&qu

103、ot;,&n);</p><p><b>  switch(n)</b></p><p><b>  {</b></p><p><b>  case '1':</b></p><p>  display();</p><p>&

104、lt;b>  break;</b></p><p><b>  case '2':</b></p><p>  if(count<50)</p><p><b>  input();</b></p><p><b>  else</b>&

105、lt;/p><p><b>  {</b></p><p>  printf("記錄數(shù)已滿\n");</p><p>  Sleep(2000);</p><p>  system("cls");</p><p>  homepage();</p>

106、<p><b>  }</b></p><p><b>  break;</b></p><p><b>  case '3':</b></p><p><b>  find();</b></p><p><b>  

107、break;</b></p><p><b>  case '4':</b></p><p><b>  del();</b></p><p><b>  break;</b></p><p><b>  case '5':

108、</b></p><p><b>  sort();</b></p><p><b>  break;</b></p><p><b>  case '0':</b></p><p><b>  quit();</b></

109、p><p><b>  break;</b></p><p><b>  default:</b></p><p>  printf("\n選項(xiàng)錯(cuò)誤\n");</p><p><b>  }</b></p><p><b>  

110、}</b></p><p><b>  }</b></p><p>  void display()</p><p><b>  {</b></p><p><b>  int i;</b></p><p><b>  char c

111、;</b></p><p>  system("cls");</p><p>  printf("備注:學(xué)歷(1=中專,2=大專,3=本科,4=碩士,5=博士,6=其它):\n\n\n");</p><p>  switch(sort_type)</p><p><b>  {&l

112、t;/b></p><p><b>  case 0:</b></p><p>  printf("\t\t未排序:\n\n");</p><p><b>  break;</b></p><p><b>  case 1:</b></p>

113、<p>  printf("\t\t按工號(hào)排序:\n\n");</p><p><b>  //sort();</b></p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  p

114、rintf("\t\t按工資排序:\n\n");</p><p><b>  //sort();</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  printf("\t工號(hào)\t姓名

115、\t性別\t年齡\t學(xué)歷\t工資\t住址\t電話\n");</p><p>  if (count==0) printf("\n\t無員工信息!\n");</p><p>  for(i=0;i<count;i++)</p><p><b>  {</b></p><p>  prin

116、tf("\t%d\t%s\t%c\t%d\t%s\t%d\t%s\t%s\n",work[i].num,work[i].name,work[i].xingbie,work[i].age,work[i].exp,work[i].wage,work[i].address,work[i].tel);</p><p><b>  }</b></p><p>

117、;  printf("\n\n按任意鍵返回\n");</p><p>  c=getch();</p><p>  system("cls");</p><p>  homepage();</p><p><b>  }</b></p><p>  void

118、 input()</p><p><b>  {</b></p><p>  int i,numcheck;</p><p><b>  char c;</b></p><p>  system ("cls");</p><p><b>  do

119、</b></p><p><b>  {</b></p><p>  printf("工號(hào):\n");</p><p>  scanf("%d",&work[count].num);</p><p>  numcheck=1;</p><p&

120、gt;  if(work[count].num<0)</p><p>  printf("請(qǐng)輸入正整數(shù):\n");</p><p>  for(i=0;i<count;i++)</p><p><b>  {</b></p><p>  if(work[count].num==work[i

121、].num)</p><p><b>  {</b></p><p>  numcheck=0;</p><p>  printf("工號(hào)重復(fù),重新輸入:\n");</p><p><b>  }</b></p><p><b>  }</

122、b></p><p>  }while(!numcheck);{</p><p>  printf("姓名:");</p><p>  fflush(stdin);</p><p>  scanf("%s",work[count].name);</p><p>  fflu

123、sh(stdin);</p><p>  printf("性別(F:M):");</p><p>  scanf("%c",&work[count].xingbie);</p><p>  printf("年齡:");</p><p>  scanf("%d&quo

124、t;,&work[count].age);</p><p>  fflush(stdin);</p><p>  printf("學(xué)歷(1=中專,2=大專,3=本科,4=碩士,5=博士,6=其它):\n");</p><p>  scanf("%s",work[count].exp);</p><p

125、>  printf("工資:");</p><p>  scanf("%d",&work[count].wage);</p><p>  printf("住址:");</p><p>  scanf("%s",work[count].address);</p>

126、<p>  printf("電話:");</p><p>  scanf("%s",work[count].tel);</p><p><b>  }</b></p><p>  printf("\n是否繼續(xù)輸入(y/n):\n");</p><p&g

127、t;<b>  do</b></p><p><b>  {</b></p><p>  c=getchar();</p><p>  if(c=='y'||c=='Y')</p><p><b>  {</b></p><p

128、><b>  count++;</b></p><p>  if(count<50)</p><p><b>  input();</b></p><p><b>  else</b></p><p><b>  {</b></p>

129、<p>  printf("記錄數(shù)已滿\n");</p><p>  Sleep(2000);</p><p>  system("cls");</p><p>  homepage();</p><p><b>  }</b></p><p>

130、;<b>  }</b></p><p>  else if(c=='n'||c=='N')</p><p><b>  {</b></p><p><b>  count++;</b></p><p>  system("cls&qu

131、ot;);</p><p>  homepage();</p><p><b>  }</b></p><p><b>  else;</b></p><p>  }while((c!='y')&&(c!='n')&&(c!='

132、Y')&&(c!='N'));</p><p><b>  }</b></p><p>  void del()</p><p><b>  {</b></p><p>  int i,j,del_num,match=0;</p><p&g

133、t;<b>  char c;</b></p><p>  system("cls");</p><p>  printf("請(qǐng)輸入要?jiǎng)h除的員工工號(hào):\n");</p><p>  scanf("%d",&del_num);</p><p>  wait

134、ing();</p><p>  for(i=0;i<count;i++)</p><p><b>  {</b></p><p>  if(work[i].num==del_num)</p><p><b>  {</b></p><p><b>  mat

135、ch=1;</b></p><p>  for(j=i;j<count;j++)</p><p>  work[j]=work[j+1];</p><p><b>  count--;</b></p><p><b>  }</b></p><p><

136、b>  }</b></p><p>  if(!match) printf("\n沒有要找的工號(hào).\n");</p><p>  printf("\n是否繼續(xù)刪除?(y/n)");</p><p>  fflush(stdin);</p><p><b>  do</b

137、></p><p><b>  {</b></p><p>  c=getchar();</p><p>  if(c=='y'||c=='Y')</p><p><b>  {</b></p><p><b>  del();

138、</b></p><p><b>  }</b></p><p>  else if(c=='n'||c=='N')</p><p><b>  {</b></p><p>  system("cls");</p><

139、;p>  homepage();</p><p><b>  }</b></p><p>  }while((c!='y')&&(c!='n'));</p><p><b>  }</b></p><p>  void sort()</p&

140、gt;<p><b>  {</b></p><p><b>  int i,j;</b></p><p>  int choice=0;</p><p>  struct worker temp;</p><p>  system("cls");</p>

141、;<p>  printf("\t\t請(qǐng)選擇排序功能:\n");</p><p>  printf("\t1.按工號(hào)排序\n");</p><p>  printf("\t2.按工資排序\n");</p><p>  printf("請(qǐng)輸入選擇:");</p>

142、<p><b>  do</b></p><p><b>  {</b></p><p>  scanf("%d",&choice);</p><p>  }while((choice!=1)&&(choice!=2));</p><p>  

143、switch(choice)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p><b>  {</b></p><p>  for(i=0;i<count-1;i++)</p><p>&l

144、t;b>  {</b></p><p>  for(j=0;j<count-i-1;j++)</p><p><b>  {</b></p><p>  if(work[j].num>work[j+1].num)</p><p><b>  {</b></p>

145、;<p>  temp=work[j];</p><p>  work[j]=work[j+1];</p><p>  work[j+1]=temp;</p><p><b>  }</b></p><p><b>  }</b></p><p><b&g

146、t;  }</b></p><p>  sort_type=1;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case 2:</b></p><p><b>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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)論