版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
C語言課程設(shè)計報告課程名稱:計算機(jī)高級語言課程設(shè)計(C)教師姓名:陳喆本科生姓名:張宸本科生學(xué)號:本科生專業(yè):土地資源管理所在院系:公共管理學(xué)院類別:C.本科生日期:2016.01.14課程設(shè)計評語
平時成績:課程論文成績:總成績:評閱人簽名:注:1、無評閱人簽名成績無效;2、必須用鋼筆或圓珠筆批閱,用鉛筆閱卷無效;3、如有平時成績,必須在上面評分表中標(biāo)出,并計算入總成績。目錄TOC\o"1-5"\h\z前言4.\o"CurrentDocument"一、題目要求.4\o"CurrentDocument"二、題目分析5\o"CurrentDocument"三、總體設(shè)計5\o"CurrentDocument"四、詳細(xì)設(shè)計6\o"CurrentDocument"1、主函數(shù)6\o"CurrentDocument"2、各功能模塊設(shè)計9(1)數(shù)據(jù)輸入設(shè)計9\o"CurrentDocument"(2)刪除設(shè)計15(3)查詢設(shè)計20\o"CurrentDocument"(4)查找配對設(shè)計24\o"CurrentDocument"五、上機(jī)操作27\o"CurrentDocument"后記30\o"CurrentDocument"附錄:所有程序代碼32刖言C程序課程設(shè)計的目的:為加深學(xué)生對基礎(chǔ)知識的了解,同時提高綜合程序設(shè)計能力,在課堂教學(xué)結(jié)束后,集中安排了課程設(shè)計強(qiáng)化訓(xùn)練,目的是使學(xué)生融會貫通基本算法,提高綜合程序設(shè)計能力。通過前四單元的溫故而知新、庖丁解牛、舉一反三、熟能生巧等過程的練習(xí)之后能夠解決一些簡單的實(shí)際問題。一、題目要求設(shè)計:“建筑工地信息管理系統(tǒng)”建立如下4個文件(括號內(nèi)為文件中每條記錄的字段內(nèi)容):(1)銷售商-配件-建筑工地(銷售商號碼,配件號,工地號,數(shù)量)(2)建筑工地(工地號,名字,城市)(3)配件(配件號,配件名,顏色,重量,產(chǎn)地)(4)銷售商(號碼,名字,狀態(tài),城市)功能:(1)首先建立文件,然后插入數(shù)據(jù),并進(jìn)行刪除、更新操作,最后進(jìn)行查詢操作。(2)查詢與供應(yīng)商所在城市相同的零件——供應(yīng)商,項目——供應(yīng)商記錄對。二、題目分析根據(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á)到要求。三、總體設(shè)計根據(jù)題目要求,可以將系統(tǒng)分為:1)插入數(shù)據(jù)模塊;2)刪除模塊;3)查詢模塊;4)查找配對;圖一:系統(tǒng)功能模塊圖四、詳細(xì)設(shè)計1、主函數(shù)【分析】主函數(shù)一般設(shè)計得比較簡便,只提供輸入、處理和輸出部分的函數(shù)調(diào)用。其中各功能模塊用菜單方式選擇。其流程圖:
【程序】voidmenu(){intn,w;//變量n保存選擇菜單數(shù)字,w判斷輸入的數(shù)字是否在功能菜單對應(yīng)數(shù)字范圍內(nèi)do{puts("\t\t*************建筑工地信息管理****************\n\n");puts("姓名:陳文昕");puts("學(xué)號:20141003384");puts(班號:175142");puts("\t\t****************MENU*******************\n\n");〃輸入〃刪除//查找〃查找配對puts("\t\t\t\t1.輸入");puts("\t\t\t\t2.刪除");puts("\t\t\t\t3.查找");puts("\t\t\t\t4.配對");puts("\t\t\t\t5.Exit");puts("\n\n\t\t**************************************\n");printf("Chooseyournumber(1-5):[]\b\b");scanf("%d",&n);〃輸入〃刪除//查找〃查找配對elsew=0;}while(w==1);switch(n){case1:enter();break;case2:delete();break;case3:search();break;case4:search2();break;case5:exit(0);}main(){menu();2、各功能模塊設(shè)計(1)數(shù)據(jù)輸入設(shè)計【分析】數(shù)據(jù)信息存放在文件中,用結(jié)構(gòu)體存放,方便數(shù)據(jù)輸入與數(shù)據(jù)的保存。另外,輸入模塊中建立副菜單,用以輸入四個文件的信息選項。圖三:數(shù)據(jù)輸入模塊流程圖【程序】〃銷售商-配件-建筑工地信息輸入模塊voidSFB_enter(){intj;charc[2];FILE*fp;if((fp=fopen("data1.txt”,"w"))==NULL){printf("Cannotopenthefile!\n");exit(0);}for(j=0;j<i;j++){fwrite(&SFB[j],sizeof(structSellerFitBuild),1,fp);}while(1){printf("輸入銷售商號碼:\n");scanf("%d",&SFB[i].seller_code);printf("輸入配件號:\n");scanf("%d”,&SFB[i].fit_code);printf("輸入工地號:\n");scanf("%d",&SFB[i].build_code);printf("輸入項目號:\n");scanf("%d”,&SFB[i].subject_code);printf("輸入銷售數(shù)量:\n");scanf("%d",&SFB[i].num);if(fwrite(&SFB[i++],sizeof(structSellerFitBuild),1,fp)!=1)printf("Filewriteerror\n");elseprintf("Successful!\n");printf("是否繼續(xù)?(是[y]/否[n])\n");scanf("%s",c);if(strcmp(c,"n")==0)break;}fclose(fp);menu();〃建筑工地信息輸入模塊voidBS_enter(){intj;charc[2];FILE*fp;if((fp=fopen("data2.txt”,"w"))==NULL){printf("Cannotopenthefile!\n");exit(0);}for(j=0;j<i;j++){fwrite(&BS[j],sizeof(structBuildingSite),1,fp);}while(1){printf("輸入工地號:\n");scanf("%d”,&BS[i].build_code);printf("輸入工地名:\n");scanf("%s”,BS[i].build_name);printf("輸入城市:\n");scanf("%s",BS[i].city);if(fwrite(&BS[i++],sizeof(structBuildingSite),1,fp)!=1)printf("Filewriteerror\n");elseprintf("Successful!\n");printf("Isthereanymore?(Yes[y]/No[n])\n");scanf("%s",c);if(strcmp(c,"n")==0)break;}fclose(fp);menu();}〃配件信息輸入模塊voidFit_enter(){intj;charc[2];FILE*fp;if((fp=fopen("data3.txt”,"w"))==NULL){printf("Cannotopenthefile!\n");exit(0);}for(j=0;j<i;j++){fwrite(&Fit[j],sizeof(structFitting),1,fp);}while(1){printf("輸入配件號:\n");scanf("%d",&Fit[i].fit_code);printf("輸入配件名:\n");scanf("%s”,Fit[i].fit_name);printf("輸入配件顏色:\n");scanf("%s”,Fit[i].color);printf("輸入配件重量:\n");scanf("%f",&Fit[i].weight);printf("輸入配件產(chǎn)地:\n");scanf("%s",Fit[i].city);if(fwrite(&Fit[i++],sizeof(structFitting),1,fp)!=1)printf("Filewriteerror\n");elseprintf("Successful!\n");printf("Isthereanymore?(Yes[y]/No[n])\n");scanf("%s",c);if(strcmp(c,"n")==0)break;}fclose(fp);menu();}〃銷售商信息輸入模塊voidSeller_enter(){intj;charc[2];FILE*fp;if((fp=fopen("data4.txt","w"))==NULL){printf("Cannotopenthefile!\n");exit(0);}for(j=0;j<i;j++){fwrite(&Seller[j],sizeof(structSeller),1,fp);}while(1){printf("輸入銷售商號碼:\n");scanf("%d",&Seller[i].seller_code);printf("輸入銷售商名:\n");scanf("%s”,Seller[i].seller_name);printf(-輸入銷售商所在城市:\n");scanf("%s”,Seller[i].city);if(fwrite(&Seller[i++],sizeof(structSeller),1,fp)!=1)printf("Filewriteerror\n");elseprintf("Successful!\n");printf("Isthereanymore?(Yes[y]/No[n])\n");scanf("%s",c);if(strcmp(c,"n")==0)break;}fclose(fp);menu();}voidenter(){intt,m;doputs("\t\t***************菜單*************\n\n");puts("\t\t\t\t1.銷售商-配件-建筑工地輸入數(shù)據(jù)");puts("\t\t\t\t2.建筑工地輸入數(shù)據(jù)");puts("\t\t\t\t3.配件輸入數(shù)據(jù),/***************輸入菜單““““““““““““““““/****************/puts("\t\t\t\t4.銷售上輸入數(shù)據(jù)");puts("\t\t\t\t5.退出");puts("\n\n\t\t********************************\n");printf("請選擇數(shù)字:[]\b\b");scanf("%d”,&m);if(m<1||m>5)t=1;getchar();elset=0;while(t==1);switch(m){case1:SFB_enter();break;case2:BS_enter();break;case3:Fit_enter();break;case4:Seller_enter();break;case5:menu();}}(2)刪除設(shè)計【分析】建立副菜單,選擇要刪除文件中的信息,輸入相應(yīng)的信息,找到數(shù)據(jù)將其刪除。一般的做法是將數(shù)據(jù)從文件中刪除,刪除位置后面的記錄往前移。圖四:刪除數(shù)據(jù)模塊流程圖【程序】〃銷售商-配件-建筑工地刪除模塊voidSFB_delete(){intj,v;intw;FILE*fp;printf(-請輸入要刪除的銷售商號碼:\n");scanf("%d",&w);fp=fopen("data1.txt","rb");for(j=0;j<100;j++){if(fread(&SFB[j],sizeof(structSellerFitBuild),1,fp)!=1)break;}v=j;for(j=0;j<v;j++){if(w==SFB[j].seller_code){printf(-銷售商號碼,配件號,工地號,項目號,銷售數(shù)量:\n");printf("%d%d%d%d%d",SFB[j].seller_code,SFB[j].fit_code,SFB[j].build_code,SFB[j].subject_code,SFB[j].num);for(i=j;i<v;i++)SFB[j]=SFB[j++];printf("刪除成功”);}elseprintf("Cannotfindthedata!");menu();}fclose(fp);menu();}〃建筑工地刪除模塊voidBS_delete(){intj,v;intw;FILE*fp;printf(-請輸入要刪除的工地號:\n");scanf("%d”,&w);fp=fopen("data2.txt”,"rb”);for(j=0;j<100;j++){if(fread(&BS[j],sizeof(structBuildingSite),1,fp)!=1)break;}v=j;for(j=0;j<v;j++){if(w==BS[j].build_code){printf("工地號,工地名,城市名:\n");printf("%d%s%s”,BS[j].build_code,BS[j].build_name,BS[j].city);printf("刪除成功");}elseprintf("Cannotfindthedata!");menu();}fclose(fp);menu();}〃配件刪除模塊voidFit_delete(){intj,v;intw;FILE*fp;printf(-請輸入要刪除的配件號:\n");scanf("%d",&w);fp=fopen("data3.txt","rb");for(j=0;j<100;j++){if(fread(&Fit[j],sizeof(structFitting),1,fp)!=1)break;}v=j;for(j=0;j<v;j++){if(w==Fit[j].fit_code){printf(-配件號,配件名,配件顏色,配件重量,配件產(chǎn)地:\n");printf("%d%s%s%f%s”,Fit[j].fit_code,Fit[j].fit_name,Fit[j].color,Fit[j].weight,Fit[j].city);printf("刪除成功");}elseprintf("Cannotfindthedata!");menu();}fclose(fp);menu();}〃銷售商刪除模塊voidSeller_delete(){intj,v;intw;FILE*fp;printf(-請輸入要刪除的號碼:\n");scanf("%d",&w);fp=fopen("data4.txt","rb");for(j=0;j<100;j++){if(fread(&Seller[j],sizeof(structSeller),1,fp)!=1)break;}v=j;for(j=0;j<v;j++){if(w==Seller[j].seller_code){printf(-銷售商號碼,銷售商名字,城市:\n");printf("%d%s%s”,Seller[j].seller_code,Seller[j].seller_name,Seller[j].city);printf("刪除成功");}elseprintf("Cannotfindthedata!");menu();}fclose(fp);menu();}voiddelete(){intt,m;do{puts("\t\t***************MENU*************\n\n");puts("\t\t\t\t1.銷售商-配件-建筑工地刪除數(shù)據(jù)");puts("\t\t\t\t2.建筑工地刪除數(shù)據(jù)");puts("\t\t\t\t3.配件刪除數(shù)據(jù),/*********刪除菜單““““““““““““““““/****************/puts("\t\t\t\t4.銷售商刪除數(shù)據(jù)");puts("\t\t\t\t5.退出”);puts("\n\n\t\t********************************\n");printf("請選擇數(shù)字(1-5):[]\b\b");scanf("%d",&m);if(m<1llm>5){t=1;getchar();}elset=0;}while(t==1);switch(m){case1:SFB_delete();break;case2:BS_delete();break;case3:Fit_delete();break;case4:Seller_delete();break;case5:menu();}}查詢設(shè)計【分析】選擇對應(yīng)的方式,輸出相應(yīng)的數(shù)據(jù)然后查找對應(yīng)數(shù)據(jù)intflag,j,x;intw,v,z,y;FILE*fp;printf("\t\t****************MENU*****************\n\n");printf("\t\t\t\t1.通過項目號\n");printf("\t\t\t\t2.通過工地號\n");//查詢菜單printf("\t\t\t\t3.通過配件號\n");printf("\t\t\t\t4.通過銷售商號\n");printf("\t\t\t\t5.返回\n");printf("請選擇(1-5)[]\b\b");scanf("%d",&x);if(x==5)menu();if(x==3){flag=0;printf("請輸入配件號:\n");scanf("%d",&w);fp=fopen("data3.txt","rb");for(j=0;j<100;j++){if(fread(&Fit[j],sizeof(structFitting),1,fp)!=1)break;if(Fit[j].fit_code=w){printf("配件號:%d\n”,Fit[j].fit_code);printf("配件名:%s\n”,Fit[j].fit_name);printf("配件顏色:%s\n”,Fit[j].color);printf("配件重量:%f\n”,Fit[j].weight);printf("配件產(chǎn)地:%s\n",Fit[j].city);printf("\n");flag=1;}}if(flag==0)printf("Cannotfindthedata!\n");fclose(fp);menu();}if(x==4){flag=0;printf(-請輸入銷售商號:\n");scanf("%d",&y);fp=fopen("data4.txt","rb");for(j=0;j<100;j++){if(fread(&Seller[j],sizeof(structSeller),1,fp)!=1)break;if(Seller[j].seller_code==y){printf("銷售商號:%d\n”,Seller[j].seller_code);printf("銷售商名:%s\n”,Seller[j].seller_name);printf("所在城市名:%s\n",Seller[j].city);printf("\n");flag=1;}}if(flag==0)printf("Cannotfindthedata!\n");fclose(fp);menu();}if(x==2){flag=0;printf("請輸入建筑工地號:\n");scanf("%d”,&z);fp=fopen("data2.txt","rb");for(j=0;j<100;j++){if(fread(&BS[j],sizeof(structBuildingSite),1,fp)!=1)break;if(BS[j].build_code==z){printf("建筑工地號:%d\n",BS[j].build_code);printf("建筑工地名:%s\n",BS[j].build_name);printf("所在城市名:%s\n",BS[j].city);printf("\n");flag=1;}}if(flag==0)printf("Cannotfindthedata!\n");fclose(fp);menu();}if(x==1){flag=0;printf("請輸入項目號:\n");scanf("%d",&v);fp=fopen("data1.txt","rb");for(j=0;j<100;j++){if(fread(&SFB[j],sizeof(structSellerFitBuild),1,fp)!=1)break;if(SFB[j].subject_code=v){printf("銷售商號碼:%d\n”,SFB[j].seller_code);printf("配件號:%d\n",SFB[j].fit_code);printf("工地號:%d\n",SFB[j].build_code);printf("項目號:%d\n”,SFB[j].subject_code);printf("銷售數(shù)量:%d\n",SFB[j].num);printf("\n");flag=1;}}if(flag==0)printf("Cannotfindthedata!\n");fclose(fp);menu();
elseprintf("Error!\n");查找配對設(shè)計【分析】輸入要配對的相應(yīng)信息,找出要的信息。是否找到?Y顯示找到的記錄N提示沒有找到輸入要配對的方式:1)配件號;2)銷售商號碼返回主菜單結(jié)束是否找到?Y顯示找到的記錄N提示沒有找到輸入要配對的方式:1)配件號;2)銷售商號碼返回主菜單結(jié)束圖六:查找配對模塊流程圖intx,j,i,a=0,b=0;intw;FILE*fp1,*fp2;printf("\t\t****************MENU*****************\n\n");printf("\t\t\t\t1.通過配件號\n");printf("\t\t\t\t2.通過工地號\n");printf("\t\t\t\t3.返回\n\n");loop:printf("請選擇數(shù)字(1-3)[]\b\b");scanf("%d",&x);if(x==3)menu();elseif(x<1||x>3){printf("Error!”);gotoloop;}elseif(x==1){if((fp1=fopen("data3.txt","rb"))==NULL||(fp2=fopen("data4.txt","rb"))==NULL){printf("Cannotopenthefile!\n\n");menu();}for(j=0;j<100;j++){if(fread(&Fit[j],sizeof(structFitting),1,fp1)!=1)break;}a=j+1;for(j=0;j<100;j++){if(fread(&Seller[j],sizeof(structSeller),1,fp2)!=1)break;}b=j+1;printf("已有配件號:\n");for(j=0;j<a-1;j++)printf("%d,",Fit[j].fit_code);printf("請輸入配件號:\n");scanf("%d",&w);for(j=0;j<a;j++){if(w==Fit[j].fit_code)break;}for(i=0;i<b;i++)if(strcmp(Fit[j].city,Seller[i].city)==0&&strcmp(Seller[i].city,Seller[99].city)!=0)printf("配件號:%d\n”,Fit[j].fit_code);printf("銷售商號:%d\n”,Seller[i].seller_code);printf("所在城市:%s\n”,Seller[i].city);fclose(fp1);fclose(fp2);menu();}elseif(x==2){if((fp1=fopen("data2.txt”,"rb"))==NULL||(fp2=fopen("data4.txt”,"rb"))==NULL){printf("Cannotopenthefile!\n");menu();}for(j=0;j<100;j++){if(fread(&BS[j],sizeof(structBuildingSite),1,fp1)!=1)break;}a=j+1;for(j=0;j<100;j++){if(fread(&Seller[j],sizeof(structSeller),1,fp2)!=1)break;}b=j+1;printf("已有工地號:\n");for(j=0;j<a-1;j++)printf("%d",BS[j].build_code);printf("請輸入工地號:\n");scanf("%d",&w);for(j=0;j<a;j++){if(w==BS[j].build_code)break;}for(i=0;i<b;i++)if(strcmp(BS[j].city,Seller[i].city)==0&&strcmp(Seller[i].city,Seller[99].city)!=0)printf("工地號:%d\n",BS[j].build_code);printf("銷售商號:%d\n”,Seller[i].seller_code);printf("所在城市:%s\n”,Seller[i].city);fclose(fp1);fclose(fp2);menu();}}五、上機(jī)操作(1)開始菜單截圖辰*C:\DDciiiLentsandSettings\Ad*inistratorX^lS]^SiBzSTfl-^XBeliugX&f^las...「「"Tjfe'信,皂官X殖XX■此名:底文昕20141003384175142數(shù)數(shù)數(shù)數(shù)數(shù)數(shù)數(shù)數(shù)入除找M.出舟杏配退■■■■12345(2)數(shù)據(jù)輸入模塊商-配件-建筑工址輸入數(shù)據(jù)工地輸入數(shù)誨輸A攜商輸入數(shù)據(jù)霄苞號促二(4)數(shù)據(jù)刪除模塊,二地號:項日號,桐宮數(shù):E;_工名〔巨方
姓半玖除文明居罟罟居數(shù)數(shù)數(shù)數(shù)入除我對.出-WI-W花花您I2,二地號:項日號,桐宮數(shù):E;_工名〔巨方
姓半玖除文明居罟罟居數(shù)數(shù)數(shù)數(shù)入除我對.出-WI-W花花您I2345(3)數(shù)據(jù)查找模塊si*C:\DociiBeiitsi*C:\DociiBeiitsandSerttings'jUinist工三*口工\桌面'新建文件夫氣Deling匕豆件las.^^1515數(shù)數(shù)數(shù)數(shù)人降找雙出如查配退M建XXMX:M*3(苴3CX覆KM:MX,:H或就:<:HX:HM:M*KM姓X或MXK*夫櫥這擇數(shù)字d):L3J(6)數(shù)據(jù)配對模塊45I春4:5號:2:3:量直4呂靈隹目告4鈞酊二項銷或fC:\DocuientsandSettInesVAdMinistratoiX^面、新蓬文件夫\DebuN蚯件las...|~|~?建筑工如信息.管理?建筑工如信息.管理名首V
姓與?址罟居罟Q±J名首V
姓與?址罟居罟Q±J數(shù)數(shù)數(shù)數(shù)"除芟?出如查配退12345后記一、程序設(shè)計中改進(jìn)過程最開始寫程序時,沒有做到很有條理,先寫程序的框架,然后再來填充程序的細(xì)節(jié)部分。寫程序時忘了這一條基本準(zhǔn)則,雖然總體上按照上文的步驟,分成幾個模塊來做,但還是順序有些不對。最開始按照課程設(shè)計參考書上提供的思路來做,將銷售商號、配件號、工地號全部設(shè)做char類型的數(shù)據(jù),而且開始也沒有考慮到查找時涉及的一些問題,于是一直做下去,等到了查找板塊不知道去怎么寫,想了很久,才寫出來與char類型相符的查找方式,等到最后做完,測試時才發(fā)現(xiàn)這個方式還是不可行。于是來了一次程序上細(xì)節(jié)的大改動,將程序上所有涉及到與代號有關(guān)的數(shù)據(jù)的數(shù)據(jù)類型全部改成int型,這樣才好一些。寫代碼時,經(jīng)常在一些小的方面犯錯誤:比如有時在輸出某個數(shù)據(jù)時,為int型,沒有加取地址符號;在寫到程序后面時,結(jié)構(gòu)體名經(jīng)常會一不小心就會寫錯,等等。測試時,又發(fā)現(xiàn)數(shù)據(jù)刪除模塊有問題,于是單獨(dú)找出刪除模塊來一行一行的代碼看,整個程序沒有錯誤,但問題就在其中,這個過程對我來說極其困難。但最后還是找出了,一行代碼沒有寫。二、程序中仍然存在的問題程序在進(jìn)入每個分支菜單后,比如說選擇了數(shù)據(jù)輸入的分支菜單,然后完成了數(shù)據(jù)輸入,當(dāng)不要再繼續(xù)時,所返回的都是主菜單,這樣程序沒有做到很簡潔,操作麻煩。另外,刪除數(shù)據(jù)時就是一組數(shù)據(jù)被刪除了,而不能實(shí)現(xiàn)在某一組數(shù)據(jù)中刪除一個數(shù)據(jù)。還有,在查詢數(shù)據(jù)時不能同時顯示與之關(guān)聯(lián)的兩組數(shù)據(jù)。做這個程序讓我學(xué)到了很多,比如如何運(yùn)用課堂上學(xué)的內(nèi)容,例如說結(jié)構(gòu)體,如何去使用一個結(jié)構(gòu)體,結(jié)構(gòu)體的功能真正體現(xiàn)在哪些方面,在哪些情況下需要用到結(jié)構(gòu)體,等等。還有最重要的一點(diǎn)是,如何調(diào)試程序。以前看到程序出錯時就直接一行一行地看程序,這樣效率極差?,F(xiàn)在,對于七百多行的大程序,這樣做顯然是不現(xiàn)實(shí)的。程序被拆分成各個小模塊時,就更容易一些。28附錄:所有程序代碼/*datal.txt//文件名data2.txtdata3.txtdata4.txt*/#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>inti=0;FILE*fp;〃建立如下四個結(jié)構(gòu)體〃銷售商-配件-建筑工地結(jié)構(gòu)體structSellerFitBuild{_intseller_code;〃銷售商號碼intfit_code;〃配件號intbuild_code;//工地號intsubject_code;〃項目號intnum;〃銷售數(shù)量}SFB[100];//建筑工地結(jié)構(gòu)體structBuildingSite{intbuild_code;//工地號charbuild_name[20];//工地名charcity[20];〃城市}BS[100];//配件結(jié)構(gòu)體structFitting{intfit_code;//配件號charfit_name[20];//配件名charcolor[20];〃配件顏色floatweight;〃配件重量charcity[20];〃配件產(chǎn)地}Fit[100];〃銷售商結(jié)構(gòu)體structSeller{_intseller_code;〃銷售商號碼charseller_name[20];〃銷售商名稱charcity[20];〃銷售商城市}Seller[100];voidmenu();/*******************************數(shù)***********************************/〃銷售商-配件-建筑工地信息輸入模塊voidSFB_enter(){intj;charc[2];FILE*fp;if((fp=fopen("data1.txt”,"w"))==NULL){printf("Cannotopenthefile!\n");exit(0);}for(j=0;j<i;j++){fwrite(&SFB[j],sizeof(structSellerFitBuild),1,fp);}while(1){printf("輸入銷售商號碼:\n");scanf("%d",&SFB[i].seller_code);printf("輸入配件號:\n");scanf("%d”,&SFB[i].fit_code);printf("輸入工地號:\n");scanf("%d",&SFB[i].build_code);printf("輸入項目號:\n");scanf("%d”,&SFB[i].subject_code);printf("輸入銷售數(shù)量:\n");scanf("%d”,&SFB[i].num);if(fwrite(&SFB[i++],sizeof(structSellerFitBuild),1,fp)!=1)printf("Filewriteerror\n");elseprintf("Successful!\n");printf("是否繼續(xù)?(是[y]/否[n])\n");scanf("%s",c);if(strcmp(c,"n")==0)break;}fclose(fp);menu();}〃建筑工地信息輸入模塊voidBS_enter(){intj;charc[2];FILE*fp;if((fp=fopen("data2.txt”,"w"))==NULL){printf("Cannotopenthefile!\n");exit(0);}for(j=0;j<i;j++){fwrite(&BS[j],sizeof(structBuildingSite),1,fp);}while(1){printf("輸入工地號:\n");scanf("%d”,&BS[i].build_code);printf("輸入工地名:\n");scanf("%s”,BS[i].build_name);printf("輸入城市:\n");scanf("%s”,BS[i].city);if(fwrite(&BS[i++],sizeof(structBuildingSite),1,fp)!=1)printf("Filewriteerror\n");elseprintf("Successful!\n");printf("Isthereanymore?(Yes[y]/No[n])\n");scanf("%s",c);if(strcmp(c,"n")==0)break;}fclose(fp);menu();〃配件信息輸入模塊voidFit_enter(){intj;charc[2];FILE*fp;if((fp=fopen("data3.txt”,"w"))==NULL){printf("Cannotopenthefile!\n");exit(0);}for(j=0;j<i;j++){fwrite(&Fit[j],sizeof(structFitting),1,fp);}while(1){printf("輸入配件號:\n");scanf("%d",&Fit[i].fit_code);printf("輸入配件名:\n");scanf("%s”,Fit[i].fit_name);printf("輸入配件顏色:\n");scanf("%s”,Fit[i].color);printf("輸入配件重量:\n");scanf("%f”,&Fit[i].weight);printf("輸入配件產(chǎn)地:\n");scanf("%s",Fit[i].city);if(fwrite(&Fit[i++],sizeof(structFitting),1,fp)!=1)printf("Filewriteerror\n");elseprintf("Successful!\n");printf("Isthereanymore?(Yes[y]/No[n])\n");scanf("%s",c);if(strcmp(c,"n")==0)break;}fclose(fp);menu();}〃銷售商信息輸入模塊voidSeller_enter(){intj;charc[2];FILE*fp;if((fp=fopen("data4.txt","w"))==NULL){printf("Cannotopenthefile!\n");exit(0);}for(j=0;j<i;j++){fwrite(&Seller[j],sizeof(structSeller),1,fp);}while(1){printf("輸入銷售商號碼:\n");scanf("%d",&Seller[i].seller_code);printf("輸入銷售商名:\n");scanf("%s”,Seller[i].seller_name);printf(-輸入銷售商所在城市:\n");scanf("%s”,Seller[i].city);if(fwrite(&Seller[i++],sizeof(structSeller),1,fp)!=1)printf("Filewriteerror\n");elseprintf("Successful!\n");printf("Isthereanymore?(Yes[y]/No[n])\n");scanf("%s",c);if(strcmp(c,"n")==0)break;}fclose(fp);menu();}voidenter(){intt,m;doputs("\t\t***************菜單*************\n\n");puts("\t\t\t\t1.銷售商-配件-建筑工地輸入數(shù)據(jù)");puts("\t\t\t\t2.建筑工地輸入數(shù)據(jù)");puts("\t\t\t\t3.配件輸入數(shù)據(jù)”);/***************輸入菜單““““““““““““““““/****************/puts("\t\t\t\t4.銷售商輸入數(shù)據(jù)”);puts("\t\t\t\t5.退出”);puts("\n\n\t\t********************************\n");printf("請選擇數(shù)字(1-5):[]\b\b");scanf("%d”,&m);{t=1;getchar();}elset=0;}while(t==1);switch(m){case1:SFB_enter();break;case2:BS_enter();break;case3:Fit_enter();break;case4:Seller_enter();break;case5:menu();}}/*************************************刪*****************************************/〃銷售商-配件-建筑工地刪除模塊voidSFB_delete(){intj,v;intw;FILE*fp;printf(-請輸入要刪除的銷售商號碼:\n");scanf("%d",&w);fp=fopen("data1.txt","rb");for(j=0;j<100;j++){if(fread(&SFB[j],sizeof(structSellerFitBuild),1,fp)!=1)break;}v=j;for(j=0;j<v;j++){if(w==SFB[j].seller_code){printf(-銷售商號碼,配件號,工地號,項目號,銷售數(shù)量:\n");printf("%d%d%d%d%d",SFB[j].seller_code,SFB[j].fit_code,SFB[j].build_code,SFB[j].subject_code,SFB[j].num);for(i=j;i<v;i++)SFB[j]=SFB[j++];printf("刪除成功”);}elseprintf("Cannotfindthedata!");menu();}fclose(fp);menu();}〃建筑工地刪除模塊voidBS_delete(){intj,v;intw;FILE*fp;printf(-請輸入要刪除的工地號:\n");scanf("%d”,&w);fp=fopen("data2.txt”,"rb”);for(j=0;j<100;j++){if(fread(&BS[j],sizeof(structBuildingSite),1,fp)!=1)break;}v=j;for(j=0;j<v;j++){if(w==BS[j].build_code){printf("X地號,工地名,城市名:\n");printf("%d%s%s”,BS[j].build_code,BS[j].build_name,BS[j].city);printf("刪除成功");}elseprintf("Cannotfindthedata!");menu();}fclose(fp);menu();}〃配件刪除模塊voidFit_delete(){intj,v;intw;FILE*fp;printf(-請輸入要刪除的配件號:\n");scanf("%d”,&w);fp=fopen("data3.txt","rb");for(j=0;j<100;j++){if(fread(&Fit[j],sizeof(structFitting),1,fp)!=1)break;}v=j;for(j=0;j<v;j++){if(w==Fit[j].fit_code){printf(-配件號,配件名,配件顏色,配件重量,配件產(chǎn)地:\n");printf("%d%s%s%f%s”,Fit[j].fit_code,Fit[j].fit_name,Fit[j].color,Fit[j].weight,Fit[j].city);printf("刪除成功");}elseprintf("Cannotfindthedata!");menu();}fclose(fp);menu();}〃銷售商刪除模塊voidSeller_delete(){intj,v;intw;FILE*fp;printf(-請輸入要刪除的號碼:\n");scanf("%d",&w);fp=fopen("data4.txt","rb");for(j=0;j<100;j++){if(fread(&Seller[j],sizeof(structSeller),1,fp)!=1)break;}v=j;for(j=0;j<v;j++){if(w==Seller[j].seller_code){printf(-銷售商號碼,銷售商名字,城市:\n");printf("%d%s%s”,Seller[j].seller_code,Seller[j].seller_name,Seller[j].city);printf("刪除成功");elseprintf("Cannotfindthedata!");menu();}fclose(fp);menu();}voiddelete(){intt,m;do{puts("\t\t***************MENU*************\n\n");puts("\t\t\t\t1.銷售商-建筑工地-配件刪除數(shù)據(jù)");puts("\t\t\t\t2.建筑工地刪除數(shù)據(jù)");puts("\t\t\t\t3.配件刪除數(shù)據(jù)");/*********刪除““““““““““““““““/****************/puts("\t\t\t\t4.銷售商刪除數(shù)據(jù)");puts("\t\t\t\t5.退出”);puts("\n\n\t\t********************************\n");printf("請選擇數(shù)字(1-5):[]\b\b");scanf("%d",&m);if(m<1||m>5){t=1;getchar();}elset=0;}while(t==1);switch(m){case1:SFB_delete();break;case2:BS_delete();break;case3:Fit_delete();break;case4:Seller_delete();break;case5:menu();}}查找模查找模voidsearch(){intflag,j,x;intw,v,z,y;FILE*fp;printf("\t\t****************MENU*****************\n\n");printf("\t\t\t\t1.通過項目號\n");printf("\t\t\t\t2.通過工地號\n");//查詢菜單printf("\t\t\t\t3.通過配件號\n");printf("\t\t\t\t4.通過銷售商號\n");printf("\t\t\t\t5.返回\n");printf("請選擇(1-5)[]\b\b");scanf("%d",&x);if(x==5)menu();if(x==3){flag=0;printf("請輸入配件號:\n");scanf("%d",&w);fp=fopen("data3.txt","rb");for(j=0;j<100;j++){if(fread(&Fit[j],sizeof(structFitting),1,fp)!=1)break;if(Fit[j].fit_code==w){printf("配件號:%d\n”,Fit[j].fit_code);printf("配件名:%s\n”,Fit[j].fit_name);printf("配件顏色:%s\n”,Fit[j].color);printf("配件重量:%f\n”,Fit[j].weight);printf("配件產(chǎn)地:%s\n",Fit[j].city);printf("\n");flag=1;}}if(flag==0)printf("Cannotfindthedata!\n");fclose(fp);menu();}if(x==4){flag=0;printf(-請輸入銷售商號:\n");scanf("%d",&y);fp=fopen("data4.txt","rb");for(j=0;j<100;j++){if(fread(&Seller[j],sizeof(structSeller),1,fp)!=1)break;if(Seller[j].seller_code==y){printf("銷售商號:%d\n”,Seller[j].seller_code);printf("銷售商名:%s\n”,Seller[j].seller_name);printf("所在城市名:%s\n",Seller[j].city);printf("\n");flag=1;}}if(flag==0)printf("Cannotfindthedata!\n");fclose(fp);menu();}if(x==2){flag=0;printf("請輸入建筑工地號:\n");scanf("%d”,&z);fp=fopen("data2.txt","rb");for(j=0;j<100;j++){if(fread(&BS[j],sizeof(structBuildingSite),1,fp)!=1)break;if(BS[j].build_code==z){printf("建筑工地號:%d\n",BS[j].build_code);printf("建筑工地名:%s\n",BS[j].build_name);printf("所在城市名:%s\n",BS[j].city);printf("\n");flag=1;}}if(flag==0)printf("Cannotfindthedata!\n");fclose(fp);menu();}if(x==1){flag=0;printf("請輸入項目號:\n");scanf("%d",&v);fp=fopen("data1.txt","rb");for(j=0;j<100;j++){if(fread(&SFB[j],sizeof(structSellerFitBuild),1,fp)!=1)break;if(SFB[j].subject_code=v){printf("銷售商號碼:%d\n”,SFB[j].seller_code);printf("配件號:%d\n",SFB[j].fit_code);printf("工地號:%d\n",SFB[j].build_code);printf("項目號:%d\n”,SFB[j].subject_code);printf("銷售數(shù)量:%d\n",SFB[j].num);printf("\n");flag=1;}}if(flag==0)printf("Cannotfindthedata!\n");fclose(fp);menu();}elseprintf("Error!\n");}找配對模塊/********************************查**********************************找配對模塊intx,j,i,a=0,b=0;intw;FILE*fp1,*fp2;printf(
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 推動企業(yè)文化轉(zhuǎn)型的組織變革方案
- 教師職業(yè)生涯發(fā)展規(guī)劃方案
- 教育培訓(xùn)育才機(jī)構(gòu)教育顧問實(shí)習(xí)報告
- 鋼板樁施工方案
- 工業(yè)設(shè)計設(shè)計公司實(shí)習(xí)設(shè)計師實(shí)習(xí)報告
- 銀行風(fēng)險管理與災(zāi)備方案解析
- 考研復(fù)試英語口語常見問題
- 給水管網(wǎng)改造施工方案
- 三年級數(shù)學(xué)期中考試試卷與解析
- 環(huán)保項目管理流程優(yōu)化方案
- 2025-2026學(xué)年北京市朝陽區(qū)高一(上期)期末考試英語試卷(含答案)
- 2026湖南衡陽耒陽市公安局招聘75名警務(wù)輔助人員考試參考題庫及答案解析
- 電力工程施工方案及規(guī)范
- 2026年1月浙江省高考(首考)英語試題(含答案詳解)+聽力音頻+聽力材料
- 2026年時事政治測試題庫附完整答案(網(wǎng)校專用)
- 智慧物流背景下多式聯(lián)運(yùn)的協(xié)同發(fā)展與運(yùn)輸效能提升研究畢業(yè)論文答辯匯報
- 替人背債合同范本
- 山西省運(yùn)城市小學(xué)一年級上學(xué)期數(shù)學(xué)期末考試試題
- 藥師處方審核管理制度
- T-HHPA 001-2025 老年人跌倒風(fēng)險評估及干預(yù)措施
- 2025年廣西高考地理真題(解析版)
評論
0/150
提交評論