c語(yǔ)言課程設(shè)計(jì)儀器儀表管理系統(tǒng)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩20頁(yè)未讀 繼續(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>  C</b></p><p><b>  學(xué)院: 自動(dòng)化學(xué)院</b></p><p>  專業(yè): 自動(dòng)化 </p><p>  班級(jí): XXX </p><p>  姓名: XXX </p><p>  學(xué)號(hào): 231XX

2、X-XX </p><p><b>  目錄</b></p><p>  題目概述,總體設(shè)計(jì)--------------------------------第 1頁(yè)</p><p>  詳細(xì)設(shè)計(jì),菜單函數(shù)--------------------------------第 2頁(yè)</p><p>  功能模塊:錄入模塊---

3、-----------------------------第 3頁(yè)</p><p>  狀態(tài)改變模塊--------------------------------------第 4頁(yè)</p><p>  狀態(tài)改變,借出歸還--------------------------------第 6頁(yè)</p><p>  狀態(tài)改變,維修------------------

4、------------------第 7頁(yè)</p><p>  狀態(tài)改變,刪除------------------------------------第 8頁(yè)</p><p>  狀態(tài)查詢模塊--------------------------------------第 9頁(yè)</p><p>  按名稱查詢-----------------------------

5、-----------第11頁(yè)</p><p>  10.按時(shí)間點(diǎn)/段查詢----------------------------------第12頁(yè)</p><p>  11.公共函數(shù)-----------------------------------------第13頁(yè)</p><p>  12.上機(jī)實(shí)踐----------------------------

6、-------------第14頁(yè)</p><p>  13.程序的亮點(diǎn)與不足---------------------------------第17頁(yè)</p><p>  14.總結(jié)---------------------------------------------第18頁(yè)</p><p>  題目:儀器儀表管理系統(tǒng)[要求]系統(tǒng)功能的基本要求:(1)&

7、#160;新的儀器儀表信息錄入。(2) 在借出、歸還、維修時(shí)對(duì)儀器儀表信息的修改。(3) 對(duì)報(bào)廢儀器儀表信息的刪除。(4) 按照一定的條件查詢、統(tǒng)計(jì)符合條件的儀器儀表信息; 查詢功能至少應(yīng)包括儀器儀表基本信息的查詢、按時(shí)間段(如在2004 年1月1日到2004 年10 月10 日購(gòu)買、借出、維修的儀器儀表等) 查詢、按時(shí)間點(diǎn)(借入時(shí)間、借出

8、時(shí)間、歸還時(shí)間) 查詢等,統(tǒng)計(jì)功能至少包括按時(shí)間段統(tǒng)計(jì)、按儀器儀表的基本信息統(tǒng)計(jì)等。(5) 對(duì)查詢、統(tǒng)計(jì)的結(jié)果打印輸出。</p><p><b>  [提示]</b></p><p>  數(shù)據(jù)結(jié)構(gòu)采用結(jié)構(gòu)體。儀器儀表信息包括儀器儀表名、儀器儀表編號(hào)、購(gòu)買時(shí)間、借入時(shí)間、借出時(shí)間、歸還時(shí)間、維修時(shí)間、狀態(tài)信息(0 代表可借出,1代表可借入,2 代表

9、正在維修) 等。</p><p><b>  需求分析:</b></p><p>  根據(jù)題目要求,由于儀器儀表信息是存放在文件,所以應(yīng)提供文件的輸入、輸出等操作; 在程序中要瀏覽儀器儀表的信息。應(yīng)提供錄入、顯示、查找,修改等操作; 另外還應(yīng)提供鍵盤式選擇菜單實(shí)現(xiàn)功能選擇。</p><p><b>  總體設(shè)計(jì):</b>&

10、lt;/p><p>  根據(jù)上面的需求分析,可以將這個(gè)系統(tǒng)的設(shè)計(jì)分為三個(gè)大的模塊: 儀表</p><p>  儀器錄入、儀表儀器修改(刪除)、儀表儀器查詢</p><p><b>  詳細(xì)設(shè)計(jì) </b></p><p><b> ?。ㄒ唬?主函數(shù)</b></p><p>  主函

11、數(shù)一般設(shè)計(jì)得比較簡(jiǎn)潔,只提供輸入、處理和輸出部分的函數(shù)調(diào)用。其中各功能模塊用菜單方式選擇。其中流程圖如下:</p><p>  [程序]其中為主函數(shù)設(shè)定了一個(gè)菜單函數(shù),方便用于選擇其他模塊函數(shù)。用getch0;獲得所按下的鍵值,用函數(shù)內(nèi)的局部靜態(tài)變量?jī)?chǔ)存鍵值對(duì)應(yīng)的其他功能函數(shù)。</p><p>  void menu(char c) /*菜單函數(shù)*/</p>&

12、lt;p>  {static int n=0; //內(nèi)部變量</p><p>  if(c=='s'||c=='S') n++;</p><p>  if(c=='w'||c=='W') n--;</p><p>  if(n==5) n=1;</p><p>

13、;  if(n==0) n=4;</p><p><b>  if(c==13)</b></p><p>  {switch(n)</p><p>  {case 1:if(insert ()==0) insert (); break; //錄入</p><p>  case 2:change();break;

14、 //修改</p><p>  case 3:serch(); break; //查詢</p><p>  case 4:exit(0); //退出程序 };</p><p><b>  }</b></p

15、><p>  system("cls");</p><p>  printf("\n\n");</p><p>  printf(" 儀器儀表管理系統(tǒng) \n");</p><p>  printf("\n");&l

16、t;/p><p>  printf(" 姓名:xxx ");</p><p>  printf(" 班級(jí)231xxx");</p><p>  printf("\n\n");<

17、/p><p><b>  if(n=1)</b></p><p>  printf(" -->儀器儀表錄入<-- \n");</p><p><b>  else</b></p><p>  printf(" 儀器儀表錄入 \n&qu

18、ot;);</p><p>  printf("\n");</p><p><b>  if(n=2)</b></p><p>  printf(" -->儀器儀表借還/刪除<-- \n");</p><p><b>  else</b>

19、;</p><p>  printf(" 儀器儀表借還/刪除 \n");</p><p>  printf("\n");</p><p><b>  if(n=3)</b></p><p>  printf(" -->儀器儀表查詢 <--

20、\n");</p><p><b>  else</b></p><p>  printf(" 儀器儀表查詢 \n");</p><p>  printf("\n");</p><p><b>  if(n=4)</b></p>

21、;<p>  printf(" -->退出程序<-- \n");</p><p><b>  else</b></p><p>  printf(" 退出程序 \n");</p><p>  printf("\n");</p&

22、gt;<p><b>  //主函數(shù)</b></p><p>  void main()</p><p>  {system("cls");</p><p>  printf("\n\n\n\n");</p><p>  printf("

23、 -->儀器儀表管理系統(tǒng)<-- \n");</p><p>  printf("\n");</p><p>  printf(" -->按W向上選擇<-- \n");</p><p>  printf(&

24、quot; -->按S向下選擇<-- \n");</p><p>  printf(" -->按回車確定選擇<-- \n");</p><p>  printf("\n");</p><p&

25、gt;  printf("\n");</p><p>  printf(" -->按任意鍵進(jìn)入系統(tǒng)<-- \n");</p><p>  printf(" <-----------------> \n");</

26、p><p><b>  getch();</b></p><p>  menu('s');</p><p>  while(1) menu(getch()); }</p><p> ?。ǘ└鞴δ苣K設(shè)計(jì)[數(shù)據(jù)結(jié)構(gòu)]數(shù)據(jù)結(jié)構(gòu)選用結(jié)構(gòu)體數(shù)組。這里只簡(jiǎn)單的給儀器儀表兩個(gè)部分,一個(gè)為儀器儀表的名稱、字符串函數(shù),

27、一個(gè)為儀器儀表的各個(gè)時(shí)間點(diǎn)的狀態(tài)(定義一個(gè)time的三維數(shù)組,數(shù)組下標(biāo)表示年月日,數(shù)組的值表示儀器的狀態(tài))。</p><p>  #define buy 1 //購(gòu)買 </p><p>  #define lean 2 //借出 </p><p>  #define repair 3 //維修 <

28、/p><p>  #define inlib 4 //空閑 </p><p>  #define year_max 3000</p><p>  #define month_max 12</p><p>  #define day_max 31</p><p>  #define N 100 //預(yù)

29、設(shè)儀器最大數(shù)</p><p>  int n;//儀器數(shù) </p><p>  struct equment </p><p>  {char name[100];int time [year_max+1][month_max+1][day_max+1];}equ[N];</p><p><b> 

30、 錄入模塊</b></p><p>  通過strcpy函數(shù)實(shí)現(xiàn)儀器名稱的錄入,state函數(shù)實(shí)現(xiàn)儀器狀態(tài)的更改。</p><p>  【程序】void insert()</p><p>  {int i,j_year,j_month,j_day,year,month,day;</p><p>  char equ_input

31、[100];</p><p>  system("cls");</p><p>  printf("\n\n\n\n"); </p><p>  printf(&quo

32、t; -->儀器儀表管理系統(tǒng)<-- \n");</p><p>  printf("\n\n\n\n");</p><p>  printf(" 請(qǐng)輸入儀器的名稱:");</p><p>  scanf(&qu

33、ot;%s",&equ_input);</p><p>  if(presence(equ_input)!=0)</p><p><b>  {</b></p><p>  printf("\n");</p><p>  printf("\n");</p&g

34、t;<p>  printf(" 對(duì)不起!此儀器已購(gòu)買\n ");</p><p>  printf("\n");</p><p>  printf(" 錄入失敗,請(qǐng)按任意鍵返回主菜單\n" );</p><p>  p

35、rintf("\n");</p><p>  printf(" <-----------------> \n");</p><p><b>  getch();</b></p><p><b>  } </b></p>

36、<p><b>  else</b></p><p>  {int state (int year,int month,int day,int n,int s);</p><p><b>  n++;</b></p><p>  strcpy(equ[n].name,equ_input); //將equ

37、_input復(fù)制給equ[equ_num].name </p><p>  printf("\n");</p><p>  printf(" 請(qǐng)輸入購(gòu)買時(shí)間(年/月/日)(例如1998/2/15):");</p><p>  scanf("%d/%d/%d",&

38、;year,&month,&day);</p><p>  state(year,month,day,n,inlib); // equ[n] 將當(dāng)天狀態(tài)改為空閑 </p><p>  equ[n].time[year][month][day]=buy; //equ[n] 將該天以后狀態(tài)改為購(gòu)入 </p><p>  //printf(&qu

39、ot;%d",equ[n].time[year][month][day]);</p><p>  printf("\n");</p><p>  printf("\n");</p><p>  printf(" 錄入成功,請(qǐng)按任意鍵返回主菜單\n");</p

40、><p>  printf("\n");</p><p>  printf("\n");</p><p>  printf(" <-----------------------------> \n");</p><p>  getc

41、h(); } } </p><p><b>  狀態(tài)改變模塊</b></p><p>  該模塊包括對(duì)儀器儀表的借出、歸還、維修、報(bào)廢等小模塊的操作,仍然用getch();函數(shù)獲取鍵值來做上下選擇。本函數(shù)只考慮對(duì)一種儀器儀表的修改,故先要輸入該儀器儀表的名稱并查找是否已經(jīng)購(gòu)買。</p><p><b>  【程序】</b

42、></p><p>  int change()</p><p>  {char equ_input[100],c='s';</p><p>  int j,x=0;</p><p>  system("cls");</p><p>  printf("\n\n\n

43、\n");</p><p>  printf(" <----儀器儀表管理系統(tǒng)--->\n");</p><p>  printf("\n\n");</p><p>  printf(" 請(qǐng)輸入儀器名稱: ");</p><p>  sc

44、anf("%s",&equ_input);</p><p>  j=presence(equ_input);</p><p>  //printf("\n%d",j); system("pause");</p><p><b>  if(j!=0)</b></p&

45、gt;<p>  {while(1)</p><p>  {if(c=='s'||c=='S') x++;</p><p>  if(c=='w'||c=='W') x--;</p><p>  if(x==6) x=1;</p><p>  if(x==

46、0) x=5;</p><p>  if(c==13) </p><p>  {switch(x)</p><p>  {case 1:mylean(j);break;</p><p>  case 2:myback(j);break;</p><p>  case 3:myrepair(j);break;&l

47、t;/p><p>  case 4:mydel(j);break;</p><p>  case 5:return(1);</p><p><b>  }</b></p><p><b>  }</b></p><p>  system("cls");<

48、/p><p>  printf("\n\n\n\n");</p><p>  printf(" <----儀器儀表管理系統(tǒng)--->\n");</p><p>  printf("\n\n");</p><p>  /*printf(" 請(qǐng)輸

49、入儀器名稱: ");scanf("%s",equ_input); printf("\n\n");*/</p><p><b>  if(x==1)</b></p><p>  printf(" --->儀器儀表借出<------\n");</p>

50、<p><b>  else</b></p><p>  printf(" 儀器儀表借出 \n");</p><p>  printf("\n\n");</p><p><b>  if(x==2)</b></p><p

51、>  printf(" --->儀器儀表歸還<------\n");</p><p><b>  else</b></p><p>  printf(" 儀器儀表歸還 \n");</p><p>  printf("\n\n&

52、quot;);</p><p><b>  if(x==3)</b></p><p>  printf(" --->儀器儀表維修<------\n");</p><p><b>  else</b></p><p>  printf("

53、 儀器儀表維修 \n");</p><p>  printf("\n\n");</p><p><b>  if(x==4)</b></p><p>  printf(" --->儀器儀表報(bào)廢<------\n");</p>

54、<p><b>  else</b></p><p>  printf(" 儀器儀表報(bào)廢 \n");</p><p>  printf("\n\n");</p><p><b>  if(x==5)</b></p>

55、<p>  printf(" --->返回主菜單<------\n");</p><p><b>  else</b></p><p>  printf(" 返回主菜單 \n");</p><p>  printf("

56、 <----------------------------------->\n");</p><p>  c=getch();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b&g

57、t;</p><p><b>  {</b></p><p>  /*system("cls");</p><p>  printf("\n\n\n\n");</p><p>  printf(" <----儀器儀表管理系統(tǒng)--->\n");

58、</p><p>  printf("\n\n");*/</p><p>  printf("\n\n");</p><p>  printf(" 對(duì)不起!找不到該儀器\n");</p><p>  printf(" 可能是由于您輸入儀器的名稱錯(cuò)

59、誤,\n");</p><p>  printf(" 也可能是由于無此儀器,還沒購(gòu)買。\n");</p><p>  printf("\n\n");</p><p>  printf(" 修改失敗,請(qǐng)按任意鍵返回主菜單 \n");</p><

60、p>  printf(" <----------------------------------->\n");</p><p><b>  getch();</b></p><p>  //return; } } </p><p><b>  借出模塊</b></p

61、><p>  首先輸入借出的時(shí)間,然后在儀器儀表的結(jié)構(gòu)體數(shù)組中查</p><p>  找該儀器儀表在這個(gè)輸入的時(shí)間點(diǎn)上有無其他狀態(tài)。若無</p><p>  其他狀態(tài)則可以借出,否則不可借出。</p><p><b>  【程序】</b></p><p>  int mylean(int j)<

62、/p><p>  {int year,month,day;</p><p>  system("cls");</p><p>  printf("\n\n\n\n");</p><p>  printf(" <----儀器儀表借出系統(tǒng)--->\n");<

63、;/p><p>  printf("\n\n");</p><p>  printf(" 請(qǐng)輸入借出時(shí)間(年/月/日): ");</p><p>  scanf("%d/%d/%d",&year,&month,&day);</p><p>

64、  //system("pause");</p><p>  //printf("%d",equ[j].time[year][month][day]);</p><p>  if (equ[j].time[year][month][day]==inlib) //判斷儀器是否空閑 </p><p>  {printf(&q

65、uot;\n\n");</p><p>  printf(" 借出成功,請(qǐng)按任意鍵返回上一級(jí)菜單 \n");</p><p>  printf("\n");</p><p>  printf(" <------------------------------

66、----->\n");</p><p>  state(year,month,day,j,lean); //狀態(tài)改為借出 </p><p>  getch(); return(1);</p><p><b>  }</b></p><p><b>  else</b>&

67、lt;/p><p>  {printf("\n\n");</p><p>  printf(" 對(duì)不起!\n");</p><p>  printf(" 此儀器還沒有購(gòu)買或沒有歸還或正在維修中,\n");</p><p>  printf("

68、 故無法借出。\n");</p><p>  printf(" 借出失敗,請(qǐng)按任意鍵返回上一級(jí)菜單 \n");</p><p>  printf("\n\n");</p><p>  printf(" <------------------------------

69、----->\n");</p><p>  getch(); return(0); } }</p><p><b>  歸還模塊</b></p><p>  首先輸入借出的時(shí)間,然后在儀器儀表的結(jié)構(gòu)體數(shù)組中查找該儀器儀表在這個(gè)輸入的時(shí)間點(diǎn)上有無其他狀態(tài)。若無其他狀態(tài)則可以借出,否則不可借出。</p><

70、p><b>  【程序】</b></p><p>  int myback(int j)</p><p>  {int year,month,day;</p><p>  system("cls");</p><p>  printf("\n\n\n\n");</p&

71、gt;<p>  printf(" <----儀器儀表歸還系統(tǒng)--->\n");</p><p>  printf("\n\n");</p><p>  printf(" 請(qǐng)輸入歸還時(shí)間(年/月/日): ");</p><p>  scanf(

72、"%d/%d/%d",&year,&month,&day);</p><p>  if (equ[j].time[year][month][day]==lean) //判斷狀態(tài)是否為借出 </p><p>  {printf("\n\nn");

73、 </p><p>  printf(" 歸還成功,請(qǐng)按任意鍵返回上一級(jí)菜單 \n");</p><p>  printf("\n\n");</p><p>  printf(" <----------------------------------->\

74、n");</p><p>  state(year,month,day,j,inlib); //改狀態(tài)為空閑 </p><p>  getch(); return(1);</p><p><b>  }</b></p><p><b>  else</b></p>

75、;<p>  {printf("\n\n");</p><p>  printf(" 對(duì)不起!\n");</p><p>  printf(" 此儀器還沒有購(gòu)買或還沒有借出\n");</p><p>  printf(" 或正在維修中,故無法歸

76、還。\n");</p><p>  printf(" 歸還失敗,請(qǐng)按任意鍵返回上一級(jí)菜單 \n");</p><p>  printf("\n");</p><p>  printf(" <----------------------------------->\n&q

77、uot;);</p><p>  getch(); return(0); } }</p><p> ?。?)維修模塊 </p><p>  同樣是首先輸入維修開始的時(shí)間和維修結(jié)束的時(shí)間,然后在儀器儀表的結(jié)構(gòu)體數(shù)組中查找該儀器儀表在這個(gè)歸還的時(shí)間點(diǎn)上有其他狀態(tài)。若有為空閑狀態(tài)則可以維修,否則不可維修。</p><p><b&

78、gt;  【程序】</b></p><p>  int myrepair(int j)</p><p>  {int year,month,day;</p><p>  system("cls"); </p><p&g

79、t;  printf("\n\n\n\n");</p><p>  printf(" <----儀器儀表管理系統(tǒng)--->\n");</p><p>  printf("\n\n");</p><p>  printf(" 請(qǐng)輸入開始維修時(shí)間(年/月

80、/日):");</p><p>  scanf("%d/%d/%d",&year,&month,&day);</p><p>  if (equ[j].time[year][month][day]==inlib)</p><p>  {state(year,month,day,j,repair); //改

81、狀態(tài)為維修 </p><p>  printf("\n\n");</p><p>  printf(" 請(qǐng)輸入維修結(jié)束時(shí)間(年/月/日):");</p><p>  scanf("%d/%d/%d",&year,&month,&day);</p><

82、;p>  state(year,month,day,j,inlib);</p><p>  printf("\n\n");</p><p>  printf(" 維修成功,請(qǐng)按任意鍵返回上一級(jí)菜單 \n");</p><p>  printf("\n");</p>

83、;<p>  printf(" <----------------------------------->\n");</p><p>  getch(); return(1);</p><p><b>  }</b></p><p><b>  else</b

84、></p><p>  {printf("\n\n");</p><p>  printf(" 對(duì)不起!\n");</p><p>  printf(" 此儀器還沒有購(gòu)買或借出,\n");</p><p>  printf("

85、 故無法維修。\n");</p><p>  printf("\n\n");</p><p>  printf(" 維修失敗,請(qǐng)按任意鍵返回上一級(jí)菜單 \n");</p><p>  printf("\n\n");</p><p>  printf(

86、" <----------------------------------->\n");</p><p>  getch(); return(0); } }</p><p><b> ?。?)刪除模塊</b></p><p>  刪除模塊將刪除本儀器儀表,具體刪除過程為將需要?jiǎng)h除的后一項(xiàng)覆蓋至刪

87、除的這一項(xiàng),即需刪除以后的每一個(gè)結(jié)構(gòu)體元素都向前移一個(gè)單位。</p><p><b>  【程序】</b></p><p>  int mydel(int j) </p><p>  {char c='s';</p><p><

88、b>  int x=0;</b></p><p><b>  while(1)</b></p><p>  {system("cls");</p><p>  if(c=='s'||c=='S') x++;</p><p>  if(c=='

89、;w'||c=='W') x--;</p><p>  if(x==3) x=1;</p><p>  if(x==0) x=2;</p><p><b>  if(c==13)</b></p><p>  {if(x==1)</p><p><b>

90、  {int i;</b></p><p>  for(i=n;i<n;i++)</p><p>  equ[i]=equ[i-1]; n--;</p><p>  system("cls");</p><p>  printf("\n\n\n\n");</p><

91、;p>  printf(" <----儀器儀表管理系統(tǒng)--->\n");</p><p>  printf("\n\n");</p><p>  printf(" 報(bào)廢儀表已刪除!\n ");</p><p>  printf("\n\n"

92、;);</p><p>  printf(" 請(qǐng)按任意鍵返回上一級(jí)菜單 \n");</p><p>  printf("\n");</p><p>  printf(" <----------------------------------->\n");</p&g

93、t;<p>  getch(); return;</p><p><b>  }</b></p><p><b>  else </b></p><p><b>  return;</b></p><p><b>  }</b><

94、;/p><p>  printf(" <----儀器儀表管理系統(tǒng)--->\n");</p><p>  printf("\n\n");</p><p>  printf(" 請(qǐng)問確定要報(bào)廢儀器%s嗎?\n ",equ[j].name);</p><p>

95、;  printf("\n\n\n\n");</p><p><b>  if (x==1)</b></p><p>  printf(" --->確定要報(bào)廢儀器<--- \n");</p><p><b>  else</b></p><

96、;p>  printf(" 確定要報(bào)廢儀器 \n");</p><p>  printf("\n\n");</p><p><b>  if(x==2)</b></p><p>  printf(" --->我要考慮考慮<--- \n

97、");</p><p><b>  else</b></p><p>  printf(" 我要考慮考慮 \n");</p><p>  printf("\n\n");</p><p>  printf(" <----

98、------------------------------->\n");</p><p>  c=getch(); } }</p><p>  (三)儀器儀表查找模塊</p><p>  儀器儀表查找分為按名稱查找、按時(shí)間點(diǎn)查找、按時(shí)間段查找三個(gè)模塊,通過鍵盤w s進(jìn)行選擇,分別用三個(gè)小模塊來表示,通過狀態(tài)函數(shù)condition_p輸出儀器

99、儀表狀態(tài)。</p><p><b>  【程序】</b></p><p>  void search()</p><p>  {char c='s';</p><p><b>  int x=0;</b></p><p><b>  while(1

100、)</b></p><p>  {if(c=='s'||c=='S') x++;</p><p>  if(c=='w'||c=='W') x--;</p><p>  if(x==6) x=1;</p><p>  if(x==0) x=5;</p&

101、gt;<p>  if(c==13) </p><p>  {switch(x)</p><p>  {case 1:name();break;</p><p>  case 2:time_d();break;</p><p>  case 3:time_p();break;</p><p>  c

102、ase 4:return; };</p><p><b>  };</b></p><p>  system("cls");</p><p>  printf("\n\n\n\n");</p><p>  printf(" <----儀器儀表管理系統(tǒng)-

103、-->\n");</p><p>  printf("\n\n");</p><p><b>  if(x==1)</b></p><p>  printf(" --->按名稱查詢<------\n");</p><p><b>

104、;  else</b></p><p>  printf(" 按名稱查詢 \n");</p><p>  printf("\n\n");</p><p><b>  if(x==2)</b></p><p>  printf(&quo

105、t; --->按時(shí)間段查詢<------\n");</p><p><b>  else</b></p><p>  printf(" 按時(shí)間段查詢 \n");</p><p>  printf("\n\n");</p>

106、<p><b>  if(x==3)</b></p><p>  printf(" --->按時(shí)間點(diǎn)查詢<------\n");</p><p><b>  else</b></p><p>  printf(" 按時(shí)間點(diǎn)查詢

107、 \n");</p><p>  printf("\n\n");</p><p><b>  if(x==4)</b></p><p>  printf(" --->返回主菜單<------\n");</p><p><b>

108、;  else</b></p><p>  printf(" 返回主菜單 \n");</p><p>  printf("\n\n");</p><p>  printf(" <----------------------------------->

109、\n");</p><p>  c=getch(); } }</p><p>  因?yàn)椴还懿檎覘l件是什么,最終都會(huì)對(duì)應(yīng)到需查找的儀器儀表上,故補(bǔ)充一個(gè)公共函數(shù)condition_p();,輸出查找一個(gè)儀器儀表的結(jié)果。</p><p><b>  【程序】</b></p><p>  void con

110、dition_p(int year,int month,int day,int n,int *bool_repair,int *bool_lean)</p><p>  {//printf("%d",equ[n].time[year][month][day]); //system("pause");</p><p>  if (equ[n].t

111、ime[year][month][day]==buy) </p><p>  printf(" %4d年%2d月%2d日購(gòu)買%s儀器儀表\n",year,month,day,equ[n].name);</p><p><b>  //借出/歸還</b></p><p>  if ((equ[n].ti

112、me[year][month][day]==lean)&&((*bool_lean)==0))</p><p>  {printf(" %4d年%2d月%2d日借出%s儀器儀表\n",year,month,day,equ[n].name);</p><p>  (*bool_lean)=1; }</p><p>

113、;  //printf("%d\n",equ[n].time[year][month][day]==lean); //printf("%d\n"); </p><p>  if (equ[n].time[year][month][day]==inlib&&(*bool_lean)==1)</p><p>  {printf(&

114、quot; %4d年%2d月%2d日歸還%s儀器儀表\n",year,month,day,equ[n].name);</p><p>  (*bool_lean)=0; //printf("%d",equ[n].time[year][month][day]); }</p><p><b>  //維修/修完</b

115、></p><p>  if (equ[n].time[year][month][day]==repair&&(*bool_repair)==0)</p><p>  {printf(" %4d年%2d月%2d日開始維修%s儀器儀表\n",year,month,day,equ[n].name);</p><

116、p>  (*bool_repair)=1; }</p><p>  if (equ[n].time[year][month][day]==inlib&&(*bool_repair)==1)</p><p>  {printf(" %4d年%2d月%2d日結(jié)束維修%s儀器儀表\n",year,month,day,eq

117、u[n].name);</p><p>  (*bool_repair)=0; } }</p><p><b> ?。?)按名稱查找</b></p><p>  首先輸入儀器儀表的名稱,然后在結(jié)構(gòu)體數(shù)組中查找是否存在,這個(gè)儀器儀若是則循環(huán)該儀器儀表的所有時(shí)間點(diǎn)來判斷改時(shí)間點(diǎn)處于什么狀態(tài),并用公共函數(shù)condition_

118、p來輸出。</p><p><b>  【程序】</b></p><p>  int name()</p><p>  {char equ_input[100];</p><p>  int i; </p><p&g

119、t;  system("cls");</p><p>  printf("\n\n\n\n");</p><p>  printf(" <----儀器儀表管理系統(tǒng)--->\n");</p><p>  printf("\n\n");</p>&

120、lt;p>  printf(" 請(qǐng)輸入儀器名字: ");</p><p>  scanf("%s",equ_input);</p><p>  i=presence(equ_input);</p><p><b>  if (i!=0)</b></p>&l

121、t;p>  {int j_y,j_d,j_m,bool_lean=0,bool_repair=0;</p><p>  for(j_y=0;j_y<=year_max;j_y++)</p><p>  for(j_m=0;j_m<=month_max;j_m++)</p><p>  for(j_d=0;j_d<=day_max;j_d++

122、)</p><p>  {//P(j_y,j_m,j_d,m);systen("pause")</p><p>  condition_p(j_y,j_m,j_d,i,&bool_lean,&bool_repair);</p><p><b>  }</b></p><p>  pr

123、intf("\n\n");</p><p>  printf(" 查詢完成,請(qǐng)按任意鍵返回上一級(jí)菜單 \n");</p><p>  printf("\n\n");</p><p>  printf(" <--------------------------

124、--------->\n");</p><p>  getch(); return(1);</p><p><b>  }</b></p><p><b>  else</b></p><p>  {printf("\n\n");</p>&l

125、t;p>  printf(" 對(duì)不起!\n");</p><p>  printf(" 可能是由于您輸入錯(cuò)誤,\n");</p><p>  printf(" 也有可能是由于無此儀器,還未購(gòu)買。\n");</p><p>  printf("\n\n

126、");</p><p>  printf(" 查詢失敗,請(qǐng)按任意鍵返回主菜單 \n");</p><p>  printf("\n\n");</p><p>  printf(" <----------------------------------->\n&quo

127、t;);</p><p>  getch(); return(0); } }</p><p><b>  (2)按時(shí)間點(diǎn)查詢</b></p><p><b>  【程序】</b></p><p>  int time_p()</p><p>  {int i,yea

128、r,month,day,equ_tmp,</p><p>  bool_lean[101],bool_repair[101];</p><p>  for(i=0;i<10;i++)</p><p>  {bool_lean[i]=0;bool_repair[i]=0; } </p><p>  system("cls&qu

129、ot;);</p><p>  printf("\n\n\n\n");</p><p>  printf(" <----儀器儀表管理系統(tǒng)--->\n");</p><p>  printf("\n\n");</p><p>  printf(&q

130、uot; 請(qǐng)輸入時(shí)間點(diǎn)(年/月/日): ");</p><p>  scanf("%d/%d/%d",&year,&month,&day);</p><p>  printf("\n\n"); </p><p>  for(equ_tmp=1;equ_tmp&

131、lt;=n;equ_tmp++)</p><p>  condition_p(year,month,day,equ_tmp,&bool_lean[equ_tmp],&bool_repair[equ_tmp]); //每個(gè)儀器</p><p>  printf("\n\n");</p><p&g

132、t;  printf(" 查詢完成,請(qǐng)按任意鍵返回上一級(jí)菜單 \n");</p><p>  printf("\n");</p><p>  printf(" <----------------------------------->\n");</p>

133、<p>  getch(); return(0); </p><p><b>  } </b></p><p><b> ?。?)按時(shí)間段查詢</b></p><p>  首先輸入起始時(shí)間點(diǎn)和結(jié)束時(shí)間點(diǎn),應(yīng)為每個(gè)月的天數(shù)不完全一樣,用三重循環(huán)來做比較麻煩,故采用模擬法,設(shè)三個(gè)變量i、j、k,分別對(duì)

134、應(yīng)年,月,日,然后賦予初值為起始時(shí)間點(diǎn),設(shè)置一無限循環(huán),循環(huán)內(nèi)設(shè)有判斷是否i、j、k的值為結(jié)束時(shí)間點(diǎn)的語(yǔ)句。若是則跳出循環(huán),否則繼續(xù)循環(huán)。同時(shí),在循環(huán)內(nèi)k總是自加,當(dāng)k 自加至當(dāng)月最大天數(shù)時(shí),j就自加,當(dāng)j自加至當(dāng)年最大月數(shù)時(shí),i自加。</p><p><b>  【程序】</b></p><p>  int time_d()</p><

135、p>  {int year1,month1,day1,year2,month2,day2,i,j,k,</p><p>  equ_tmp,bool_lean[101],bool_repair[101];</p><p>  for(i=0;i<101;i++)</p><p>  {bool_lean[i]=0;bool_repair[i]=0;

136、} </p><p>  system("cls");</p><p>  printf("\n\n\n\n");</p><p>  printf(" <----儀器儀表管理系統(tǒng)--->\n");</p><p>  printf("\n&quo

137、t;);</p><p>  printf(" 請(qǐng)輸入起始時(shí)間(年/月/日):");</p><p>  scanf("%d/%d/%d",&year1,&month1,&day1);</p><p>  printf("\n"); </p><

138、p>  printf(" 請(qǐng)輸入結(jié)束時(shí)間(年/月/日):");</p><p>  scanf("%d/%d/%d",&year2,&month2,&day2);</p><p>  printf("\n");</p><p>  i=year1; j=mon

139、th1; k=day1;</p><p><b>  while(1) </b></p><p>  {if(j>12){i++;j=1;}</p><p>  if(k>31){j++;k=1;}</p><p>  for(equ_tmp=1;equ_tmp<=n;equ_tmp++)</

140、p><p>  condition_p(i,j,k,equ_tmp,&bool_lean[equ_tmp],&bool_repair[equ_tmp]) ;</p><p><b>  //每個(gè)儀器</b></p><p>  if((i==year2)&&(j==month2)&&(k==day2)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論