自動售貨機實驗報告_第1頁
自動售貨機實驗報告_第2頁
自動售貨機實驗報告_第3頁
自動售貨機實驗報告_第4頁
自動售貨機實驗報告_第5頁
免費預覽已結束,剩余58頁可下載查看

下載本文檔

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

文檔簡介

1、軟件課程設計實驗報告課題:班級:作者:學號:電信自動售貨機212課程設計實驗報告4 運行環境規定二、概要設計說明書1引言第一部分 程序代碼第二部分 軟件設計文檔1515、軟件需求說明書15151 引言15編寫目的背景 .定義 .參考資料151515162 2 任務概述16162.1 目標 .2.2 用戶的特點2.3 假定和約束1616163 需求規定16對功能的規定 .對性能的規定 .輸人輸出要求 .數據管理能力要求故障處理要求 .其他專門要求 .17171818184.4設備 .支持軟件接口 .控制 .191

2、919編寫目的背景 .定義 .參考資料202020202 2 需求說明21212.1 需求規定 .2.2 運行環境 .2.3 基本設計概念和處理流程21211919202020202828293.1233 接口設計2程序系統的結構3投幣模塊2.7結構 .功能器求與程序的關系人工處理過程 .尚未解決的問題 .222223233.1 用戶接口3.2 外部接口3.3 內部接口2323234 運行設計23234.1 運行模塊組合4.2 運行控制 .4.3 運行時間 .2324245 系統數據結構設計24245.1 邏輯結構設計要點 .5.2 物理結構設計要點 .

3、5.3 數據結構與程序的關系2424246 系統出錯處理設計25256.1 出錯信息6.2 補救措施2525三、詳細設計說明26261 引言26261.1 編寫目的1.2 背景 .1.3 定義 .1.4 參考資料26262623.103.11程序描述 功能 .性能 .輸入項 .輸出項 .算法 .流程邏輯 接口 .存儲分配注 釋 設 計限 制 條 件測試計劃2727272828282929292323272727276.133843.13 尚未解決的問題294 退幣模塊30304.104

4、.114.124.13程序描述 .功能 .性能 .輸入項 .輸出項 .算法 .流程邏輯 .接口 .存儲分配 .注釋設計 .限制條件 .測試計劃 .尚未解決的問題303030303030313131313232325 取貨模塊32325.13程序描述 .功能 .性能 .輸入項 .輸出項 .算法 .流程邏輯 .接口 .存儲分配 .注釋設計 .限制條件 .測試計劃 .尚未解決的問題323232323333333334343434346 購買模塊35306.116.12

5、程序描述 .功能 .性能 .輸入項 .輸出項 .算法 .流程邏輯 .接口 .注釋設計 .限制條件 .測試計劃 .尚未解決的問題3535353535363637383838505退幣模塊設計說明3838四、測試分析報告39391 1 引言39391.1 編寫目的1.2 背景 .1.3 定義 .1.4 參考資料393939392 2 測試概要39393 3 測試結果及發現40403.1 測試3.2 測試3.3 測試3.4 測試啟動系統)退出系統)貨品展示)投幣購買)40424242.5 測試 5(取出物品)3.6測試 6(找零) . 3.7 測試 7(退幣) . 3.8 測試 8(報錯) .434

6、444454 4 對軟件功能的結論45454.1 功能4.2 能力4.3 限制4546465 5 分析摘要46465.1 能力 .5.2 缺陷和限制5.3 建議 .5.4 評價 .464646476 6 測試資源消耗4747五、項目開發總結報告48481 引言484編寫目的背景 .定義 .參考資料484848482 實際開發結果49492.1 產品 .2.2 主要功能和性能2.3 基本流程 .2.4 進度 .49505062.5 費用503 開發工作評價52523.1 對生產效率的評價3.2 對產品質量的評價3.3 對技術方法的評價3.4 出錯原因的分析525252524

7、4 經驗與教訓53537第一部分 程序代碼/引入awt、swing包importimportimport import/*按鈕變量的定義*/*商品庫存量數組,價格數組,圖片數組及金額顯示的定義*/private int storage = 5,5,5,5,5,5,5,5,5,5,5,5,10;/設普通商品的初始庫存量為5,特價商品的初始庫存為private double price =2.5,2.0,3.2,3.6,4.5,4.2,4.8,4.6,3.5,2.7,3.6,3.0,2.0;/price數組存儲每種商品的價格ImageIcon productImage = new ImageIco

8、n13;/13種為普通商品圖片定義,最后一種為特價商品。ImageIcon imagead = new ImageIcon( image/ad.jpgprivateJButtonquit =newJButton( 取消 );privateJButtonhelp =newJButton(幫助 );privateJButtontakeproduct=new JButton (取貨privateJButtonmoneyreturn=new JButton(退幣 )privateJButtonproduct = new JButton13;privateJButtoninsertmoney= new

9、JButton3;);ImageIcon imageoutjava.text.DecimalFormat初始化金額格式化JLabelnew ImageIcon( image/out.jpgdf =new java.text.DecimalFormat(); /出貨口的初始圖片定義。#0.00 );/privatead = new JLabel(imagead);privateprivateJLabelJTextFieldproductOut =new JLabel( text=new JTextField(/imageout );歡迎光臨 );出貨口/金額顯示區。java.awt.*;java

10、.awt.event.*;javax.swing.*;javax.swing.border.*;/類Seller的定義,用于實現所有的功能public classSellerextends JFrame implementsActionListenerprivateprivateprivatestaticdoublebooleanfinal long serialVersionUIDmoney = 0.0; /money occupy ;/occupy=false/occupy=true= 6843588200041215448L;表示用戶余額 表示出貨口未滿,用戶可以購買; 表示出貨口已滿,

11、 用戶必須取完貨才能繼續購買。10。);89/*初始化函數構建圖形用戶界面*/public Seller()/*商品選購區界面設計product中有商品價格和商品圖片*/super ( 自動售貨機 );productImageIcon(0= new JButton(Image/0.jpg );Y +String.valueOf( price 0),newproduct0.setToolTipText(生產日期:2010-02-10; n商品名稱:+保質期:2年;productImageIcon(1= new JButton(Image/1.jpg );Y+String.雪碧;);valueOf

12、n+容量:( price 1),250ML; nnew+product1.setToolTipText(生產日期:2010-02-10; n商品名稱:+保質期:2年;芬達;);n+容量:250ML; n+productImageIcon(2= new JButton(Image/2.jpg );Y+String.valueOf( price2),newproduct2.setToolTipText(n +生產日期:2010-02-10; n商品名稱:+保質期:統一冰紅茶; n2年; );+容量:400ML;10product3= new JButton(Y+String.valueOf( pr

13、ice3),newImageIcon(Image/3.jpg)product3.setToolTipText(商品名稱:可口可樂; n+容量:400ML;n +生產日期:2010-02-10; n+保質期:2年; );product4= new JButton(Y+String.valueOf( price4),newImageIcon(Image/4.jpg)product4.setToolTipText(商品名稱:營養快線; n+容量:450ML;n +生產日期:2010-02-10; n+保質期:2年; );product5= new JButton(Y+String.valueOf(

14、price5),newImageIcon(Image/5.jpg)product5.setToolTipText(商品名稱:咖啡; n +容量:250ML; n生產日期:2010-02-10; n+保質期:2年; );product6= new JButton(Y+String.valueOf( price6),newImageIcon(Image/6.jpg)容量:500ML;product6.setToolTipText(商品名稱:百事可樂; n+n +生產日期:2010-02-10; n+保質期:2年; );product7= new JButton(Y+String.valueOf(

15、price7),newImageIcon(Image/7.jpg)product7.setToolTipText(商品名稱:雅哈咖啡; n+容量:250ML;+保質期:2年; );+n +生產日期:2010-02-10; n(100);11product8= new JButton(Y +String.valueOf( price 8), newImageIcon(Image/8.jpg );product8.setToolTipText(商品名稱: 芬達汽水;IIII+容量:300ML; +生產日期:2010-02-16;+保質期:1年 );product9= new JButton(Y+S

16、tring.valueOf( price 9), newImageIcon(Image/9.jpg );product9.setToolTipText(商品名稱: 哇哈哈純凈水;n+容量:300ML;n +生產日期:2010-02-17; n+保質期:2年; );product10= new JButton( Y +String.valueOf( price10), newImageIcon(Image/10.jpg );product10.setToolTipText(商品名稱: 茉莉冰醇; n+容量:560ML;n +生產日期:2010-02-10; n+保質期:2年; );product

17、11= new JButton( Y +String.valueOf( price11), newImageIcon(Image/11.jpg );product11.setToolTipText(商品名稱:雪碧; n+容量:350ML; n+生產日期:2010-02-15; n+保質期:1年;);product12= new JButton(今日特價:Y +String.valueOf ( price 12), newImageIcon(Image/12.jpg );product12.setToolTipText(商品名稱: 青島啤酒; n+容量:280ML;n +生產日期:2010-02

18、-15; n+保質期:1年; );insertmoney0= new JButton (投Y 0.1);/投幣按鈕的設計insertmoney1= new JButton (投Y 0.5);insertmoney2= new JButton (投Y 1.0);new JPanel();for ( int i=0;i3;i+)productOut.setBorder( BorderFactory.createLoweredBevelBorder();productOut.setBorder( new TitledBorder(new LineBorder(Color.RED,5),出貨口 );t

19、exttexttexttexttext.setBackground( new Color(100,250,200);.setBorder(BorderFactory.createLoweredBevelBorder .setHorizontalAlignment(SwingConstants.setEditable( false );.setColumns(21);CENTER);();/使顯示的字位于中間text.setBorder( new TitledBorder(new LineBorder(Color.GREEN,5), 金額顯示區 );JPanel moneyinserted=mo

20、neyinserted.add( moneyinserted.add(Box.new JPanel( text );createVerticalStrutnew FlowLayout();JPanel toubi=(100);12toubi.add( insertmoney i);13insertmoneyi.addActionListener(JPanel Buttons= new JPanel( newFlowLayout();Buttons.add(productOut);Buttons.add(moneyreturn);Buttons.add(takeproduct);Buttons.

21、add(quit );Buttons.add(help );help .addActionListener(this );quit .addActionListener(this );takeproduct.addActionListener(this );moneyreturn.addActionListener(this );JPanel Opt=new JPanel();this );Opt.setLayout(Opt.add(Opt.add(Opt.add(NorthCenterSouthnewBorderLayout(); ,moneyinserted);,toubi);,Butto

22、ns);JPanel productshow=new JPanel(new GridLayout(3,4,5,5);productshow.setBorder(new TitledBorder(new LineBorder(Color.RED,5), 商品顯示區 );JPanel panel=panel.setLayout(panel.add( panel.add( panel.add(CenterEastWestnew JPanel();newBorderLayout(); ,Opt);, productOut );, product 12);/panel.setSize(800,800);

23、 setLayout( add( Northadd( Center add( SouthnewBorderLayout(); ,productshow);, ad);,panel);/setResizable(false);/setBounds(0,0,550,700);for ( int i=0;i13;i+)productImage i = if (i!=12)productshow.add(new ImageIcon(product i);product i.addActionListener(image/ +i+ .jpg );this );14/*購買函數的設計*/().beep()

24、;( null , 您的金額不足,請投入足夠硬幣!WARNING_MESSAGE);productOut .setIcon( occupy =true ;productImage i);product i.setBorder( BorderFactory.createLoweredBevelBorder();product12.setBorder( validate();pack();setVisible(new TitledBorder(new LineBorder(Color.RED,5), 特價商品 );true );publicvoid purchase(int i)if( occup

25、y = true ) /如果取貨口已經滿則提示用戶取貨后再購買。elseelseToolkit.JOptionPane.JOptionPane.if ( storageToolkit.getDefaultToolkit ().beep();showMessageDialog ( this , 請取走貨物后再購買 , 歡迎光臨 ,ERROR_MESSAGE);i = 0) /如果供貨不足則提示用戶商品已經售完,用戶可以繼續購買其他商品。().beep();showMessageDialog ( this , 非常抱歉,該商品已經售完,, 歡迎光臨 , JOptionPane. INFORMATI

26、ON_MESSAGE );getDefaultToolkitJOptionPane.請選擇其他商品if ( money = price i &storage i 0) /當用戶投入足量硬幣并且供貨money = moneytext .setText( storage i -;if ( storage i = 0)i; /購買后余額減少。Y +String.valueOf ( df .format( money );price您已經投幣:/庫存量減少。/商品背景變黑表示庫存為0.getDefaultToolkitJOptionPane. showMessageDialog 溫馨提示 ,J

27、OptionPane.Tduct i.setBackground(Color.black );15publicvoid actionPerformed(ActionEvent e)/*點擊投幣按鈕一次,表示投入一元,并且在金額顯示屏text上顯示出當前投入的總金額*/if (e.getSource()=money = moneytext .setText(if (e.getSource()=money = moneytext .setText(if (e.getSource()=money = moneytext .setText(if(e.getSource()=ifin

28、sertmoney+0.1;您已經投幣:insertmoney+0.5;您已經投幣:insertmoney+1.0;您已經投幣:help )0)1)2)+String.+String.+String.valueOfvalueOfvalueOf( df .format( df .format( df .format(JOptionPane.按照以下步驟購買您所需的商品:請投入硬幣;n選擇好您要購買的商品后,按下購買鍵;您可以在金額充足的情況下連續購買商品,如果您投幣不足系統將退還您的全部硬幣 購買商品后,請記得取走您的余額n若系統發生故障請及時與我們聯系,聯系電話:歡迎光臨 , JOptionP

29、ane. INFORMATION_MESSAGE );showMessageDialogn( null+1.+2.+3.+4.+5.+6.(e.getSource()=takeproduct )money );money );money );, 歡迎使用我們的自動售貨機!請您n也可以在繼續投硬幣后繼續購買商品;nif ( occupy = false ) /出貨口為滿則提示用戶取貨。Toolkit. getDefaultToolkit().beep();n5555555product i.setBackground(Color.black );1617if ( money =0) /余額為0不

30、退幣ifJOptionPane.JOptionPane.elseshowMessageDialog ( null , 請購買后再取貨ERROR_MESSAGE); /出貨口為空則提示用戶購買后才能取貨。Toolkit. getDefaultToolkit ().beep();productOut .setIcon( imageout );( null , 請收好您的貨物);JOptionPane. showMessageDialogJOptionPane. INFORMATION_MESSAGE occupy=false ;(e.getSource()=moneyreturn, 歡迎光臨 ,

31、歡迎下次光臨 ,Toolkit.().beep();( thisgetDefaultToolkitJOptionPane. showMessageDialogJOptionPane. INFORMATION_MESSAGE );else, 您的可退余額為零, 歡迎下次光臨 ,Toolkit.getDefaultToolkitmoney =0;().beep();text .setText(JOptionPane.JOptionPane.歡迎光臨! );showMessageDialog ( thisINFORMATION_MESSAGE );, 請收好您的錢 ,歡迎下次光臨 ,elseif (

32、e.getSource()=quit )if ( money 0)JOptionPane.JOptionPane.showMessageDialog ( null , 請取走您的余額INFORMATION_MESSAGE ); , 提示 ,elseJOptionPane.JOptionPane.System. exitshowMessageDialog ( null , 謝謝您的光臨 , 歡迎下次光臨 ,INFORMATION_MESSAGE );(0);18showMessageDialog ( null ,歡迎大家使用我們的自動售貨機! , 歡迎光臨 ”,JoptionPane.INFOR

33、MATION_MESSAGE);new Seller();for /( int i = 0;i13;i+)判斷用戶購買的是哪一個商品.(e.getSource() = product i)ifString msg= 您確定購買該商品嗎? if(JOptionPane.JOptionPane.JOptionPane.showConfirmDialog ( null ,msg, 歡迎光臨 ”,OK_CANCEL_OPTION , QUESTION_MESSAGE )=JOptionPane.YES_OPTION )purchase(i);/購買的是第i個商品publicstaticvoid mai

34、n(String args)JOptionPane.19第二部分 軟件設計文檔、軟件需求說明1引言1.1編寫目的4在完成了關于飲料市場的前期調查,同時與多位軟件使用者進行了全面 深入地探討和分析的基礎上,項目小組提出了這份軟件需求規格說明書。 此需求規格說明書對自動售貨機軟件做了全面細致的用戶需求分析, 明確所要開 發的軟件應具有的功能、 性能與界面, 使系統分析人員及軟件開發人員能清楚地 了解用戶的需求,并在此基礎上進一步提出概要設計說明書和完成后續設計與開 發工作。5本文檔的使用者包括本軟件的用戶、需求分析人員、項目管理人員、軟件 設計人員、軟件測試人員以及軟件維護人員。1.2背景1.1本

35、系統名稱為自動售貨機系統,是一款具有投幣、購買、取貨、退幣以及信息 提示等人性化操作和幫助等功能的系統。1.2本系統的任務提出者:電信0703班自動售貨機軟件課程設計開發小組1.3開發者:電信0703班軟件課程設計開發小組吳婷、張曉梅、李凱三位同學1.4用戶:無限制1.5實現該軟件的軟硬件環境:本系統能在支持java運行平臺的系統上運行7.支持環境:該系統可以在Windows2000、Windows XP、Vista等版本上運行1.3定義1用戶:指讀者及項目組成員。2出貨口狀態:指出貨口是否被貨物占據。201.4參考資料Herbert Schildt著,Java實用教程,清華大學出版社1.朱福

36、喜、唐曉軍等編著, Java程序設計技巧與開發實例 ,人民郵電出版 社2任務概述2.軟件工程導論 第四版 張海藩 清華大學出版社2任務概述2.1目標本軟件開發的最終成果是一模擬的自動售貨機, 是為了讓大家了解其運行過 程。當前社會人們的生活觀念以及消費觀念, 使這種自動服務功能的產品越來越 受歡迎。在將來的超市系統中,也可以應用本軟件的設計思想。2.2用戶的特點本軟件的最終用戶,要求其擁有一定的計算機操作基礎,能夠根據提示進行 相應操作。2.3假定和約束1.假定系統的開發過程經費充足2.假定系統的開發時間限制在四周之內。3.假定軟件所運行的計算機安裝有Java運行軟件3需求規定3.1對功能的規

37、定輸入處理輸出點擊相應投幣口增加余額余額顯示框增加相應錢數21點擊購買比較余額與商品價格余額充足,是否確認購買余額不足,有提示音,并有提示框 提示余額不足金額足夠,并 確定購買減少余額出貨口顯示所購產品,顯示余額點擊退幣金額為0余額顯示框錢數為0,并有提示框 提示拿好退款無商品提示,商品背景改變顏 色提小商品已售兀,冃景變黑點擊幫助提示顯示操作提示點擊取消退出系統退出系統,關閉操作界面3.2對性能的規定321精度該軟件的輸入金額為1元、0.5元、0.1元三種,對其他輸入輸出數據無特 別要求。用戶進行輸入輸出操作時系統要能給出迅速的反應并顯示操作結果。3.2.2時間特性要求系統對用戶的每次操作,

38、其響應時間都需要在用戶可以接受的范圍內。考慮到從顧客選擇商品到交易結束,可能需要幾十秒鐘的時間,故考慮在此 過程中插播廣告音樂,使本軟件的設計更加人性化。3.2.3靈活性1.本軟件要求使用鍵盤和鼠標進行操作,考慮到以后技術越來越成熟,有可能出現觸摸式操作,或者音控式操作,所以,要考慮到這一情況,以提高可擴展 性。在編寫程序時對用戶操作部分保留可修改,若出現以上兩種情況,修改相應 的動作相應部分即可。2.本軟件可在windows2000、windows2003、windows XP、Vista等一系列平 臺上運行,以后更高版本的系統對此需要考慮兼容性。3.本軟件不會與網絡或者數據庫等相互關聯,所

39、以接口不會有太大變化。4.由于以后的計算機系統的速度只會越來越快, 故有效時限只會往更優異的 方向發展。5.考慮到一些不可預知情況,開發過程中在不影響軟件質量的情況下,會加 緊進度。對軟22件的改進包括提示以及用戶操作界面等方面。 考慮,所售商品售完后,可以加一提示裝置,對賣家進行提示,以便及時添加商品,方便顧客購買。用戶操作界面,希望朝著更加友好的方向發展。3.3輸人輸出要求3.投幣:由“投幣”按鈕代替,點擊一次則金額增加相應的數額4.退幣:由“退幣”按鈕代替,點擊則余額變為05.退出程序:余額為0的情況下,由“取消”按鈕代替,點擊則退出程序; 余額不為0時,提示用戶取走余額。6.購買商品:

40、選定要買的商品,點擊,提示是否確定購買,點擊確定:金額 充足,則出貨口顯示所選商品;點擊“取貨” ,則出貨口商品被取走(點擊其他 按鈕,提示用戶“取貨”),金額減少相應數額;金額不足時,提示“金額不足” 。3.4數據管理能力要求本軟件要求計算機準確計算用戶金額,并且及時更新產品。否則可能對用戶 造成不好的影響。3.5故障處理要求1硬件故障,如鼠標,屏幕等出現問題,與本系統無關。2由病毒導致該系統不能正常啟動,或是該軟件被損壞,這種情況下我們不予處理。231臺;內存要求不小于256M硬盤容量要求不小于4G;要求有鍵盤或鼠標支持。不需要網絡支持。6.支持軟件安裝有Java應用軟件的windows2

41、000、windows2003、windows XP、Vista等系統。4.3接口本軟件提供鍵盤、鼠標等用戶接口,可以通過相應操作調用系統資源,進行 操作和處理。4.4控制用戶對可執行文件進行雙擊就可運行本軟件。運行本軟件不需要管理員權 限,普通用戶即可。各控制信號通過用戶點擊相應按鈕實現。3軟件發生諸如啟動超時、占用CPU資源過大、與其他系統有沖突、響應過慢等問題,請用戶與我們進行聯系。3.6其他專門要求本軟件要求方便用戶閱讀和使用,要求易于維護與擴展。1.4運行環境規定4.1設備運行平臺:Intel486以上系列、AMD06.5輸出項表6-3購買模塊的輸出項44名稱標識數據類型有效范圍商品

42、庫存storageiint0,5用戶余額moneydouble0456.6算法購買:if (出貨口滿)聲音提示;對話框提示用戶取走貨物后再繼續購買;else if (庫存為0)聲音提示; 對話框提示用戶該商品已經售完;else聲音提示;對話框提示用戶余額不足;if (用戶余額V商品價格)elseif (用戶余額商品價格&商品庫存0)出貨口顯示用戶購買的商品的圖片 出貨口狀態設置為滿; 用戶余額減商品價格; 余額顯示區顯示用戶余額; 商品庫存減1;if (購買后該商品庫存為0)該商品背景設置為黑色表示該商品庫存為0;6.7流程邏輯46調用方式:本模塊由事件監聽響應模塊調用。本模塊不調用其

43、他模塊6.8接口隸屬關系:出貨口庫存不足金額不圖6-1購買模塊流程邏輯提示取貨提示庫存不足tNY ZNN出貨口顯示商品圖 片,用戶余額減少, 商品庫存減少_ _ /滿足圖6-2購買模塊隸屬關系476.10注釋設計說明準備在本程序中安排的注釋,如:1.加在模塊首部的注釋/*購買函數的設計*/加在各分枝點處的注釋;/如果取貨口已經滿則提示用戶取貨后再購買。/如果供貨不足則提示用戶商品已經售完,用戶可以繼續購買其他商品。/當用戶投入足量硬幣并且供貨充足的情況下用戶可以成功購買商品。對使用的邏輯所加的注釋等等。/購買后余額減少。6.11限制條件在安裝了J2SE、JDK的Windows 2000/XP/

44、Vista上運行。測試計劃測試技術要求:在Windows XP上進行,并且安裝了J2SE、JDK。 輸入數據:商品序號 預期結果:金額充足且商品庫存充足,則金額顯示框顯示金額減少,出貨口 顯示商品;金額不足,則出現警示音提示、余額不足提示;庫存不足,則出現警示音提 示、庫存不足提示;進度安排:2010年2月28號進行單元測試。 測試人員:李凱6.13尚未解決的問題無。四、測試分析報告1 1引言編寫目的為更好的測試本軟件系統, 對自動售貨機各項功能進行具體檢測, 找出可能 存在的錯誤,進行分析,改正,完善。我們對測試過程進行了記錄,完成了自動 售貨機軟件測試報告。481.2背景被測試軟件系統的名

45、稱為自動售貨機。任務提出者為電信0703班吳婷、張曉梅、李凱。C.開發者為吳婷、張曉梅、李凱測試分析報告作者為李凱測試系統環境為Windows Xp系統,硬件環境本為可支持java運行平臺的系 統。測試的自動售貨機系統是一種針對大眾消費者,由機器負責收錢、找零、提 供物品的系統。具有展示物品、投幣、提供物品、找幣、報錯等功能。由于不同系統對JAVA的支持不同,導致該軟件可能在某些系統中無法使 用。1.3定義quit:退出系統moneyreturn: 退幣 takeproduct: 取貨 moneyinsert: 投幣 productshow: 商品展示參考資料主要參考資料為:a.軟件開發標準G

46、B856788 2 2測試概要49圖1-1測試概要序號模塊名標識符測試內容與預先設計測試 內容差別1啟動系統run模塊功能及 啟動時間無2退出系統quit模塊功能無3貨口口展示p roductshow模塊功能無4投幣購買moneyinsert模塊功能無5取出貨品take product模塊功能無6報錯無模塊功能無7退幣mon eyreturn模塊功能無3 3測試結果及發現3.1測試1(啟動系統)圖3-1啟動系統SfSf:創大冢便 ffl 我們的自動售貨機!點擊程序運行后,很快進入自動售貨 機歡迎界面。單擊確定后,立刻進入自動售貨機購 物界面。a a50商品顯亦IKL.-L.-一J J 2.52

47、.5*2.0曹養快二氣亍)V4.SV4.S:耳 4.24.2* * V V t*t*F 4.64.6F特冊商品金額顯示區今日特愉:*2-0*2-0歡迎光臨K K * * OJOJK K 0.50.5職消圖3-2自動售貨機界面513.2測試2(退出系統)a.單擊操作界面取消按鈕。出現如下圖提示。X X謝酣您的光臨 確定圖3-3退出系統單擊確定,即可退出。3.3測試3(貨品展示)進入自動售貨機歡迎界面,可以看到貨品展示,包括實物圖像,價格。將鼠 標移到物品上,麗舖7看崇;睡為熙450ML;生產0期,201M2-10;保誦71斜4思圖3-4貨品展示進入系統界面,可以選擇投幣0.1元

48、,0.5元,1.0元,投幣金額的綜合, 會顯示在金出現該物品的物品名,規格,生產日期,保質期等。3.4測試4(投幣購買)52額顯示區(注:金額顯示區在沒有金額是顯示“歡迎光臨”字樣)選擇價格低于金額顯示區的物品,單擊該物品,彈出對話框。單擊確定, 即可購買指定物品。53金額顯示區歡迎光臨.5測試5(取出物品)購買物品之后,物品圖像會出現在出貨口,單擊取貨,出貨口物品消失,同 時出現對話框“請收好您的貨物”字樣。圖3-6購買金顫顯您已經投幣:1313 3030投*氏1KY0.5KY0.5投朗KV0.5KV0.5K K 1.D1.D退幣出貨口54圖3-7取貨3.6測試6(找零)投幣購買物品后, 金

49、額顯示區顯示余額, 單擊退幣, 錢退出, 金額顯示區 顯示“歡迎光臨”字樣,同時彈出對話框“請收好您的錢”確定圖3-8找零3.7測試7(退幣)投幣后,發現沒有合適的物品。單擊退幣,錢退出,金額顯示區顯示“歡 迎光臨”字樣,同時彈出對話框“請收好您的錢”。歸確定金額顯那區您已經投幣: 13.30K*OJK*OJ K*0.5K*0.5退幣取消歡迎光臨IKV0.1KV0.1投 0 0 投 1 1(1 1退幣請收好您的錢投仙金頤顯不區553.8測試8(報錯)a.當金額不足購買物品時,顯示對話框“您的金額不足,請投入足夠硬幣”S S馨提示/! 鯉的金額不足-請投入足跳硬幣!圖3-9投足幣后購買b.當未購

50、買單擊取貨時,顯示對話框“請購買后再取貨”。XI圖3-10購買后取貨小結:未發現錯誤。4 4對軟件功能的結論4.1功能該軟件實現了所有自動售貨機的基本功能, 并且具有一定的擴展功能如商品 詳情顯示等。玄.暁定K*0.1K*0.1, ,投 0 0石退幣取消粘助投 1*(11*(1金顫顯示區您已經投幣:1.501.50564.2能力系統可以很好完成某一件商品的購買,具體包括物品選擇,投幣,找零等, 為消費者提供便利。4.3限制在常用范圍內,數據值的范圍很大。測試將投入幣投入為200元,未發現 任何錯誤。分析摘要5.1能力打開程序,出現進入自動售貨機的界面提示。選擇“確定”按鈕,進入自動售貨機界面。

51、C.點擊投幣按鈕,投放足夠的金額,總金額在金額顯示區顯示。投放的金額足夠時單擊物品,確認后,在出貨口出現相應的商品,顯示的 總金額相應的減少。 (單擊取貨后可繼續購買)購買一件商品之后單擊退幣之后即可找零。金額不足點擊購買,彈出金額不足提示對話框。點擊取貨按鈕,取貨窗口(有商品)商品消失.點擊“取消”按鈕,退出自動售貨機界面,結束程序。5.2缺陷和限制無論投幣多少,一次性只能購買一件商品。若購買很多,則操作較麻煩。軟件系統經常出現對話框,使操作略顯復雜。C.當使用者進入程序后,若長時間無操作,軟件系統沒有提示或提醒功能d.本軟件不能實現商品的循環顯示,考慮到以后可能出現的觸摸屏操作會 受到擴展

52、的限制。5.3建議a.建議采用購物籃思想,將要購買的商品一次放入購物籃,一次付款,而不 需要分次付款,可以節省時間。b.當使用者進入程序后,若長時間無操作,軟件系統應提示或提醒,讓消 費者繼續操作,或者自動退出。C.減少不必要的按鈕。一部分可有可無的操作可以考慮去掉,使程序更加57簡潔。5.4評價該項軟件的開發已達到預定目標,自動售貨機的基本功能都已實現,能交付使用。2.本軟件充分考慮了人性化設計, 設計了便于人機交互操作的各種提示與界 面,如:(1)(2)(3)否確定購買,(4)顧客可以選擇特價商品。(5)商品詳情包括生產日期、產地、保質期等會在鼠標移動到該商品所在 區域時顯示,讓顧客了解更

53、多的商品信息。以滿足不同顧客的特殊需求。(6)商品賣完,背景變黑,以提示顧客。 以上這些全面而人性化的設計, 讓本軟件有更多的潛力, 可以更好的適應激 烈的市場競爭。測試資源消耗該軟件的測試所用時間為一工作日。測試人員為1人,總共機時統計為5小時。所用計算機設備數量為1臺。舒適的進版畫面,歡迎詞,讓人心情愉悅顧客投幣的金額可以實時顯示,讓用戶隨時了解自己的余額情況。顧客可以在未付錢的情況下選擇取消購買。顧客選擇商品后,提示是58五、項目開發總結報告1引言編寫目的為了總結該項目,編寫本文檔來說明開發該項目過程中遇到的困難、得到 的經驗和教訓。本文檔預期的讀者包括該項目的需求分析人員、項目管理人員

54、、軟件設計人 員、以及軟件維護人員。1.2背景項目名稱:自動售貨機軟件系統的設計與實現; 軟件系統名稱:自動售貨機軟件系統; 項目提出者:電子與信息工程系電信0703班軟件課設小組; 開發者:電子與信息工程系電信0703班軟件課設小組: 吳婷、李凱和張曉梅; 具體分工:(1)吳婷、張曉梅負責用戶界面設計部分,包括投幣界面、退幣 界面、商品顯示區、金額顯示區等的設計; (2)李凱負責事件監聽模塊的設計(3)軟件需求說明書、概要設計說明書由張曉梅編寫 詳細設計說明書、項目開發總結報告由吳婷編寫 軟件測試報告由李凱編寫用戶:所有公民;1.3定義Java:Java是一種簡單的, 面向對象的, 分布式的

55、, 解釋型的,健壯安全的, 結構中立的,可移植的,性能優異、多線程的動態語言。Swing:Swing是Sun公司開發的一個經過仔細設計的、靈活而強大的GUI工 具包。Swing是在AW組件基礎上構建的。它所提供的功能要比AWTI供的更為 廣泛。它也是Java技術的一種標準配置。參考資料1書籍:Herbert Schildt著,Java實用教程,清華大學出版社朱福喜、 唐曉軍等編著,Java程序設計技巧與開發實例 ,人民郵電出版社59張海藩編著軟件工程導論,清華大學出版社 陳明編著軟件工程學教程科學出版社文檔:軟件開發標準GB856 - 882.1產品該程序系統只有一個版本程序系統中各個程序的名

56、字,它們之間的層次關系如下圖:匚 三1 1 mrportmrport JjeclairatJjeclairat i i onsons+ +:jfcvjfcv一a*txa*txevent.event. * *jivaK. swine. * jivax.珊!nt,border,-“Sellersensen alVei-sioitUIDalVei-sioitUIDoccupy : boolean quit . JTutton hfrlp JEutton takeproduct JButi m on eyi-tiu-nJTut prcJuct JButtojiL, i.n.5 trim ojiey JEuti storage intj price . doableprodufftlmage . lna( intake ad Imwgelcor ima耳 Xmagelcf df DiiicimilFormit alJXabel priductCliitJLalf s】t&Kt J7e)t triftld Seller () purchase Ci.at? voi圖 2-1程序的層次關系該軟件系統共

溫馨提示

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

評論

0/150

提交評論