JAVA課程設(shè)計超市收銀系統(tǒng)_第1頁
JAVA課程設(shè)計超市收銀系統(tǒng)_第2頁
JAVA課程設(shè)計超市收銀系統(tǒng)_第3頁
JAVA課程設(shè)計超市收銀系統(tǒng)_第4頁
JAVA課程設(shè)計超市收銀系統(tǒng)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟 件 學(xué) 院課程設(shè)計報告書 2011 年 6 月目錄1 設(shè)計時間32 設(shè)計目的33設(shè)計任務(wù)33.1任務(wù)說明33.2系統(tǒng)目標33.3使用范圍34 設(shè)計內(nèi)容34.1界面構(gòu)建34.2詳細設(shè)計34.2.1模塊設(shè)計44.2.2運行調(diào)試44.2.3部分源程序85 總結(jié)與展望28參考文獻29成績評定291 設(shè)計時間2011年6月11日-2011年6月15日2 設(shè)計目的通過實踐加深學(xué)生對面向?qū)ο蟪绦蛟O(shè)計的理論、方法和基礎(chǔ)知識的理解,掌握使用java語言進行面向?qū)ο笤O(shè)計的基本方法,提高運用面向?qū)ο笾R分析實際問題、解決實際問題的能力,提高學(xué)生的應(yīng)用能力。3設(shè)計任務(wù)3.1任務(wù)說明設(shè)計出一個超市收銀程序(1)使用

2、圖形用戶界面實現(xiàn)。信息返回給收銀臺,計算出該顧客所購商品的總價格。(3)每天營業(yè)結(jié)束把該收銀臺的銷售總額進行統(tǒng)計匯總(要求包括商品種類、數(shù)量、銷售總額、結(jié)賬人次等信息,其余可自行豐富)并存儲在數(shù)據(jù)庫中。(4)所有持卡顧客的消費商品情況存儲到文件以供查詢。(5)對沒有卡的消費情況不記錄該顧客的消費情況等個人信息。如果一個未持卡顧客一次購物滿200元,結(jié)完賬后系統(tǒng)提示可為其發(fā)放一張會員卡3.2系統(tǒng)目標該軟件開發(fā)的用途是用來方便超市的收銀管理,提高辦事效率。3.3使用范圍本程序用于超市對會員和非會員的銷售管理4 設(shè)計內(nèi)容 4.1界面構(gòu)建為了便于各種操作,軟件采用多窗口的模式。用戶可在不同窗口進行相應(yīng)

3、操作。4.2詳細設(shè)計4.2.1模塊設(shè)計 用戶登錄確認密碼操作界面輸入商品編號刪除商品修改數(shù)量修改價格完成結(jié)算會員結(jié)算否是銷售情況4.2.2運行調(diào)試圖1登錄界面圖2操作界面圖3.1修改數(shù)量圖3.2 填入要修改數(shù)量的商品號圖3.3輸入新數(shù)量圖4.1 普通結(jié)算圖4.2會員結(jié)算圖5銷售情況圖6系統(tǒng)時間4.2.3部分源程序登錄import java.awt.event.actionevent;import java.awt.event.actionlistener;import java.io.bufferedreader;import java.io.filereader;import java.io

4、.ioexception;import java.util.stringtokenizer;import javax.swing.*;public class land public static void main(string args) landframe frame = new landframe();frame.settitle(收營員登陸);frame.setlocation(300,300);frame.setsize(270, 170);frame.setvisible(true);class landframe extends jdialog implements actio

5、nlistener public landframe() label1 = new jlabel(java超市收營系統(tǒng) 請登陸);label2 = new jlabel(用戶名:);label3 = new jlabel(密碼:);hbox1 = box.createhorizontalbox();hbox2 = box.createhorizontalbox();vbox = box.createverticalbox();jf1 = new jtextfield();jpf= new jpasswordfield();jpf.addactionlistener(this);land = n

6、ew jbutton(登陸);land.addactionlistener(this);panel1 = new jpanel();panel2 = new jpanel();hbox1.add(label2);hbox1.add(box.createhorizontalstrut(5);hbox1.add(jf1);hbox2.add(label3);hbox2.add(box.createhorizontalstrut(18);panel2.add(land, center);hbox2.add(jpf);vbox.add(label1);vbox.add(box.createvertic

7、alstrut(10);vbox.add(hbox1);vbox.add(box.createverticalstrut(10);vbox.add(hbox2);vbox.add(box.createverticalstrut(10);vbox.add(panel2);panel1.add(vbox);getcontentpane().add(panel1, center);public void actionperformed(actionevent evt) object source = evt.getsource();if (source = land | source = jpf)

8、/ 登陸按紐及第二個文本輸入框enter功能實現(xiàn)string a = , b, read;boolean denglusuccees = false;try filereader fr = new filereader(denglu.txt);bufferedreader br = new bufferedreader(fr);while (read = br.readline() != null) stringtokenizer sto = new stringtokenizer(read);a = sto.nexttoken();b = sto.nexttoken();if (jf1.ge

9、ttext().equals(a) & jpf.gettext().equals(b) denglusuccees = true;break;/ 驗證登陸員號碼及密碼 catch (ioexception ie) system.err.println(ie.getmessage();if (denglusuccees = true) setvisible(false);mainview mw = new mainview();mw.settitle(a + 為您服務(wù));mw.setsize(850, 500);mw.setlocation(200, 180);mw.setvisible(tru

10、e); else jf1.settext();jpf.settext();joptionpane.showmessagedialog(null, 非法用戶);private jlabel label1, label2, label3;private box hbox1, hbox2, vbox;private jtextfield jf1;private jpasswordfield jpf;private jbutton land;private jpanel panel1, panel2;物價計算public class draw double a;double b;string c;pu

11、blic draw(double fnum, double all, string information) / 構(gòu)造函數(shù)a = fnum;/ 獲得指定商品當銷售額b = all;/ 獲得當天總銷售額c = information;/ 獲得指定商品的編號drawjdialog frame = new drawjdialog();frame.setsize(400, 300);frame.setlocation(400, 300);frame.setvisible(true);class drawjdialog extends jdialog implements actionlistener/

12、 界面及功能實現(xiàn)jbutton shut;jtextarea one = new jtextarea();drawpanel panel = new drawpanel();shut = new jbutton(關(guān)閉);shut.addactionlistener(this);double rate = 100 * a / b;decimalformat df = new decimalformat(#.00);rate = double.parsedouble(df.format(rate);/ 格式化小數(shù)顯示one.settext( + c + n + 占今天銷售額 + rate + %)

13、;panel.add(one);panel.add(shut);container contentpane = getcontentpane();contentpane.add(panel);settitle(銷售情況);public void actionperformed(actionevent evt) object source = evt.getsource();setvisible(false);class drawpanel extends jpanel/ 畫餅圖public void paintcomponent(graphics g) g.clearrect(30, 40,

14、150, 150);double x1 = a;double x2 = b;int angle;super.paintcomponent(g);angle = (int) (360 * x1 / x2);g.setcolor(color.blue);g.drawarc(30, 100, 150, 150, 0, angle);g.fillarc(30, 100, 150, 150, 0, angle);g.setcolor(color.green);g.drawarc(30, 100, 150, 150, 0 + angle, 360 - angle);g.fillarc(30, 100, 1

15、50, 150, 0 + angle, 360 - angle);應(yīng)用操作import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.io.bufferedreader;import java.io.filereader;import java.io.ioexception;import java.util.*;class mainview extends jframe implements actionlistenerdatamanagement m

16、ydata = new datamanagement();sellcount mysell = new sellcount();judge myjudge = new judge();int dcount = 1;public mainview() changebutton1 = new jbutton(修改價格);changebutton1.addactionlistener(this);changebutton1.setenabled(false);changebutton2 = new jbutton(修改數(shù)量);changebutton2.addactionlistener(this)

17、;changebutton2.setenabled(false);deletebutton = new jbutton(刪除商品);deletebutton.addactionlistener(this);deletebutton.setenabled(false);finishbutton = new jbutton(完成結(jié)算);finishbutton.addactionlistener(this);finishbutton.setenabled(false);cheapbutton = new jbutton(會員結(jié)算);cheapbutton.addactionlistener(thi

18、s);cheapbutton.setenabled(false);recordbutton = new jbutton(記錄清單);recordbutton.addactionlistener(this);recordbutton.setenabled(false);moneybutton = new jbutton(找零計算);moneybutton.addactionlistener(this);moneybutton.setenabled(false);clearbutton = new jbutton(清除清單);clearbutton.addactionlistener(this);

19、textall = new jtextfield(0);textall.seteditable(false);textall.setborder(borderfactory.createetchedborder();textchange = new jtextarea(7, 0);textchange.seteditable(false);textchange.setborder(borderfactory.createetchedborder();hbox2 = box.createhorizontalbox();vbox2 = box.createverticalbox();vbox2.a

20、dd(box.createverticalstrut(9);vbox2.add(changebutton1);vbox2.add(box.createverticalstrut(9);vbox2.add(changebutton2);vbox2.add(box.createverticalstrut(9);vbox2.add(deletebutton);vbox2.add(box.createverticalstrut(9);vbox2.add(finishbutton);vbox2.add(box.createverticalstrut(9);vbox2.add(cheapbutton);v

21、box2.add(box.createverticalstrut(9);vbox2.add(textall);vbox2.add(moneybutton);vbox2.add(textchange);vbox2.setborder(borderfactory.createetchedborder();textarea = new jtextarea(24, 37);textarea.setmaximumsize(textarea.getpreferredsize();textarea.seteditable(false);scrollpane = new jscrollpane(textare

22、a);textadd = new jtextfield(20);textadd.addactionlistener(this);vbox1 = box.createverticalbox();hbox1 = box.createhorizontalbox();label1 = new jlabel(此處輸入商品編號 );label2 = new jlabel(商品信息顯示:);drawbutton = new jbutton(單天商品銷售情況);drawbutton.addactionlistener(this);vbox1.add(label1);vbox1.add(textadd);hbo

23、x1.add(label2);hbox1.add(drawbutton);vbox1.add(hbox1);vbox1.add(scrollpane);vbox1.setborder(borderfactory.createloweredbevelborder();vbox3 = box.createverticalbox();hbox3 = box.createhorizontalbox();label3 = new jlabel(最終清單);label4 = new jlabel(版權(quán)所屬);label4.setborder(borderfactory.createetchedborder

24、();textfinish = new jtextarea(24, 30);textfinish.seteditable(false);textfinish.setborder(borderfactory.createetchedborder(color.white,color.black);hbox3.add(recordbutton);hbox3.add(box.createhorizontalstrut(10);hbox3.add(clearbutton);hbox3.add(box.createhorizontalstrut(10);hbox3.add(label4);vbox3.ad

25、d(new clock();vbox3.add(label3);hbox3.setborder(borderfactory.createetchedborder();vbox3.add(textfinish);vbox3.add(hbox3);vbox3.setborder(borderfactory.createloweredbevelborder();hbox2.add(vbox1);hbox2.add(vbox2);hbox2.add(vbox3);getcontentpane().add(hbox2);addwindowlistener(new windowadapter() publ

26、ic void windowclosing(windowevent e) system.exit(0););public void actionperformed(actionevent evt) object source = evt.getsource();if (source = textadd) / 商品添加string log = textadd.gettext();stringtokenizer sto = new stringtokenizer(log);string dcode = sto.nexttoken();boolean inputwrite = true;int dn

27、um = 1;if (sto.hasmoretokens()try int tempnum=integer.parseint(sto.nexttoken();if(tempnum0)dnum = integer.parseint(sto.nexttoken();else inputwrite=false; catch (numberformatexception e) joptionpane.showmessagedialog(null, 請輸入數(shù)字);inputwrite = false;if (inputwrite = true) if (myjudge.find(dcode) = -1)

28、 string wrong = cant find + dcode;joptionpane.showmessagedialog(null, wrong);textadd.settext(); else int location = myjudge.find(dcode);string dname = myjudge.judgedatalocation.getname();double dprice = myjudge.judgedatalocation.getprice();mydata.add(dcode, dname, dprice, dnum);textarea.settext();fo

29、r (int i = 0; i mydata.acount; i+) textarea.insert(商品 + (i + 1) + 編號:+ ductdatai.getcode() + 商品名稱:+ ductdatai.getname() + 商品價格: + ductdatai.getprice() + 元/單位 + ductdatai.getnum() + 個 + n,0);textarea.insert( 共 + mydata.givecost() + 元n, 0);textadd.settext();chan

30、gebutton1.setenabled(true);changebutton2.setenabled(true);deletebutton.setenabled(true);cheapbutton.setenabled(true);finishbutton.setenabled(true); else textadd.settext();else if (source = drawbutton) string ecode = joptionpane.showinputdialog(null, 請輸入欲查詢的商品編號);if (ecode != null) if (mysell.find(ec

31、ode) = -1)joptionpane.showmessagedialog(null, 今天還未出售 + ecode);elsenew draw(mysell.selldatamysell.find(ecode).getnum()* mysell.selldatamysell.find(ecode).getprice(),mysell.givecost(), mysell.sellinformantion(mysell.find(ecode);else if (source = changebutton1) double tempprice;string changepricecode =

32、 joptionpane.showinputdialog(輸入要修改價格的商品編號);if (changepricecode != null) int getpchange = mydata.find(changepricecode);if (getpchange = -1)joptionpane.showmessagedialog(null, 用戶未購買貨物+ changepricecode);else double price = ductdatagetpchange.getprice();try tempprice = double.parsedouble(jopti

33、onpane.showinputdialog(輸入新單價);while (tempprice = 0) tempprice = double.parsedouble(joptionpane.showinputdialog(重新輸入新單價(系統(tǒng)默認大于零元));price=tempprice; catch (numberformatexception e) joptionpane.showmessagedialog(null, 請輸入數(shù)字);ductdatagetpchange.setprice(price);textarea.settext();for (int i = 0

34、; i mydata.acount; i+) textarea.insert(商品 + (i + 1) + 編號:+ ductdatai.getcode() + 商品名稱:+ ductdatai.getname() + 商品價格: + ductdatai.getprice() + 元/單位 + ductdatai.getnum() + 個 + n,0);textarea.insert( 共 + mydata.givecost() + 元n, 0);else if (source = changebutton2) s

35、tring changenum = joptionpane.showinputdialog(輸入要修改數(shù)量的商品編號);if (changenum != null) int getnchange = mydata.find(changenum);if (getnchange = -1)joptionpane.showmessagedialog(null, 用戶未購買貨物 + changenum);else int num = ductdatagetnchange.getnum();try num = integer.parseint(joptionpane.showinpu

36、tdialog(輸入新數(shù)量);while (num =0)ductdatagetnchange.setnum(num);textarea.settext();for (int i = 0; i mydata.acount; i+) textarea.insert(商品 + (i + 1) + 編號:+ ductdatai.getcode() + 商品名稱:+ ductdatai.getname() + 商品價格: + ductdatai.getprice() + 元/單位 + ductdatai

37、.getnum() + 個 + n,0);textarea.insert( 共 + mydata.givecost() + 元n, 0);else if (source = deletebutton) string deletecode = joptionpane.showinputdialog(輸入所要刪除貨物的編號);if (deletecode != null) boolean getdelete = mydata.delete(deletecode);if (getdelete = false)joptionpane.showmessagedialog(null, 用戶未購買貨物 +

38、deletecode);else textarea.settext();for (int i = 0; i mydata.acount; i+) textarea.insert(商品 + (i + 1) + 編號:+ ductdatai.getcode() + 商品名稱:+ ductdatai.getname() + 商品價格: + ductdatai.getprice() + 元/單位 + ductdatai.getnum() + 個 + n,0);textarea.insert( 共 + mydata.give

39、cost() + 元n, 0);else if (source = finishbutton) int a = joptionpane.showconfirmdialog(null, 確定后將不可再修改清單);if (a = joptionpane.yes_option) textarea.settext();textfinish.insert( 謝謝您的惠顧, 0);textfinish.insert( 共 + mydata.givecost() + 元n, 0);textfinish.insert(-+ n, 0);for (int i = 0; i mydata.acount; i+)

40、textfinish.insert(商品 + (i + 1) + 編號:+ ductdatai.getcode() + 商品名稱:+ ductdatai.getname() + 商品價格: + ductdatai.getprice() + 元/單位 + ductdatai.getnum() + 個 + n, 0);textfinish.insert(-+ n, 0);textfinish.insert(軟院小超市 + n, 0);textall.settext(總價: + mydata.givecost();mys

41、ell.save(mydata);changebutton1.setenabled(false);changebutton2.setenabled(false);deletebutton.setenabled(false);recordbutton.setenabled(true);moneybutton.setenabled(true);cheapbutton.setenabled(false);finishbutton.setenabled(false);textadd.setenabled(false);recordbutton.doclick();else if (source = c

42、heapbutton) string vipnumber = ;vipnumber = joptionpane.showinputdialog(null, 請輸入vip用戶會員號碼);if (vipnumber != null) boolean vipsuccees = false;string read;try filereader fr = new filereader(vip.txt);bufferedreader br = new bufferedreader(fr);while (read = br.readline() != null) if (vipnumber.equals(r

43、ead) vipsuccees = true;break; catch (ioexception ie) system.err.println(ie.getmessage();if (vipsuccees = true) int a = joptionpane.showconfirmdialog(null, 確定后將不可再修改清單);if (a = joptionpane.yes_option) textarea.settext();textfinish.insert( vip會員 + vipnumber + 優(yōu)惠50%,只需 + mydata.givecost2() + 元, 0);text

44、finish.insert( 原價 + mydata.givecost() + 元n, 0);textfinish.insert(-+ n, 0);for (int i = 0; i mydata.acount; i+) textfinish.insert(商品 + (i + 1) + 編號:+ ductdatai.getcode()+ 商品名稱:+ ductdatai.getname()+ 商品價格: + ductdatai.getprice()+ 元/單位 + ductdatai.getnum()+ 個 + n

45、, 0);textfinish.insert(-+ n, 0);textfinish.insert(軟院小超市 + n, 0);textall.settext(總價: + mydata.givecost2();mysell.save(mydata);changebutton1.setenabled(false);changebutton2.setenabled(false);deletebutton.setenabled(false);recordbutton.setenabled(true);moneybutton.setenabled(true);cheapbutton.setenable

46、d(false);finishbutton.setenabled(false);textadd.setenabled(false);recordbutton.doclick(); elsejoptionpane.showmessagedialog(null, 非vip會員號碼);else if (source = recordbutton) mydata.record();joptionpane.showmessagedialog(null, 交易信息記錄成功);recordbutton.setenabled(false);else if (source = moneybutton) string clientmoney = joptionpane.showinputdialog(用戶給予金額);if (clientmoney != null) double inmoney = double.parsedouble(clientmoney);string outmoney = mydata.moneycount(inmoney);textchange.settext(outmoney);moneybutton.setenabled(false);else if

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論