版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C語言超市管理系統(tǒng)源程序超市管理系統(tǒng)源程序代碼,要可以執(zhí)行的。最好是文件,鏈表中的一種。好了一定重金酬謝 最佳答案 有一個(gè)小型超市,出售N(N10)種商品,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)系統(tǒng),完成下列功能:1 保存及輸出。超市中的各種商品信息保存在指定文件中,可以把它們輸出顯示。2 計(jì)算并排序。計(jì)算每類商品的總價(jià)值(sum,單精度)及平均價(jià)(aver,單精度,輸出一位小數(shù)),將每類商品按平均價(jià)從大到小的順序排序打印出來。3 統(tǒng)計(jì)。統(tǒng)計(jì)輸出庫存量低于100的貨號(hào)及類別。統(tǒng)計(jì)輸出有兩種以上(含兩種)商品庫存量低于100的商品類別。1.2總體結(jié)構(gòu) 本程序主要分為八個(gè)模塊:主模塊、信息輸出修改模塊、新建信息模塊、排序
2、模塊、計(jì)算模塊、統(tǒng)計(jì)模塊1、統(tǒng)計(jì)模塊2、打印模塊。1) 主模塊:通過調(diào)用各分模塊實(shí)現(xiàn)功能;2) 信息輸出修改模塊:輸出顯示文件中商品信息內(nèi)容,添加商品信息,刪除商品信息,修改商品信息;3) 新建商品信息模塊:建立一個(gè)新結(jié)構(gòu)體,為鏈表存信息用,并且將信息保存在指定的文件中;4) 排序模塊:把文件中順序零亂的商品信息按單價(jià)的大小從高到低進(jìn)行排序,放到鏈表里存儲(chǔ);5) 計(jì)算模塊:將所有商品的價(jià)格與庫存量進(jìn)行累加求和;6) 打印模塊:將商品信息按每類平均價(jià)格排序(從高到低)按順序打印出來;7) 統(tǒng)計(jì)模塊1:統(tǒng)計(jì)庫存量低于100的貨名及類別;8) 統(tǒng)計(jì)模塊2:統(tǒng)計(jì)商品庫存量有2種以上(含2種)低于100
3、的商品類別。附 錄(程序清單)#include stdio.h /*輸入,輸出頭文件*/ #include stdlib.h /*申請空間頭文件*/ #include string.h /*對(duì)字符串加工頭文件*/ #include conio.h /*清屏頭文件*/ FILE *fp;int n=0; /*定義文件指針類型*/int i,j,a4,m; /*定義整數(shù)類型*/ float aver4,sum4,g4,h; /*定義浮點(diǎn)類型*/ char c5=elec; /*定義字符數(shù)組類型*/char d5=comm; /*定義字符數(shù)組類型*/char e5=food; /*定義字符數(shù)組類型*
4、/char f5=offi; /*定義字符數(shù)組類型*/struct good /*定義結(jié)構(gòu)體*/ int num; /*商品編號(hào)*/ char name20; /*商品名稱*/ char kind40; /*商品類型*/ float price; /*商品價(jià)格*/ char unit10; /*商品單位*/ int quantity; /*商品數(shù)量*/ struct good *next; /*定義結(jié)構(gòu)體指針類型*/*head,*p1,*p2;struct good *createlist() /*創(chuàng)建鏈表函數(shù)*/ struct good *head1,*p1,*p2; /*定義結(jié)構(gòu)體指針類型
5、*/ if(fp=fopen(goods message.txt,w)=NULL) /*判斷能否打開文件*/ printf(can not open the file); exit(0); /*結(jié)束程序*/ head1=(struct good *)malloc(sizeof(struct good); /*申請頭結(jié)點(diǎn)空間*/ p1=head1; p2=head1; printf(*n); printf(請輸入信息:編號(hào),名稱,類型,價(jià)格,單位,數(shù)目n); printf( (以輸入“1”表示結(jié)束輸入)n); printf(*n); printf(_n); scanf(%d %s %s %f %
6、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=(struct good *)malloc(sizeof(struct good); /*申請新空間*/ printf(*n); printf(請輸入信息:編號(hào),名稱,類型,價(jià)格,單
7、位,數(shù)目n); printf( (以輸入“1”表示結(jié)束輸入)n); printf(*n); printf(_n); scanf(%d,&p1-num); if(p1-num=-1) /*申請空間結(jié)束條件*/ printf(_nn); fprintf(fp,%d,-1); fclose(fp); return head1; /*返回頭指針*/ 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-nu
8、m,p1-name,p1-kind,p1-price,p1-unit,p1-quantity); /*將商品信息寫入文件*/ p1-next=NULL; p2-next=p1; p2=p1; struct good *paixu(struct good*head2) /*鏈表排序函數(shù)*/ struct good *p6,*p7,*r,*s; /*定義結(jié)構(gòu)體指針類型*/ for(i=0;inext=head2; head2=p6; while(p6-next!=NULL) /*判斷循環(huán)結(jié)束條件*/ p7=p6-next; r=p6; while(p7-next!=NULL) /*判斷循環(huán)結(jié)束條件
9、*/ 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; head2=head2-next; free(p6); /*釋放第一個(gè)無效空間*/ return head2; void jisuan() p1=head; do if(strcmp(p1-kind,c)=0) /*判斷是否為電器類型*/ sum0=sum0+
10、(p1-price)*(p1-quantity); /*求電器總價(jià)*/ a0=a0+p1-quantity; /*求電器總件數(shù)*/ if(strcmp(p1-kind,d)=0) /*判斷是否為日用品類型*/ sum1=sum1+(p1-price)*(p1-quantity); /*求日用品總價(jià)*/ a1=a1+p1-quantity; /*求日用品總件數(shù)*/ if(strcmp(p1-kind,e)=0) /*判斷是否為辦公用品類型*/ sum2=sum2+(p1-price)*(p1-quantity); /*求辦公用品總價(jià)*/ a2=a2+p1-quantity; /*求辦公用品總件數(shù)
11、*/ if(strcmp(p1-kind,f)=0) /*判斷是否為食品類型*/ sum3=sum3+(p1-price)*(p1-quantity); /*求食品總價(jià)*/ a3=a3+p1-quantity; /*求食品總件數(shù)*/ p1=p1-next; while (p1!=NULL); /*遍歷鏈表結(jié)束條件*/ for(i=0;inum,p3-name,p3-kind,&p3-price,p3-unit,&p3-quantity); /*從文件中寫到鏈表*/ while(1) p4=(struct good *)malloc(sizeof(struct good); /*申請頭結(jié)點(diǎn)空間*
12、/ 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 %0.1f %s %dnn,p3-num,p3-name,p3-kind
13、,p3-price,p3-unit,p3-quantity); printf(_n); p3=p3-next; printf(*n); printf(/n); while(n!=4) p3=head; printf(*n); printf(1 添加商品信息n); printf(2 刪除某商品信息n); printf(3 修改某商品信息n); printf(4 返回(當(dāng)你完成了對(duì)某一商品的添加、刪除或者修改后請按4返回)n); printf(*n); scanf(%d,&n); if(n=1) /*添加商品信息*/ printf(請輸入商品 編號(hào) 名稱 類型 價(jià)格 單位 數(shù)目n); printf
14、(*n); p4=(struct good *)malloc(sizeof(struct good); /*申請空間*/ scanf(%d %s %s %f %s %d,&p4-num,p4-name,p4-kind,&p4-price,p4-unit,&p4-quantity); /*輸入商品信息*/ p4-next=NULL; while(p3-next!=NULL) /*判斷循環(huán)結(jié)束條件*/ p3=p3-next; p3-next=p4; p3=head; if(fp=fopen(goods message.txt,w)=NULL) /*判斷能否打開文件*/ printf(can not
15、 open the file); 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); printf(_n); printf(-請按4返回-n); printf(_n); printf(*n); if(n=2) /*刪除商品*/ printf(*n); print
16、f(請輸入需要?jiǎng)h除的商品編號(hào)n); printf(*n); scanf(%d,&p); printf(*n); printf(1 確認(rèn)刪除n2 取消刪除n); printf(*n); scanf(%d,&r); if(r=1) 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=p
17、4-next; if(fp=fopen(goods message.txt,w)=NULL) /*判斷能否打開文件*/ printf(can not open the file); 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(
18、r=2) continue; /*繼續(xù)循環(huán)*/ printf(*n); printf(_n); printf(-請按4返回-n); printf(_n); printf(*n); if(n=3) /*修改某商品信息*/ printf(請輸入需要修改的商品編號(hào)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
19、=p3-next; if(fp=fopen(goods message.txt,w)=NULL) /*判斷能否打開文件*/ printf(can not open the file); 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)閉文件*/ p
20、rintf(*n); printf(_n); printf(-請按4返回-n); printf(_n); printf(*n); if(n=4) /*退出*/ break; printf(*n); printf(1 繼續(xù)修改n-n2 返回n); 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)閉文件*/void printf0(struct good *p) /*遍歷鏈表并打印電器類商品函數(shù)*/ struct good *p3; /*
21、定義結(jié)構(gòu)體指針類型*/ p3=p; while (p3!=NULL) /*判斷遍歷鏈表循環(huán)結(jié)束條件*/ if(strcmp(p3-kind,c)=0) /*判斷商品類型是否為電器類型*/ printf(%dt%st%st%0.1ft%st%dn,p3-num,p3-name,p3-kind,p3-price,p3-unit,p3-quantity); /*輸出電器類商品信息*/ printf(_n); p3=p3-next; return;void printf1(struct good *p) /*遍歷鏈表并打印日用品類商品函數(shù)*/ struct good *p3; /*定義結(jié)構(gòu)體指針類型*
22、/ p3=p; while (p3!=NULL) /*判斷遍歷鏈表循環(huán)結(jié)束條件*/ if(strcmp(p3-kind,d)=0) /*判斷商品類型是否為日用品類型*/ printf(%dt%st%st%0.1ft%st%dn,p3-num,p3-name,p3-kind,p3-price,p3-unit,p3-quantity); /*輸出日用品類商品信息*/ printf(_n); p3=p3-next; return;void printf2(struct good *p) /*遍歷鏈表并打印辦公用品類商品函數(shù)*/ struct good *p3; /*定義結(jié)構(gòu)體指針類型*/ p3=p;
23、 while (p3!=NULL) /*判斷遍歷鏈表循環(huán)結(jié)束條件*/ if(strcmp(p3-kind,e)=0) /*判斷商品類型是否為辦公用品類型*/ printf(%dt%st%st%0.1ft%st%dn,p3-num,p3-name,p3-kind,p3-price,p3-unit,p3-quantity); /*輸出辦公用品類商品信息*/ printf(_n); p3=p3-next; return;void printf3(struct good *p) /*遍歷鏈表并打印食品類商品函數(shù)*/ struct good *p3; /*定義結(jié)構(gòu)體指針類型*/ p3=p; while
24、(p3!=NULL) /*判斷遍歷鏈表循環(huán)結(jié)束條件*/ if(strcmp(p3-kind,f)=0) /*判斷商品類型是否為食品類型*/ printf(%dt%st%st%0.1ft%st%dn,p3-num,p3-name,p3-kind,p3-price,p3-unit,p3-quantity); /*輸出食品類商品信息*/ printf(_n); p3=p3-next; return;void shunxudayin() for(i=0;i4;i+) gi=averi; /*將平均價(jià)賦給新數(shù)組*/ for(j=0;j3;j+) /*將新數(shù)組用冒泡排序法排序*/ for(i=j+1;i4
25、;i+) if(gjgi) h=gj; gj=gi; gi=h; printf(n*n); printf(商品平均價(jià)格排序表(從高到低)n); printf(*n); printf(_n); printf(編號(hào)t名稱t類別t單價(jià)t單位t數(shù)量n); printf(_n); for(j=0;j4;j+) for(i=0;iquantityname,p1-kind); /*輸出商品名稱及類別*/ printf(_n); p1=p1-next; void tongji2() printf(n*n); printf(商品庫存量有2種以上(含2種)低于100的商品類別:n); printf(*n); printf(_n); if(a0=2) /*判斷電器類庫存量是否為2種以上(含2種)低于100*/ printf(電器n); printf(_n); if(a1=2) /*判斷日用品類庫存量是否
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東警官學(xué)院《生物質(zhì)能轉(zhuǎn)化原理與技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東江門中醫(yī)藥職業(yè)學(xué)院《實(shí)驗(yàn)安全與現(xiàn)場急救》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工商職業(yè)技術(shù)大學(xué)《廣告設(shè)計(jì)與策劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東財(cái)貿(mào)職業(yè)學(xué)院《英語綜合技能2》2023-2024學(xué)年第一學(xué)期期末試卷
- 《危害申報(bào)管理》課件
- 感恩企業(yè)培訓(xùn)課件
- 《化學(xué)動(dòng)力學(xué)的任務(wù)》課件
- 共青科技職業(yè)學(xué)院《工業(yè)機(jī)器人應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛州職業(yè)技術(shù)學(xué)院《中國通史現(xiàn)代》2023-2024學(xué)年第一學(xué)期期末試卷
- 皮帶系統(tǒng)安全培訓(xùn)課件
- 2024年加油站的年度工作總結(jié)范文(2篇)
- 甲醇制氫生產(chǎn)裝置計(jì)算書
- T-JSREA 32-2024 電化學(xué)儲(chǔ)能電站消防驗(yàn)收規(guī)范
- 福建省晉江市松熹中學(xué)2024-2025學(xué)年七年級(jí)上學(xué)期第二次月考語文試題
- 【MOOC】隧道工程-中南大學(xué) 中國大學(xué)慕課MOOC答案
- ISO27001信息安全管理體系培訓(xùn)資料
- 紅色經(jīng)典影片與近現(xiàn)代中國發(fā)展學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 劇作策劃與管理智慧樹知到期末考試答案2024年
- 鐵路基礎(chǔ)知識(shí)考試題庫500題(單選、多選、判斷)
- 110kV變壓器保護(hù)整定實(shí)例
- 銷售顧問初級(jí)認(rèn)證筆試題
評(píng)論
0/150
提交評(píng)論