c語言課程設計--- 設備管理系統(tǒng)_第1頁
已閱讀1頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  湖北汽車工業(yè)學院科技學院</p><p>  HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY</p><p><b>  C語言程序設計</b></p><p><b>  課程實訓報告</b></p><p>  課設題目: 設備管理系

2、統(tǒng) </p><p>  專 業(yè): 電子信息工程(汽車電子) </p><p>  班 級: k1223-5 </p><p>  姓 名: </p><p>  成 績

3、: </p><p>  完成日期: 2013年1月4日-2013年1月11日</p><p>  指導教師: 胡 寧 亞 </p><p><b>  目 錄</b></p>

4、<p>  1.課程實訓目的2</p><p><b>  2.需求分析2</b></p><p><b>  2.1要求2</b></p><p><b>  2.2任務描述2</b></p><p><b>  2.3運行環(huán)境3</b&

5、gt;</p><p><b>  2.4開發(fā)工具3</b></p><p><b>  3.總體設計3</b></p><p>  3.1系統(tǒng)流設計3</p><p>  3.2系統(tǒng)模塊設計4</p><p><b>  4.詳細設計5</b>

6、;</p><p>  4.1數據結構設計5</p><p>  4.2模塊接口設計6</p><p>  4.3 以下是幾個主要模塊的流程圖:7</p><p><b>  5.運行結果8</b></p><p>  5.1主菜單界面:8</p><p>  5

7、.2輸入設備編號和名稱界面………………………………………………………...9</p><p>  5.3購買設備界面:10</p><p>  5.4 報廢設備界面:10</p><p>  5.5查詢指定設備編號的購買歷史界面11</p><p>  5.6查詢指定部門設備報廢歷史的界面…………………………………………………………12

8、</p><p>  5.7統(tǒng)計指定日期公司各設備可以使用的數量的界面…………………………………………13</p><p>  5.8保存信息界面…………………………………………………………………………………13</p><p>  5.9退出系統(tǒng)界面………………………… ……………………………………………………..14</p><p>  

9、6.程序調試與測試14</p><p><b>  7.編程體會14</b></p><p>  8.程序源代碼:15</p><p><b>  9.參考文獻29</b></p><p>  10.用戶使用手冊29</p><p><b>  1.課程實

10、訓目的</b></p><p>  通過課程實訓,加深對結構化程序設計思想的理解,能對系統(tǒng)功能進行分析,并設計合理的模塊化結構。</p><p>  通過課程實訓,進一步掌握C語言中重要的數據結構。掌握并熟練運用指針、鏈表、結構體、文件等數據結構。</p><p>  通過課程實訓,提高程序開發(fā)能力,能運用合理的控制流編寫清晰高效的程序。</p&g

11、t;<p>  通過課程實訓,培養(yǎng)C語言知識運用和自學能力,真正的把課堂上獲得的知識運用起來,培養(yǎng)自己對程序編寫的興趣,并能獨立設計和實現一個小型系統(tǒng)。</p><p>  通過課程實訓,加強了自己的程序分析能力。</p><p><b>  2.需求分析</b></p><p><b>  2.1要求</b>

12、;</p><p>  遵循軟件開發(fā)過程的基本規(guī)范;能靈活應用,初步具備運用C程序解決實際問題的能力。</p><p>  運用結構化程序設計方法,按照課程實訓題目要求,完成包括需求分析、數據結構設計、概要設計、詳細設計、編寫代碼、調試和測試C程序等過程。</p><p>  學會利用數組、結構體、鏈表進行相關信息表示。</p><p>  

13、功能模塊劃分清晰,系統(tǒng)結構圖符合功能操作要求,且有詳盡的功能描述</p><p>  各主要功能模塊有詳盡的流程圖及描述,用函數的形式實現,且調用入口、功能、出口等關系正確。</p><p>  所設計的C程序較好的可讀性和可靠性;程序書寫風格規(guī)范,注釋清晰。</p><p>  界面友好(良好的人機互交),凡需要輸入信息時,都有較詳盡的提示信息,并對輸入信息有較完

14、善的值域分析。</p><p>  程序經上機調試通過,不應出現語法型、功能型錯誤,并獲得滿意的結果。</p><p>  學會通過各功能性測試用例測試程序的能力,盡可能避免原則性錯誤的出現。</p><p>  掌握編寫、調試和測試C語言程序的基本技巧,充分理解結構化程序設計的基本方法。</p><p>  C語言課程實訓報告的內容反應實際

15、設計過程,且符合格式要求,無抄襲現象。</p><p><b>  2.2任務描述</b></p><p><b>  1、問題:</b></p><p>  根據需求,該系統(tǒng)所應包含的信息有以下一些:</p><p>  公司設備管理的基本信息:</p><p>  設備編

16、號10個、設備名稱10個、部門編號4個、部門名稱4個、購買日期、購買單價、購買數量、購買金額、報廢日期、報廢數量。</p><p>  根據需求,該系統(tǒng)所應實現的功能有以下一些:</p><p>  1) 購買:輸入設備編號、設備部門、購買日期、設備數量、設備單價,完成購買功能。</p><p>  2) 報廢:輸入設備編號、設備部門、報廢日期、設備數量,完成報廢功

17、能。</p><p>  3) 查詢指定設備編號的購買歷史。</p><p>  4) 查詢指定部門的設備報廢歷史。</p><p>  5) 統(tǒng)計指定日期公司各設備可以使用的數量。</p><p><b>  2.3運行環(huán)境</b></p><p>  WindowsXP/7系統(tǒng)</p&g

18、t;<p>  VC++6.0編譯環(huán)境</p><p><b>  2.4開發(fā)工具</b></p><p><b>  C語言</b></p><p><b>  3.總體設計</b></p><p><b>  3.1系統(tǒng)流設計</b>&l

19、t;/p><p>  本系統(tǒng)的功能模塊如圖1所示,主要有以下模塊:</p><p>  主界面模塊:完成系統(tǒng)菜單的顯示</p><p>  功能選擇模塊:根據用戶的選擇,完成其相應的功能</p><p>  設備購買:完成用戶從界面輸入購買信息,在系統(tǒng)中購買定位,并將購買金額累加到購買總價格的功能。</p><p>  設

20、備報廢:完成用戶從界面輸入報廢信息,在系統(tǒng)中報廢定位,并將從設備總數減去報廢數量。</p><p>  指定設備編號的購買歷史查詢:完成用戶從界面輸入查詢條件,在系統(tǒng)查詢符合條件的設備購買信息,并在界面上顯示的功能。</p><p>  指定部門的設備報廢歷史查詢:完成用戶從界面輸入查詢條件,在系統(tǒng)查詢符合條件的設備報廢信息,并在界面上顯示的功能。</p><p>

21、  統(tǒng)計指定日期公司各設備可以使用的數量:完成用戶從界面輸入查詢條件,在系統(tǒng)查詢符合條件的設備記錄鏈表,并在界面上顯示的功能。</p><p><b>  3.2系統(tǒng)模塊設計</b></p><p>  課程名稱界面:構造函數void auther(),實現課程實訓名稱以及作者的顯示。</p><p>  系統(tǒng)歡迎界面:構造函數void wel

22、come(),實現歡迎使用學生簡歷管理系統(tǒng)的顯示。</p><p>  主菜單界面:構造函數void menu(),實現系統(tǒng)主菜單的顯示。</p><p>  設備信息錄入:構造函數void loadRec(),實現設備購買、報廢記錄的錄入。</p><p>  購買設備:構造函數void buy(),實現對設備的購買功能。</p><p>

23、  報廢設備:構造函數void abandon (),實現對設備的報廢</p><p>  查詢購買歷史:構造函數int find_buyhistory(),實現對指定設備的購買設備記錄的查詢。</p><p>  查詢報廢歷史:構造函數int find_abahistory(),實現對指定部門的報廢設備記錄的查詢。</p><p>  統(tǒng)計指定日期可用設備:構造函

24、數int find_equip(),實現對指定日期之前的可用設備。</p><p>  保存并退出:構造函數void save(),實現對設備購買、報廢記錄的保存。</p><p><b>  圖1系統(tǒng)功能模塊圖</b></p><p><b>  4.詳細設計</b></p><p><b&

25、gt;  4.1數據結構設計</b></p><p>  根據系統(tǒng)要求,系統(tǒng)中需要保存的數據信息,其結構如下:</p><p>  為此,先聲明類型為struct equipment、struct department、truct information、struct data的四個結構體,其成員分別為設備和部門的編號以及名稱信息。然后通過對指針、鏈表、文件等數據結構的操作,實

26、現對設備和部門的編號以及名稱信息的錄入,插入,存盤,查詢,等功能。定義的結構體如下:</p><p><b>  定義如下:</b></p><p>  /*描述"保存信息"的鏈表類型*/</p><p>  typedef struct information</p><p><b>  

27、{</b></p><p>  DEPARTINFO depar;</p><p>  EQUIPINFO equip;</p><p>  struct information *next;</p><p><b>  }infor;</b></p><p>  /*描述"

28、部門信息"的結構體類型*/</p><p>  typedef struct</p><p><b>  {</b></p><p>  char depart_ID[20];</p><p>  char depart_name[20];</p><p>  }DEPARTINFO;&

29、lt;/p><p>  /*描述"設備信息"的結構體類型*/</p><p>  typedef struct</p><p><b>  {</b></p><p>  char equip_ID[20];</p><p>  char equip_name[20];</p

30、><p>  DATA buy_date;</p><p>  DATA aban_data;</p><p>  int b_number;</p><p>  int price;</p><p>  int a_number;</p><p>  }EQUIPINFO;</p>

31、<p>  /*描述"時間"的結構體類型*/</p><p>  typedef struct</p><p><b>  {</b></p><p><b>  int year;</b></p><p>  int month;</p><p&g

32、t;<b>  int day;</b></p><p><b>  }DATA;</b></p><p><b>  4.2模塊接口設計</b></p><p>  所有函數模塊聲明如下:</p><p>  void auther();/*顯示課程名稱*/</p>

33、;<p>  void welcome();/*顯示歡迎界面*/</p><p>  void menu();/*主菜單函數*/</p><p>  void loadRec();/*設備信息錄入*/</p><p>  void buy();/*購買設備*/</p><p>  void abandon ()/*報廢設備*/&

34、lt;/p><p>  int find_buyhistory();/*查詢購買歷史*/ </p><p>  int find_abahistory();/*查詢報廢歷史*/</p><p>  int find_equip();/*統(tǒng)計指定日期可用設備*/</p><p>  void save();/*保存購買報廢記錄*/</p>

35、;<p>  int sysTime();/*取系統(tǒng)時間*/</p><p>  int DAY();/*判斷該月天數*/</p><p>  void gotoxy(int x,int y);/*光標函數*/</p><p><b>  主要模塊的實現</b></p><p>  系統(tǒng)以主函數void

36、main()為入口,首先通過system("color 0f");將文本顏色置為白色,背景顏色置為黑色。</p><p>  調用void auther()函數,顯示課程實訓名稱及作者信息。進入主菜單界面。系統(tǒng)接收用戶輸入的選擇,調用相應的函數,進入到下一級菜單進行相關工作。</p><p>  4.3以下是主菜單的流程圖:</p><p>&l

37、t;b>  主菜單函數:</b></p><p><b>  圖2 主函數流程圖</b></p><p><b>  5.運行結果</b></p><p><b>  5.1主菜單界面:</b></p><p><b>  主界面:</b>

38、;</p><p>  根據系統(tǒng)要求,設計一個字符界面,顯示系統(tǒng)的菜單,為了體現友好性,將在每個菜單前顯示該菜單項對應的數字</p><p>  用戶輸入菜單項前面的數字,主菜單消失,進入該模塊的相應界面,進行相應的操作,完成后,回到主界面。</p><p><b>  輸入的主界面:</b></p><p><

39、b>  圖5主菜單界面</b></p><p>  輸入功能選擇,系統(tǒng)自動進入相應功能界面。</p><p><b>  5.2歡迎界面</b></p><p>  圖6 輸入設備編號和名稱的界面:</p><p>  5.3購買設備界面:</p><p><b>  

40、圖7購買設備界面</b></p><p>  5.4報廢設備界面:</p><p><b>  圖8報廢設備界面 </b></p><p>  5.5查詢指定設備編號的購買歷史界面:</p><p>  圖9查詢指定設備編號的購買歷史界面</p><p>  5.6查詢指定部門設備報廢

41、歷史的界面</p><p>  圖10查詢指定部門設備報廢歷史的界面</p><p>  5.7統(tǒng)計指定日期公司各設備可以使用的數量的界面:</p><p><b>  6.程序調試與測試</b></p><p>  各個模塊在調試與分析的過程中往往會碰到一些錯誤和警告,從而導致了程序的無法正確運行,這時候我們往往是從錯

42、誤開始分析,然后分步調試程序。</p><p><b>  7.編程體會</b></p><p>  通過本學期實訓課與C語言課相結合的學習模式,以上機實驗操作為主,平時理論課程相結合的特點,讓我對C語言的認識更加深刻,更加深了我對語言的理解和運用能力。在學習期間遇到的問題先翻看書本再查找資料使我更深入的接觸和了解到更多的C語言知識。平時上理論課老師就強調C語言知識的

43、重要性和實用性,學習的過程中也慢慢覺得要想把C語言學好必須要花費大量的精力和時間。就像這次的最后的大實訓,一個人就一道題,卻花費了三四天的時間去做,先自己做個框架,然后再一步步做函數,不僅請教同學幫忙,還請教了老師幫助我改錯,雖然最后完成了任務,但是程序還做得不是很好,程序運行的不是很好,有些功能沒有完全實現。</p><p>  在這幾天的實訓中,讓我認識到C語言的實用性,縱觀同學們做的題目,讓C語言實現大大小

44、小不同的功能,這就是C語言的應用廣泛性。同時還得出一個結論:理論知識必須通過實踐應用才能實現其價值!有些東西在理論方面以為學會了,但真正到應用的時候才發(fā)現是兩回事,看書的時候我以為函數功能很簡單,但是我在用的時候,卻漏洞百出,不是這錯就是那錯,找老師好幾遍才改過來。學習C語言就需要縝密的思維,良好的習慣,這樣才能把C語言編的又快又好!!! </p><p><b>  8.程序源代碼:</b>

45、;</p><p>  #include <stdio.h></p><p>  #include <string.h></p><p>  #include <malloc.h></p><p>  #include <stdlib.h></p><p>  #incl

46、ude <time.h></p><p>  #include <conio.h></p><p>  #include <windows.h></p><p>  #define LEN sizeof(infor)</p><p>  /*描述"時間"的結構體類型*/</p>

47、;<p>  typedef struct</p><p><b>  {</b></p><p><b>  int year;</b></p><p>  int month;</p><p><b>  int day;</b></p><

48、;p><b>  }DATA;</b></p><p>  /*描述"設備信息"的結構體類型*/</p><p>  typedef struct</p><p><b>  {</b></p><p>  char equip_ID[10];</p><

49、;p>  char equip_name[10];</p><p>  DATA buy_date;</p><p>  DATA aban_data;</p><p>  int b_number;</p><p>  int price;</p><p>  int a_number;</p>

50、<p>  }EQUIPINFO;</p><p>  /*描述"部門信息"的結構體類型*/</p><p>  typedef struct</p><p><b>  {</b></p><p>  char depart_ID[30];</p><p>  ch

51、ar depart_name[20];</p><p>  }DEPARTINFO;</p><p>  /*描述"保存信息"的鏈表類型*/</p><p>  typedef struct information</p><p><b>  {</b></p><p>  D

52、EPARTINFO depar;</p><p>  EQUIPINFO equip;</p><p>  struct information *next;</p><p><b>  }infor;</b></p><p>  infor *p1,*p2,*head;</p><p>  in

53、t flag=-1;</p><p><b>  /*函數聲明*/</b></p><p>  void welcome();</p><p>  void auther();</p><p>  int buy();</p><p>  int abandon();</p><

54、;p>  int find_buyhistory();</p><p>  int find_abahistory();</p><p>  int sysTime();</p><p>  int DAY(int year,int month);</p><p>  int find_equip();</p><p

55、>  void loadRec();</p><p>  void save();</p><p>  void gotoxy(int x,int y);</p><p><b>  /*主函數*/</b></p><p>  int main()</p><p><b>  {&

56、lt;/b></p><p>  system("color 0a");</p><p>  auther();/*軟件名稱及開發(fā)者顯示*/</p><p>  welcome();/*歡迎界面顯示*/</p><p>  loadRec();</p><p><b>  while

57、(1)</b></p><p><b>  {</b></p><p>  switch(menu())</p><p><b>  {</b></p><p>  system("cls");</p><p>  case 1:buy();b

58、reak;</p><p>  case 2:abandon();getchar();break;</p><p>  case 3:find_buyhistory();break;</p><p>  case 4:find_abahistory();break;</p><p>  case 5:find_equip();break;&l

59、t;/p><p>  case 0:save();exit(0);break;</p><p><b>  default:{</b></p><p>  printf("\n選擇錯誤,請按主菜單提示輸入您的正確選擇(0~4)\n");</p><p>  printf("按任意鍵返回繼續(xù):&q

60、uot;);</p><p>  rewind(stdin);/*清空緩沖區(qū)*/</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  

61、}</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  /*菜單*/</b></p><p>  int menu()</p><p><b>  {&

62、lt;/b></p><p>  int choice;</p><p>  system("cls");</p><p>  gotoxy(33,5);printf("主菜單\n\n");Sleep(500);</p><p>  gotoxy(33,7);printf("1.購買設

63、備\n\n");Sleep(500);</p><p>  gotoxy(33,9);printf("2.報廢設備\n\n");Sleep(500);</p><p>  gotoxy(33,11);printf("3.查詢設備購買歷史\n\n");Sleep(500);</p><p>  gotoxy(33

64、,13);printf("4.查詢設備報廢歷史\n\n");Sleep(500);</p><p>  gotoxy(33,15);printf("5.統(tǒng)計指定日期公司各設備可以使用的數量\n\n");Sleep(500);</p><p>  gotoxy(33,17);printf("0.保存并退出\n\n\n");Sl

65、eep(500);</p><p>  gotoxy(33,19);printf("請輸入您的選擇(0~5):");Sleep(500);</p><p>  rewind(stdin);/*清空緩沖區(qū)*/</p><p>  choice=-1;</p><p>  scanf("%d",&

66、choice);</p><p>  rewind(stdin);</p><p>  return choice;/*返回用戶的選擇*/</p><p><b>  }</b></p><p>  /*軟件名稱及開發(fā)者顯示*/</p><p>  void auther()</p>

67、<p><b>  {</b></p><p>  system("cls");</p><p>  printf("\n\n\n\n\n\n\n\t\t\t 軟件名稱:設備管理系統(tǒng)\n\n");</p><p>  printf("\t\t\t 學生:k1223-5

68、 \n\n");</p><p>  printf("\t\t\t 指導老師:胡寧亞\n\n");</p><p>  printf("\t\t\t 時間:%ld\n\n",sysTime());</p><p>  printf("\t\t\t 按回任意鍵進入系統(tǒng):");

69、</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  /*歡迎界面顯示*/</p><p>  void welcome()</p><p><b>  {</b></p>&l

70、t;p>  int i,x,y;</p><p><b>  char ch;</b></p><p>  system("cls");</p><p>  for(i=0;i<500;i++)</p><p><b>  {</b></p><

71、p>  x=rand()%80;</p><p>  y=rand()%25;</p><p>  ch=rand()%26+65;</p><p>  gotoxy(x,y);</p><p>  printf("%c",ch);</p><p><b>  Sleep(1);&l

72、t;/b></p><p><b>  }</b></p><p>  Sleep(1500);</p><p>  system("cls");</p><p>  printf("\n\n\n\n\n\t\t\t 歡迎使用設備管理系統(tǒng)!");</p>

73、;<p><b>  getch();</b></p><p><b>  }</b></p><p>  int buy(FILE *fp)</p><p><b>  {</b></p><p>  char choice='y';</p

74、><p><b>  infor *p;</b></p><p>  time_t rawtime;</p><p>  struct tm *timeinfo;</p><p>  time(&rawtime);</p><p>  timeinfo=localtime(&rawti

75、me);</p><p>  if(flag==1)</p><p><b>  {</b></p><p>  printf("請輸入部門編號 部門名稱 設備編號 設備名稱 設備數量 設備價格:\n"); </p><p>  loop1:p=head;</p><p> 

76、 while(p->next!=NULL)</p><p><b>  {</b></p><p>  p=p->next;</p><p><b>  }</b></p><p>  p1=(infor *)malloc(LEN);//為新節(jié)點分配空間 </p><

77、;p>  scanf("%s%s%s%s%d%d",p1->depar.depart_ID,p1->depar.depart_name,p1->equip.equip_ID,p1->equip.equip_name,&p1->equip.b_number,&p1->equip.price);</p><p>  p1->equip

78、.a_number=0;</p><p>  p1->equip.buy_date.year=1900+timeinfo->tm_year;</p><p>  p1->equip.buy_date.month=1+timeinfo->tm_mon;</p><p>  p1->equip.buy_date.day=timeinfo-&

79、gt;tm_mday;</p><p>  printf("花費了%d元\n",p1->equip.price*p1->equip.b_number);</p><p>  rewind(stdin);</p><p>  printf("是否繼續(xù)(y/n)?");</p><p>  sc

80、anf("%c",&choice); </p><p>  p->next=p1;</p><p>  p1->next=NULL;</p><p>  if(choice=='y'||choice=='Y') goto loop1;</p><p><b> 

81、 }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  head=(infor *)malloc(LEN);</p><p><b>  p=head;</b></p><p>

82、<b>  flag=1;</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  p1=(infor *)malloc(LEN);//為新節(jié)點分配空間 </p><p>  p1->next=NULL;</p

83、><p>  printf("請輸入部門編號 部門名稱 設備編號 設備名稱 設備數量 設備價格:\n"); </p><p>  scanf("%s%s%s%s%d%d",p1->depar.depart_ID,p1->depar.depart_name,p1->equip.equip_ID,</p><p>

84、  p1->equip.equip_name,&p1->equip.b_number,&p1->equip.price);</p><p>  p1->equip.a_number=0;</p><p>  p1->equip.buy_date.year=1900+timeinfo->tm_year;</p><p&g

85、t;  p1->equip.buy_date.month=1+timeinfo->tm_mon;</p><p>  p1->equip.buy_date.day=timeinfo->tm_mday;</p><p>  printf("花費了%d元\n",p1->equip.price*p1->equip.b_number);<

86、;/p><p>  rewind(stdin);</p><p>  printf("是否繼續(xù)(y/n)?");</p><p>  scanf("%c",&choice); </p><p>  p->next=p1;</p><p><b>  p=p1;

87、</b></p><p>  }while((choice=='y'||choice=='Y'));</p><p><b>  }</b></p><p><b>  }</b></p><p>  int abandon()</p>&l

88、t;p><b>  {</b></p><p>  if(flag==1)</p><p><b>  {</b></p><p>  int a,c,i=0;</p><p>  DATA time1,time2;</p><p>  char d_ID[20],e_

89、ID[20];</p><p>  infor *p,*h;</p><p>  system("cls");</p><p>  printf("請輸入要報廢設備的部門編號、設備編號\n");</p><p>  scanf("%s%s",d_ID,e_ID);</p>

90、<p>  p1=head->next;</p><p>  while(p1!=NULL)</p><p><b>  {</b></p><p>  if(strcmp(e_ID,p1->equip.equip_ID)==0&&strcmp(d_ID,p1->depar.depart_ID)=

91、=0&&p1->equip.b_number>0)</p><p><b>  {</b></p><p><b>  i++;</b></p><p>  a=p1->equip.b_number;</p><p>  time2=p1->equip.b

92、uy_date;</p><p><b>  h=p1;</b></p><p><b>  }</b></p><p>  p1=p1->next;</p><p><b>  }</b></p><p><b>  if(i==0)&

93、lt;/b></p><p><b>  {</b></p><p>  printf("設備%s不存在",e_ID);getch();</p><p><b>  return ;</b></p><p><b>  }</b></p>

94、<p><b>  else</b></p><p><b>  {</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  system("cls");</p&g

95、t;<p>  printf("請輸入要報廢時間的年(>=%d )\n",time2.year);</p><p>  scanf("%d",&time1.year);</p><p>  if(time1.year<time2.year) </p><p><b>  contin

96、ue;</b></p><p>  else if(time1.year==time2.year)</p><p><b>  {</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  

97、printf("請輸入要報廢時間的月(%d<=month<=12)\n",time2.month);</p><p>  scanf("%d",&time1.month);rewind(stdin);</p><p>  }while(time1.month>12||time1.month<1);</p>

98、<p>  if(time1.month<time2.month) continue;</p><p>  else if(time1.month==time2.month)</p><p><b>  {</b></p><p><b>  do</b></p><p><

99、b>  {</b></p><p>  printf("請輸入要報廢時間的日(%d<=day<=%d)\n",time2.day,DAY(time1.year,time1.month));</p><p>  scanf("%d",&time1.day);rewind(stdin);</p><

100、;p>  }while(time1.day<=0||time1.day>DAY(time1.year,time1.month));</p><p>  if(time1.day<time2.day) continue;</p><p><b>  else </b></p><p><b>  {</b&

101、gt;</p><p>  goto loop;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else </b></p><p><b>  {</b></p&g

102、t;<p><b>  do</b></p><p><b>  {</b></p><p>  printf("請輸入要報廢時間的日(1<=day<=%d)\n",DAY(time1.year,time1.month));</p><p>  scanf("%d&q

103、uot;,&time1.day);rewind(stdin);</p><p>  }while(time1.day<=0||time1.day>DAY(time1.year,time1.month));</p><p>  goto loop;</p><p><b>  }</b></p><p>

104、;<b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  do</b></p><p><b>  {</b></p><p>

105、  printf("請輸入要報廢時間的月(1<=month<=12)\n");</p><p>  scanf("%d",&time1.month);rewind(stdin);</p><p>  }while(time1.month>12||time1.month<1);</p><p>&

106、lt;b>  do</b></p><p><b>  {</b></p><p>  printf("請輸入要報廢時間的日(1<=day<=%d)\n",DAY(time1.year,time1.month));</p><p>  scanf("%d",&time

107、1.day);rewind(stdin);</p><p>  }while(time1.day<=0||time1.day>DAY(time1.year,time1.month));</p><p>  goto loop;</p><p><b>  }</b></p><p>  }while(1);&

108、lt;/p><p><b>  loop:do</b></p><p><b>  {</b></p><p>  printf("請輸入報廢臺數(1~%d)\n",a);</p><p>  scanf("%d",&c);rewind(stdin);&l

109、t;/p><p>  }while(c>a||c<=0);</p><p>  p1=head->next;</p><p>  while(p1!=NULL)</p><p><b>  {</b></p><p>  if(strcmp(e_ID,p1->equip.equ

110、ip_ID)==0&&strcmp(d_ID,p1->depar.depart_ID)==0&&p1->equip.b_number>0) </p><p>  p1->equip.b_number-=c;</p><p>  p1=p1->next;</p><p><b>  }</b

111、></p><p><b>  p=head;</b></p><p>  while(p->next!=NULL)</p><p>  p=p->next;</p><p>  p2=(infor *)malloc(LEN);//為新節(jié)點分配空間 </p><p><b

112、>  p2=h;</b></p><p>  strcpy(p2->depar.depart_ID,d_ID);</p><p>  strcpy(p2->equip.equip_ID,e_ID);</p><p>  p2->equip.a_number=c;</p><p>  p2->equip

113、.aban_data=time1;</p><p>  p2=p2->next;</p><p>  printf("報廢成功");</p><p><b>  }</b></p><p><b>  }</b></p><p><b> 

114、 else</b></p><p>  printf("無設備記錄,請先購買設備\n");getch();</p><p><b>  }</b></p><p>  int find_buyhistory()</p><p><b>  {</b></p>

115、;<p>  if(flag==1)</p><p><b>  {</b></p><p><b>  int i=0;</b></p><p>  char e_ID[20];</p><p>  system("cls");</p><p&

116、gt;  printf("\n\n\n\n\n\t\t\t 請輸入要查詢設備的設備編號\n");</p><p>  scanf("%s",e_ID);</p><p>  p1=head->next;</p><p>  while(p1!=NULL)</p><p><b>  

117、{</b></p><p>  if(strcmp(e_ID,p1->equip.equip_ID)==0&&p1->equip.b_number>0)</p><p><b>  i++;</b></p><p>  p1=p1->next;</p><p><

118、;b>  }</b></p><p><b>  if(i!=0)</b></p><p><b>  {</b></p><p>  p1=head->next;</p><p>  while(p1!=NULL)</p><p><b>

119、  {</b></p><p>  if(strcmp(e_ID,p1->equip.equip_ID)==0&&p1->equip.b_number>0) </p><p>  printf("部門編號: %s\n部門名稱: %s\n設備編號: %s\n設備名稱: %s\n購買臺數:%d\n購買時間: %d-%d-%d\n\n&qu

120、ot;,</p><p>  p1->depar.depart_ID,p1->depar.depart_name,p1->equip.equip_ID,p1->equip.equip_name,</p><p>  p1->equip.b_number,p1->equip.buy_date.year,p1->equip.buy_date.month

121、,</p><p>  p1->equip.buy_date.day); </p><p>  p1=p1->next;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b&g

122、t;</p><p>  printf("無%s的購買歷史",e_ID);</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  else</b></p><p> 

123、 printf("無設備記錄,請先購買設備\n");getch();</p><p><b>  }</b></p><p>  int find_abahistory()</p><p><b>  {</b></p><p>  if(flag==1)</p>

124、<p><b>  {</b></p><p><b>  int i=0;</b></p><p>  char d_ID[20];</p><p>  system("cls");</p><p>  printf("請輸入要查詢的部門編號\n"

125、);</p><p>  scanf("%s",d_ID);</p><p>  p1=head->next;</p><p>  while(p1!=NULL)</p><p><b>  {</b></p><p>  if(strcmp(d_ID,p1->de

126、par.depart_ID)==0&&p1->equip.a_number>0) </p><p><b>  i++;</b></p><p>  p1=p1->next;</p><p><b>  }</b></p><p><b>  if(i!=

127、0)</b></p><p><b>  {</b></p><p>  p1=head->next;</p><p>  while(p1!=NULL)</p><p><b>  {</b></p><p>  if(strcmp(d_ID,p1->

128、;depar.depart_ID)==0&&p1->equip.a_number>0) </p><p><b>  {</b></p><p>  printf("部門編號: %s\n部門名稱: %s\n設備編號: %s\n設備名稱: %s\n報廢臺數: %d\n報廢日期: %d-%d-%d\n",p1->dep

129、ar.depart_ID,p1->depar.depart_name,p1->equip.equip_ID,p1->equip.equip_name,p1->equip.a_number,p1->equip.aban_data.year,p1->equip.aban_data.month,p1->equip.aban_data.day); </p><p><b&g

130、t;  }</b></p><p>  p1=p1->next;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("

131、;無%s部門的報廢歷史",d_ID);</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("無設備記錄,請先購買設備\n")

132、;getch();</p><p><b>  }</b></p><p>  int find_equip()</p><p><b>  {</b></p><p>  if(flag==1)</p><p><b>  {</b></p>

133、;<p><b>  int i=0;</b></p><p>  unsigned long day;</p><p>  system("cls");</p><p>  printf("請輸入要查詢的日期\n");</p><p>  scanf("%

134、ld",&day);</p><p>  p1=head->next;</p><p>  while(p1!=NULL)</p><p><b>  {</b></p><p>  if((p1->equip.aban_data.year*10000+p1->equip.aban_d

135、ata.month*100+p1->equip.aban_data.day)>=day&&p1->equip.b_number>0) </p><p><b>  {</b></p><p>  printf("部門編號: %s\n部門名稱: %s\n設備編號: %s\n設備名稱: %s\n臺數: %d%\n\n&qu

136、ot;,p1->depar.depart_ID,p1->depar.depart_name,p1->equip.equip_ID,p1->equip.equip_name,p1->equip.b_number); </p><p><b>  i++;</b></p><p><b>  }</b></p>

137、;<p>  p1=p1->next;</p><p><b>  }</b></p><p><b>  getch();</b></p><p><b>  if(i==0)</b></p><p>  printf("\n\n\n\t\t\t

138、%ld之后無可用設備",day);</p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("無設備記錄,請先購買設備\n");getch();</p><p><b>  }</b>

139、</p><p>  int DAY(int year,int month)</p><p><b>  {</b></p><p>  if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)</p><p>  return

140、31;</p><p>  else if(month==4||month==6||month==9||month==11)</p><p>  return 30;</p><p><b>  else</b></p><p><b>  {</b></p><p>  i

141、f((year%4==0&&year%100!=0)||(year%400==0))</p><p>  return 29;</p><p><b>  else</b></p><p>  return 28;</p><p><b>  }</b></p><

142、;p><b>  }</b></p><p>  int sysTime()</p><p><b>  {</b></p><p>  unsigned long day;</p><p>  time_t rawtime;</p><p>  struct tm *

143、timeinfo;</p><p>  time(&rawtime);</p><p>  timeinfo=localtime(&rawtime);</p><p>  returnday=(1900+timeinfo->tm_year)*10000+(1+timeinfo->tm_mon)*100+timeinfo->tm_m

溫馨提示

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

評論

0/150

提交評論