自動(dòng)售貨機(jī)管理程序_第1頁
自動(dòng)售貨機(jī)管理程序_第2頁
自動(dòng)售貨機(jī)管理程序_第3頁
自動(dòng)售貨機(jī)管理程序_第4頁
自動(dòng)售貨機(jī)管理程序_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1引言21世紀(jì),我們已經(jīng)進(jìn)入了信息時(shí)代,計(jì)算機(jī)的使用大大方便了我們的日常生活,超市和網(wǎng)上購物已經(jīng)不能滿足我們對(duì)便利生活的要求,不能隨時(shí)隨地購物的缺點(diǎn)不能克服的。在此情況下,就需要一個(gè)程序化的自動(dòng)售貨機(jī)來滿足人們?nèi)粘I畹男枨?。在C語言的平臺(tái)下實(shí)現(xiàn),用戶可以方便的進(jìn)行各項(xiàng)購物操作。C語言是一種程序設(shè)計(jì)語言,早在20世紀(jì)90年代,C語言表現(xiàn)出了強(qiáng)勁的生命力,C語言是一種結(jié)構(gòu)化語言。它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護(hù)。C語言的表現(xiàn)能力和處理能力極強(qiáng)。它不僅具有豐富的運(yùn)算符和數(shù)據(jù)類型,便于實(shí)現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。它還可以直接訪問內(nèi)存的物理地址,進(jìn)行位一級(jí)的操作。由于C語言實(shí)現(xiàn)了對(duì)硬件的編程操作,因此C語言集高級(jí)語言和低級(jí)語言的功能于一體,既可用于系統(tǒng)軟件的開發(fā),也適合于應(yīng)用軟件的開發(fā)。此外,C語言還具有效率高,可移植性強(qiáng)等特點(diǎn)。因此可以廣泛地移植到了各類型計(jì)算機(jī)上,從而形成了多種版本的C語言。采用輸入函數(shù)和輸出函數(shù)方式,可以完成對(duì)待售物品的名稱、數(shù)量、價(jià)格的輸出、顧客所選物品的輸入、以及其它購物信息顯示。2總體設(shè)計(jì)在對(duì)自動(dòng)售貨機(jī)管理程序進(jìn)行需求分析的過程中,需要確定系統(tǒng)的主要功能,對(duì)程序開發(fā)的主要目的、程序的使用領(lǐng)域和有關(guān)該程序開發(fā)的軟硬件環(huán)境進(jìn)行詳細(xì)的分析。下面從系統(tǒng)概述、功能模塊描述兩個(gè)方面進(jìn)行需求分析。2.1程序概述自動(dòng)售貨機(jī)管理程序是運(yùn)行于Windows系統(tǒng)下的應(yīng)用軟件,主要用于對(duì)待售商品的品名、價(jià)錢、數(shù)量、生產(chǎn)日期、保質(zhì)期、編號(hào)進(jìn)行輸出等操作。2.2功能需求自動(dòng)售貨機(jī)管理程序?yàn)槁愤叺男腥颂峁┝艘粋€(gè)隨時(shí)隨地進(jìn)行購物的平臺(tái),給消費(fèi)者提供了一個(gè)簡單友好的購物窗口,功能需求如下:(1)輸出模塊程序在消費(fèi)者購物前將所售商品的品牌輸出以供消費(fèi)者選擇品牌,然后將消費(fèi)者選擇的品牌下的商品信息輸出讓消費(fèi)者選擇所需的商品,最后輸出“請(qǐng)你付款班級(jí)”提示消費(fèi)者完成購物。(2)輸入模塊讓將消費(fèi)者選定的商品的編碼輸入程序中然后進(jìn)行價(jià)格的輸出,以上述的方式讓消費(fèi)者把購物數(shù)量輸入進(jìn)程序中,最后將消費(fèi)者付款金額輸入,進(jìn)而完成找錢。(3)返回模塊如果消費(fèi)者所輸入的商品編碼自動(dòng)售貨機(jī)上沒有,則程序自動(dòng)跳轉(zhuǎn)到商品品牌的選擇,提示消費(fèi)者輸入正確的商品編碼。并且如果消費(fèi)者輸入的購買數(shù)量大于庫存數(shù)量,程序?qū)⒆詣?dòng)返回到商品的數(shù)量選擇界面下,還有如果消費(fèi)者的付款金額小于消費(fèi)金額時(shí),程序?qū)⒆詣?dòng)返回到付款界面。(4)找錢模塊將消費(fèi)者付款金額進(jìn)行判斷后,進(jìn)行一定運(yùn)算后按50元、20元、10元、1元的分類分別找對(duì)。程序由上述幾個(gè)模塊組成,能幫助消費(fèi)者以自助的方式完成所需商品的購買并且有效地減少購物時(shí)間。另外還能節(jié)省售貨者的管理時(shí)間,大大的提高管理的效率。3詳細(xì)設(shè)計(jì)3.1輸出模塊本模塊主要有輸出函數(shù)printf()構(gòu)成,printf()函數(shù)是C語言系統(tǒng)提供的格式化輸出函數(shù),用于向標(biāo)準(zhǔn)輸出設(shè)備(通常為顯示器)按規(guī)定格式輸出信息,這是程序中使用最多的標(biāo)準(zhǔn)函數(shù)之一。它的使用格式如下:printf(“格式化字符串”,表達(dá)式表);“表達(dá)式表”是要輸出的一系列表達(dá)式,各表達(dá)式之間用“,”分隔?!案袷交址庇糜谡f明要輸出表達(dá)式的形式,包括兩部分內(nèi)容:一部分是以“%”開頭的格式控制參數(shù),它規(guī)定對(duì)應(yīng)表達(dá)式的輸出格式;另一部分是普通字符或轉(zhuǎn)義字符,對(duì)普通字符按原樣輸出,對(duì)轉(zhuǎn)義字符,輸出的是其轉(zhuǎn)義后的形式。例如:inta=5,b=10;printf(“Sum=%d\n”,a+b);輸出結(jié)果為:Sum=15。在自動(dòng)售貨機(jī)程序中,其輸出模塊源代碼為:printf("\n歡迎光臨\n");printf("請(qǐng)選擇:1.百事可樂2.可口可樂3.非??蓸穃n");printf("請(qǐng)選擇:1聽式百事可樂(3元每聽)剩%d聽,2.瓶裝百事可樂(8元每瓶)剩%d聽\n",a1,a2);printf("數(shù)量?");printf("商品數(shù)量不足,請(qǐng)重新輸入:")printf("請(qǐng)選擇:1繼續(xù)購物,2停止購物\n");printf("請(qǐng)您結(jié)賬");printf("金額不夠請(qǐng)重新輸入:");printf("找您50元1張,20元%d張,10元%d張,1元%d張",m,q,l);printf("找您20元%d張,10元%d張,1元%d張",m,q,l);printf("請(qǐng)您收好!");printf("購物結(jié)束,謝謝光臨");輸出流程圖如下;圖1輸出流程圖其運(yùn)行時(shí)圖如下:圖2輸出模塊運(yùn)行時(shí)截圖本模塊主要有輸出函數(shù)scanf()構(gòu)成,它是格式化輸出函數(shù),即從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)為變量輸入數(shù)據(jù)。它也是程序中使用最多的一個(gè)標(biāo)準(zhǔn)函數(shù)。其使用格式如下:scanf(“格式化字符串”,變量地址表);“格式化字符串”中控制參數(shù)的個(gè)數(shù)必須與變量地址的個(gè)數(shù)一致;可以在格式化字符串中的“%”和格式控制符之間加入一個(gè)整數(shù),表示任何讀操作中的最大位數(shù)。例如:Main(){Intm,n;Scanf(“%3d%2d”,&m,&n);Printf(“m=%d,n=%d\n”,m,n);}輸入數(shù)據(jù)流:123456789輸出結(jié)果為:m=123,n=45。在自動(dòng)售貨機(jī)程序中,輸入模塊流程圖如下:圖3輸入模塊流程圖在自動(dòng)售貨機(jī)程序中,其輸入模塊源代碼為:scanf("%d",&a);用于輸入選擇的購買品牌。scanf("%d",&b);用于輸入所選品牌下的商品。scanf("%d",&n);用于輸入所選品牌下的商品的數(shù)量scanf("%d",&b);用于輸入是否繼續(xù)購物。scanf("%d",&Money);用于輸入付款金額。其輸入截圖如下:圖4輸入模塊運(yùn)行時(shí)截圖本模塊if語句和goto語句構(gòu)成,if語句簡單形式如下:語句結(jié)構(gòu)為:If(表達(dá)式){語句組}其中的“語句組”是若干個(gè)C語句,當(dāng)它只有一個(gè)語句時(shí),花括號(hào){}可以省略。該if語句的過程是:若表達(dá)式的值非0(即真),則執(zhí)行{語句組},然后執(zhí)行if語句的下一個(gè)語句;否則不執(zhí)行{語句組}之下的語句,即if語句的下一個(gè)語句。簡言之該if語句的功能就是根據(jù)條件(表達(dá)式的值),決定是否執(zhí)行{語句組},如下圖所示:圖5if語句邏輯結(jié)構(gòu)示意圖goto語句是一種無條件轉(zhuǎn)移語句,主要用于控制程序的執(zhí)行方向,也可以利用它反復(fù)執(zhí)行同一段程序。它的用法比較簡單。一般格式如下:goto語句標(biāo)號(hào);語句標(biāo)號(hào)是一個(gè)標(biāo)識(shí)符,它的語句之間以“:”分隔,可以單獨(dú)的占一個(gè)程序行,也可以和程序語句處于同一行上。執(zhí)行g(shù)oto語句后,程序?qū)⑻D(zhuǎn)到該標(biāo)號(hào)處,并執(zhí)行其后的語句。在自動(dòng)售貨機(jī)程序設(shè)計(jì)時(shí),其流程圖如下:圖6返回模塊流程圖在自動(dòng)售貨機(jī)程序中,其源代碼如下:loop:i=p=0;printf("\n歡迎光臨\n"); loop1:i++;m=q=0;printf("請(qǐng)選擇:1.百事可樂2.可口可樂3.非常可樂\n");scanf("%d",&a);if(a!=1&&a!=2&&a!=3){gotoloop;}運(yùn)行時(shí)截圖如下:圖7返回模塊運(yùn)行時(shí)截圖3.4找錢模塊本模塊由if-elseif結(jié)構(gòu)構(gòu)成,它屬于if-else結(jié)構(gòu)的嵌套形式,它的一般結(jié)構(gòu)如下:If(表達(dá)式1){語句組1}elseIf(表達(dá)式2){語句組2}……從上到下逐個(gè)對(duì)條件進(jìn)行判斷,一旦發(fā)現(xiàn)條件滿足就執(zhí)行與它有關(guān)語句組,其下的所有條件都不在判斷,當(dāng)然它們的語句組也不在執(zhí)行;執(zhí)行最后一個(gè)語句組。最后這個(gè)else常起著“默認(rèn)條件”的作用。在自動(dòng)售貨機(jī)程序設(shè)計(jì)中,找錢模塊流程圖如下:圖8找錢模塊流程圖在自動(dòng)售貨機(jī)程序中,起源代碼為:if(p<Money){c=Money-p;j=c/10;l=c%10;if(j>=5){k=j-5;if(k/2>=1){m=k/2;q=k-2*m;}printf("找您50元1張,20元%d張,10元%d張,1元%d張",m,q,l);}else{k=j;if(k/2>=1){m=k/2;q=k-2*m;}printf("找您20元%d張,10元%d張,1元%d張",m,q,l);}其運(yùn)行時(shí)截面圖如下:圖8找錢模塊運(yùn)行時(shí)截圖4結(jié)論通過對(duì)C程序設(shè)計(jì)基礎(chǔ)的學(xué)習(xí),我掌握了一些基本的編程方法和思路,出色的完成了這次自動(dòng)售貨機(jī)管理程序課程設(shè)計(jì),這次課程設(shè)計(jì)是對(duì)我接觸C語言這個(gè)新事物以來的第一次比較系統(tǒng)的檢驗(yàn),我很重視,也很刻苦的鉆研自己的課題,當(dāng)然,通過努力完成設(shè)計(jì)的也不只我一個(gè)人,大家都很出色,都很優(yōu)秀,這次設(shè)計(jì)對(duì)我以后學(xué)習(xí)編程都有著深遠(yuǎn)的影響,所以,完成這次課程設(shè)計(jì),我很高興,這也為我以后的學(xué)習(xí)增加了很多信心,在以后的學(xué)習(xí)生活中,我一定會(huì)努力鉆研C語言,為以后的發(fā)展鋪下寬廣的道路.。通過這次實(shí)訓(xùn),增加了我學(xué)習(xí)軟件技術(shù)的興趣,雖然還不明確軟件技術(shù)包含的具體內(nèi)容,但從C語言這門課程開始,已發(fā)現(xiàn)程序設(shè)計(jì)的樂趣,在學(xué)習(xí)C語言的過程中也學(xué)到了許多計(jì)算機(jī)應(yīng)用基礎(chǔ)知識(shí),對(duì)計(jì)算機(jī)的機(jī)體也有了一個(gè)大體的了解。這次課設(shè)先做簡單的輸出模塊、輸入模塊,一步步的再做其它功能,如返回模塊、找錢模塊。在實(shí)際操作過程中犯的一些錯(cuò)誤還會(huì)有意外的收獲,感覺課設(shè)很有意思。例如在找錢模塊中,剛開始程序找錢不對(duì),我便反復(fù)的尋找錯(cuò)誤的原因,終于發(fā)現(xiàn)“p=Money”中的“=”是賦值而非等于的意思,應(yīng)該用“==”。在具體操作中對(duì)這學(xué)期所學(xué)的C語言的理論知識(shí)得到鞏固,達(dá)到實(shí)訓(xùn)的基本目的,也發(fā)現(xiàn)自己的不足之出,在以后的上機(jī)中應(yīng)更加注意,同時(shí)體會(huì)到C語言具有的語句簡潔,使用靈活,執(zhí)行效率高等特點(diǎn)。發(fā)現(xiàn)課設(shè)的重要作用,對(duì)C語言有了更深刻的理解。在此希望以后應(yīng)多增加練習(xí),加長時(shí)間,培養(yǎng)獨(dú)立思考問題的能力,提高實(shí)際操作水平。在這次設(shè)計(jì)中我學(xué)到了很多,也發(fā)現(xiàn)了自己的不足,也難免有錯(cuò)誤之處,敬請(qǐng)老師提出!參考文獻(xiàn)[1]張磊.C語言程序設(shè)計(jì)[M].北京:高等教育出版社,2006[2]呂鳳煮.C語言基礎(chǔ)教程——基礎(chǔ)理論與案例[M].北京:清華大學(xué)出版社,2005[3]黃明、梁旭、萬洪莉.C語言課程設(shè)計(jì)[M].北京:電子工業(yè)出版社,2006附錄:自動(dòng)售貨機(jī)管理程序源代碼#include<stdio.h>voidmain(){ intMoney;intn,a,b,c,a1,a2,a3,a4,a5,a6,p,q,i,j,k,m,l;intsum[4]={0,0,0};a1=a2=a3=a4=a5=a6=50;loop:i=p=0;printf("\n歡迎光臨\n"); loop1:i++;m=q=0;printf("請(qǐng)選擇:1.百事可樂2.可口可樂3.非??蓸穃n");scanf("%d",&a);if(a!=1&&a!=2&&a!=3){gotoloop;}switch(a) { case1:printf("請(qǐng)選擇:1聽式百事可樂(3元每聽)剩%d聽,2.瓶裝百事可樂(8元每瓶)剩%d聽\n",a1,a2); scanf("%d",&b);}loop2:printf("數(shù)量?");scanf("%d",&n); if(b==1&&n<=a1||b==2&&n<=a2) { switch(b) { case1:sum[i]=3*n; a1=a1-n;break; case2:sum[i]=8*n; a2=a2-n; break; }} else {printf("商品數(shù)量不足,請(qǐng)重新輸入:");gotoloop2;} break;case2:printf("請(qǐng)選擇:小瓶可口可樂(2元每瓶)剩%d瓶,2.大瓶(7元每瓶)剩%d瓶\n",a3,a4); scanf("%d",&b);loop3:printf("數(shù)量?"); scanf("%d",&n); if(b==1&&n<=a3||b==2&&n<=a4) { switch(b){ case1:sum[i]=2*n; a3=a3-n; break; case2:sum[i]=3*n; a4=a4-n; break; }} else {printf("商品數(shù)量不足,請(qǐng)重新輸入:"); gotoloop3;} break;case3:printf("請(qǐng)選擇:1聽式非??蓸罚?元每聽)剩%d聽,2.小瓶非常可樂(4元每瓶)剩%d聽\n",a5,a6); scanf("%d",&b);loop4:printf("數(shù)量?"); scanf("%d",&n); if(b==1&&n<=a5||b==2&&n<=a6) {switch(b) { case1:sum[i]=1*n; a5=a5-n; break; case2:sum[i]=2*n; a6=a6-n; break; }} else {printf("商品數(shù)量不足,請(qǐng)重新輸入:"); gotoloop4; }break; } if(i<10){printf("請(qǐng)選擇:1繼續(xù)購物,2停止購物\n");

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論