



版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、有一個(gè)小型超市,出售 N (N> = 10)種商品,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)系統(tǒng),完成下列1. 保存及輸出。超市中的各種商品信息保存在指定文件中,可以把它們輸出顯 示。2. 計(jì)算并排序。計(jì)算每類(lèi)商品的總價(jià)值(sum,單精度)及平均價(jià)(aver,單 精度,輸出一位小數(shù)),將每類(lèi)商品按平均價(jià)從大到小的順序排序打印出來(lái)。3. 統(tǒng)計(jì)。統(tǒng)計(jì)輸出庫(kù)存量低于100的貨號(hào)及類(lèi)別。統(tǒng)計(jì)輸出有兩種以上(含 兩種)商品庫(kù)存量低于100的商品類(lèi)別。1.2總體結(jié)構(gòu)本程序主要分為八個(gè)模塊:主模塊、信息輸出修改模塊、新建信息模塊、排序模 塊、計(jì)算模塊、統(tǒng)計(jì)模塊1、統(tǒng)計(jì)模塊2、打印模塊。1)主模塊:通過(guò)調(diào)用各分模塊實(shí)現(xiàn)功能;2)
2、信息輸出修改模塊:輸出顯示文件中商品信息內(nèi)容,添加商品信息,刪除商 品信息,修改商品信息;3)新建商品信息模塊:建立一個(gè)新結(jié)構(gòu)體,為鏈表存信息用,并且將信息保存 在指定的文件中;4)排序模塊:把文件中順序零亂的商品信息按單價(jià)的大小從高到低進(jìn)行排序, 放到鏈表里存儲(chǔ);5)計(jì)算模塊:將所有商品的價(jià)格與庫(kù)存量進(jìn)行累加求和;6)打印模塊:將商品信息按每類(lèi)平均價(jià)格排序(從高到低)按順序打印出來(lái);7)統(tǒng)計(jì)模塊1:統(tǒng)計(jì)庫(kù)存量低于100的貨名及類(lèi)別;8)統(tǒng)計(jì)模塊2:統(tǒng)計(jì)商品庫(kù)存量有2種以上(含2種)低于100的商品類(lèi)別附錄(程序清單)#i nclude "stdio.h"#i nclude
3、 "stdlib.h"#include "string.h"#i nclude "coni o.h"FILE *fp;/*輸入,輸出頭文件*/*申請(qǐng)空間頭文件*/*對(duì)字符串加工頭文件*/*清屏頭文件*/int n=0;/*定義文件指針類(lèi)型*/*定義整數(shù)類(lèi)型*/float aver4,sum4,g4,h;/*定義浮點(diǎn)類(lèi)型*/char c5="elec"char d5="comm"char e5="food"char f5="offi"/*定義字符數(shù)組類(lèi)型*/
4、*定義字符數(shù)組類(lèi)型*/*定義字符數(shù)組類(lèi)型*/*定義字符數(shù)組類(lèi)型*/struct goodint num;char n ame20;char kin d40;float price;char un it10; int qua ntity;/*定義結(jié)構(gòu)體*/*商品編號(hào)*/*商品名稱(chēng)*/*商品類(lèi)型*/*商品價(jià)格*/*商品單位*/*商品數(shù)量*/struct good *n ext;/*定義結(jié)構(gòu)體指針類(lèi)型*/struct good *head1,*p1,*p2;/*定義結(jié)構(gòu)體指針類(lèi)型*/*創(chuàng)建鏈表函數(shù)*/*head,*p1,*p2;struct good *createlist()if(fp=fope
5、n( "goods message.txt","w")=NULL)prin tf("ca n not ope n the file");/*判斷能否打開(kāi)文件*/exit(0);/*結(jié)束程序*/head1=(struct good *)malloc(sizeof(struct good);p1=head1;/*申請(qǐng)頭結(jié)點(diǎn)空間*/p2=head1;prin tf("*n")printf("請(qǐng)輸入信息:編號(hào),名稱(chēng),類(lèi)型,價(jià)格,單位,數(shù)目n");printf("(以輸入-1”表示結(jié)束輸入)n&
6、quot;);prin tf("*n");.n");printf("scanf("%d %s %s %f %s %d",&p1->num,p1->name,p1->kind,&p1->price,p1-> unit,&p1->quantity);/*輸入商品信息 */printf("n");p1-> next=NULL;fprin tf(fp,"%d %s %s %f %s %d",p1- >nu m,p1- >n a
7、me,p1->ki nd,p1->price,p1-> un it,p1->qua ntity);/*將商品信息寫(xiě)入文件*/while(1)p1=(struct good *)malloc(sizeof(struct good);/* 申請(qǐng)新空間 */prin tf("*n");printf("請(qǐng)輸入信息:編號(hào),名稱(chēng),類(lèi)型,價(jià)格,單位,數(shù)目n");printf("(以輸入-1 ”表示結(jié)束輸入)n");prin tf("*n");printf("n");scan f(&qu
8、ot;%d",&p1-> nu m);if(p1-> num=-1)printf("fprin tf(fp,"%d",-1); fclose(fp);retur n headl;/*申請(qǐng)空間結(jié)束條件*/nn");/*返回頭指針*/scanf("%s %s %f %s %d",p1->name,p1->kind,&p1->price,p1->unit,&p1->quan tity); /*輸入商品信息*/printf("n");- -fpri
9、n tf(fp,"%d %s %s %f %s %d",p1- >nu m,p1- >n ame,p1->ki nd,p1->price,p1-> un it,p1->qua ntity);/*將商品信息寫(xiě)入文件*/p1-> next=NULL;p2->n ext=p1;p2=p1;/*鏈表排序函數(shù)*/struct good *p6,*p7,*r,*s;for(i=0;i<=3;i+)ai=0;sumi=0;averi=0;/*定義結(jié)構(gòu)體指針類(lèi)型*/*賦初值值*/ struct good *paixu(struct go
10、od*head2)p6=(struct good *)malloc(sizeof(struct good);/* 申請(qǐng)新空間 */p6->n ext=head2;head2=p6;while(p6->next!=NULL)/*判斷循環(huán)結(jié)束條件 */p7=p6->n ext;r=p6;while(p7->next!=NULL)/*判斷循環(huán)結(jié)束條件 */if(p7->next->price)>(r->next->price)/*判斷是否調(diào)換 */r=p7;p7=p7->n ext;if(p6!=r)/*判斷循環(huán)結(jié)束條件*/s=r->
11、 next;/* 指針調(diào)換 */r->n ext=s->n ext;s->n ext=p6->n ext;p6->n ext=s;p6=p6->n ext;p6=head2;head2=head2->n ext;free(p6);/*釋放第一個(gè)無(wú)效空間*/retur n head2;void jisua n()p仁head;doif(strcmp(p1->kind,c)=0)/*判斷是否為電器類(lèi)型 */sum0=sum0+(p1->price)*(p1->quantity);/*求電器總價(jià) */a0=a0+p1->quantit
12、y;/*求電器總件數(shù) */if(strcmp(p1->kind,d)=0)/*判斷是否為日用品類(lèi)型*/sum1=sum1+(p1->price)*(p1->quantity);/*求日用品總價(jià) */a1=a1+p1->quantity;/*求日用品總件數(shù) */if(strcmp(p1->kind,e)=0)/*判斷是否為辦公用品類(lèi)型*/sum2=sum2+(p1->price)*(p1->quantity);/*求辦公用品總價(jià) */a2=a2+p1->quantity;/*求辦公用品總件數(shù) */if(strcmp(p1->kind,f)=0
13、)/*判斷是否為食品類(lèi)型 */sum3=sum3+(p1->price)*(p1->quantity);/*求食品總價(jià) */a3=a3+p1->quantity;/*求食品總件數(shù) */p1=p1- >n ext;while (p1!=NULL);/*遍歷鏈表結(jié)束條件*/for(i=0;i<4;i+)averi=sumi/ai;/*求每類(lèi)商品平均價(jià)*/prin tf("*n");prin tf("商品類(lèi)型t 平均價(jià)t總庫(kù)存量n");prin tf("*n");printf("n");pr
14、intf("電器總價(jià)值:%0.1ft 平均價(jià):%0.1ft 總庫(kù)存量:%dn",sumO,averO,aO);n");printf("printf("日用品總價(jià)值:%0.1ft平均價(jià):%0.1ft總庫(kù)存 量:%dn",sum1,aver1,a1);printf("n");printf("食品總價(jià)值:%0.1ft 平均價(jià):%0.1ft 總庫(kù)存量:%dn",sum2,aver2,a2);printf("n");printf("辦公用品總價(jià)值:%0.1ft平均價(jià):%0.1
15、ft總庫(kù)存量:%dn",sum3,aver3,a3);printf("n");void shuchu()/*輸出商品信息函數(shù)*/dostruct good *p3,*p4,*p5;/*定義結(jié)構(gòu)體指針類(lèi)型*/int n=0,p=0,q=0,r=0;printf("所有商品信息:n");printf("編號(hào),名稱(chēng),類(lèi)型,價(jià)格,單位,數(shù)目n");prin tf("*n");if(fp=fopen("goods message.txt","rb+")=NULL)/* 判斷能
16、否打開(kāi)文件 */prin tf("ca n not ope n the file");exit(0);/*結(jié)束程序*/head=(struct good *)malloc(sizeof(struct good); /*申請(qǐng)頭結(jié)點(diǎn)空間 */p3=head;fscan f(fp,"%d %s %s %f %s %d",&p3->nu m,p3->n ame,p3->k ind,&p3->price,p3-> un it,&p3->qua ntity);/*從文件中寫(xiě)到鏈表*/while(1)p4=(
17、struct good *)malloc(sizeof(struct good);/* 申請(qǐng)頭結(jié)點(diǎn)空間 */fscanf(fp,"%d ",&p4->num);if(p4->num!=-1)/*判斷循環(huán)結(jié)束條件*/fscan f(fp,"%s %s %f %s %d",p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity); /*從文件中寫(xiě)到鏈表*/p4-> next=NULL;p3->n ext=p4;p3=p4;elsep3
18、-> next=NULL;break;fclose(fp);/*關(guān)閉文件 */p3=head;while(p3!=NULL)printf(”%d %s %s %0.1f %s%dnn",p3-> num,p3-> name,p3->kin d,p3->price,p3-> uni t,p3->qua ntity);p3=p3->n ext;prin tf("*n");prin tf("/八 n");while( n!=4)p3=head;prin tf("*n");printf
19、("1添加商品信息n");printf("2刪除某商品信息n");printf("3修改某商品信息n");printf("4返回(當(dāng)你完成了對(duì)某一商品的添加、刪除或者修改后請(qǐng)按4返回)n");prin tf("*n");/*添加商品信息*/sea nf("%d",&n);if(n=1)printf("請(qǐng)輸入商品編號(hào)名稱(chēng)類(lèi)型價(jià)格單位數(shù)目n");/*申請(qǐng)空間*/prin tf("*n");p4=(struet good *)mall
20、oc(sizeof(struct good);sea nf("%d %s %s %f %s %d",&p4-> num,p4-> name,p4->ki nd,&p4->price,p4-> unit,&p4->quantity);/*輸入商品信息 */p4->n ext=NULL;/*判斷循環(huán)結(jié)束條件*/while(p3-> next!=NULL) p3=p3->n ext;p3->n ext=p4;p3=head;/*判斷能if(fp=fope n( "goods messag
21、e.txt","w")=NULL)否打開(kāi)文件*/printf("can not open the file");exit(O);/*結(jié)束程序*/while(p3!=NULL)fprin tf(fp,"%d %s %s %f %s %d",p3->nu m,p3->n ame,p3->ki nd,p3->price,p3-> un it,p3->qua ntity)/*將商品信息寫(xiě)入文件*/p3=p3->n ext;fprin tf(fp,"%d",-1);prin
22、tf("can not open the file");fclose(fp);/*關(guān)閉文件*/prin tf("*n");.n");printf("printf("請(qǐng)按4返回n");printf(".n");printf("i*n");if(n=2)/*刪除商品*/prin tf("*n");printf("請(qǐng)輸入需要?jiǎng)h除的商品編號(hào)n");prin tf("*n");sca nf("%d",&am
23、p;p);prin tf("*n")printf("1確認(rèn)刪除n2取消刪除n");sea nf("%d",&r);if(r=1)if(head->num )=p)head=head->n ext;free(p3);/*釋放空間 */elsep4=head;p3=p4->n ext;while(p3!=NULL)/*判斷循環(huán)結(jié)束條件*/if(p3->num )=p)p5=p3->n ext;free(p3);/* 釋放空間 */p4->n ext=p5;break;p3=p3->n ex
24、t;p4=p4->n ext;/*判斷能否打開(kāi)if(fp=fope n("goods message.txt","w")=NULL)文件*/exit(O);/*結(jié)束程序*/p3=head;while(p3!=NULL)/*判斷循環(huán)結(jié)束條件*/fprin tf(fp,"%d %s %s %f %s %d",p3->nu m,p3->n ame,p3->ki nd,p3->price,p3-> un it,p3->qua ntity);/*將商品信息寫(xiě)入文件*/p3=p3->n ext;fp
25、rin tf(fp,"%d",-1);fclose(fp);/* 關(guān)閉文件 */if(r=2)continue;/*繼續(xù)循環(huán) */printf(" *n");printf("n");printf(”請(qǐng)按 4 返回n");printf("n");printf(" *if(n=3)/*修改某商品信息*/printf("請(qǐng)輸入需要修改的商品編號(hào)n");sca nf("%d",&q);while(p3!=NULL)/*判斷循環(huán)結(jié)束條件*/if(p3->
26、;num)=q)/*判斷是否為所需要修改的商品*/*輸入商品價(jià)/*判斷能printf("請(qǐng)輸入商品單價(jià)與庫(kù)存量(如果單價(jià)不變請(qǐng)輸入原來(lái)的單價(jià))n");sea nf("%f %d",&p3->price,&p3->qua ntity);格與庫(kù)存量*/p3=p3->n ext;if(fp=fope n( "goods message.txt","w")=NULL)否打開(kāi)文件*/prin tf("ca n not ope n the file");exit(0);/*
27、結(jié)束程序*/p3=head;while(p3!=NULL)/*判斷循環(huán)結(jié)束條件*/fprintf(fp,"%d %s %s %f %s %d 耳",p3->nu m,p3->n ame,p3->ki nd,p3->price,p3-> un it,p3->qua ntity); /*將商品信息寫(xiě)入文件*/p3=p3->n ext;fprin tf(fp,"%d",-1);fclose(fp);/* 關(guān)閉文件 */printf(" *printf("n");printf(”請(qǐng)按 4 返
28、回n");printf("n");printf(" */*退出*/ if(n=4)break;prin tf("*n")printf("1 繼續(xù)修改 nn2 返回n");prin tf("*n")scan f("%d",&p);if(p=1)continue;/*繼續(xù)循環(huán) */if(p=2)break;/*跳出循環(huán)*/while( n!=2);fclose(fp);/* 關(guān)閉文件 */void prin tf0(struct good *p)/*遍歷鏈表并打印電器類(lèi)商
29、品函數(shù) */struct good *p3;/*定義結(jié)構(gòu)體指針類(lèi)型*/P3=P;while (p3!=NULL)/*判斷遍歷鏈表循環(huán)結(jié)束條件*/if(strcmp(p3->kind,c)=0)/*判斷商品類(lèi)型是否為電器類(lèi)型*/prin tf("%dt%st%st%0.1ft%st%dn",p3-> num,p3-> name,p3->ki nd,p3->price, p3->unit,p3->quantity);/*輸出電器類(lèi)商品信息*/.n");printf("p3=p3->n ext;return;vo
30、id prin tf1(struct good *p)/*遍歷鏈表并打印日用品類(lèi)商品函數(shù) */struct good *p3;/*定義結(jié)構(gòu)體指針類(lèi)型*/P3=P;while (p3!=NULL)/*判斷遍歷鏈表循環(huán)結(jié)束條件*/if(strcmp(p3->ki nd,d)=0)/*判斷商品類(lèi)型是否為日用品類(lèi)型*/prin tf("%dt%st%st%0.1ft%st%dn",p3-> num,p3-> name,p3->ki nd,p3->price,p3->unit,p3->quantity);/*輸出日用品類(lèi)商品信息*/print
31、f("n");p3=p3->n ext;return;void prin tf2(struct good *p)/*遍歷鏈表并打印辦公用品類(lèi)商品函數(shù) */struct good *p3;/*定義結(jié)構(gòu)體指針類(lèi)型*/p3=p;while (p3!=NULL)/*判斷遍歷鏈表循環(huán)結(jié)束條件*/if(strcmp(p3->k in d,e)=0)/*判斷商品類(lèi)型是否為辦公用品類(lèi)型*/prin tf("%dt%st%st%0.1ft%st%dn",p3-> num,p3-> name,p3->ki nd,p3->price,p3-
32、>unit,p3->quantity);/*輸出辦公用品類(lèi)商品信息*/printf("n");p3=p3->n ext;return;void prin tf3(struct good *p)/*遍歷鏈表并打印食品類(lèi)商品函數(shù) */struct good *p3;/*定義結(jié)構(gòu)體指針類(lèi)型*/p3=p;while (p3!=NULL)/*判斷遍歷鏈表循環(huán)結(jié)束條件*/if(strcmp(p3->kind,f)=0)/*判斷商品類(lèi)型是否為食品類(lèi)型*/prin tf("%dt%st%st%0.1ft%st%dn",p3-> num,p3
33、-> name,p3->ki nd,p3->price,p3->unit,p3->quantity);/*輸出食品類(lèi)商品信息*/printf("n");p3=p3->n ext;return; void shu nxuday in()for(i=0;i<4;i+)gi=averi;/*將平均價(jià)賦給新數(shù)組*/for(j=0;j<3;j+)/*將新數(shù)組用冒泡排序法排序*/for(i=j+1;i<4;i+)if(gj<gi)h=gj;gj=gi;gi=h;printf("n*n")n");p
34、rintf("商品平均價(jià)格排序表(從高到低)printf(" *n");.n");printf("printf("編號(hào)t名稱(chēng)t類(lèi)別t單價(jià)t單位t數(shù)量n");printf("n");for(j=0;j<4;j+)for(i=0;i<4;i+)if (averi=gj)/*判斷每類(lèi)商品平均價(jià)格的先后順序*/switch(i)case 0:printf0(head); /*調(diào)用遍歷鏈表并打印電器類(lèi)商品函數(shù)*/break;case 1:printf1(head); /*調(diào)用遍歷鏈表并打印日用品類(lèi)商品函
35、數(shù)*/break;case 2:printf2(head);/*調(diào)用遍歷鏈表并打印辦公用品類(lèi)商品函數(shù)*/break;case 3:prin tf3(head);/*調(diào)用遍歷鏈表并打印食品類(lèi)商品函數(shù)*/break;void ton gji1()p仁head;prin tf("n*printf("庫(kù)存量低于100的貨名及類(lèi)別n");printf("n");printf("商品名稱(chēng)t商品類(lèi)型n");printf("n");while(p1!=NULL)/*判斷遍歷鏈表循環(huán)結(jié)束條件*/if(p1->qua ntity<100)/*判斷庫(kù)存量是否小于100*/printf("%st%sn",p1->name,p1->kind); /*輸出商品名稱(chēng)及類(lèi)別 */printf("n");p1=p1- >n ext;void ton gji2()prin tf("n*的商品類(lèi)別:n");printf("商品庫(kù)存量有2種以上(含2種)低于100printf(&quo
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京汽車(chē)托運(yùn)合同范本
- 2025年泰州貨運(yùn)從業(yè)資格證怎么考
- 修復(fù)車(chē)交易合同范本
- 醫(yī)院弱電集成合同范本
- 制衣廠(chǎng)勞動(dòng)合同范本
- 主廚合同范本
- 與中介定金合同范本
- 棉花勞務(wù)合同范本
- 冠名使用合同范本
- 勞動(dòng)合同范本完整
- 三創(chuàng)賽獲獎(jiǎng)-非遺文化創(chuàng)新創(chuàng)業(yè)計(jì)劃書(shū)
- 2024屆新高考二輪復(fù)習(xí) 以“防”突破無(wú)機(jī)制備型實(shí)驗(yàn)綜合題 課件
- 2024年CNCERT-CCSC管理Ⅱ級(jí)理論考試題庫(kù)及答案
- T-CARM 002-2023 康復(fù)醫(yī)院建設(shè)標(biāo)準(zhǔn)
- 《電線(xiàn)電纜介紹》課件
- 汽車(chē)驅(qū)動(dòng)橋橋殼的優(yōu)化設(shè)計(jì)
- 幼兒園活動(dòng)區(qū)自制玩學(xué)具及其效用研究
- 中國(guó)古代史選擇題50題專(zhuān)練 高考?xì)v史統(tǒng)編版二輪復(fù)習(xí)
- 概念階段定義產(chǎn)品包需求指南
- 秸稈的綜合利用課件
- 《小兒過(guò)敏性紫癜》課件
評(píng)論
0/150
提交評(píng)論