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

下載本文檔

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

文檔簡介

1、<p><b>  C語言課程設(shè)計 </b></p><p>  名稱:建筑工地信息管理系統(tǒng)</p><p><b>  目錄</b></p><p>  前言……………………………………………………………3</p><p>  題目要求………………………………………………………3<

2、;/p><p>  題目分析………………………………………………………3</p><p>  總體設(shè)計………………………………………………………3</p><p>  詳細(xì)設(shè)計………………………………………………………4</p><p>  5.1主函數(shù)…………………………………………………………4</p><p>  5

3、.2各功能模塊……………………………………………………6</p><p>  5.2.1數(shù)據(jù)輸入模塊……………………………………………6</p><p>  5.2.2刪除模塊…………………………………………………11</p><p>  5.2.3查找模塊…………………………………………………17</p><p>  5.2.4查找配對模塊

4、……………………………………………21</p><p>  六、上機(jī)操作…………………………………………………………24</p><p>  七、實(shí)習(xí)心得…………………………………………………………28</p><p>  八、附錄(程序源代碼)……………………………………………29</p><p><b>  前言</b&g

5、t;</p><p>  課程設(shè)計目的:C語言編程實(shí)踐是學(xué)習(xí)C語言的一個重要環(huán)節(jié),為提高學(xué)生的程序設(shè)計能力,通過課堂和上機(jī)實(shí)踐使學(xué)生的程序設(shè)計能力有一個上升的臺階。通過前四單元的溫故而知新、庖丁解牛、舉一反三、熟能生巧等過程的練習(xí)之后能夠解決一些簡單的實(shí)際問題。</p><p><b>  一、題目要求</b></p><p>  設(shè)計:“建筑

6、工地信息管理系統(tǒng)”</p><p>  建立如下4個文件(括號內(nèi)為文件中每條記錄的字段內(nèi)容):</p><p>  銷售商-配件-建筑工地 (銷售商號碼,配件號,工地號,數(shù)量)</p><p>  建筑工地 (工地號,名字,城市)</p><p>  配件 (配件號,配件名,顏色,重量,產(chǎn)地)</p><p>  銷售

7、商 (號碼,名字,狀態(tài),城市)</p><p><b>  功能:</b></p><p>  首先建立文件,然后插入數(shù)據(jù),并進(jìn)行刪除、更新操作,最后進(jìn)行查詢操作。</p><p>  查詢與供應(yīng)商所在城市相同的零件——供應(yīng)商,項(xiàng)目——供應(yīng)商記錄對。</p><p><b>  二、題目分析</b>

8、</p><p>  根據(jù)題目要求,建立文件,應(yīng)選擇結(jié)構(gòu)體數(shù)組來存放數(shù)據(jù),再定義一個全局變量和文件指針進(jìn)行程序的運(yùn)行,然后把數(shù)據(jù)信息存入文件中,所以要提供結(jié)構(gòu)體和文件的輸入輸出等操作;在程序中要進(jìn)行數(shù)據(jù)的插入、刪除、更新、查詢等操作,所以需要建立相應(yīng)的模塊來實(shí)現(xiàn),為簡便起見,還應(yīng)建立一個主菜單,在每個模塊中建立相應(yīng)的副菜單;另外,還要提供鍵盤式選擇菜單來實(shí)現(xiàn)選擇功能,使程序在運(yùn)行時達(dá)到要求。</p>

9、<p><b>  三、總體設(shè)計</b></p><p>  根據(jù)題目要求,可以將系統(tǒng)分為:</p><p><b>  插入數(shù)據(jù)模塊;</b></p><p><b>  刪除模塊;</b></p><p><b>  查詢模塊;</b>&l

10、t;/p><p><b>  查找配對;</b></p><p><b>  功能選擇菜</b></p><p>  圖1 系統(tǒng)功能模塊圖</p><p><b>  四、詳細(xì)設(shè)計</b></p><p><b>  一、主函數(shù)</b&g

11、t;</p><p>  【分析】 主函數(shù)一般設(shè)計得比較簡便,只提供輸入、處理和輸出部分的函數(shù)調(diào)用。其中各功能模塊用菜單方式選擇。其流程圖:</p><p>  圖2 主函數(shù)流程圖</p><p><b>  【程序】</b></p><p>  /************************主菜單**

12、*******************************/ </p><p>  void menu() </p><p><b>  { int n;</b></p><p>  puts("\t\t************建筑工地信息管理***********\n\n"); </p><p&g

13、t;  puts("姓名:宋伯石"); </p><p>  puts("學(xué)號:20101002811"); </p><p>  puts("班學(xué)號:051103-18"); </p><p>  puts("\t\t****************MENU*******************

14、\n\n"); </p><p>  puts("\t\t\t\t1.輸入"); </p><p>  puts("\t\t\t\t2.刪除");</p><p>  puts("\t\t\t\t3.查找"); </p><p>  puts("\t\t\t\

15、t4.配對");</p><p>  puts("\t\t\t\t5.Exit"); </p><p>  puts("\n\n\t\t**************************************\n"); </p><p>  loop: printf("Choose your numbe

16、r (1-5):[ ]\b\b"); </p><p>  scanf("%d",&n); </p><p>  if(n<1||n>5) {printf("Error!");goto loop;} </p><p><b>  else </b></p>

17、<p><b>  {</b></p><p>  switch(n) </p><p><b>  { </b></p><p>  case 1:enter();break; </p><p>  case 2:delete();break; </p><p>

18、;  case 3:search();break; </p><p>  case 4:search2();break; </p><p>  case 5:exit(0); </p><p><b>  } </b></p><p><b>  }</b></p><p&g

19、t;<b>  } </b></p><p><b>  main() </b></p><p><b>  { </b></p><p><b>  menu(); </b></p><p><b>  } </b></p

20、><p><b>  二、各功能模塊設(shè)計</b></p><p><b> ?。?)數(shù)據(jù)輸入模塊</b></p><p>  【分析】 數(shù)據(jù)信息存放在文件中,用結(jié)構(gòu)體存放,方便數(shù)據(jù)輸入與數(shù)據(jù)的保存。另外,輸入模塊中建立副菜單,用以輸入四個文件的信息選項(xiàng)。</p><p>  圖3 數(shù)據(jù)輸入模塊流程

21、圖</p><p><b>  【程序】</b></p><p>  /*****************************數(shù)據(jù)輸入模塊************************************/ </p><p>  void sal_enter() </p><p><b>  { &l

22、t;/b></p><p>  int j; char c[2]; FILE *fp; </p><p>  if((fp=fopen("data1.dat","wb"))==NULL) </p><p><b>  { </b></p><p>  printf("

23、;Can not open the file!\n"); </p><p><b>  exit(0); </b></p><p><b>  } </b></p><p>  for(j=0;j<i;j++) </p><p>  fread(&sal[j],size

24、of(struct sale),1,fp); </p><p><b>  while(1) </b></p><p><b>  { </b></p><p>  printf("輸入銷售商號碼:\n"); </p><p>  scanf("%d",&

25、amp;sal[i].num1); </p><p>  printf("輸入配件號碼:\n"); </p><p>  scanf("%d",&sal[i].num2); </p><p>  printf("輸入工地號碼:\n"); </p><p>  scanf(&q

26、uot;%d",&sal[i].num3); </p><p>  printf("輸入數(shù)量r:\n"); </p><p>  scanf("%d",&sal[i].num4); </p><p>  if(fwrite(&sal[i++],sizeof(struct sale),1,fp)

27、!=1) </p><p>  printf("File write error\n"); </p><p>  else printf("Successful!\n"); </p><p>  loop:printf("是否繼續(xù)?( 是[y]/否[n]) \n"); </p><p&g

28、t;  scanf("%s",c); </p><p>  if(strcmp(c,"n")==0) break;</p><p><b>  else </b></p><p><b>  { </b></p><p>  if(strcmp(c,&quo

29、t;y")!=0)</p><p>  {printf("error!\n");goto loop;}</p><p><b>  }</b></p><p><b>  } </b></p><p>  fclose(fp);</p><p>

30、<b>  menu(); </b></p><p><b>  } </b></p><p>  void build_enter() </p><p><b>  { </b></p><p>  int j; char c[2]; FILE *fp; </p>

31、<p>  if((fp=fopen("data2.dat","wb"))==NULL) </p><p><b>  { </b></p><p>  printf("Can not open the file!\n"); </p><p><b>  exi

32、t(0); </b></p><p><b>  } </b></p><p>  for(j=0;j<i;j++) </p><p>  fwrite(&build[j],sizeof(struct building),1,fp); </p><p><b>  while(1)

33、 </b></p><p><b>  { </b></p><p>  printf("輸入項(xiàng)目號碼:\n"); </p><p>  scanf("%d",&build[i].num1); </p><p>  printf("輸入工地號:\n&q

34、uot;); </p><p>  scanf("%d",&build[i].num); </p><p>  printf("輸入工地名:\n"); </p><p>  scanf("%s",build[i].name); </p><p>  printf("

35、輸入工地城市:\n"); </p><p>  scanf("%s",build[i].city); </p><p>  if(fwrite(&build[i++],sizeof(struct building),1,fp)!=1) </p><p>  printf("File write error\n"

36、;); </p><p>  else printf("Successful!\n"); </p><p>  loop:printf("是否繼續(xù)?( 是[y]/否[n]) \n"); </p><p>  scanf("%s",c); </p><p>  if(strcmp(c,

37、"n")==0)break;</p><p><b>  else </b></p><p><b>  { </b></p><p>  if(strcmp(c,"y")!=0)</p><p>  {printf("error!\n")

38、;goto loop;}</p><p><b>  } </b></p><p><b>  } </b></p><p>  fclose(fp);</p><p><b>  menu(); </b></p><p><b>  }

39、</b></p><p>  void pj_enter() </p><p><b>  {</b></p><p>  int j; char c[2]; FILE *fp; </p><p>  if((fp=fopen("data3.dat","wb"))==N

40、ULL) </p><p><b>  { </b></p><p>  printf("Can not open the file!\n"); </p><p><b>  exit(0); </b></p><p><b>  } </b></p&

41、gt;<p>  for(j=0;j<i;j++) </p><p>  fwrite(&pj[j],sizeof(struct peijian),1,fp); </p><p><b>  while(1) </b></p><p><b>  { </b></p><

42、p>  printf("輸入配件號:\n"); </p><p>  scanf("%d",&pj[i].num); </p><p>  printf("輸入配件名:\n"); </p><p>  scanf("%s",pj[i].name); </p>

43、<p>  printf("輸入配件顏色:\n"); </p><p>  scanf("%s",pj[i].color); </p><p>  printf("輸入配件重量:\n"); </p><p>  scanf("%d",&pj[i].weight); &l

44、t;/p><p>  printf("輸入配件產(chǎn)地:\n"); </p><p>  scanf("%s",pj[i].area); </p><p>  if(fwrite(&pj[i++],sizeof(struct peijian),1,fp)!=1) </p><p>  printf(&q

45、uot;File write error\n"); </p><p>  else printf("Successful!\n"); </p><p>  loop:printf("Is there any more?( Yes[y]/No[n]) \n"); </p><p>  scanf("%s&qu

46、ot;,c); </p><p>  if(strcmp(c,"n")==0)break;</p><p><b>  else </b></p><p><b>  { </b></p><p>  if(strcmp(c,"y")!=0)</p>

47、;<p>  {printf("error!\n");goto loop;}</p><p><b>  } </b></p><p><b>  } </b></p><p>  fclose(fp);</p><p><b>  menu(); &

48、lt;/b></p><p><b>  } </b></p><p>  void SET_enter () </p><p><b>  { </b></p><p>  int j; char c[2]; FILE *fp; </p><p>  if((fp=f

49、open("data4.dat","wb"))==NULL) </p><p><b>  { </b></p><p>  printf("Can not open the file!\n"); </p><p><b>  exit(0); </b></

50、p><p><b>  } </b></p><p>  for(j=0;j<i;j++) </p><p>  fwrite(&sel[j],sizeof(struct seller),1,fp); </p><p><b>  while(1) </b></p>&l

51、t;p><b>  { </b></p><p>  printf("輸入銷售商號:\n"); </p><p>  scanf("%d",&sel[i].num); </p><p>  printf("輸入銷售商名:\n"); </p><p>

52、;  scanf("%s",sel[i].name); </p><p>  printf("輸入銷售商狀態(tài):\n"); </p><p>  scanf("%s",sel[i].state); </p><p>  printf("輸入銷售商所在城市:\n"); </p>

53、<p>  scanf("%s",sel[i].city); </p><p>  if(fwrite(&sel[i++],sizeof(struct seller),1,fp)!=1) </p><p>  printf("File write error\n"); </p><p>  else pri

54、ntf("Successful!\n"); </p><p>  loop:printf("Is there any more?( Yes[y]/No[n]) \n"); </p><p>  scanf("%s",c); </p><p>  if(strcmp(c,"n")==0)b

55、reak;</p><p><b>  else </b></p><p><b>  { </b></p><p>  if(strcmp(c,"y")!=0)</p><p>  {printf("error!\n");goto loop;}</p&

56、gt;<p><b>  } </b></p><p><b>  } </b></p><p>  fclose(fp);</p><p>  menu(); </p><p><b>  } </b></p><p>  

57、void enter() </p><p><b>  { </b></p><p><b>  int t,m; </b></p><p><b>  do </b></p><p><b>  { </b></p><p>

58、  puts("\t\t***************MENU*************\n\n"); </p><p>  puts("\t\t\t\t1.sal_enter new data"); </p><p>  puts("\t\t\t\t2.build_enter new data"); </p>&l

59、t;p>  puts("\t\t\t\t3.pj_enter new data"); </p><p>  puts("\t\t\t\t4.SET_enter new data"); </p><p>  puts("\t\t\t\t5.Exit"); </p><p>  puts("\n

60、\n\t\t ********************************\n"); </p><p>  printf("Choose the number(1-5):[ ]\b\b"); </p><p>  scanf("%d",&m); </p><p>  if(m<1||m>5)

61、</p><p>  { t=1; getchar(); } </p><p>  else t=0; </p><p><b>  } </b></p><p>  while(t==1); </p><p>  switch(m) </p><p><b> 

62、 { </b></p><p>  case 1:sal_enter();break; </p><p>  case 2:build_enter();break; </p><p>  case 3:pj_enter();break; </p><p>  case 4:SET_enter();break; </p>

63、<p>  case 5:menu(); </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  刪除模塊</b></p><p>  【分析】 建立副菜單,選擇要刪除的是哪個文件中的信息,輸入相應(yīng)的信

64、息,找到數(shù)據(jù)將其刪除。做法是將數(shù)據(jù)從結(jié)構(gòu)體中刪除,然后跳過已刪除的項(xiàng),重新寫入文件。</p><p>  圖4 刪除模塊流程圖</p><p><b>  【程序】</b></p><p>  /******************************刪除模塊************************************/ &

65、lt;/p><p>  void sal_delete() </p><p><b>  {</b></p><p>  int j,v=0; int x; int w=101; FILE *fp; </p><p>  if((fp=fopen("data1.dat","rb"))

66、==NULL) </p><p><b>  { </b></p><p>  printf("Can not open the file!\n"); </p><p><b>  menu(); </b></p><p><b>  } </b><

67、;/p><p>  loop:printf("請輸入要刪除的銷售商號碼(輸入0返回menu):"); </p><p>  scanf("%d",&x); </p><p>  if(x==0) menu();</p><p>  for(j=0;j<100;j++) </p>

68、<p>  { if(fread(&sal[j],sizeof(struct sale),1,fp)!=1) break; } </p><p><b>  v=j+1;</b></p><p>  for(j=0;j<v;j++)</p><p><b>  {</b></p>

69、<p>  if(x==sal[j].num1) </p><p>  {w=j;break;}</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  if(w==101)</p><p>  {printf("Cannot f

70、ind the data!\n\n");goto loop;} </p><p><b>  else</b></p><p><b>  {</b></p><p>  fp=fopen("data1.dat","wb");</p><p>

71、  for(j=0;j<v;j++)</p><p>  {if(j!=w) fwrite(&sal[j],sizeof(struct sale),1,fp);}</p><p><b>  }</b></p><p>  printf("\n銷售商號碼,配件號,工地號,數(shù)量\n");</p>&

72、lt;p>  printf("%d,\t\t%d,%d, %d\n",sal[w].num1,sal[w].num2,sal[w].num3,sal[w].num4);</p><p>  printf("刪除成功!\n\n");</p><p>  fclose(fp);</p><p><b>  menu

73、(); </b></p><p><b>  }</b></p><p>  void build_delete() </p><p><b>  {</b></p><p>  int j,v=0,x; int w=101; FILE *fp; </p><p&g

74、t;  if((fp=fopen("data2.dat","rb"))==NULL) </p><p><b>  { </b></p><p>  printf("Can not open the file!\n"); </p><p><b>  menu(); <

75、/b></p><p><b>  } </b></p><p>  loop:printf("請輸入要刪除的工地號(輸入0返回menu):"); </p><p>  scanf("%d",&x); </p><p>  if(x==0) menu();<

76、/p><p>  for(j=0;j<100;j++) </p><p>  { if(fread(&build[j],sizeof(struct building),1,fp)!=1) break; } </p><p><b>  v=j+1;</b></p><p>  for(j=0;j<v;j

77、++) </p><p><b>  { </b></p><p>  if(x==build[j].num) {w=j;break;}</p><p>  }fclose(fp);</p><p>  if(w==101)</p><p>  {printf("Cannot fin

78、d the data!\n\n");goto loop;} </p><p><b>  else</b></p><p><b>  {</b></p><p>  fp=fopen("data2.dat","wb");</p><p>  for

79、(j=0;j<v;j++)</p><p>  {if(j!=w) fwrite(&build[j],sizeof(struct building),1,fp);}</p><p><b>  }</b></p><p>  printf("\n項(xiàng)目號,工地號,工地名,城市名:\n");</p>

80、<p>  printf(" %d, \t%d, %s, %s\n",build[w].num1,build[w].num, build[w].name,build[w].city);</p><p>  printf("刪除成功!\n\n"); </p><p>  fclose(fp); </p>&l

81、t;p><b>  menu(); </b></p><p><b>  } </b></p><p>  void pj_delete() </p><p><b>  {</b></p><p>  int j,v=0,x; int w=101; FILE *fp;

82、 </p><p>  if((fp=fopen("data3.dat","rb"))==NULL) </p><p><b>  { </b></p><p>  printf("Can not open the file!\n"); </p><p><

83、;b>  menu(); </b></p><p><b>  } </b></p><p>  loop:printf("請輸入要刪除的配件號(輸入0返回menu):"); </p><p>  scanf("%d",&x); </p><p> 

84、 if(x==0) menu();</p><p>  for(j=0;j<100;j++) </p><p>  { if(fread(&pj[j],sizeof(struct peijian),1,fp)!=1) break; } </p><p><b>  v=j+1; </b></p><p>

85、  for(j=0;j<v;j++) </p><p><b>  { </b></p><p>  if(x==pj[j].num) {w=j;break;}</p><p>  }fclose(fp);</p><p>  if(w==101)</p><p>  {printf(&

86、quot;Cannot find the data!\n\n");goto loop;} </p><p><b>  else</b></p><p><b>  {</b></p><p>  fp=fopen("data3.dat","wb");</p>

87、<p>  for(j=0;j<v;j++)</p><p>  {if(j!=w) fwrite(&pj[j],sizeof(struct peijian),1,fp);}</p><p><b>  }</b></p><p>  printf("\n配件號,配件名,顏色,重量,產(chǎn)地:\n");

88、</p><p>  printf(" %d, %s, %s, %d, %s\n",pj[w].num,pj[w].name,pj[w].color,pj[w].weight,pj[w].area);</p><p>  printf("刪除成功!\n\n");</p><p>  fclose(fp)

89、; </p><p><b>  menu(); </b></p><p><b>  } </b></p><p>  void SET_delete () </p><p><b>  {</b></p><p>  int j,v=0;int x;

90、 int w=101; FILE *fp; </p><p>  if((fp=fopen("data4.dat","rb"))==NULL) </p><p><b>  { </b></p><p>  printf("Can not open the file!\n"); &l

91、t;/p><p><b>  menu(); </b></p><p><b>  } </b></p><p>  loop:printf("請輸入號碼(輸入0返回menu):"); </p><p>  scanf("%d",&x); </p

92、><p>  if(x==0) menu();</p><p>  for(j=0;j<100;j++) </p><p>  { if(fread(&sel[j],sizeof(struct seller),1,fp)!=1) break; } </p><p><b>  v=j+1; </b></

93、p><p>  for(j=0;j<v;j++) </p><p><b>  {</b></p><p>  if(x==sel[j].num) {w=j;break;}</p><p>  }fclose(fp);</p><p>  if(w==101)</p><p

94、>  {printf("Cannot find the data!\n\n");goto loop;} </p><p><b>  else</b></p><p><b>  {</b></p><p>  fp=fopen("data4.dat","wb&quo

95、t;);</p><p>  for(j=0;j<v;j++)</p><p>  {if(j!=w) fwrite(&sel[j],sizeof(struct seller),1,fp);}</p><p><b>  }</b></p><p>  printf("\n銷售商號碼,銷售商名字,

96、狀態(tài),城市: \n");</p><p>  printf(" %d,\t\t%s,\t%s, %s\n",sel[w].num,sel[w].name,sel[w].state,sel[w].city);</p><p>  printf("刪除成功!\n\n");</p><p>  fclose(fp);

97、 </p><p><b>  menu(); </b></p><p><b>  }</b></p><p>  void delete() </p><p><b>  { </b></p><p><b>  int t,m; <

98、;/b></p><p><b>  do </b></p><p><b>  { </b></p><p>  puts("\t\t***************MENU*************\n\n"); </p><p>  puts("\t\t\

99、t1.sal_delete new data"); </p><p>  puts("\t\t\t2.build_delete new data"); </p><p>  puts("\t\t\t3.pj_delete new data"); /*********刪除菜單****************/ </p><

100、p>  puts("\t\t\t4.SET_delete new data"); </p><p>  puts("\t\t\t5.Exit"); </p><p>  puts("\n\n\t\t ********************************\n"); </p><p>  pr

101、intf("Choose the number(1-5):[ ]\b\b"); </p><p>  scanf("%d",&m); </p><p>  if(m<1||m>5) </p><p>  { t=1; getchar(); } </p><p>  else t=0;

102、 </p><p><b>  } </b></p><p>  while(t==1); </p><p>  switch(m) </p><p><b>  { </b></p><p>  case 1:sal_delete();break; </p>

103、<p>  case 2:build_delete();break; </p><p>  case 3:pj_delete();break; </p><p>  case 4:SET_delete ();break; </p><p>  case 5:menu(); </p><p><b>  } </b&g

104、t;</p><p><b>  } </b></p><p><b>  查找模塊</b></p><p>  【分析】 選擇查找方式,輸入相應(yīng)的數(shù)據(jù)然后找出對應(yīng)的數(shù)據(jù)。流程圖如下:</p><p>  圖5 查找模塊流程圖</p><p><b>  【程

105、序】</b></p><p>  /********************************查找模塊***********************************/ </p><p>  void search() </p><p><b>  { </b></p><p>  int

106、 i,w=101,j,x,h=0; FILE *fp; </p><p>  printf("1--By 項(xiàng)目號\n"); </p><p>  printf("2--By 工地號\n"); </p><p>  printf("3--By 配件號\n");</p><p>  p

107、rintf("4--By 銷售商號\n");</p><p>  printf("5 返回\n\n");</p><p>  loop:printf("請選擇項(xiàng):\n"); </p><p>  scanf("%d",&x); </p><p>  i

108、f(x==5) menu();</p><p>  else if(x<1||x>5) {printf("Error!\n");goto loop;}</p><p>  else if(x==3) </p><p><b>  { </b></p><p>  if((fp=fope

109、n("data3.dat","rb"))==NULL) </p><p><b>  { </b></p><p>  printf("Can not open the file!\n"); </p><p><b>  menu(); </b></p>

110、;<p><b>  } </b></p><p>  printf("Please input the 配件號:"); </p><p>  scanf("%d",&i); </p><p>  for(j=0;j<100;j++) </p><

111、p>  {if(fread(&pj[j],sizeof(struct peijian),1,fp)!=1) break;}</p><p><b>  h=j+1;</b></p><p>  for(j=0;j<h;j++)</p><p>  if(i==pj[j].num) {w=j;break;} </p>

112、;<p>  if(w==101) printf("Cannot find the data!\n");</p><p><b>  else</b></p><p><b>  { </b></p><p>  printf("配件號:%d\n",pj[w].num

113、); </p><p>  printf("配件名:%s\n",pj[w].name); </p><p>  printf("配件顏色:%s\n",pj[w].color); </p><p>  printf("配件重量:%d\n",pj[w].weight); </p><p>

114、;  printf("配件產(chǎn)地:%s\n",pj[w].area); </p><p>  printf("---------------------------------\n"); </p><p><b>  } </b></p><p>  fclose(fp); </p>

115、<p><b>  menu(); </b></p><p><b>  }</b></p><p>  else if(x==4) </p><p><b>  { </b></p><p>  if((fp=fopen("data4.dat&quo

116、t;,"rb"))==NULL) </p><p><b>  { </b></p><p>  printf("Can not open the file!\n"); </p><p><b>  menu(); </b></p><p><b>

117、  } </b></p><p>  printf("請輸入銷售商號:"); </p><p>  scanf("%d",&i); </p><p>  for(j=0;j<100;j++) </p><p>  {if(fread(&sel[j],siz

118、eof(struct seller),1,fp)!=1) break;}</p><p><b>  h=j+1;</b></p><p>  for(j=0;j<h;j++)</p><p>  if(i==sel[j].num) {w=j;break;} </p><p>  if(w==101) printf

119、("Cannot find the data!\n");</p><p><b>  else</b></p><p><b>  { </b></p><p>  printf("銷售商號:%d\n",sel[w].num); </p><p>  pri

120、ntf("銷售商名:%s\n",sel[w].name); </p><p>  printf("所在城市名:%s\n",sel[w].city); </p><p>  printf("---------------------------------\n"); </p><p><b>  }

121、</b></p><p>  fclose(fp);</p><p><b>  menu(); </b></p><p><b>  } </b></p><p>  else if(x==2) </p><p><b>  { </b>

122、;</p><p>  if((fp=fopen("data2.dat","rb"))==NULL) </p><p><b>  { </b></p><p>  printf("Can not open the file!\n"); </p><p><

123、;b>  menu(); </b></p><p><b>  } </b></p><p>  printf("請輸入建筑工地號:"); </p><p>  scanf("%d",&i); </p><p>  for(j=0;j<100

124、;j++) </p><p>  {if(fread(&build[j],sizeof(struct building),1,fp)!=1) break;}</p><p><b>  h=j+1;</b></p><p>  for(j=0;j<h;j++)</p><p>  if(i==build[

125、j].num) {w=j;break;} </p><p>  if(w==101) printf("Cannot find the data!\n");</p><p><b>  else</b></p><p><b>  { </b></p><p>  printf(

126、"建筑項(xiàng)目號:%d\n",build[j].num1);</p><p>  printf("建筑工地號:%d\n",build[j].num); </p><p>  printf("建筑工地名:%s\n",build[j].name); </p><p>  printf("所在城市名:%s\

127、n",build[j].city); </p><p>  printf("---------------------------------\n"); </p><p><b>  } </b></p><p>  fclose(fp);</p><p><b>  menu(

128、); </b></p><p><b>  } </b></p><p>  else if(x==1) </p><p><b>  { </b></p><p>  if((fp=fopen("data1.dat","rb"))==NULL

129、) </p><p><b>  { </b></p><p>  printf("Can not open the file!\n"); </p><p><b>  menu(); </b></p><p><b>  } </b></p>

130、;<p>  printf("請輸入項(xiàng)目號:"); </p><p>  scanf("%d",&i); </p><p>  for(j=0;j<100;j++) </p><p>  {if(fread(&build[j],sizeof(struct building),1,fp

131、)!=1) break;}</p><p><b>  h=j+1;</b></p><p>  for(j=0;j<h;j++)</p><p>  if(i==build[j].num1) {w=j;break;} </p><p>  if(w==101) printf("Cannot find t

132、he data!\n");</p><p><b>  else</b></p><p><b>  { </b></p><p>  printf("建筑項(xiàng)目號:%d\n",build[j].num1);</p><p>  printf("建筑工地號:%

133、d\n",build[j].num); </p><p>  printf("建筑工地名:%s\n",build[j].name); </p><p>  printf("所在城市名:%s\n",build[j].city); </p><p>  printf("---------------------

134、------------\n"); </p><p><b>  } </b></p><p>  fclose(fp);</p><p><b>  menu(); </b></p><p><b>  } </b></p><p>&l

135、t;b>  }</b></p><p><b>  查找配對模塊</b></p><p>  【分析】 輸入配對方式(按配件號,按銷售商號碼),找出所在城市相同的數(shù)據(jù),輸出數(shù)據(jù)。流程圖如下:</p><p>  圖6 查找配對模塊流程圖</p><p><b>  【程序】</b&

136、gt;</p><p>  /********************************查找配對模塊*****************************/</p><p>  void search2() </p><p><b>  { </b></p><p>  int x,j,i,a=0,b=

137、0; int w;FILE *fp1,*fp2; </p><p>  printf("1.By 配件號\n");</p><p>  printf("2.By 項(xiàng)目\n");</p><p>  printf("3.返回\n\n");</p><p>  loop:printf(&

138、quot;請選擇項(xiàng):\n"); </p><p>  scanf("%d",&x); </p><p>  if(x==3) menu();</p><p>  else if(x<1||x>3) {printf("Error!");goto loop;}</p><p>

139、  else if(x==1) </p><p><b>  { </b></p><p>  if((fp1=fopen("data3.dat","rb"))==NULL||(fp2=fopen("data4.dat","rb"))==NULL) </p><p&

140、gt;  {printf("Cannot open the file!\n\n"); </p><p><b>  menu(); </b></p><p><b>  }</b></p><p>  for(j=0;j<100;j++) </p><p>  {if(

141、fread(&pj[j],sizeof(struct peijian),1,fp1)!=1) break;}</p><p><b>  a=j+1;</b></p><p>  for(j=0;j<100;j++) </p><p>  {if(fread(&sel[j],sizeof(struct seller),1

142、,fp2)!=1) break;}</p><p><b>  b=j+1;</b></p><p>  printf("已有配件號:\n");</p><p>  for(j=0;j<a-1;j++)</p><p>  printf("%d, ",pj[j].num);&

143、lt;/p><p>  printf("\nPlease input the 配件號:"); </p><p>  scanf("%d",&w);</p><p>  for(j=0;j<a;j++)</p><p>  {if(w==pj[j].num) break;}</p>

144、<p>  for(i=0;i<b;i++)</p><p>  if(strcmp(pj[j].area,sel[i].city)==0&&strcmp(sel[i].city,sel[99].city)!=0)</p><p>  printf("配件號:%d銷售商號:%d所在城市:%s\n",pj[j].num,sel[i].n

145、um,sel[i].city);</p><p>  fclose(fp1);fclose(fp2);menu();</p><p><b>  }</b></p><p>  else if(x==2)</p><p><b>  {</b></p><p>  if((f

146、p1=fopen("data2.dat","rb"))==NULL||(fp2=fopen("data4.dat","rb"))==NULL) </p><p>  {printf("Cannot open the file!\n"); </p><p><b>  menu()

147、; </b></p><p><b>  }</b></p><p>  for(j=0;j<100;j++) </p><p>  {if(fread(&build[j],sizeof(struct building),1,fp1)!=1) break;}</p><p><b>

溫馨提示

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

評論

0/150

提交評論