2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  建筑材料貨存管理系統(tǒng)</p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p><b>  功能描述</b></p><p>  此貨存管理系統(tǒng)主要利用單鏈表實(shí)現(xiàn),由如下七個(gè)功能模塊實(shí)現(xiàn):</p><p>  1、讀取記錄:以只讀方式打開文件,方便當(dāng)前內(nèi)容已存入文件時(shí)的

2、處理,以免出現(xiàn)重復(fù)。</p><p>  2、保存記錄模塊:保存你所輸入的貨物信息。</p><p>  3、添加記錄模塊:添加貨物(名稱、品牌、價(jià)格、數(shù)量、日期)。</p><p>  4、刪除記錄模塊:刪除某項(xiàng)貨物的數(shù)據(jù)。</p><p>  5、查詢記錄模塊:查詢某項(xiàng)貨物的數(shù)據(jù)。</p><p>  6、更改記錄

3、模塊:修改某項(xiàng)貨物的數(shù)據(jù)。</p><p>  7、統(tǒng)計(jì)功能模塊:統(tǒng)計(jì)貨物花費(fèi)金額。(該功能模塊下又有子菜單,由四個(gè)功能模塊實(shí)現(xiàn))。</p><p><b>  二、總體設(shè)計(jì)</b></p><p><b>  1、功能模塊設(shè)計(jì)</b></p><p> ?。?)主函數(shù)執(zhí)行流程</p>

4、<p>  進(jìn)入主菜單,利用開關(guān)(switch)分支,很據(jù)條件的取值來選擇其中的一個(gè)分支。進(jìn)入所選分支后,調(diào)用相應(yīng)的函數(shù)來執(zhí)行菜單任務(wù)。</p><p><b> ?。?)讀取記錄模塊</b></p><p>  由if語句判斷該文件是否存在,若不存在,由printf提示“打開文件失敗”;若存在,用當(dāng)型循環(huán)語句(while)先判斷是否清除記錄,再利用whi

5、le循環(huán)語句讀取文件。</p><p><b>  (3)保存記錄模塊</b></p><p>  首先由if 語句判斷是否有記錄錄入,若無,則由printf“提示尚未錄入任何記錄”,同時(shí)已只寫方式打開文件并清空文件內(nèi)容,提示“保存失敗”;若存在,將鏈表內(nèi)容逐條寫入文件中,提示“寫入文件成功!”。</p><p><b>  (4)添

6、加記錄模塊</b></p><p>  首先提示“要添加記錄條數(shù):”,利用for循環(huán)逐個(gè)添加貨物記錄,其中包括名稱、品牌、價(jià)格、數(shù)量、日期。</p><p><b> ?。?)刪除記錄模塊</b></p><p>  首先提示“請輸入要?jiǎng)h除記錄的編號(hào):”,進(jìn)入while循環(huán)語句,先由if條件語句判斷輸入記錄編號(hào)是否與記錄相符,若相符

7、則顯示該條記錄信息并提示用戶“是否確認(rèn)刪除?(y/n):”,若選擇“y”,則提示“刪除成功”;反之提示“放棄刪除”。</p><p><b> ?。?)查詢記錄模塊</b></p><p>  先由if語句判斷是否存在記錄,若無則提示“尚未錄入任何記錄!”;若有則進(jìn)入while循環(huán),循環(huán)中同樣利用菜單選擇,由switch來執(zhí)行。其中包含findall()和findso

8、me()兩個(gè)調(diào)用函數(shù)。</p><p><b> ?。?)更改記錄模塊</b></p><p>  首先提示“請輸入查詢材料的編號(hào):”,進(jìn)入while循環(huán)語句,用if語句進(jìn)行判斷,若與錄入記錄材料編號(hào)相符,則顯示該材料的原信息并提示“請輸入你所修改的新信息:”,依次輸入更改后的信息即可;若不相符,則提示“無該項(xiàng)記錄!”。</p><p><

9、;b> ?。?)統(tǒng)計(jì)記錄模塊</b></p><p>  先由if語句判斷是否存在記錄,若無則提示“尚未錄入任何記錄!”;若有則進(jìn)入while循環(huán),接著該模塊利用一個(gè)子菜單及switch分支來執(zhí)行任務(wù)。其中包含tongji_all()、tongji_name()、tongji_pinpai()、tongji_date()調(diào)用函數(shù)來分別實(shí)現(xiàn)統(tǒng)計(jì)所有材料資金、按名稱統(tǒng)計(jì)資金、按品牌統(tǒng)計(jì)資金、按日期統(tǒng)

10、計(jì)資金的功能。</p><p><b>  三、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p>  1、建筑材料貨存信息結(jié)構(gòu)體</p><p>  typedef struct node//結(jié)構(gòu)體定義</p><p><b>  {</b></p><p>  int number;&

11、lt;/p><p>  char name[20];</p><p>  char pinpai[20];</p><p>  int price;</p><p>  int count;</p><p>  char date[20];</p><p>  struct node *next;&

12、lt;/p><p>  }linklist;</p><p>  linklist *head = NULL;//頭結(jié)點(diǎn)指針</p><p>  linklist *end = NULL;//尾節(jié)點(diǎn)指針</p><p>  int Number=1;//編號(hào)</p><p><b>  四、函數(shù)功能

13、描述</b></p><p>  1、read_file()</p><p>  函數(shù)原型:read_file()</p><p><b>  參數(shù)含義:無參數(shù)</b></p><p>  2、write_file()</p><p>  函數(shù)原型:write_file()</p

14、><p><b>  參數(shù)含義:無參數(shù)</b></p><p><b>  3、add()</b></p><p>  函數(shù)原型:add()</p><p><b>  參數(shù)含義:無參數(shù)</b></p><p><b>  4、delet()<

15、;/b></p><p>  函數(shù)原型:delet()</p><p><b>  參數(shù)含義:無參數(shù)</b></p><p><b>  5、find()</b></p><p>  函數(shù)原型:find()</p><p><b>  參數(shù)含義:無參數(shù)&l

16、t;/b></p><p>  6、change()</p><p>  函數(shù)原型:change()</p><p><b>  參數(shù)含義:無參數(shù)</b></p><p>  7、tongji()</p><p>  函數(shù)原型:tongji()</p><p><

17、;b>  參數(shù)含義:無參數(shù)</b></p><p><b>  五、程序?qū)崿F(xiàn)</b></p><p><b>  1、源代碼分析</b></p><p><b> ?、懦绦蝾A(yù)處理</b></p><p>  包括加載頭文件,定義結(jié)構(gòu)體、常量和變量,并對(duì)它們進(jìn)行

18、初始化工作。</p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<conio.h></p><p>  #include<string.h></p><p> ?、浦骱瘮?shù)m

19、ain()</p><p>  void main()//主函數(shù)</p><p><b>  { </b></p><p><b>  char a;</b></p><p><b>  while(1)</b></p><p>  { syste

20、m("color 0b");</p><p>  printf(" *************** 建 筑 材 料 管 理 系 統(tǒng) *******************\n\n");</p><p>  printf(" *********************菜 單***************

21、************\n\n");</p><p>  printf(" * ======================================================= * \n");</p><p>  printf(" * 1. 讀 取 記 錄

22、 * \n");</p><p>  printf(" * 2. 保 存 記 錄 * \n");</p><p>  printf(" * 3. 添 加 記 錄

23、 * \n");</p><p>  printf(" * 4. 刪 除 記 錄 * \n");</p><p>  printf(" * 5. 查 詢 記 錄

24、 * \n");</p><p>  printf(" * 6. 更 改 記 錄 * \n");</p><p>  printf(" * 7. 統(tǒng) 計(jì)

25、 功 能 * \n");</p><p>  printf(" * 0. 退 出 系 統(tǒng) * \n");</p><p>  printf(" * ------------------

26、------------------------------------- * \n");</p><p>  printf(" 請輸入你要進(jìn)行的操作:");</p><p>  printf(" ***********************************************************\n\

27、n\n");</p><p>  printf("\t\t ********09級(jí)給水排水班*********** \n");</p><p>  printf("\t\t * 劉楊 (0905205009) * \n");<

28、/p><p>  printf("\t\t * 任靜 (0905205018) * \n");</p><p>  printf("\t\t * 劉衛(wèi)平(0905205007) * \n");</p><p>  print

29、f(" *********************●●歡迎使用●●**********************");</p><p>  a=getch();</p><p>  system("cls");</p><p><b>  switch(a)</b></p>&l

30、t;p><b>  {</b></p><p>  case '1': read_file();break;</p><p>  case '2': write_file(); break;</p><p>  case '3': add();break;</p><p&

31、gt;  case '4': delet();break;</p><p>  case '5': find();break;</p><p>  case '6': change();break;</p><p>  case '7': tongji();break;</p><p

32、>  case '0':printf("\n 感謝使用建筑材料管理系統(tǒng)\n 按任意鍵退出......\n");return;break;</p><p>  default:printf("輸入錯(cuò)誤,請重新選擇!\n\n");</p><p><b>  }</b></p>

33、;<p><b>  }</b></p><p><b>  }</b></p><p><b> ?、侵鞑藛谓缑?lt;/b></p><p>  、printf(" *************** 建 筑 材 料 管 理 系 統(tǒng) ******************

34、*\n\n");</p><p>  printf(" *********************菜 單***************************\n\n");</p><p>  printf(" * ================================================

35、======= * \n");</p><p>  printf(" * 1. 讀 取 記 錄 * \n");</p><p>  printf(" * 2. 保 存 記 錄

36、 * \n");</p><p>  printf(" * 3. 添 加 記 錄 * \n");</p><p>  printf(" * 4. 刪 除 記 錄

37、 * \n");</p><p>  printf(" * 5. 查 詢 記 錄 * \n");</p><p>  printf(" * 6. 更 改 記 錄

38、 * \n");</p><p>  printf(" * 7. 統(tǒng) 計(jì) 功 能 * \n");</p><p>  printf(" * 0. 退 出 系 統(tǒng)

39、 * \n");</p><p>  printf(" * ------------------------------------------------------- * \n");</p><p>  printf(" 請輸入你要進(jìn)行的操作:");<

40、/p><p>  printf(" ***********************************************************\n\n\n");</p><p>  printf("\t\t ********09級(jí)給水排水班*********** \n");

41、</p><p>  printf("\t\t * 劉楊 (0905205009) * \n");</p><p>  printf("\t\t * 任靜 (0905205018) * \n");</p><p>  p

42、rintf("\t\t * 劉衛(wèi)平(0905205007) * \n");</p><p>  printf(" *********************●●歡迎使用●●**********************");</p><p><b>  (3)調(diào)用函數(shù)<

43、/b></p><p><b>  讀取記錄函數(shù)</b></p><p>  void read_file()//文件讀取</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  

44、linklist *p,*q;</p><p>  int i=0;//統(tǒng)計(jì)讀取記錄條數(shù)</p><p><b>  char a;</b></p><p>  if((fp=fopen("建筑材料記錄.txt","r"))==NULL)//以只讀方式打開文件,該文件必須已經(jīng)存在</p>

45、<p><b>  {</b></p><p>  printf("\n打開文件失敗!按任意鍵返回。\n");</p><p><b>  getch();</b></p><p>  system("cls");</p><p><b&g

46、t;  return;</b></p><p><b>  }</b></p><p>  if(head != NULL)</p><p><b>  {</b></p><p>  printf("當(dāng)前已有記錄,打開文件時(shí)是否清除?(y/n)\n");//方便

47、當(dāng)前內(nèi)容已存入文件時(shí)的處理,以免出現(xiàn)重復(fù)</p><p>  a=getch();</p><p>  if(a=='y' || a=='Y')</p><p><b>  {</b></p><p>  while(head!=NULL)</p><p>&

48、lt;b>  {</b></p><p><b>  q=head;</b></p><p>  head=head->next;</p><p><b>  free(q);</b></p><p>  }//從頭結(jié)點(diǎn)開始釋放所有鏈表節(jié)點(diǎn)的空間</p>

49、<p>  Number=1;//重置編號(hào)</p><p>  printf("清除記錄成功,按任意鍵繼續(xù)讀取文件。\n");</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  system("

50、;cls");</p><p><b>  }</b></p><p>  p=(linklist*)malloc(sizeof(linklist));//p先申請空間,再讀取文件中內(nèi)容放入p中</p><p>  while((fscanf(fp,"%20s %20s %10d %10d %20s\n",p-

51、>name,p->pinpai,&p->price,&p->count,p->date))!=EOF)</p><p><b>  {</b></p><p>  p->number=Number;</p><p>  if(head==NULL)</p><p>&l

52、t;b>  {</b></p><p>  head=p;//將p中數(shù)據(jù)作為頭結(jié)點(diǎn)</p><p>  head->next=NULL;</p><p><b>  end=head;</b></p><p><b>  }</b></p><p>

53、;<b>  else</b></p><p><b>  {</b></p><p>  end->next=p;</p><p>  end=end->next;//使尾節(jié)點(diǎn)的下一節(jié)點(diǎn)指針指向p中數(shù)據(jù),再將尾節(jié)點(diǎn)后移</p><p>  end->next=NULL;&

54、lt;/p><p><b>  }</b></p><p>  p=(linklist*)malloc(sizeof(linklist));</p><p><b>  Number++;</b></p><p><b>  i++;</b></p><p>

55、;<b>  }</b></p><p>  free(p);//因最后一次讀取的內(nèi)容為EOF,所以釋放該空間</p><p>  fclose(fp);</p><p>  printf("文件讀取成功,共添加%d條記錄,按任意鍵返回主菜單。\n",i);</p><p><b> 

56、 getch();</b></p><p>  system("cls");</p><p><b>  }</b></p><p><b>  保存記錄函數(shù)</b></p><p>  void write_file()//文件寫入</p>&

57、lt;p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  linklist *p;</p><p><b>  p=head;</b></p><p>  if(head==NULL)//未錄入記錄時(shí)的處理</

58、p><p><b>  {</b></p><p>  printf("\t尚未錄入任何記錄!按任意鍵返回主菜單。");</p><p><b>  getch();</b></p><p>  system("cls");</p><p>

59、;<b>  return;</b></p><p><b>  }</b></p><p>  if((fp=fopen("建筑材料記錄.txt","w"))==NULL)//已只寫方式打開文件并清空文件內(nèi)容</p><p><b>  {</b><

60、/p><p>  printf("保存失敗!\n");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  while(p != NULL)&l

61、t;/p><p><b>  {</b></p><p>  fprintf(fp,"%20s %20s %10d %10d %20s\n",p->name,p->pinpai,p->price,p->count,p->date);</p><p>  p=p->next;</p>

62、<p>  }//將鏈表內(nèi)容逐條寫入文件中</p><p>  printf("寫入文件成功!\n");</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  printf("按任意鍵返回主菜單。\n");<

63、;/p><p><b>  getch();</b></p><p>  system("cls");</p><p><b>  }</b></p><p><b>  添加記錄函數(shù)</b></p><p>  void add()

64、//添加函數(shù)</p><p><b>  {</b></p><p><b>  int n,i;</b></p><p>  printf("要添加記錄條數(shù):");</p><p>  scanf("%d",&n);</p><

65、p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  if(head==NULL)</p><p><b>  {</b></p><p>  head=(linklist*)malloc(sizeof(linklist));</p&

66、gt;<p>  head->next=NULL;</p><p><b>  end=head;</b></p><p>  }//第一個(gè)節(jié)點(diǎn)的處理</p><p><b>  else</b></p><p><b>  {</b></p>

67、;<p>  end->next=(linklist*)malloc(sizeof(linklist));</p><p>  end=end->next;</p><p>  end->next=NULL;</p><p>  }//每添加一個(gè)節(jié)點(diǎn),尾指針后移</p><p>  printf("

68、;本條記錄編號(hào):%d\n",Number);</p><p>  end->number=Number;</p><p>  printf("請輸入名稱:");</p><p>  scanf("%s",end->name);</p><p>  printf("請輸入品

69、牌:");</p><p>  scanf("%s",end->pinpai);</p><p>  printf("請輸入價(jià)格:");</p><p>  scanf("%d",&end->price);</p><p>  printf("

70、請輸入數(shù)量:");</p><p>  scanf("%d",&end->count);</p><p>  printf("請輸入日期:");</p><p>  scanf("%s",end->date);</p><p><b>  Nu

71、mber++;</b></p><p>  system("cls");</p><p>  printf("第%d條記錄添加成功!\n",i+1);</p><p><b>  }</b></p><p>  printf("按任意鍵返回主菜單。\n&quo

72、t;);</p><p><b>  getch();</b></p><p>  system("cls");</p><p><b>  }</b></p><p><b>  刪除記錄函數(shù)</b></p><p>  void

73、delet()//刪除函數(shù)</p><p><b>  {</b></p><p>  linklist *p,*q,*m;//q記錄刪除節(jié)點(diǎn)的上一個(gè)節(jié)點(diǎn),m記錄刪除節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)</p><p>  int number;</p><p><b>  p=head;</b></p&

74、gt;<p><b>  q=NULL;</b></p><p>  printf("請輸入要?jiǎng)h除記錄的編號(hào):");</p><p>  scanf("%d",&number);</p><p>  while(p!=NULL)</p><p><b&g

75、t;  {</b></p><p>  if(number == p->number)</p><p><b>  {</b></p><p><b>  char c;</b></p><p>  printf("要?jiǎng)h除的記錄為:\n");</p>

76、<p>  printf("編號(hào):%d,名稱:%s,品牌:%s,價(jià)格:%d,數(shù)量:%d,日期:%s\n",p->number,p->name,p->pinpai,p->price,p->count,p->date);</p><p>  printf("是否確認(rèn)刪除?(y/n):\n");</p><p&

77、gt;  c=getch();</p><p>  system("cls");</p><p>  if(c=='y' || c=='Y')</p><p><b>  {</b></p><p>  if(p==head)</p><p>&

78、lt;b>  {</b></p><p>  head=head->next;</p><p>  m=p->next;</p><p><b>  free(p);</b></p><p>  }//刪除頭結(jié)點(diǎn)的處理</p><p><b>  els

79、e</b></p><p><b>  {</b></p><p>  q->next=p->next;</p><p>  m=p->next;</p><p><b>  free(p);</b></p><p>  }//將p的上一個(gè)節(jié)

80、點(diǎn)的末尾指針指向p的下一個(gè)節(jié)點(diǎn)過后再釋放p</p><p>  while(m != NULL)//m為刪除節(jié)點(diǎn)之后的節(jié)點(diǎn)指針,當(dāng)其不為空時(shí),將后面節(jié)點(diǎn)的編號(hào)減1</p><p><b>  {</b></p><p>  m->number--;</p><p>  m=m->next;</p>

81、<p><b>  }</b></p><p>  Number--;//記錄的總編號(hào)數(shù)減1</p><p>  printf("刪除成功!\n");</p><p><b>  }</b></p><p><b>  else</b>

82、</p><p><b>  {</b></p><p>  printf("放棄刪除。\n");</p><p><b>  }</b></p><p>  printf("按任意鍵返回。\n");</p><p><b>

83、  getch();</b></p><p>  system("cls");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  q=p;</b></p><

84、;p>  p=p->next;</p><p><b>  }</b></p><p>  printf("無該項(xiàng)記錄!\n");//若有記錄,在while循環(huán)中會(huì)自動(dòng)結(jié)束此函數(shù)</p><p>  printf("按任意鍵返回。\n");</p><p><

85、b>  getch();</b></p><p>  system("cls");</p><p><b>  }</b></p><p><b>  查詢記錄函數(shù)</b></p><p>  void find()//查詢函數(shù)</p>&l

86、t;p><b>  {</b></p><p><b>  char a;</b></p><p>  void findall();</p><p>  void findsome();</p><p>  if(head==NULL)</p><p><b&g

87、t;  {</b></p><p>  printf("\t尚未錄入任何記錄!按任意鍵返回主菜單。");</p><p><b>  getch();</b></p><p>  system("cls");</p><p><b>  return;<

88、/b></p><p><b>  }</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  printf("\n *************** 查詢 ****

89、**************\n");</p><p>  printf(" *************************菜單********************************\n");</p><p>  printf(" * =======================================

90、================== * \n");</p><p>  printf(" * 1. 查詢所有記錄 * \n");</p><p>  printf(" * 2. 按名稱查詢記錄

91、 * \n");</p><p>  printf(" * 0. 退出查詢系統(tǒng) * \n");</p><p>  printf(" * --------------------------------------

92、------------------- * \n");</p><p>  printf(" 請輸入查詢的方式:");</p><p>  a=getch();</p><p>  system("cls");</p><p><b>  switch(a)</b>

93、;</p><p><b>  {</b></p><p>  case '0':return;break;</p><p>  case '1':findall();break;</p><p>  case '2':findsome();break;</p>

94、<p>  default:printf("輸入錯(cuò)誤,請重新選擇!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void findall(

95、)</p><p><b>  {</b></p><p>  linklist *p;</p><p>  p=head;//使P指向頭結(jié)點(diǎn)</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p&g

96、t;  printf("編號(hào):%d,名稱:%s,品牌:%s,價(jià)格:%d,數(shù)量:%d,日期:%s\n",p->number,p->name,p->pinpai,p->price,p->count,p->date);</p><p>  p=p->next;//將P指向下一個(gè)節(jié)點(diǎn)</p><p><b>  }<

97、;/b></p><p>  printf("按任意鍵返回。\n");</p><p><b>  getch();</b></p><p>  system("cls");</p><p><b>  }</b></p><p>

98、;  void findsome()</p><p><b>  {</b></p><p>  int n=0;//標(biāo)記是否有找到相關(guān)內(nèi)容</p><p>  linklist *p;</p><p>  char name[20];</p><p><b>  p=head;&l

99、t;/b></p><p>  printf("請輸入查詢材料的名稱:");</p><p>  scanf("%s",name);</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  if((

100、strcmp(name,p->name)) == 0)</p><p><b>  {</b></p><p>  if(n==0)//第一次查到相關(guān)內(nèi)容</p><p><b>  {</b></p><p>  printf("你要查詢的記錄為:\n");</

101、p><p><b>  }</b></p><p>  printf("編號(hào):%d,名稱:%s,品牌:%s,價(jià)格:%d,數(shù)量:%d,日期:%s\n",p->number,p->name,p->pinpai,p->price,p->count,p->date);</p><p><b>

102、;  n=1;</b></p><p><b>  }</b></p><p>  p=p->next;</p><p><b>  }</b></p><p><b>  if(n==0)</b></p><p><b> 

103、 {</b></p><p>  printf("無所查詢的記錄!\n");</p><p><b>  }</b></p><p>  printf("按任意鍵返回。\n");</p><p><b>  getch();</b></p&g

104、t;<p>  system("cls");</p><p><b>  }</b></p><p><b>  記錄更改函數(shù)</b></p><p>  void change()//修改函數(shù)</p><p><b>  {</b>&l

105、t;/p><p>  linklist *p;</p><p>  int number;</p><p><b>  p=head;</b></p><p>  printf("請輸入要修改記錄的編號(hào):");</p><p>  scanf("%d",&

106、;number);</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  if(number == p->number)</p><p><b>  {</b></p><p>  printf("原記錄

107、為:\n");</p><p>  printf("編號(hào):%d,名稱:%s,品牌:%s,價(jià)格:%d,數(shù)量:%d,日期:%s\n",p->number,p->name,p->pinpai,p->price,p->count,p->date);</p><p>  printf("請輸入你所修改的新信息:\n"

108、;);</p><p>  printf("請輸入名稱:");</p><p>  scanf("%s",p->name);</p><p>  printf("請輸入品牌:");</p><p>  scanf("%s",p->pinpai);<

109、;/p><p>  printf("請輸入價(jià)格:");</p><p>  scanf("%d",&p->price);</p><p>  printf("請輸入數(shù)量:");</p><p>  scanf("%d",&p->count)

110、;</p><p>  printf("請輸入日期:");</p><p>  scanf("%s",p->date);</p><p>  printf("按任意鍵返回。\n");</p><p><b>  getch();</b></p>

111、<p>  system("cls");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  p=p->next;</p><p><b>  }</b></p>

112、<p>  printf("無該項(xiàng)記錄!\n");</p><p>  printf("按任意鍵返回。\n");</p><p><b>  getch();</b></p><p>  system("cls");</p><p><b>

113、  }</b></p><p><b>  統(tǒng)計(jì)資金函數(shù)</b></p><p>  void tongji()//統(tǒng)計(jì)函數(shù)</p><p><b>  {</b></p><p><b>  char a;</b></p><p> 

114、 void tongji_all();</p><p>  void tongji_name();</p><p>  void tongji_pinpai();</p><p>  void tongji_date();</p><p>  if(head==NULL)</p><p><b>  {<

115、;/b></p><p>  printf("\t尚未錄入任何記錄!按任意鍵返回主菜單。");</p><p><b>  getch();</b></p><p>  system("cls");</p><p><b>  return;</b>&l

116、t;/p><p><b>  }</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  printf("\n *************** 統(tǒng)計(jì) ************

117、******\n");</p><p>  printf(" *************************菜單********************************\n");</p><p>  printf(" * ===============================================

118、========== * \n");</p><p>  printf(" * 1. 統(tǒng)計(jì)所有材料資金 * \n");</p><p>  printf(" * 2. 按名稱統(tǒng)計(jì)資金

119、 * \n");</p><p>  printf(" * 3. 按品牌統(tǒng)計(jì)資金 * \n");</p><p>  printf(" * 4. 按日期統(tǒng)計(jì)資金

120、 * \n");</p><p>  printf(" * 0. 退出查詢系統(tǒng) * \n");</p><p>  printf(" * ----------------------------------------

121、----------------- * \n");</p><p>  printf(" 請輸入統(tǒng)計(jì)內(nèi)容:");</p><p>  a=getch();</p><p>  system("cls");</p><p><b>  switch(a)</b>&l

122、t;/p><p><b>  {</b></p><p>  case '0':return;break;</p><p>  case '1':tongji_all();break;</p><p>  case '2':tongji_name();break;</p&

123、gt;<p>  case '3':tongji_pinpai();break;</p><p>  case '4':tongji_date();break;</p><p>  default:printf("輸入錯(cuò)誤,請重新選擇!\n");</p><p><b>  }</b&

124、gt;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void tongji_all()//統(tǒng)計(jì)所有材料資金</p><p><b>  {</b></p><p>  linklist *p;&

125、lt;/p><p>  int money=0;</p><p>  p=head;</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  money=money+p->price*p->count;</p>&l

126、t;p>  p=p->next;</p><p><b>  }</b></p><p>  printf("所有材料所花的資金為:%d。\n",money);</p><p>  printf("按任意鍵返回。\n");</p><p><b>  g

127、etch();</b></p><p>  system("cls");</p><p><b>  }</b></p><p>  void tongji_name()</p><p><b>  {</b></p><p>  int n=

128、0;//標(biāo)記是否有找到相關(guān)內(nèi)容</p><p>  int money=0;</p><p>  linklist *p;</p><p>  char name[20];</p><p><b>  p=head;</b></p><p>  printf("請輸入需統(tǒng)計(jì)材料的

129、名稱:");</p><p>  scanf("%s",name);</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  if((strcmp(name,p->name)) == 0)//該條記錄與輸入名稱相同,將該項(xiàng)記錄的

130、資金計(jì)入</p><p><b>  {</b></p><p>  money=money+p->price*p->count;</p><p><b>  n=1;</b></p><p><b>  }</b></p><p>  p=

131、p->next;</p><p><b>  }</b></p><p><b>  if(n==0)</b></p><p><b>  {</b></p><p>  printf("尚未錄入該材料的任何記錄!\n");</p>&l

132、t;p><b>  }</b></p><p>  else//有該材料記錄時(shí),輸出統(tǒng)計(jì)出的金額</p><p><b>  {</b></p><p>  printf("材料 %s 目前所花資金為:%d\n",name,money);</p><p><b&g

133、t;  }</b></p><p>  printf("按任意鍵返回。\n");</p><p><b>  getch();</b></p><p>  system("cls");</p><p><b>  }</b></p>

134、<p>  void tongji_pinpai()</p><p><b>  {</b></p><p>  int n=0;//標(biāo)記是否有找到相關(guān)內(nèi)容</p><p>  int money=0;</p><p>  linklist *p;</p><p>  char

135、pinpai[20];</p><p><b>  p=head;</b></p><p>  printf("請輸入需統(tǒng)計(jì)的品牌:");</p><p>  scanf("%s",pinpai);</p><p>  while(p!=NULL)</p><p

136、><b>  {</b></p><p>  if((strcmp(pinpai,p->pinpai)) == 0)//該條記錄與輸入品牌相同,將該項(xiàng)記錄的資金計(jì)入</p><p><b>  {</b></p><p>  money=money+p->price*p->count;</

137、p><p><b>  n=1;</b></p><p><b>  }</b></p><p>  p=p->next;</p><p><b>  }</b></p><p><b>  if(n==0)</b></p&

138、gt;<p><b>  {</b></p><p>  printf("尚未錄入該品牌的任何記錄!\n");</p><p><b>  }</b></p><p>  else//有該品牌記錄時(shí),輸出統(tǒng)計(jì)出的金額</p><p><b>  {&l

139、t;/b></p><p>  printf("品牌 %s 目前所花資金為:%d\n",pinpai,money);</p><p><b>  }</b></p><p>  printf("按任意鍵返回。\n");</p><p><b>  getch();&

140、lt;/b></p><p>  system("cls");</p><p><b>  }</b></p><p>  void tongji_date()</p><p><b>  {</b></p><p>  int n=0;//

141、標(biāo)記是否有找到相關(guān)內(nèi)容</p><p>  int money=0;</p><p>  linklist *p;</p><p>  char date[20];</p><p><b>  p=head;</b></p><p>  printf("請輸入需統(tǒng)計(jì)的日期:")

142、;</p><p>  scanf("%s",date);</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  if((strcmp(date,p->date)) == 0)//該條記錄與輸入日期相同,將該項(xiàng)記錄的資金計(jì)入</p

143、><p><b>  {</b></p><p>  money=money+p->price*p->count;</p><p><b>  n=1;</b></p><p><b>  }</b></p><p>  p=p->next

144、;</p><p><b>  }</b></p><p><b>  if(n==0)</b></p><p><b>  {</b></p><p>  printf("尚未錄入該日期的任何記錄!\n");</p><p><

145、;b>  }</b></p><p>  else//有該日期記錄時(shí),輸出統(tǒng)計(jì)出的金額</p><p><b>  {</b></p><p>  printf(" %s 當(dāng)天所花資金為:%d\n",date,money);</p><p><b>  }</b&

146、gt;</p><p>  printf("按任意鍵返回。\n");</p><p><b>  getch();</b></p><p>  system("cls");</p><p><b>  }</b></p><p><

147、;b>  六、運(yùn)行結(jié)果</b></p><p><b>  1、 主界面</b></p><p>  建筑材料庫存管理系統(tǒng)</p><p><b>  2、讀取記錄</b></p><p><b>  3、保存記錄</b></p><p&g

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論