版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
有一個小型超市,出售N(N>=10)種商品,設(shè)計并實現(xiàn)一個系統(tǒng),完成下列功能:1.保存及輸出。超市中的各種商品信息保存在指定文件中,可以把它們輸出顯示。計算并排序。計算每類商品的總價值(sum,單精度)及平均價(aver,單精度,輸出一位小數(shù)),將每類商品按平均價從大到小的順序排序打印出來。統(tǒng)計。統(tǒng)計輸出庫存量低于100的貨號及類別。統(tǒng)計輸出有兩種以上(含兩種)商品庫存量低于100的商品類別??傮w結(jié)構(gòu)本程序主要分為八個模塊:主模塊、信息輸出修改模塊、新建信息模塊、排序模塊、計算模塊、統(tǒng)計模塊1、統(tǒng)計模塊2、打印模塊。主模塊:通過調(diào)用各分模塊實現(xiàn)功能;信息輸出修改模塊:輸出顯示文件中商品信息內(nèi)容,添加商品信息,刪除商品信息,修改商品信息;新建商品信息模塊:建立一個新結(jié)構(gòu)體,為鏈表存信息用,并且將信息保存在指定的文件中;排序模塊:把文件中順序零亂的商品信息按單價的大小從高到低進行排序,放到鏈表里存儲;計算模塊:將所有商品的價格與庫存量進行累加求和;打印模塊:將商品信息按每類平均價格排序(從高到低)按順序打印出來;統(tǒng)計模塊1:統(tǒng)計庫存量低于100的貨名及類別;charname[20];charname[20];/*商品名稱*/charname[20];charname[20];/*商品名稱*/8)統(tǒng)計模塊2:統(tǒng)計商品庫存量有2種以上(含2種)低于100的商品類別。附錄(程序清單)#include""/*輸入,輸出頭文件*/#include""/*申請空間頭文件*/#include""/*對字符串加工頭文件*/#include""/*清屏頭文件*/FILE*fp;intn=0;/*定義文件指針類型*/inti,j,a[4],m;/*定義整數(shù)類型*/floataver[4],sum[4],g[4],h;/*定義浮點類型*/charc[5]="elec";/*定義字符數(shù)組類型*/chard[5]="comm";/*定義字符數(shù)組類型*/chare[5]="food";/*定義字符數(shù)組類型*/charf[5]="offi";/*定義字符數(shù)組類型*/structgood/*定義結(jié)構(gòu)體*/{intnum;/*商品編號*/charkind[40];charkind[40];/*商品類型*/charkind[40];charkind[40];/*商品類型*//*商品價格*//*商品單位*//*商品價格*//*商品單位*//*商品數(shù)量*//*定義結(jié)構(gòu)體指針類型*/charunit[10];intquantity;structgood*next;}*head,*p1,*p2;structgood*createlist()/*創(chuàng)建鏈表函數(shù)*/{structgood*head1,*p1,*p2;/*定義結(jié)構(gòu)體指針類型*/if((fp=fopen("goods","w"))==NULL)/*判斷能否打開文件*/printf("cannotopenthefile");exit(0);/*結(jié)束程序*/}head1=(structgood*)malloc(sizeof(structgood));/*申請頭結(jié)點空間*/p1=head1;p2=head1;printf("*********************************************\n");p1->next=NULL;p1->next=NULL;p2->next=p1;p1->next=NULL;p1->next=NULL;p2->next=p1;printf("printf("(以輸入“一1”表示結(jié)束輸入)\n");printf("請輸入信息:編號,名稱,類型,價格,單位,數(shù)目\n");printf("(以輸入“一1”表示結(jié)束輸入)\n");printf("*********************************************\n");printf("\n");scanf("%d%s%s%f%s%d",&p1->num,p1->name,p1->kind,&p1->price,p1->unit,&p1->quantity);/*輸入商品信息*/printf("\n");p1->next=NULL;fprintf(fp,"%d%s%s%f%s%d",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity);/*將商品信息寫入文件*/while(1){p1=(structgood*)malloc(sizeof(structgood));/*申請新空間*/printf("*********************************************\n");printf("請輸入信息:編號,名稱,類型,價格,單位,數(shù)目\n");printf("*********************************************\n");printf("\n");scanf("%d",&p1->num);if(p1->num==-1)/*申請空間結(jié)束條件*/{printf("\n\n");fprintf(fp,"%d",-1);fclose(fp);returnhead1;/*返回頭指針*/}scanf("%s%s%f%s%d",p1->name,p1->kind,&p1->price,p1->unit,&p1->quantity);/*輸入商品信息*/printf("\n");fprintf(fp,"%d%s%s%f%s%d",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity);/*將商品信息寫入文件*/head2=head2->next;head2=head2->next;head2=head2->next;head2=head2->next;p7=p6->next;p7=p6->next;p2=p1;}}structgood*paixu(structgood*head2)/*鏈表排序函數(shù)*/{structgood*p6,*p7,*r,*s;/*定義結(jié)構(gòu)體指針類型*/for(i=0;i<=3;i++)/*賦初值值*/{a[i]=0;sum[i]=0;aver[i]=0;}p6=(structgood*)malloc(sizeof(structgood));/*申請新空間*/p6->next=head2;head2=p6;while(p6->next!=NULL)/*判斷循環(huán)結(jié)束條件*/r=p6;while(p7->next!=NULL)/*判斷循環(huán)結(jié)束條件*/{if((p7->next->price)>(r->next->price))/*判斷是否調(diào)換*/r=p7;p7=p7->next;}if(p6!=r)/*判斷循環(huán)結(jié)束條件*/{s=r->next;/*指針調(diào)換*/r->next=s->next;s->next=p6->next;p6->next=s;}p6=p6->next;}p6=head2;free(p6);free(p6);/*釋放第一個無效空間*/free(p6);free(p6);/*釋放第一個無效空間*/returnhead2;}voidjisuan(){p1=head;do{if(strcmp(p1->kind,c)==0)/*判斷是否為電器類型*/{sum[0]=sum[0]+(p1->price)*(p1->quantity);/*求電器總價*/a[0]=a[0]+p1->quantity;/*求電器總件數(shù)*/}if(strcmp(p1->kind,d)==0)/*判斷是否為日用品類型*/{sum[1]=sum[1]+(p1->price)*(p1->quantity);/*求日用品總價*/a[1]=a[1]+p1->quantity;/*求日用品總件數(shù)*/a[1]=a[1]+p1->quantity;/*求日用品總件數(shù)*/if(strcmp(p1->kind,e)==0)/*判斷是否為辦公用品類型*/{sum[2]=sum[2]+(p1->price)*(p1->quantity);/*求辦公用品總價*/a[2]=a[2]+p1->quantity;/*求辦公用品總件數(shù)*/}if(strcmp(p1->kind,f)==0)/*判斷是否為食品類型*/{sum[3]=sum[3]+(p1->price)*(p1->quantity);/*求食品總價*/a[3]=a[3]+p1->quantity;/*求食品總件數(shù)*/}p1=p1->next;}while(p1!=NULL);/*遍歷鏈表結(jié)束條件*/for(i=0;i<4;i++)aver[i]=sum[i]/a[i];/*求每類商品平均價*/TOC\o"1-5"\h\zr4—firIfIIII*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*T**T**T**T*\rIIprintf("商品類型\t平均價\t總庫存量\n");4—^—'(firIfIIII*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*T**T**T**T*\rIIprintf("\n");printf(“電器總價值:%\t平均價:%\t總庫存量:%d\n",sum[O],aver[O],a[O]);TOC\o"1-5"\h\zprintf("\n");printf("日用品總價值:%\t平均價:%\t總庫存量:%d\n",sum[l],aver[l],a[l]);printf("\n");printf(“食品總價值:%\t平均價:%\t總庫存量:%d\n",sum[2],aver[2],a[2]);printf("\n");printf("辦公用品總價值:%\t平均價:%\t總庫存量:%d\n",sum[3],aver[3],a[3]);printf("\n");}voidshuchu()/*輸出商品信息函數(shù)*/{do{structgood*p3,*p4,*p5;/*定義結(jié)構(gòu)體指針類型*/intn=0,p=0,q=0,r=0;printf("所有商品信息:\n");printf("編號,名稱,類型,價格,單位,數(shù)目\n");printf("**********************************\n");if((fp=fopen("goods","rb+"))==NULL)/*判斷能否打開文件*/{printf("cannotopenthefile");exit(0);/*結(jié)束程序*/}head=(structgood*)malloc(sizeof(structgood));/*申請頭結(jié)點空間*/p3=head;fscanf(fp,"%d%s%s%f%s%d",&p3->num,p3->name,p3->kind,&p3->price,p3->unit,&p3->quantity);/*從文件中寫到鏈表*/while(1){p4=(structgood*)malloc(sizeof(structgood));/*申請頭結(jié)點空間*/fscanf(fp,"%d",&p4->num);if(p4->num!=-1)/*判斷循環(huán)結(jié)束條件*/{fscanf(fp,"%s%s%f%s%d",p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity);/*從文件中寫到鏈表*/p4->next=NULL;p3->next=p4;p3=p4;}else{p3->next=NULL;break;}}fclose(fp);/*關(guān)閉文件*/p3=head;while(p3!=NULL){printf("%d%s%s%%s%d\n\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity);printf("\n");p3=p3->next;p4=(structgood*)malloc(sizeof(structgood));p4=(structgood*)malloc(sizeof(structgood));/*申請空間*/p4=(structgood*)malloc(sizeof(structgood));p4=(structgood*)malloc(sizeof(structgood));/*申請空間*/printf("**********************************\n");printf("http://////////////////////////////////\n");while(n!=4){p3=head;printf("**********************************\n");printf("l添加商品信息\n");printf("2刪除某商品信息\n");printf("3修改某商品信息\n");printf("4返回(當你完成了對某一商品的添加、刪除或者修改后請按4返回)\n");printf("**********************************\n");scanf("%d",&n);if(n==l)/*添加商品信息*/{printf(〃請輸入商品編號名稱類型價格單位數(shù)目\n〃);printf("**********************************\n");scanf("%d%s%s%f%s%d",&p4->num,p4->name,p4->kind,&p4->price,p4->uniscanf("%d%s%s%f%s%d",&p4->num,p4->name,p4->kind,&p4->price,p4->uniscanf("%d%s%s%f%s%d",&p4->num,p4->name,p4->kind,&p4->price,p4->uniscanf("%d%s%s%f%s%d",&p4->num,p4->name,p4->kind,&p4->price,p4->uni{{{{t,&p4->quantity);/*輸入商品信息*/p4->next=NULL;while(p3->next!=NULL)/*判斷循環(huán)結(jié)束條件*/{p3=p3->next;}p3->next=p4;p3=head;if((fp=fopen("goods","w"))==NULL)/*判斷能否打開文件*/{printf("cannotopenthefile");exit(0);/*結(jié)束程序*/}while(p3!=NULL)fprintf(fp,"%d%s%s%f%s%d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity)/*將商品信息寫入文件*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp);/*關(guān)閉文件*/printf("**********************************\n");TOC\o"1-5"\h\zprintf("\n");printf("請按4返回\n");printf("\n");printf("**********************************\n");}if(n==2)/*刪除商品*/{printf("**********************************\n");printf("請輸入需要刪除的商品編號\n");printf("**********************************\n");scanf("%d",&p);{{{{printf("**********\n");printf(〃l確認刪除\n2取消刪除\n〃);printf("**********\n");scanf(〃%d〃,&r);if(r==l){if((head->num)==p){head=head->next;free(p3);/*釋放空間*/}else{p4=head;p3=p4->next;while(p3!=NULL)/*判斷循環(huán)結(jié)束條件*/if((p3->num)==p){{p5=p3->next;free(p3);/*釋放空間*/p4->next=p5;break;}p3=p3->next;p4=p4->next;}}if((fp=fopen("goods","w"))==NULL)/*判斷能否打開文件*/{printf("cannotopenthefile");exit(0);/*結(jié)束程序*/}p3=head;while(p3!=NULL)/*判斷循環(huán)結(jié)束條件*/{fprintf(fp,"%d%s%s%f%s%d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity);/*將商品信息寫入文件*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp);/*關(guān)閉文件*/}if(r==2)continue;/*繼續(xù)循環(huán)*/printf("**********************************\n");TOC\o"1-5"\h\zprintf("\n");printf("請按4返回\n");printf("\n");printf("**********************************\n");}if(n==3)/*修改某商品信息*/printf("請輸入需要修改的商品編號\n");scanf("%d",&q);while(p3!=NULL)/*判斷循環(huán)結(jié)束條件*/{if((p3->num)==q)/*判斷是否為所需要修改的商品*/{printf("請輸入商品單價與庫存量(如果單價不變請輸入原來的單價)\n");scanf("%f%d",&p3->price,&p3->quantity);/*輸入商品價格與庫存量*/}p3=p3->next;}if((fp=fopen("goods","w"))==NULL)/*判斷能否打開文件*/{printf("cannotopenthefile");exit(0);/*結(jié)束程序*/}p3=head;while(p3!=NULL)/*判斷循環(huán)結(jié)束條件*/printf("lprintf("l繼續(xù)修改\n\n2返回\n");printf("lprintf("l繼續(xù)修改\n\n2返回\n");fprintf(fp,"%d%s%s%f%s%d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity);/*將商品信息寫入文件*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp);/*關(guān)閉文件*/printf("**********************************\n");TOC\o"1-5"\h\zprintf("\n");printf("請按4返回\n");printf("\n");printf("**********************************\n");}if(n==4)/*退出*/break;}printf("**********\n");{{if(strcmp(p3->kind,c)==0)/*判斷商品類型是否為電器類型*/{{{if(strcmp(p3->kind,c)==0)/*判斷商品類型是否為電器類型*/{printf("**********\n");scanf("%d",&p);if(p==1)continue;/*繼續(xù)循環(huán)*/if(p==2)break;/*跳出循環(huán)*/}while(n!=2);fclose(fp);/*關(guān)閉文件*/}voidprintf0(structgood*p)/*遍歷鏈表并打印電器類商品函數(shù)*/{structgood*p3;/*定義結(jié)構(gòu)體指針類型*/p3=p;while(p3!=NULL)/*判斷遍歷鏈表循環(huán)結(jié)束條件*/printf("%d\t%s\t%s\t%\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3printf("%d\t%s\t%s\t%\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3printf("%d\t%s\t%s\t%\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3printf("%d\t%s\t%s\t%\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3{{if(strcmp(p3->kind,e)==0)/*判斷商品類型是否為辦公用品類型*/{{{if(strcmp(p3->kind,e)==0)/*判斷商品類型是否為辦公用品類型*/{->unit,p3->quantity);/*輸出電器類商品信息*/printf("\n");}p3=p3->next;}return;}voidprintf1(structgood*p)/*遍歷鏈表并打印日用品類商品函數(shù)*/{structgood*p3;/*定義結(jié)構(gòu)體指針類型*/p3=p;while(p3!=NULL)/*判斷遍歷鏈表循環(huán)結(jié)束條件*/->unit,p3->quantity);/*輸出日用品類商品信息*/printf("\n");}p3=p3->next;}return;}voidprintf2(structgood*p)/*遍歷鏈表并打印辦公用品類商品函數(shù)*/{structgood*p3;/*定義結(jié)構(gòu)體指針類型*/p3=p;while(p3!=NULL)/*判斷遍歷鏈表循環(huán)結(jié)束條件*/->unit,p3->quantity);/*輸出辦公用品類商品信息*/printf("\n");}p3=p3->next;}return;}voidprintf3(structgood*p)/*遍歷鏈表并打印食品類商品函數(shù)*/{structgood*p3;/*定義結(jié)構(gòu)體指針類型*/p3=p;while(p3!=NULL)/*判斷遍歷鏈表循環(huán)結(jié)束條件*/printf("%d\t%s\t%s\t%\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3printf("%d\t%s\t%s\t%\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3printf("%d\t%s\t%s\t%\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3printf("%d\t%s\t%s\t%\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3{{{{->unit,p3->quantity);/*輸出食品類商品信息*/printf("\n");}p3=p3->next;}return;}voidshunxudayin(){for(i=0;i<4;i++)g[i]=aver[i];/*將平均價賦給新數(shù)組*/for(j=0;j<3;j++)/*將新數(shù)組用冒泡排序法排序*/for(i=j+1;i<4;i++){if(g[j]<g[i])h=g[j];printf("printf("庫存量低于100的貨名及類別\n");g[j]=g[i];g[i]=h;}}printf("\n****************************\n");printf(“商品平均價格排序表(從高到低)\n〃);printf("****************************\n");printf("\n");prinTf(“編號\t名稱\t類別\t單價\t單位\t數(shù)量\n");printf("\n");for(j=0;j<4;j++)for(i=0;i<4;i++){if(aver[i]==g[j])/*判斷每類商品平均價格的先后順序*/switch(i){case0:printf0(head);/*調(diào)用遍歷鏈表并打印電器類商品函數(shù)*/break;case1:printf1(head);/*調(diào)用遍歷鏈表并打印日用品類商品函數(shù)*/break;case2:printf2(head);/*調(diào)用遍歷鏈表并打印辦公用品類商品函數(shù)*/break;case3:printf3(head);/*調(diào)用遍歷鏈表并打印食品類商品函數(shù)*/break;}}}voidtongji1(){p1=head;TOC\o"1-5"\h\z*^*^*^*^*^*^*^*^*^*^*^*T**T**T**T**T**T**T**T**T**T**T**T**T*\[IIprintf("\n");printf("商品名稱\t商品類型\n");printf("\n");while(p1!=NULL)/*判斷遍歷鏈表循環(huán)結(jié)束條件*/{if(p1->quantity<100)/*判斷庫存量是否小于100*/{printf("%s\t%s\n",p1->name,p1->kind);/*輸出商品名稱及類別*/printf("\n");}p1=p1->next;}}voidtongji2(){printf("\n**********************************************\n");printf(〃商品庫存量有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東省棗莊市滕州市2024-2025學年七年級上學期1月期末考試道德與法治試卷(含答案)
- 江蘇省宿遷市2024-2025學年高三1月第一次調(diào)研測試化學試題(含答案)
- 09年1月中英合作財務管理真題及答案
- 福建省南平市劍津中學2020-2021學年高三語文模擬試題含解析
- 2025年度保密協(xié)議模板:涉密數(shù)據(jù)存儲服務合同3篇
- 2024網(wǎng)絡游戲內(nèi)容安全與防沉迷系統(tǒng)咨詢合同
- 2024版單位汽車租賃合同范本
- 2024軟件著作權(quán)登記與反侵權(quán)調(diào)查專業(yè)服務合同3篇
- 2025年度農(nóng)產(chǎn)品加工合作合同3篇
- 2024訂車協(xié)議范本
- SVG無功補償培訓
- 新生兒聽力篩查技術(shù)規(guī)范衛(wèi)生部2010年版
- 大貓英語分級閱讀 六級1 Arthur's Fantastic Party課件
- SCA自動涂膠系統(tǒng)培訓講義
- LEC法取值標準對照表
- 鑄造工廠設(shè)備管理(共21頁)
- 華中數(shù)控車床編程及操作
- 農(nóng)產(chǎn)品收購臺賬(登記經(jīng)營單位及個體經(jīng)營者投售的農(nóng)產(chǎn)品
- 分紅保險精算規(guī)定
- 名詞性從句引導詞表格
- 3、起重工、焊工、電工安全技術(shù)交底
評論
0/150
提交評論