




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟 件 學(xué) 院課程設(shè)計(jì)報(bào)告書(shū) 2011 年 6 月目錄1 設(shè)計(jì)時(shí)間32 設(shè)計(jì)目的33設(shè)計(jì)任務(wù)33.1任務(wù)說(shuō)明33.2系統(tǒng)目標(biāo)33.3使用范圍34 設(shè)計(jì)內(nèi)容34.1界面構(gòu)建34.2詳細(xì)設(shè)計(jì)34.2.1模塊設(shè)計(jì)44.2.2運(yùn)行調(diào)試44.2.3部分源程序85 總結(jié)與展望28參考文獻(xiàn)29成績(jī)?cè)u(píng)定291 設(shè)計(jì)時(shí)間2011年6月11日-2011年6月15日2 設(shè)計(jì)目的通過(guò)實(shí)踐加深學(xué)生對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)的理論、方法和基礎(chǔ)知識(shí)的理解,掌握使用java語(yǔ)言進(jìn)行面向?qū)ο笤O(shè)計(jì)的基本方法,提高運(yùn)用面向?qū)ο笾R(shí)分析實(shí)際問(wèn)題、解決實(shí)際問(wèn)題的能力,提高學(xué)生的應(yīng)用能力。3設(shè)計(jì)任務(wù)3.1任務(wù)說(shuō)明設(shè)計(jì)出一個(gè)超市收銀程序(1)使用
2、圖形用戶(hù)界面實(shí)現(xiàn)。信息返回給收銀臺(tái),計(jì)算出該顧客所購(gòu)商品的總價(jià)格。(3)每天營(yíng)業(yè)結(jié)束把該收銀臺(tái)的銷(xiāo)售總額進(jìn)行統(tǒng)計(jì)匯總(要求包括商品種類(lèi)、數(shù)量、銷(xiāo)售總額、結(jié)賬人次等信息,其余可自行豐富)并存儲(chǔ)在數(shù)據(jù)庫(kù)中。(4)所有持卡顧客的消費(fèi)商品情況存儲(chǔ)到文件以供查詢(xún)。(5)對(duì)沒(méi)有卡的消費(fèi)情況不記錄該顧客的消費(fèi)情況等個(gè)人信息。如果一個(gè)未持卡顧客一次購(gòu)物滿(mǎn)200元,結(jié)完賬后系統(tǒng)提示可為其發(fā)放一張會(huì)員卡3.2系統(tǒng)目標(biāo)該軟件開(kāi)發(fā)的用途是用來(lái)方便超市的收銀管理,提高辦事效率。3.3使用范圍本程序用于超市對(duì)會(huì)員和非會(huì)員的銷(xiāo)售管理4 設(shè)計(jì)內(nèi)容 4.1界面構(gòu)建為了便于各種操作,軟件采用多窗口的模式。用戶(hù)可在不同窗口進(jìn)行相應(yīng)
3、操作。4.2詳細(xì)設(shè)計(jì)4.2.1模塊設(shè)計(jì) 用戶(hù)登錄確認(rèn)密碼操作界面輸入商品編號(hào)刪除商品修改數(shù)量修改價(jià)格完成結(jié)算會(huì)員結(jié)算否是銷(xiāo)售情況4.2.2運(yùn)行調(diào)試圖1登錄界面圖2操作界面圖3.1修改數(shù)量圖3.2 填入要修改數(shù)量的商品號(hào)圖3.3輸入新數(shù)量圖4.1 普通結(jié)算圖4.2會(huì)員結(jié)算圖5銷(xiāo)售情況圖6系統(tǒng)時(shí)間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(收營(yíng)員登陸);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超市收營(yíng)系統(tǒng) 請(qǐng)登陸);label2 = new jlabel(用戶(hù)名:);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、/ 登陸按紐及第二個(gè)文本輸入框enter功能實(shí)現(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;/ 驗(yàn)證登陸員號(hào)碼及密碼 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, 非法用戶(hù));private jlabel label1, label2, label3;private box hbox1, hbox2, vbox;private jtextfield jf1;private jpasswordfield jpf;private jbutton land;private jpanel panel1, panel2;物價(jià)計(jì)算public class draw double a;double b;string c;pu
11、blic draw(double fnum, double all, string information) / 構(gòu)造函數(shù)a = fnum;/ 獲得指定商品當(dāng)銷(xiāo)售額b = all;/ 獲得當(dāng)天總銷(xiāo)售額c = information;/ 獲得指定商品的編號(hào)drawjdialog frame = new drawjdialog();frame.setsize(400, 300);frame.setlocation(400, 300);frame.setvisible(true);class drawjdialog extends jdialog implements actionlistener/
12、 界面及功能實(shí)現(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 + 占今天銷(xiāo)售額 + rate + %)
13、;panel.add(one);panel.add(shut);container contentpane = getcontentpane();contentpane.add(panel);settitle(銷(xiāo)售情況);public void actionperformed(actionevent evt) object source = evt.getsource();setvisible(false);class drawpanel extends jpanel/ 畫(huà)餅圖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(修改價(jià)格);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(會(huì)員結(jié)算);cheapbutton.addactionlistener(thi
18、s);cheapbutton.setenabled(false);recordbutton = new jbutton(記錄清單);recordbutton.addactionlistener(this);recordbutton.setenabled(false);moneybutton = new jbutton(找零計(jì)算);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(此處輸入商品編號(hào) );label2 = new jlabel(商品信息顯示:);drawbutton = new jbutton(單天商品銷(xiāo)售情況);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, 請(qǐng)輸入數(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) + 編號(hào):+ ductdatai.getcode() + 商品名稱(chēng):+ ductdatai.getname() + 商品價(jià)格: + ductdatai.getprice() + 元/單位 + ductdatai.getnum() + 個(gè) + 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, 請(qǐng)輸入欲查詢(xún)的商品編號(hào));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(輸入要修改價(jià)格的商品編號(hào));if (changepricecode != null) int getpchange = mydata.find(changepricecode);if (getpchange = -1)joptionpane.showmessagedialog(null, 用戶(hù)未購(gòu)買(mǎi)貨物+ changepricecode);else double price = ductdatagetpchange.getprice();try tempprice = double.parsedouble(jopti
33、onpane.showinputdialog(輸入新單價(jià));while (tempprice = 0) tempprice = double.parsedouble(joptionpane.showinputdialog(重新輸入新單價(jià)(系統(tǒng)默認(rèn)大于零元));price=tempprice; catch (numberformatexception e) joptionpane.showmessagedialog(null, 請(qǐng)輸入數(shù)字);ductdatagetpchange.setprice(price);textarea.settext();for (int i = 0
34、; i mydata.acount; i+) textarea.insert(商品 + (i + 1) + 編號(hào):+ ductdatai.getcode() + 商品名稱(chēng):+ ductdatai.getname() + 商品價(jià)格: + ductdatai.getprice() + 元/單位 + ductdatai.getnum() + 個(gè) + n,0);textarea.insert( 共 + mydata.givecost() + 元n, 0);else if (source = changebutton2) s
35、tring changenum = joptionpane.showinputdialog(輸入要修改數(shù)量的商品編號(hào));if (changenum != null) int getnchange = mydata.find(changenum);if (getnchange = -1)joptionpane.showmessagedialog(null, 用戶(hù)未購(gòu)買(mǎi)貨物 + 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) + 編號(hào):+ ductdatai.getcode() + 商品名稱(chēng):+ ductdatai.getname() + 商品價(jià)格: + ductdatai.getprice() + 元/單位 + ductdatai
37、.getnum() + 個(gè) + n,0);textarea.insert( 共 + mydata.givecost() + 元n, 0);else if (source = deletebutton) string deletecode = joptionpane.showinputdialog(輸入所要?jiǎng)h除貨物的編號(hào));if (deletecode != null) boolean getdelete = mydata.delete(deletecode);if (getdelete = false)joptionpane.showmessagedialog(null, 用戶(hù)未購(gòu)買(mǎi)貨物 +
38、deletecode);else textarea.settext();for (int i = 0; i mydata.acount; i+) textarea.insert(商品 + (i + 1) + 編號(hào):+ ductdatai.getcode() + 商品名稱(chēng):+ ductdatai.getname() + 商品價(jià)格: + ductdatai.getprice() + 元/單位 + ductdatai.getnum() + 個(gè) + 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) + 編號(hào):+ ductdatai.getcode() + 商品名稱(chēng):+ ductdatai.getname() + 商品價(jià)格: + ductdatai.getprice() + 元/單位 + ductdatai.getnum() + 個(gè) + n, 0);textfinish.insert(-+ n, 0);textfinish.insert(軟院小超市 + n, 0);textall.settext(總價(jià): + 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, 請(qǐng)輸入vip用戶(hù)會(huì)員號(hào)碼);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會(huì)員 + vipnumber + 優(yōu)惠50%,只需 + mydata.givecost2() + 元, 0);text
44、finish.insert( 原價(jià) + mydata.givecost() + 元n, 0);textfinish.insert(-+ n, 0);for (int i = 0; i mydata.acount; i+) textfinish.insert(商品 + (i + 1) + 編號(hào):+ ductdatai.getcode()+ 商品名稱(chēng):+ ductdatai.getname()+ 商品價(jià)格: + ductdatai.getprice()+ 元/單位 + ductdatai.getnum()+ 個(gè) + n
45、, 0);textfinish.insert(-+ n, 0);textfinish.insert(軟院小超市 + n, 0);textall.settext(總價(jià): + 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會(huì)員號(hào)碼);else if (source = recordbutton) mydata.record();joptionpane.showmessagedialog(null, 交易信息記錄成功);recordbutton.setenabled(false);else if (source = moneybutton) string clientmoney = joptionpane.showinputdialog(用戶(hù)給予金額);if (clientmoney != null) double inmoney = double.parsedouble(clientmoney);string outmoney = mydata.moneycount(inmoney);textchange.settext(outmoney);moneybutton.setenabled(false);else if
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)質(zhì)網(wǎng)生物技術(shù)省公開(kāi)課一等獎(jiǎng)全國(guó)示范課微課金獎(jiǎng)?wù)n件
- 2025屆江蘇省連云港市灌云縣高三第二次診斷性檢測(cè)英語(yǔ)試卷含答案
- 2025屆云南省麗江縣第三中學(xué)高三第六次模擬考試英語(yǔ)試卷含答案
- 2025屆天津四中高三第四次模擬考試英語(yǔ)試卷含解析
- 2025年上海市外國(guó)語(yǔ)大學(xué)附屬上外高中高三下學(xué)期第五次調(diào)研考試英語(yǔ)試題含答案
- 2025年陜西省漢中中學(xué)高三第六次模擬考試英語(yǔ)試卷含答案
- 農(nóng)村土地流轉(zhuǎn)規(guī)范化管理中的土地流轉(zhuǎn)糾紛解決機(jī)制報(bào)告
- 2025年職業(yè)資格-社會(huì)工作者綜合能力初級(jí)模擬考試題庫(kù)試卷
- 裝備制造業(yè)自主創(chuàng)新能力提升中的企業(yè)技術(shù)創(chuàng)新能力評(píng)價(jià)與提升策略報(bào)告
- 2025經(jīng)濟(jì)適用房租售合同模板
- 土地旋耕合同協(xié)議書(shū)范本
- 2025年山東省應(yīng)急管理普法知識(shí)競(jìng)賽參考試題庫(kù)500題(含答案)
- 訂餐協(xié)議合同協(xié)議
- 2025年上半年山東省港口集團(tuán)限公司應(yīng)屆大學(xué)畢業(yè)生招聘573人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 湖北省武漢市2025屆高中畢業(yè)生四月調(diào)研考試數(shù)學(xué)試卷及答案(武漢四調(diào))
- 普通高等學(xué)校軍事理論教程
- 全國(guó)高中語(yǔ)文優(yōu)質(zhì)課一等獎(jiǎng)《雷雨》 課件
- 鍋爐專(zhuān)項(xiàng)吊裝施工方案
- 碳排放核算方法課件
- 江蘇省工程技術(shù)研究中心名錄
- 發(fā)育生物學(xué) 第一章 緒論
評(píng)論
0/150
提交評(píng)論