超市管理系統(tǒng)完整源代碼_第1頁
超市管理系統(tǒng)完整源代碼_第2頁
超市管理系統(tǒng)完整源代碼_第3頁
超市管理系統(tǒng)完整源代碼_第4頁
超市管理系統(tǒng)完整源代碼_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

有一個(gè)小型超市,出售N(N>=10)種商品,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)系統(tǒng),完成下列功能:1.保存及輸出。超市中的各種商品信息保存在指定文件中,可以把它們輸出顯示。計(jì)算并排序。計(jì)算每類商品的總價(jià)值(sum,單精度)及平均價(jià)(aver,單精度,輸出一位小數(shù)),將每類商品按平均價(jià)從大到小的順序排序打印出來。統(tǒng)計(jì)。統(tǒng)計(jì)輸出庫存量低于100的貨號及類別。統(tǒng)計(jì)輸出有兩種以上(含兩種)商品庫存量低于100的商品類別??傮w結(jié)構(gòu)本程序主要分為八個(gè)模塊:主模塊、信息輸出修改模塊、新建信息模塊、排序模塊、計(jì)算模塊、統(tǒng)計(jì)模塊1、統(tǒng)計(jì)模塊2、打印模塊。主模塊:通過調(diào)用各分模塊實(shí)現(xiàn)功能;信息輸出修改模塊:輸出顯示文件中商品信息內(nèi)容,添加商品信息,刪除商品信息,修改商品信息;新建商品信息模塊:建立一個(gè)新結(jié)構(gòu)體,為鏈表存信息用,并且將信息保存在指定的文件中;排序模塊:把文件中順序零亂的商品信息按單價(jià)的大小從高到低進(jìn)行排序,放到鏈表里存儲;計(jì)算模塊:將所有商品的價(jià)格與庫存量進(jìn)行累加求和;打印模塊:將商品信息按每類平均價(jià)格排序(從高到低)按順序打印出來;統(tǒng)計(jì)模塊1:統(tǒng)計(jì)庫存量低于100的貨名及類別;charname[20];charname[20];/*商品名稱*/charname[20];charname[20];/*商品名稱*/8)統(tǒng)計(jì)模塊2:統(tǒng)計(jì)商品庫存量有2種以上(含2種)低于100的商品類別。附錄(程序清單)#include""/*輸入,輸出頭文件*/#include""/*申請空間頭文件*/#include""/*對字符串加工頭文件*/#include""/*清屏頭文件*/FILE*fp;intn=0;/*定義文件指針類型*/inti,j,a[4],m;/*定義整數(shù)類型*/floataver[4],sum[4],g[4],h;/*定義浮點(diǎn)類型*/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];/*商品類型*//*商品價(jià)格*//*商品單位*//*商品價(jià)格*//*商品單位*//*商品數(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é)點(diǎn)空間*/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("請輸入信息:編號,名稱,類型,價(jià)格,單位,數(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("請輸入信息:編號,名稱,類型,價(jià)格,單位,數(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);/*釋放第一個(gè)無效空間*/free(p6);free(p6);/*釋放第一個(gè)無效空間*/returnhead2;}voidjisuan(){p1=head;do{if(strcmp(p1->kind,c)==0)/*判斷是否為電器類型*/{sum[0]=sum[0]+(p1->price)*(p1->quantity);/*求電器總價(jià)*/a[0]=a[0]+p1->quantity;/*求電器總件數(shù)*/}if(strcmp(p1->kind,d)==0)/*判斷是否為日用品類型*/{sum[1]=sum[1]+(p1->price)*(p1->quantity);/*求日用品總價(jià)*/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);/*求辦公用品總價(jià)*/a[2]=a[2]+p1->quantity;/*求辦公用品總件數(shù)*/}if(strcmp(p1->kind,f)==0)/*判斷是否為食品類型*/{sum[3]=sum[3]+(p1->price)*(p1->quantity);/*求食品總價(jià)*/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];/*求每類商品平均價(jià)*/TOC\o"1-5"\h\zr4—firIfIIII*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*T**T**T**T*\rIIprintf("商品類型\t平均價(jià)\t總庫存量\n");4—^—'(firIfIIII*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*T**T**T**T*\rIIprintf("\n");printf(“電器總價(jià)值:%\t平均價(jià):%\t總庫存量:%d\n",sum[O],aver[O],a[O]);TOC\o"1-5"\h\zprintf("\n");printf("日用品總價(jià)值:%\t平均價(jià):%\t總庫存量:%d\n",sum[l],aver[l],a[l]);printf("\n");printf(“食品總價(jià)值:%\t平均價(jià):%\t總庫存量:%d\n",sum[2],aver[2],a[2]);printf("\n");printf("辦公用品總價(jià)值:%\t平均價(jià):%\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("編號,名稱,類型,價(jià)格,單位,數(shù)目\n");printf("**********************************\n");if((fp=fopen("goods","rb+"))==NULL)/*判斷能否打開文件*/{printf("cannotopenthefile");exit(0);/*結(jié)束程序*/}head=(structgood*)malloc(sizeof(structgood));/*申請頭結(jié)點(diǎn)空間*/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é)點(diǎn)空間*/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返回(當(dāng)你完成了對某一商品的添加、刪除或者修改后請按4返回)\n");printf("**********************************\n");scanf("%d",&n);if(n==l)/*添加商品信息*/{printf(〃請輸入商品編號名稱類型價(jià)格單位數(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確認(rèn)刪除\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("請輸入商品單價(jià)與庫存量(如果單價(jià)不變請輸入原來的單價(jià))\n");scanf("%f%d",&p3->price,&p3->quantity);/*輸入商品價(jià)格與庫存量*/}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];/*將平均價(jià)賦給新數(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(“商品平均價(jià)格排序表(從高到低)\n〃);printf("****************************\n");printf("\n");prinTf(“編號\t名稱\t類別\t單價(jià)\t單位\t數(shù)量\n");printf("\n");for(j=0;j<4;j++)for(i=0;i<4;i++){if(aver[i]==g[j])/*判斷每類商品平均價(jià)格的先后順序*/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)容里面會有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論