自動售貨機程序之歐陽與創(chuàng)編_第1頁
自動售貨機程序之歐陽與創(chuàng)編_第2頁
自動售貨機程序之歐陽與創(chuàng)編_第3頁
自動售貨機程序之歐陽與創(chuàng)編_第4頁
自動售貨機程序之歐陽與創(chuàng)編_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

歐陽與創(chuàng)編重慶科技院

時間:2021.03.08

創(chuàng)作:歐陽與《語言程序計》課程設計報學院電氣與信息工程學院_業(yè)班級:控1302學生姓名:宇

學號:2013441294設計地_____________設計題:_____________動售貨機系統(tǒng)________________完成日期:2014年07月04指

評語:_____________________________________________________________________________________________________________________________歐陽與創(chuàng)編

歐陽與創(chuàng)編

______________________________________________________________________________成績(五級記分制)__________指導教師(簽字)

________歐陽與創(chuàng)編

歐陽與創(chuàng)編

重慶科技學院課程設計任務設計題目:自動售貨機系統(tǒng)學生姓名課程名稱

xxxxx程序設計基礎課程設計

專業(yè)班級xxxx地

起止時間設計內(nèi)容及要求

某公司請你為其生產(chǎn)的自動售貨機編寫軟件。這種無人值守自動售貨機販賣價值為A、B、C的種商品,價格分別為2元,元和6元??屯度?0元紙幣,然后選擇購買3種品之一,自動售貨機吐出商品,并且找給用戶零錢。如果商品已經(jīng)賣完,或者無法找零,則給出用戶一個提示,商品已售完,并且退還紙幣。自然,你的售貨機用戶希望盡可能地給用戶找零,以免流失顧客。為了調(diào)查用戶的喜好,希望得到三種商品的每日消費數(shù)據(jù),由此來調(diào)整貨柜中三種貨物的存貯量。你的程序?qū)崿F(xiàn)以下功能:庫存查詢:檢索當前三種商品的儲存量商品上架:為三種商品增加或者減少儲量銷售查詢:分別統(tǒng)計今天每種商品的銷售量和銷售額會計查詢:打印當天的往來帳目以及剩余零鈔數(shù)目結(jié)算功能:取出今天所有的10元紙幣,并且分別設置零鈔的數(shù)目銷售界面:顧客投入紙幣,選擇商品,獲得商品和零錢;或者直接顯示錯誤并退還紙幣【題目要求】)各項操作功能設計一個菜單。應用程序運行后,先顯示這個菜單,然后操作員通過菜單項選擇希望進行的操作項目;)的售貨機用戶不希望每一位顧客都有權限執(zhí)行以上功能,因此一旦進入銷售界面,就不應當退回到系統(tǒng)界面,但是應允許顧客反復購買,前一個顧客購買完畢后應停留在銷售界面里允許下一個顧客操作。直到某位特殊的顧客(超級顧客)輸入特殊的商品代號(密碼)方可回到主控界面。)算機安排的找零算法應該合理,不要出現(xiàn)某一種零錢找光的情況。同時顧客也不喜歡明明有5元鈔,卻被找給5個一元的零鈔。盡量滿足這兩個要求。(3)、要求以上功能分別用函實現(xiàn)。并要求用C語言的文件操作語句將以上所有結(jié)果保存在文件。歐陽與創(chuàng)編

歐陽與創(chuàng)編

進度要求參考資料其他

【輸入輸要求】)用程序運行后,先顯示一個菜單,然后用戶根據(jù)需要選擇相應的操作項目。進入每個操作后,根據(jù)程序的提示輸入相應的信息;)求用戶輸入數(shù)據(jù)時,要給出清晰、明確的提示信息,包括輸入的數(shù)據(jù)內(nèi)容、格式及結(jié)束方式等。根據(jù)題目要求,運用所學知識,完成設計和實現(xiàn)工作,并按照書寫規(guī)范,撰寫課程設計報告。(1)系統(tǒng)分析、設計正確。(2)結(jié)果以圖表方式顯示。(3)界面簡潔、美觀。(4報告格式規(guī)范。6月23日講解課程計任務14:00~17:00學生選題并開始設計6月24日學生編寫序解結(jié)構(gòu)體相關知識6月25日講解文件寫相關知識14:00~17:00學生練習文件的讀寫6月26日講解菜單格式輸出相關知識14:00~17:00學編寫程序6月27日講解程序試的相關知識14:00~17:00學生寫程序6月30日指導學生程生編寫程序7月1日9:00~12:00指學生編程學編寫程序7月2日9:00~12:00學撰寫課程設計報告生編寫程序7月3日9:00~12:00學課程設計答辯14:00~17:00學生改課程設計報告7月4日9:00~12:00學課程設計答辯學提交課程設計報告[1]何欽銘顏.《C語言程序計.高等教育出版社年[2]譚浩強張溫《語言程設計教程高等教育出版.2006年難點提示:、首先分析題目的數(shù)據(jù)結(jié)構(gòu),看看要操作那些值商品數(shù)據(jù),金額數(shù)據(jù),甚至需要保存每一筆用戶的交易);然后根據(jù)題意設計操作對象的結(jié)構(gòu)??梢允褂媒Y(jié)構(gòu)體來描述其中較為復雜的對象例如往來帳目;確定結(jié)構(gòu)體的定義;可以使用數(shù)組來保存商品數(shù)據(jù)和已收款,剩余零鈔數(shù)目這樣的數(shù)據(jù),使用結(jié)構(gòu)體數(shù)組來保存往來帳目數(shù)據(jù)。、找零算法一種簡單的算法是優(yōu)先找給大額的零,用完再找給小額零鈔。但是這種算法充其量只能保證服務最多的顧客,但是后來的顧客就只能拿1元硬幣了。因此可以采用動態(tài)最優(yōu)化算法,剩余的零鈔哪個最多,優(yōu)先找哪個。歐陽與創(chuàng)編

歐陽與創(chuàng)編

說明

本應在每次實施前一周由負責教師填寫二份,院系審批后交院系辦備案,一份由負責教師留用。2.若填寫容較多可另紙附后。3.一題多名學生共用的,在設計容、參數(shù)、要求等方面應有所區(qū)別。教研室主任:

指導教師:雷亮韓琦/陳劉奎年6月02日摘要有史以來,人類發(fā)明了無數(shù)的信息技術來擴展自身的信息交流、處理和記憶能力。然而,以1946年世界第一臺電子計算機的出現(xiàn)為開端,信息技術開始走向一個全新的數(shù)字時代。50年多年來,計算機技術飛速發(fā)展,日新月異。人們發(fā)現(xiàn)起初為解決計算問題而發(fā)明的計算機用途越來越廣,幾乎滲透到涉及信息活動的一切領域。計算機軟件的開發(fā)更是幫助到各個領域?qū)τ嬎銠C的使用,更加優(yōu)化了計算機的功能。根據(jù)本次課程設計內(nèi)容及要求,完成自動售貨機系統(tǒng)的設計。這種無人值守自動售貨機販賣價值為、B、C的三種商品,價格分別為2元,3元和6元。顧客投入元的紙幣,然后選擇購買3種商品之一,自動售貨機吐出商品,并且找給用戶零錢。如果商品已經(jīng)賣完,或者無法找零,則給出用戶一個提示,商品已售完,并且退還紙幣。在自動售貨機系統(tǒng)中,數(shù)據(jù)的固化采用.out文件格式進行儲存。歐陽與創(chuàng)編

歐陽與創(chuàng)編關鍵詞:計算機自動售貨機儲存

目錄摘要III1設計內(nèi)容和要求12概要設計22.1數(shù)固化3詳細設計43.1管員模塊43.2用模塊的詳細設計54系統(tǒng)測試74.1系統(tǒng)啟動選擇界面4.2庫存查詢功能測試4.3商上架功能測試4.4銷查詢功能測試4.5會查詢功能測試114.6銷功能測試5總結(jié)13致謝14參考文獻15源代碼15歐陽與創(chuàng)編

歐陽與創(chuàng)編

歐陽與創(chuàng)編

歐陽與創(chuàng)編

1計內(nèi)容和要求某公司請你為其生產(chǎn)的自動售貨機編寫軟件。這種無人值守自動售貨機販賣價值為、B、C三種商品,價格分別為2元,3和6。顧客投入元的紙幣,然后選擇購買商品之一,自動售貨機吐出商品,并且找給用戶零錢。如果商品已經(jīng)賣完,或者無法找零,則給出用戶一個提示,商品已售完,并且退還紙幣。自然,你的售貨機用戶希望盡可能地給用戶找零,以免流失顧客。為了調(diào)查用戶的喜好,希望得到三種商品的每日消費數(shù)據(jù),由此來調(diào)整貨柜中三種貨物的存貯量。你的程序?qū)崿F(xiàn)以下功能:庫存查詢:檢索當前三種商品的儲存量商品上架:為三種商品增加或者減少儲量銷售查詢:分別統(tǒng)計今天每種商品的銷售量和銷售額會計查詢:打印當天的往來帳目以及剩余零鈔數(shù)目結(jié)算功能:取出今天所有的10元紙幣,并且分別設置零鈔的數(shù)目銷售界面:顧客投入紙幣,選擇商品,獲得商品和零錢;或者直接顯示錯誤并退還紙幣歐陽與創(chuàng)編

歐陽與創(chuàng)編

2要設計本自動售貨機系統(tǒng)根據(jù)題意有以下6個塊,但前個需要管理者密碼,最后一個為普通用戶模塊,不需要密碼。自動售貨機系統(tǒng)庫存查詢

商品上架

銷售查詢

會計查詢

結(jié)算功能

銷售界面圖2.12.1數(shù)據(jù)固化數(shù)據(jù):在計算機系統(tǒng)中,各種字母、數(shù)字符號的組合、語音、圖形、圖像等統(tǒng)稱為數(shù)據(jù),數(shù)據(jù)經(jīng)過加工后就成為信息。在本系統(tǒng)中涉及的數(shù)據(jù)只是一些簡單的字符和數(shù)字的組合,對于它的數(shù)據(jù)固化也將采用比較簡單的文本方式進行存儲。但是,文件中的數(shù)據(jù)存儲格式必須是我們程序員給出定義的。歐陽與創(chuàng)編

歐陽與創(chuàng)編

在自動售貨機系統(tǒng)的使用到的文件是goods.out,用以存儲貨物的基本信息,他們的具體含義如下:1)商品的數(shù)據(jù)定義以行為單位,描述一類商品,數(shù)據(jù)格式為:商品名商品價格(以空格隔開)

商品總量歐陽與創(chuàng)編

歐陽與創(chuàng)編

3細設計3.1管理員模塊管理員是自動售貨機系統(tǒng)中權限最高的用戶。在管理員工作模式下,管理員可以進行貨物進行/下架操作、商品庫存信息查詢、銷售信息查詢、會計查詢、結(jié)算功能、切換到銷售界面幾大操作。管理員模塊下的功能結(jié)構(gòu)圖,如下:庫存查

商品上

銷售查

會計查

結(jié)算功瀏覽

增減

查詢

查詢

瀏覽歐陽與創(chuàng)編

歐陽與創(chuàng)編

圖3.1管理員模塊流程圖庫存查詢和銷售查詢處理流程大概相同,下面只給出商品上架的流程圖。讀取文件錄入商品編號商品編號存在否更新數(shù)量

完成各項商品信息錄入寫入文件圖3.2商品上架流程圖3.2用戶模塊的詳設計用戶模塊主要是銷售商品的界面。銷售商品的整個過程是,用戶輸入商品代號,然后投入貨幣,然后進行找零等操作,最后放出商品,完成交易。下面來看一下用戶模塊的流程。歐陽與創(chuàng)編

歐陽與創(chuàng)編

用戶商品A

商品B

商品C圖3.3用戶模塊流程圖歐陽與創(chuàng)編

歐陽與創(chuàng)編

4統(tǒng)測試它的的任務是盡可能徹底地檢查出程序中的錯誤,提高軟件系統(tǒng)的可靠性,其目的是檢驗系"做得怎樣"這階段又可分為三個步驟:模塊測試,測試每個模塊的程序是否有錯誤;組裝測試,測試模塊之間的接口是否正確;確認測試,測試整個軟件系統(tǒng)是否滿足用戶功能和性能的要求。該階段結(jié)束應交付測試報告,說明測試數(shù)據(jù)的選擇,測試用例以及測試結(jié)果是否符合預期結(jié)果。測試發(fā)現(xiàn)問題之后要經(jīng)過調(diào)試找出錯誤原因和位置,然后進行改正。是基于系統(tǒng)整體需求說明書的黑盒類測試,應覆蓋系統(tǒng)所有聯(lián)合的部件。系統(tǒng)測試是針對整個產(chǎn)品系統(tǒng)進行的測試,目的是驗證系統(tǒng)是否滿足了需求規(guī)格的定義,找出與需求規(guī)格不相符合或與之矛盾的地方。4.1

系統(tǒng)啟選擇界面。歐陽與創(chuàng)編

歐陽與創(chuàng)編

圖4.1系統(tǒng)啟動選擇界面圖4.1系統(tǒng)啟動選擇界面4.2庫存查詢功能試庫存功能的設計是為了檢索當前三種商品的儲存量,輸入操作指令“1”進入庫存查詢能。。歐陽與創(chuàng)編

歐陽與創(chuàng)編

圖4.2庫存查詢功能測試結(jié)果圖歐陽與創(chuàng)編

歐陽與創(chuàng)編

4.3商品上架功能試商品上架功能設計是為了實現(xiàn)三種商品增加或者減少儲量。輸入指令“2”,進入商品上架功能界面。圖4.3商品上架功能測試界面圖4.4銷售查詢功能試銷售查詢功能是設計為了完成分別統(tǒng)計今天每種商品的銷售量和銷售額的功能。輸入口令“3,進入銷售查詢功能界面。歐陽與創(chuàng)編

歐陽與創(chuàng)編

圖4.4銷售查詢功能測試界面圖4.5會計查詢功能試會計查詢功能是設計為了完成分別統(tǒng)計今天每種商品的銷售量和、銷售額和一元、五元剩余張數(shù)的功能。輸入口令“4”,進入銷售查詢功能界面。歐陽與創(chuàng)編

歐陽與創(chuàng)編

圖4.5銷售查詢功能測試界面圖4.6銷售功能測試在管理模式下,輸入口令“6”,進入銷售模式。歐陽與創(chuàng)編

歐陽與創(chuàng)編

圖4.6商品銷售操作圖5結(jié)通過自動售貨機系統(tǒng)的設計,進一步掌握了C語言的基礎知識。尤其對指針的操作、文件的操作更加熟悉??傊?,又讓我重新認

了C

力。歐陽與創(chuàng)編

歐陽與創(chuàng)編

致謝感謝父母的精心培養(yǎng)和無私的給予,您們是我學習和生活的源動力。感謝你們讓我懂得了如何生活。感謝老師辛勤培養(yǎng),無私的栽培。歐陽與創(chuàng)編

歐陽與創(chuàng)編

參考文獻[1]何欽銘,C語言程序設計,北京,高等教育出版社,[2]譚浩強張基溫,C語言程序設計教程,高等教育出版社,2006源代碼#include"stdio.h"#include"stdlib.h"{intyy;intwy;int}JE;SP{intxsje;intintkc;}SP;intmain(){FILE*fp;intJEmoney;a.kc=b.kc=c.kc=50;a.sc=b.sc=c.sc=0;money.wy=50;money.sy=0;fp=fopen("jilu.txt","a");do{printf("\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\nprintf("\t^**^\n");printf("\t^*。。。。。歡迎使自動售貨機管理系統(tǒng)。。。。。。*^\n");歐陽與創(chuàng)編

歐陽與創(chuàng)編

printf("\t^**^\n");printf("\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*printf("\n");菜:************************************************\n");*************自*動*售**機*系*統(tǒng)***************\n");**1、庫存查詢**\n");**2、商品上架**\n");**3、銷售查詢**\n");**4、會計查詢**\n");**5、結(jié)算功能**\n");**6、銷售界面**\n");************************************************\n");************************************************\n");**輸入1-6選擇:");1:printf("*****************************\n");*、A商品單價:元*\n");*、商品單價:3元*\n");*、商品單價:6元*\n");*************************************\n");**入1-3:");scanf("%d",&sp);printf("\n");1:printf("*************************************\n");*你擇的2元商品*\n");*元品的庫存量為:%d*************************************\n");fputs("2元品的庫存量為"fp);fprintf(fp,"%d\n",a.kc);break;2:printf("*************************************\n");*你擇的3元商品*\n");*元品的庫存量為:%d\n",b.kc);*************************************\n");fputs("3元品的庫存量為"fp);fprintf(fp,"%d\n",歐陽與創(chuàng)編

歐陽與創(chuàng)編break;

3:printf("*************************************\n");*你擇的6元商品*\n");*元品的庫存量為:%d\n",c.kc);*************************************\n");fputs("6元品的庫存量為"fp);fprintf(fp,"%d\n",c.kc);break;}輸入任意數(shù)值返回上層n");break;2:printf("*****************************\n");*、A商品單價元*\n");*、商品單價:元*\n");*、商品單價:元*\n");*************************************\n");**輸入選擇:");scanf("%d",&sp);1:printf("*************************************\n");*你擇的2元的商品*\n");*請入商品的改變量:scanf("%d",&sl);a.kc+=sl;*************************************\n");*元商品現(xiàn)在的庫存為:\n",a.kc);*************************************\n");fputs("2元品現(xiàn)在的庫存"fp);fprintf(fp,"%d\n",a.kc);break;2:printf("*************************************\n");*你擇的3元的商品*\n");*請入商品的改變量:scanf("%d",&sl);*************************************\n");*元商品現(xiàn)在的庫存為:*************************************\n");fputs("3元品現(xiàn)在的庫存"fp);fprintf(fp,break;3:printf("*************************************\n");*你擇的6元的商品*\n");*請入商品的改變量:歐陽與創(chuàng)編

歐陽與創(chuàng)編scanf("%d",&sl);

c.kc+=sl;*************************************\n");*元商品現(xiàn)在的庫存為:*************************************\n");fputs("6元品現(xiàn)在的庫存"fp);fprintf(fp,"%d\n",c.kc);break;}break;3:printf("*****************************\n");*、A商品單價元*\n");*、商品單價:元*\n");*、商品單價:元*\n");*************************************\n");**輸入選擇:scanf("%d",&sp);1:printf("**************銷*售*查*詢************\n");*你擇的元的商品*\n");*銷數(shù)量為*銷金額為:%d*************************************\n");fputs("2元品的銷售數(shù)量和金額為"fp);fprintf(fp,fprintf(fp,"%d\n",a.xsje);break;2:printf("**************銷*售*查*詢************\n");*你擇的元的商品*\n");*銷數(shù)量為*銷金額為:%d*************************************\n");fputs("3元品的銷售數(shù)量和金額為"fp);fprintf(fp,"%d,",b.sc);fprintf(fp,break;3:printf("**************銷*售*查*詢************\n");*你擇的元的商品*\n");*銷數(shù)量為*銷金額為:%d*************************************\n");fputs("6元品的銷售數(shù)量和金額為"fp);歐陽與創(chuàng)編

歐陽與創(chuàng)編fprintf(fp,"%d,",c.sc);fprintf(fp,break;}break;

4:printf("********************************\n");*至今2元品賣出:交易額:*至今商品賣:交易額:\n",b.sc,b.xsje);*至今6元品賣出:交易額:\n",c.sc,c.xsje);*元鈔剩余量為%d\n",money.yy);*元鈔剩余量為%d\n",money.wy);****************************************\n");fputs("今元商品的銷售數(shù)量和金額為",fp);fprintf(fp,fprintf(fp,"%d\n",a.xsje);fputs("今元商品的銷售數(shù)量和金額為",fp);fprintf(fp,"%d,",b.sc);fprintf(fp,fputs("今元商品的銷售數(shù)量和金額為",fp);fprintf(fp,"%d,",c.sc);fprintf(fp,fputs("1零鈔剩余量"fp);fprintf(fp,"%d\n",money.yy);fputs("5零鈔剩余量"fp);fprintf(fp,"%d\n",money.wy);break;fputs("出的元票數(shù)量",fp);fprintf(fp,"%d\n",money.sy);money.sy=0;*************************************\n");*已10元鈔票*\n");*請輸出1鈔票的初始:scanf("%d",&money.yy);fputs("置的鈔票數(shù)"fp);fprintf(fp,"%d\n",money.yy);*請輸出5元票的初始:fputs("置的鈔票數(shù)"fp);fprintf(fp,"%d\n",money.wy);a.sc=b.sc=c.sc=0;break;管員碼為{歐陽與創(chuàng)編

歐陽與創(chuàng)編*請入10元紙幣*\n");");scanf("%d",&pd);if(pd==10){

********************************\n");*、A商品單價元*\n");*、商品單價:元*\n");*、商品單價:元*\n");*************************************\n");**輸入選擇:scanf("%d",&sp);{*************************************\n");*你的2元的商品*\n");*你的商品為:2元商品*\n");*請擇購買數(shù)量:");scanf("%d",&sl);if(sl>0&&sl<=5){if(a.kc>=sl&&(money.yy+money.wy*5)>=(10-sl*2)){ye=10-sl*2;a.xsje+=sl*2;money.sy++;if(ye>5&&money.wy>=1){money.wy-=1;}{}*************************************\n");*請從商品口拿出商品及余:%d元此次賣出元品的數(shù)量及收入",fp);fprintf(fp,"%d,",sl);fprintf(fp,"%d\n",sl*2);;break;}歐陽與創(chuàng)編

歐陽與創(chuàng)編

{*商品足或零鈔不足break;

*\n");}}{*請輸正確數(shù)量

*\n");}}break;{*************************************\n");*你的3元的商品*\n");*你的商品為:3元商品*\n");*請擇購買數(shù)量:scanf("%d",&sl);if(sl>0&&sl<=3){if(a.kc>=sl&&(money.yy+m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論