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

下載本文檔

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

文檔簡介

1、有一個小型超市,出售 N (N = 10)種商品,設(shè)計并實現(xiàn)一個系統(tǒng),完成下列1. 保存及輸出。超市中的各種商品信息保存在指定文件中,可以把它們輸出顯 示。2. 計算并排序。計算每類商品的總價值(sum,單精度)及平均價(aver,單 精度,輸出一位小數(shù)),將每類商品按平均價從大到小的順序排序打印出來。3. 統(tǒng)計。統(tǒng)計輸出庫存量低于100的貨號及類別。統(tǒng)計輸出有兩種以上(含 兩種)商品庫存量低于100的商品類別。1.2總體結(jié)構(gòu)本程序主要分為八個模塊:主模塊、信息輸出修改模塊、新建信息模塊、排序模 塊、計算模塊、統(tǒng)計模塊1、統(tǒng)計模塊2、打印模塊。1)主模塊:通過調(diào)用各分模塊實現(xiàn)功能;2)信息輸出

2、修改模塊:輸出顯示文件中商品信息內(nèi)容,添加商品信息,刪除商 品信息,修改商品信息;3)新建商品信息模塊:建立一個新結(jié)構(gòu)體,為鏈表存信息用,并且將信息保存 在指定的文件中;4)排序模塊:把文件中順序零亂的商品信息按單價的大小從高到低進(jìn)行排序, 放到鏈表里存儲;5)計算模塊:將所有商品的價格與庫存量進(jìn)行累加求和;6)打印模塊:將商品信息按每類平均價格排序(從高到低)按順序打印出來;7)統(tǒng)計模塊1:統(tǒng)計庫存量低于100的貨名及類別;8)統(tǒng)計模塊2:統(tǒng)計商品庫存量有2種以上(含2種)低于100的商品類別附錄(程序清單)#i nclude stdio.h#i nclude stdlib.h#includ

3、e string.h#i nclude coni o.hFILE *fp;/*輸入,輸出頭文件*/*申請空間頭文件*/*對字符串加工頭文件*/*清屏頭文件*/int n=0;/*定義文件指針類型*/*定義整數(shù)類型*/float aver4,sum4,g4,h;/*定義浮點類型*/char c5=elec;char d5=comm;char e5=food;char f5=offi;/*定義字符數(shù)組類型*/*定義字符數(shù)組類型*/*定義字符數(shù)組類型*/*定義字符數(shù)組類型*/struct goodint num;char n ame20;char kin d40;float price;char u

4、n it10; int qua ntity;/*定義結(jié)構(gòu)體*/*商品編號*/*商品名稱*/*商品類型*/*商品價格*/*商品單位*/*商品數(shù)量*/struct good *n ext;/*定義結(jié)構(gòu)體指針類型*/*創(chuàng)建鏈表函數(shù)*/*head,*p1,*p2;struct good *createlist()if(fp=fope n( goods message.txt,w)=NULL)prin tf(ca n not ope n the file);/*判斷能否打開文件*/exit(0);/*結(jié)束程序*/head1=(struct good *)malloc(sizeof(struct good

5、);p1=head1;/*申請頭結(jié)點空間*/p2=head1;prin tf(*n)printf(請輸入信息:編號,名稱,類型,價格,單位,數(shù)目n);printf((以輸入-1”表示結(jié)束輸入)n);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 ame,p1-ki nd,p1-p

6、rice,p1- un it,p1-qua ntity);/*將商品信息寫入文件*/while(1)p1=(struct good *)malloc(sizeof(struct good);/* 申請新空間 */prin tf(*n);printf(請輸入信息:編號,名稱,類型,價格,單位,數(shù)目n);printf((以輸入-1 ”表示結(jié)束輸入)n);prin tf(*n);printf(n);scan f(%d,&p1- nu m);if(p1- num=-1)printf(fprin tf(fp,%d,-1); fclose(fp);retur n headl;/*申請空間結(jié)束條件*/nn)

7、;/*返回頭指針*/scanf(%s %s %f %s %d,p1-name,p1-kind,&p1-price,p1-unit,&p1-quan tity); /*輸入商品信息*/printf(n);- -fprin 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);/*將商品信息寫入文件*/p1- next=NULL;p2-n ext=p1;p2=p1;/*鏈表排序函數(shù)*/struct good *p6,*p7,*r,*s;for(i=0;in ext=head2;hea

8、d2=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- 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);/*釋放第一個無效空間*/retur

9、n head2;void jisua n()p仁head;doif(strcmp(p1-kind,c)=0)/*判斷是否為電器類型 */sum0=sum0+(p1-price)*(p1-quantity);/*求電器總價 */a0=a0+p1-quantity;/*求電器總件數(shù) */if(strcmp(p1-kind,d)=0)/*判斷是否為日用品類型*/sum1=sum1+(p1-price)*(p1-quantity);/*求日用品總價 */a1=a1+p1-quantity;/*求日用品總件數(shù) */if(strcmp(p1-kind,e)=0)/*判斷是否為辦公用品類型*/sum2=su

10、m2+(p1-price)*(p1-quantity);/*求辦公用品總價 */a2=a2+p1-quantity;/*求辦公用品總件數(shù) */if(strcmp(p1-kind,f)=0)/*判斷是否為食品類型 */sum3=sum3+(p1-price)*(p1-quantity);/*求食品總價 */a3=a3+p1-quantity;/*求食品總件數(shù) */p1=p1- n ext;while (p1!=NULL);/*遍歷鏈表結(jié)束條件*/for(i=0;inu m,p3-n ame,p3-k ind,&p3-price,p3- un it,&p3-qua ntity);/*從文件中寫到鏈

11、表*/while(1)p4=(struct good *)malloc(sizeof(struct good);/* 申請頭結(jié)點空間 */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); /*從文件中寫到鏈表*/p4- next=NULL;p3-n ext=p4;p3=p4;elsep3- next=NULL;break;fclose(fp);/*關(guān)閉文件 */p3=head;while(p3!=N

12、ULL)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(1添加商品信息n);printf(2刪除某商品信息n);printf(3修改某商品信息n);printf(4返回(當(dāng)你完成了對某一商品的添加、刪除或者修改后請按4返回)n);prin tf(*n);/*添加商品信息*/sea nf(%d,&n);if(n=1)

13、printf(請輸入商品編號名稱類型價格單位數(shù)目n);/*申請空間*/prin tf(*n);p4=(struet good *)malloc(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 message

14、.txt,w)=NULL)否打開文件*/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)/*將商品信息寫入文件*/p3=p3-n ext;fprin tf(fp,%d,-1);fclose(fp);/*關(guān)閉文件*/prin tf(*n);.n);printf(printf(請按4返回n);printf(.n);printf(i*n);if(n=2)

15、/*刪除商品*/prin tf(*n);printf(請輸入需要刪除的商品編號n);prin tf(*n);sca nf(%d,&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 ext;p4=

16、p4-n ext;/*判斷能否打開if(fp=fope n(goods message.txt,w)=NULL)文件*/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);/*將商品信息寫入文件*/p3=p3-n ext;fprin tf(fp,%d,-1);fclose(fp);/* 關(guān)閉文件 */if(r=2)continue;/*繼續(xù)循環(huán) */printf( *n);printf(n);prin

17、tf(”請按 4 返回n);printf(n);printf( *if(n=3)/*修改某商品信息*/printf(請輸入需要修改的商品編號n);sca nf(%d,&q);while(p3!=NULL)/*判斷循環(huán)結(jié)束條件*/if(p3-num)=q)/*判斷是否為所需要修改的商品*/*輸入商品價/*判斷能printf(請輸入商品單價與庫存量(如果單價不變請輸入原來的單價)n);sea nf(%f %d,&p3-price,&p3-qua ntity);格與庫存量*/p3=p3-n ext;if(fp=fope n( goods message.txt,w)=NULL)否打開文件*/prin

18、 tf(ca n not ope n the file);exit(0);/*結(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); /*將商品信息寫入文件*/p3=p3-n ext;fprin tf(fp,%d,-1);fclose(fp);/* 關(guān)閉文件 */printf( *printf(n);printf(”請按 4 返回n);printf(n);printf( */*退出*/ i

19、f(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)/*遍歷鏈表并打印電器類商品函數(shù) */struct good *p3;/*定義結(jié)構(gòu)體指針類型*/P3=P;while (p3!=NULL)/*判斷遍歷鏈表循環(huán)結(jié)束條件*/if(strcmp(p3-kind,c)=0)/*判斷商品類型是否為電

20、器類型*/prin tf(%dt%st%st%0.1ft%st%dn,p3- num,p3- name,p3-ki nd,p3-price, p3-unit,p3-quantity);/*輸出電器類商品信息*/.n);printf(p3=p3-n ext;return;void prin tf1(struct good *p)/*遍歷鏈表并打印日用品類商品函數(shù) */struct good *p3;/*定義結(jié)構(gòu)體指針類型*/P3=P;while (p3!=NULL)/*判斷遍歷鏈表循環(huán)結(jié)束條件*/if(strcmp(p3-ki nd,d)=0)/*判斷商品類型是否為日用品類型*/prin tf(

21、%dt%st%st%0.1ft%st%dn,p3- num,p3- name,p3-ki nd,p3-price,p3-unit,p3-quantity);/*輸出日用品類商品信息*/printf(n);p3=p3-n ext;return;void prin tf2(struct good *p)/*遍歷鏈表并打印辦公用品類商品函數(shù) */struct good *p3;/*定義結(jié)構(gòu)體指針類型*/p3=p;while (p3!=NULL)/*判斷遍歷鏈表循環(huán)結(jié)束條件*/if(strcmp(p3-k in d,e)=0)/*判斷商品類型是否為辦公用品類型*/prin tf(%dt%st%st%0

22、.1ft%st%dn,p3- num,p3- name,p3-ki nd,p3-price,p3-unit,p3-quantity);/*輸出辦公用品類商品信息*/printf(n);p3=p3-n ext;return;void prin tf3(struct good *p)/*遍歷鏈表并打印食品類商品函數(shù) */struct good *p3;/*定義結(jié)構(gòu)體指針類型*/p3=p;while (p3!=NULL)/*判斷遍歷鏈表循環(huán)結(jié)束條件*/if(strcmp(p3-kind,f)=0)/*判斷商品類型是否為食品類型*/prin tf(%dt%st%st%0.1ft%st%dn,p3- n

23、um,p3- name,p3-ki nd,p3-price,p3-unit,p3-quantity);/*輸出食品類商品信息*/printf(n);p3=p3-n ext;return; void shu nxuday in()for(i=0;i4;i+)gi=averi;/*將平均價賦給新數(shù)組*/for(j=0;j3;j+)/*將新數(shù)組用冒泡排序法排序*/for(i=j+1;i4;i+)if(gjgi)h=gj;gj=gi;gi=h;printf(n*n)n);printf(商品平均價格排序表(從高到低)printf( *n);.n);printf(printf(編號t名稱t類別t單價t單位t數(shù)量n);printf(n);for(j=0;j4;j+)for(i=0;iqua ntityname,p1-kind); /*輸出商品名稱及類別 */printf(n);p1=p1- n ext;void ton gji2()prin tf(n*的商品類別:n);printf(商品庫存量有2種以上(含2種)低于100printf(*n);prin

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論