



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計(jì)課程名稱C 語言高級程序設(shè)計(jì)學(xué)院xxx小組成員 1XXX小組成員 2XXX小組成員 3XXX任課教師XXX2016 2017 學(xué)年第1 學(xué)期一所選題目與要求自動(dòng)售貨機(jī)問題情景:分析學(xué)校教學(xué)樓自動(dòng)售貨機(jī)的功能,設(shè)計(jì)一個(gè)自動(dòng)售貨系統(tǒng)。功能要求:1. 系統(tǒng)能提供所售商品的清單(編號 , 名稱,單價(jià),數(shù)量)2. 客戶輸入商品編號及購買數(shù)量, 系統(tǒng)顯示應(yīng)付的金額, 輸入客戶實(shí)付的錢數(shù),系統(tǒng)計(jì)算應(yīng)找的錢數(shù)系統(tǒng)如果沒有足夠的庫存或零錢時(shí), 現(xiàn)實(shí)應(yīng)返還客戶已付的金額。(不考慮用支付寶付款的情況)3. 可增加商品種類, 增加商品庫存, 查詢商品庫存, 查詢商品銷售量及銷售額。成果要求:通過網(wǎng)絡(luò)教學(xué)平臺中
2、的“研究型教學(xué)”建立分組,每組 2-3 人,通過小組討論,確定每人的分工,并確定系統(tǒng)設(shè)計(jì)方案。各小組成員在網(wǎng)絡(luò)教學(xué)平臺上進(jìn)行討論、 并完成最終的報(bào)告, 整個(gè)過程作為小組及個(gè)人工作評價(jià)的重要依據(jù)。各小組成員根據(jù)系統(tǒng)設(shè)計(jì)方案分模塊進(jìn)行編程, 在系統(tǒng)各模塊編碼完成后集成調(diào)試,并最終完成整個(gè)系統(tǒng)的測試。根據(jù)下面的報(bào)告模板完成綜合實(shí)驗(yàn)總結(jié)報(bào)告, 并打印成紙質(zhì)報(bào)告, 作為大作業(yè)課程結(jié)束時(shí)上交。附:綜合實(shí)驗(yàn)總結(jié)報(bào)告應(yīng)包含的內(nèi)容:1. 系統(tǒng)功能說明2. 程序結(jié)構(gòu)程序結(jié)構(gòu)說明重要數(shù)據(jù)說明函數(shù)清單/*每個(gè)函數(shù)的書寫格式*/函數(shù)名:所在文件名函數(shù)功能參數(shù)說明算法描述或程序代碼3. 系統(tǒng)運(yùn)行結(jié)果4. 系統(tǒng)設(shè)計(jì)難點(diǎn)及其
3、解決方法5. 不足之處6. 人員分工說明二問題分析及算法設(shè)計(jì)主函數(shù)void main()/主函數(shù)模塊dosystem("pause");show(); / loop1:printf(" input(); /顯示屏幕函數(shù),商品清單現(xiàn)在你有 %.1f 元 n 你可以選擇商品序號開始選購或按輸入函數(shù)0退出 n",M);了nif(M-goodsn-1.price>v) t=0;printf("對不起,售貨機(jī)沒有足夠的零錢謝謝光臨 ! 退還 %.1f 元 n",M);break; /判斷售貨機(jī)是否有足夠的零錢,0 表無if(n=0) /確
4、認(rèn)用戶是選擇離開還是買東西開始購買t=1;change(M); /找零函數(shù)else loop2:sell(n,M,1,1); /購買函數(shù)if(A=0)/input(); /貨沒有了怎么辦輸入函數(shù).if(n=0) /沒貨離開change(M); /找錢函數(shù)else /繼續(xù)購買其它商品goto loop2;返回至購買函數(shù) /else/ifelse if(B=0)/沒錢了怎么辦.if(m1=0) /離開change(M);返回至找零函數(shù)else/加錢.goto loop1;返回至再次購買 /else /else ifelse/有錢又有貨,繼續(xù)選goto loop1;返回至購買程序 /else whi
5、le(1); /main結(jié)構(gòu)體定義struct goods/定義物品清單int number;char name10;float price;int quantity; goods9 =1,"可口可樂",4,5,5,"雪碧 ",2.5,5,",3,5,2,"拿鐵咖啡",4,5,3,"橙汁 ",3,5,4,"奶茶6,"礦泉水 ",2,5,7,"椰子汁",2.5,5,8,"格瓦斯 ",3,5;struct money/定義錢的種類,數(shù)量用于
6、記錄找零的某值張數(shù)float moneys;int mount; money2 =1,0,0.5,0;被調(diào)用的函數(shù)float show() /顯示模塊 - 屏幕int input() /輸入模塊.int sell(int n,float m,int a,int b) /出售模塊n為序號,m錢,if(goodsi.quantity>0) /表示有貨.elseA=0; /表示沒貨了elseB=0; /表示沒錢了if(M=0) B=0;/判斷出錢已用光return(a);return(b);void change(float m) / 找錢模塊switch(a)case 1 花光 .case
7、2: 找零 三程序源代碼#include<stdio.h>#include<conio.h>float M;/M為投入的錢數(shù)intA=1,B=1,t;/A為數(shù)量標(biāo)記,B 為金錢標(biāo)記,1 表示有,0 表示沒有,t用于標(biāo)記售貨機(jī)是否能完成退款int i,n,v=100;/i用于循環(huán)顯示商品列表,n 用于記錄輸入的貨號,v 用于保存售貨機(jī)內(nèi)可以找零的錢數(shù),初設(shè)為v=100/ 結(jié)構(gòu)體定義struct goods/定義物品清單int number;char name10;float price;int quantity;goods9=1,"奶茶 ",4,5,5
8、,"可口可樂 ",3,5,2,"雪碧 ",2.5,5,拿鐵咖啡 ",4,5,3,"橙汁 ",3,5,4,"6,"礦泉水 ",2,5,7,"椰子汁 ",2.5,5,8,"格瓦斯 ",3,5;struct money/定義錢的種類,數(shù)量用于記錄找零的某值張數(shù)float moneys;int mount;money2=1,0,0.5,0;float show() /顯示模塊 - 屏幕system("pause");putch('n
9、39;);for(i=0;i<8;i+)printf("|n");printf("|%d%8s%7.1f元 .剩余 %7d|n",goodsi.number,,goodsi.price,goodsi.quant ity);printf("n");printf(" 購買東西前,請投入 money!( 支持 1 元,5 元 ,10 元和 20 元)n 溫馨提示,投入 money過多可能無法完成退幣 n");scanf("%f",&M);return M;int i
10、nput() /輸入模塊for(;)scanf("%d",&n);if(n<0|n>8)printf(" 輸入錯(cuò)誤,請重新輸入商品序號開始選購或按 0 退出 n"); else return n;break;int sell(int n,float m,int a,int b) /出售模塊n 為序號, m錢,int i=0;while(n!=goodsi.number) i+;if(m>=goodsi.price)if(goodsi.quantity>0)goodsi.quantity-;M=m-goodsi.price;
11、for(i=0;i<8;i+)printf("|n");printf("|%d%8s%7.1f元 .剩余 %7d|n",goodsi.number,,goodsi.price,goodsi.quant ity);printf(" n");printf("你的商品 %d %s 已經(jīng)出貨了n",goodsn-1.number,);elseA=0; /表示沒貨了elseB=0; /表示錢了if(M=0) B=0;/判斷出錢已用光return(a);return(b);
12、void change(float m) /錢模塊int i,a;/用于輔助輸出if(m=0) a=1;if(m!=0.0&&t!=1) a=2;switch(a)case 1:printf("錢用光了哦 n 謝謝光臨 !");break;case 2:for(i=0;i<2;i+)if(moneyi.moneys<=m)m=m-moneyi.moneys;moneyi.mount+;i-;/繼續(xù)檢索當(dāng)前的面額是否符合條件,才會有相同面值出現(xiàn)printf("謝謝光臨 !nfor(i=0;i<2;i+)if(moneyi.mount
13、>0)找零 n");printf("%d張%.1f元tn",moneyi.mount,moneyi.moneys);m=0;M=0;money0.mount=0;break;void main()/主函數(shù)模塊doint t=1;/用于標(biāo)記售貨機(jī)是否能完成退款,1 表能float m1;/m1用于記錄用戶再次加的錢show(); /顯示 - 屏幕loop1:printf("現(xiàn)在你有 %.1f 元n 你可以選擇商品序號開始選購或按0退出n",M);input(); /輸入函數(shù)if(M-goodsn-1.price>v)t=0;print
14、f("對不起,售貨機(jī)沒有足夠的零錢了 n 謝謝光臨 ! 退還 %.1f 元n",M);break;/ 判斷售貨機(jī)是否有足夠的零錢,0 表無if(n=0) /確認(rèn)用戶是選擇離開還是買東西開始購買t=1;change(M); /零函數(shù)else loop2:sell(n,M,1,1);if(A=0)/貨沒有了怎么辦printf("可惜了,商品 %d 已賣完了 n 你還有商品(直接輸入商品序號)或按0離開 n",n,M);input(); /輸入函數(shù)%.1f元n你可以買其它if(n=0)change(M); /錢函數(shù)elseA=1;B=1;/要將標(biāo)記歸位goto
15、 loop2; /else/ifelse if(B=0)/沒錢了怎么辦printf("噢,沒錢了,你可以繼續(xù)投入scanf("%f",&m1);if(m1=0)change(M);money購買,或按0離開 n");elseM=M+m1;A=1;B=1;/標(biāo)記要?dú)w位goto loop1; /else /else ifelse/有錢又有貨,繼續(xù)選goto loop1; /else while(1); /main四系統(tǒng)功能及運(yùn)行效果圖一,系統(tǒng)提供商品清單,并提示購買前投入money二, 如果用戶投入的 money過多,售貨機(jī)無足夠硬幣完成退幣, 自動(dòng)
16、退還用戶已付金額三,用戶投入 money購買,確定購買商品后,系統(tǒng)顯示如下四,如果不想繼續(xù)購買,則按0 退出,系統(tǒng)自動(dòng)完成找零五,想繼續(xù)購買,則直接輸入商品序號,當(dāng)商品已售完時(shí),系統(tǒng)自動(dòng)提示如下六,七,若不想退出,則可以繼續(xù)購買其它商品,直到剩余錢不足時(shí)想繼續(xù)購買,則直接加錢后購買,錢全部花完時(shí),系統(tǒng)提示如五研究總結(jié)1. 研究過程接到研究型學(xué)習(xí)任務(wù)后, 我們?nèi)齻€(gè)同學(xué)組成了小組進(jìn)行探究。 首先我們先詳細(xì)分析討論了整個(gè)系統(tǒng)需要完成的功能細(xì)節(jié), 并考慮了實(shí)現(xiàn)的方法。一開始我們的方法不夠優(yōu)化, 我們通過查閱一些資料,得到了新的方法,拓寬了思路, 并且再次進(jìn)行了討論。 討論完畢后進(jìn)行了組員的分工, 大家在一周內(nèi)進(jìn)行了代碼的編寫和模塊化調(diào)試,最后所有模塊合在一起進(jìn)行了總的調(diào)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電腦室安全管理制度
- 碧桂園消防管理制度
- 福州市醫(yī)院管理制度
- 科室懶散拖管理制度
- 維修與設(shè)備管理制度
- 職工保障房管理制度
- 聯(lián)課培訓(xùn)班管理制度
- 肝病科消毒管理制度
- 胖東來倉儲管理制度
- 腦卒中隨訪管理制度
- 2025-2030中國乙醚行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析研究報(bào)告
- 擋土墻搭設(shè)腳手架專項(xiàng)專題方案
- 2025年(四川)公需科目(心理健康與職業(yè)發(fā)展主題)題庫及答案
- CJJ1-2025城鎮(zhèn)道路工程施工與質(zhì)量驗(yàn)收規(guī)范
- 人教部編版六年級下冊語文【選擇題】專項(xiàng)復(fù)習(xí)訓(xùn)練真題100題(附答案解析)
- 2025美國急性冠脈綜合征(ACS)患者管理指南解讀課件
- 國家開放大學(xué)電大《國際私法》形考任務(wù)1-5題庫及答案
- 《哪吒魔童降世》幼兒園小學(xué)少兒美術(shù)教育繪畫課件創(chuàng)意教程教案
- 2024年中考模擬試卷生物(揚(yáng)州卷)(考試版A3)
- 2022年全國森林、草原、濕地調(diào)查監(jiān)測技術(shù)規(guī)程-附錄
- 統(tǒng)編版語文六年級下冊古詩詞誦讀 8 卜算子·送鮑浩然之浙東 課件
評論
0/150
提交評論