版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計-建筑工地信息管理系統(tǒng)
- c語言課程設(shè)計---建筑工地信息管理系統(tǒng)
- c語言課程設(shè)計--職工信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--- 學(xué)生信息管理系統(tǒng)
- 職工信息管理系統(tǒng)c語言課程設(shè)計
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計——學(xué)生信息管理系統(tǒng)
- 教師信息管理系統(tǒng)(c語言課程設(shè)計)
- c語言課程設(shè)計---學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)-c語言課程設(shè)計
- c語言課程設(shè)計——歌曲信息管理系統(tǒng)
- c語言課程設(shè)計職工信息管理系統(tǒng)
- c語言課程信息管理系統(tǒng)課程設(shè)計報告
- c語言課程設(shè)計報告課程信息管理系統(tǒng)
- c語言課程設(shè)計---學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計---職工信息管理系統(tǒng)
- c語言課程設(shè)計——職工信息管理系統(tǒng)
- 教師信息管理系統(tǒng)(c語言課程設(shè)計)
評論
0/150
提交評論