版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
xx學(xué)院程序設(shè)計(jì)課程設(shè)計(jì)(C)報(bào)告項(xiàng)目名稱:超市項(xiàng)目管理系統(tǒng)學(xué)生姓名:xxx學(xué)號:xxx班級:xxx指引教師:xxx日期:xxx1、項(xiàng)目描述超市收銀管理系統(tǒng)是一種輔助超市收銀員記錄商品以及輔助管理員記錄貨品狀況和收益狀況實(shí)用性工具。依照超市尋常管理需要,超市收銀系統(tǒng)應(yīng)當(dāng)涉及基本檔案管理、商品庫存管理、會員管理、交易管理等四大功能,其中基本檔案管理涉及收銀員信息管理和商品信息管理;商品庫存管理涉及商品入庫管理和商品出庫管理;會員管理涉及會員信息管理和積分管理;交易管理涉及交易信息管理和銷售信息管理。2、需求分析(1)界面需求軟件操作界面是圖形界面還是字符界面,以簡潔清晰、操作以便為首要目的?;诔惺浙y基本業(yè)務(wù)分析,和必要解決兩大難題,針對性地制定出所要設(shè)計(jì)小型超市收銀管理系統(tǒng)所需要系統(tǒng)功能,如下七點(diǎn):(1)設(shè)計(jì)軟件提供顧客登陸界面,為顧客提供賬號密碼管理工具,詳細(xì)為添加顧客、刪除顧客、修改顧客名、密碼。(2)設(shè)計(jì)軟件將對單個商品進(jìn)庫產(chǎn)品進(jìn)行管理,對進(jìn)庫清單進(jìn)行錄入、修改、查詢和記錄,也提供出庫功能,對出庫清單進(jìn)行錄入和查詢。(3)設(shè)計(jì)軟件將能對商品信息狀況進(jìn)行修改操作和查詢操作,能設(shè)立庫存商品單價,能對庫存商品總值進(jìn)行記錄。(4)設(shè)計(jì)軟件能對超市會員信息進(jìn)行管理,詳細(xì)為添加會員信息、刪除員工信息、修改會員信息操作、查詢會員信息操作。(5)設(shè)計(jì)軟件能對每單生意信息進(jìn)行管理,詳細(xì)為每單生意信息添加、查詢、修改。(2)數(shù)據(jù)需求需要輸入什么類型數(shù)據(jù)、什么值數(shù)據(jù),即數(shù)據(jù)模型建立。是由項(xiàng)目內(nèi)容及軟件設(shè)計(jì)者決定。以數(shù)據(jù)描述清晰、數(shù)據(jù)意義完整為目的。出庫表:入庫表:收銀員表:商品信息表:會員表:(3)功能需求系統(tǒng)應(yīng)當(dāng)具備哪些功能,與項(xiàng)目描述以及設(shè)計(jì)者理解直接有關(guān)。對普通管理軟件來說,必要涉及數(shù)據(jù)輸入輸出、增刪改查、排序、記錄等功能。請按實(shí)際項(xiàng)目需求填寫用例。普通按動作(動詞)成果(名詞)形式書寫。1、登錄功能:Action1:輸入庫里存有顧客和密碼,輸入對的,登錄成功,輸入錯誤,登錄失敗;Action2:點(diǎn)擊重置按鈕,刷新顧客名和密碼。2、主窗體菜單功能Action1:下拉菜單模塊,菜單模塊里面有子菜單。分為,收銀員信息、收銀員信息管理;商品、商品信息管理;商品出入庫管理,商品交易管理;會員信息菜單、會員信息管理菜單;設(shè)立菜單、聯(lián)系咱們選項(xiàng)、退出系統(tǒng)選項(xiàng)。3、收銀員添加信息功能Action1:填入收銀員編號、姓名、密碼,信息入庫,并可做登錄名和密碼。4、收銀員信息排列Action1:可以列出收銀員名單、點(diǎn)擊表格某一行,可以顯示對于信息填入相應(yīng)文本里。5、收銀員信息查詢Action1:可以通過對姓名模糊查詢,查詢到收銀員。6、收銀員信息修改Action1:通過修改相應(yīng)得文本框,然后點(diǎn)擊修改按鈕完畢信息修改。7、商品添加信息功能Action1:填入商品編號、名稱等,信息入庫,并可做登錄名和密碼。8、商品信息排列Action1:可以列出商品名單、點(diǎn)擊表格某一行,可以顯示對于信息填入相應(yīng)文本里。9、商品信息查詢Action1:可以通過對商品名稱模糊查詢,查詢到商品。10、商品信息修改Action1:通過修改相應(yīng)得文本框,然后點(diǎn)擊修改按鈕完畢信息修改。11、商品交易添加信息功能Action1:可以通過商品編號確認(rèn)商品,然后輸入交易數(shù)量,自動生成價格收益等。Action2:商品庫存會相相應(yīng)減少。12、商品交易信息排列Action1:可以列出商品名單、點(diǎn)擊表格某一行,可以顯示對于信息填入相應(yīng)文本里。3、概要設(shè)計(jì)(總體設(shè)計(jì))3.1功能模塊設(shè)計(jì):超市收銀管理系統(tǒng)是為輔助超市收銀員尋常管理而設(shè)計(jì),本系統(tǒng)功能成果圖如下:本系統(tǒng)共涉及四大模塊,分別是基本檔案管理模塊、商品庫存管理模塊、會員管理模塊、交易管理模塊。每個模塊功能如下:1.基本檔案管理模塊功能:(1)實(shí)現(xiàn)收銀員信息查詢、增長、刪除、修改功能。(2)實(shí)現(xiàn)商品信息查詢,涉及增長、刪除、修改功能。2.商品庫存管理模塊功能:(1)實(shí)現(xiàn)銷售商品入庫信息增長、刪除、修改。(2)實(shí)現(xiàn)銷售商品出庫信息增長、刪除、修改。3.會員管理模塊功能:(1)實(shí)現(xiàn)會員信息查詢、增長、刪除、修改功能。(2)實(shí)現(xiàn)會員積分信息查詢、增長、刪除、修改功能。4.交易管理模塊功能:(1)實(shí)現(xiàn)每筆交易信息查詢、增長、刪除、修改功能。(模仿購物)3.2數(shù)據(jù)庫設(shè)計(jì):1、把收銀員信息當(dāng)做一種實(shí)體話,其屬性關(guān)系有收銀員編號、收銀員姓名。2、把商品信息當(dāng)做一種實(shí)體話,其屬性關(guān)系有商品編號、商品名稱、商品類別、商品數(shù)量、商品進(jìn)價、商品售價。3、把商品出庫信息當(dāng)做一種實(shí)體話,其屬性關(guān)系有出庫交易單編號、商品出貨數(shù)量、會員卡編號、收銀員編號、商品編號、總收入。4、把商品入庫信息當(dāng)做一種實(shí)體話,其屬性關(guān)系有入庫交易單編號、入庫商品編號、入庫商品數(shù)量、總支出。5、把會員信息當(dāng)做一種實(shí)體話,其屬性關(guān)系有會員卡ID、會員姓名、會員消費(fèi)數(shù)量、會員積分??傮wE-R圖如下:4、詳細(xì)設(shè)計(jì)以概要設(shè)計(jì)為基本,每個功能模塊用一種或各種函數(shù)來實(shí)現(xiàn),書寫每個函數(shù)算法,規(guī)劃各函數(shù)之間調(diào)用關(guān)系。詳情請見數(shù)據(jù)庫構(gòu)成圖以及功能分析模塊。5、程序編輯和調(diào)試嚴(yán)格按照詳細(xì)設(shè)計(jì)中算法,編寫各函數(shù)代碼,同步進(jìn)行單個函數(shù)編譯、鏈接、運(yùn)營、修改;集成編譯、鏈接、運(yùn)營、修改。這一階段,學(xué)生也許以為是最重要、最漫長,實(shí)則否則。真正重要是前面概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),若它們設(shè)計(jì)不完善、不精確,將導(dǎo)致編碼、編譯、調(diào)試漏洞百出、顧此失彼。本人采用是javaswing構(gòu)圖工具,雖然減少了許多代碼量,但也帶來了某些問題,如,功能按鈕代碼生成后與自己編程習(xí)慣不同,導(dǎo)致靜態(tài)函數(shù)調(diào)用問題始終報(bào)錯。6、測試軟件測試目在于檢查程序與否對的、能否達(dá)到預(yù)期目;是盡量地發(fā)現(xiàn)程序中存在錯誤并改正,不是也不也許發(fā)現(xiàn)程序中存在所有錯誤。必然需要一定量數(shù)據(jù)作為測試實(shí)驗(yàn)品。叫測試用例。測試用例是一組條件或變量(輸入數(shù)據(jù)和盼望成果集合),測試者依照它來擬定應(yīng)用軟件或軟件系統(tǒng)與否對的工作。測試用例是通過實(shí)驗(yàn)達(dá)到引起構(gòu)件失效和發(fā)現(xiàn)構(gòu)件故障目。擬定軟件程序或系統(tǒng)與否通過測試辦法叫做測試準(zhǔn)則。一種測試用例有5個屬性:名稱、可執(zhí)行途徑全稱、輸入數(shù)據(jù)、測試預(yù)言(盼望測試成果與輸出成果比較)和日記(測試產(chǎn)生輸出)。測試用例常從如下幾方面來選取:數(shù)據(jù)類型驗(yàn)證,數(shù)據(jù)邊界值、非法值,選取構(gòu)造中各分支都要執(zhí)行到數(shù)據(jù)、循環(huán)初終值等。測試活動技術(shù)重要涉及:構(gòu)件檢查、可用性測試、單元測試、集成測試和系統(tǒng)測試。構(gòu)件檢查是通過對源代碼手工檢查發(fā)現(xiàn)單個構(gòu)件中故障??捎眯詼y試用于找浮現(xiàn)實(shí)系統(tǒng)做了什么和顧客盼望值之間差別。單元測試通過測試單個單元辦法以發(fā)現(xiàn)故障。集成測試通過集成各種單元來查找故障。系統(tǒng)測試關(guān)注整個系統(tǒng)、系統(tǒng)功能和非功能需求以及目的環(huán)境等。此處填寫程序測試測試用例。程序中哪些地方需要完善。登錄界面:輸入顧客名和密碼。主界面:登錄成功,進(jìn)入主界面。主界面菜單顯示:輸入收銀員編號、姓名、密碼,進(jìn)行注冊。信息添加成功(注冊成功)收銀員信息查詢界面:點(diǎn)擊菜單中信息,會進(jìn)行自動填充到輸入欄中,以便修改。為了避免誤操作,修改會進(jìn)行提示。修改成功!通過名字可以進(jìn)行模糊查詢商品基本信息填寫界面:信息添加成功!商品查詢,同樣是按商品名稱進(jìn)行模糊查詢。作者信息簡介窗口。會員信息添加。商品入庫。入庫成功,列表值修改。商品出庫,但由于輸入出庫數(shù)量超過庫存,因此異常。自動算出商品交易總額,自動顯示庫存量。商品列表庫存值修改成功退出商品,同樣,為了避免誤操作,退出系統(tǒng)會有相應(yīng)提示。7、總結(jié)簡介和總結(jié)在課程設(shè)計(jì)階段學(xué)習(xí)得失、感悟、后續(xù)工作。本次只設(shè)計(jì)了短短兩周。雖說時間很短,但其中每一天都使我收獲很大、受益匪淺,它不但極大地加深了我對某些理論知識理解,不但使我在理論上對Java有了全新結(jié)識,在實(shí)踐能力上也得到了提高,真正地做到了學(xué)以致用,更學(xué)到了諸多做人道理,對我來說受益非淺。這也是第一次讓我親身感受到理論與實(shí)際相結(jié)合,讓我大開眼界。也是對此前所學(xué)知識一種初審吧!這次實(shí)訓(xùn)對于我后來學(xué)習(xí)、找工作也是受益菲淺,在短短三周中相信這些寶貴經(jīng)驗(yàn)會成為我此后成功重要基石;這對于我學(xué)業(yè),乃至我后來人生影響無疑是極其深遠(yuǎn)。這次完畢較為完善小項(xiàng)目雖然是咱們第一次,但是人們體現(xiàn)都不錯,由此看來,咱們在進(jìn)入大學(xué)這幾種月里學(xué)到了不少專業(yè)知識,只是自己感覺不到而已。對于所學(xué)專業(yè),咱們不能過于自卑和擔(dān)憂,否則會妨礙自己學(xué)習(xí)。對于我來說,這兩周是學(xué)習(xí)重要環(huán)節(jié),有助于咱們鞏固專業(yè)知識、掌握工作技能,提高就業(yè)籌碼。我把本次為期兩周課程設(shè)計(jì)看作是“理論與實(shí)踐相結(jié)合橋梁”。通過這周實(shí)訓(xùn)和學(xué)習(xí),我懂得了本次實(shí)訓(xùn)目,也清晰當(dāng)前自己局限性,那就是缺少相應(yīng)知識與經(jīng)驗(yàn),對所學(xué)專業(yè)知識不可以較好地運(yùn)用于實(shí)踐操作。正所謂“百聞不如一見”,通過這次自身切身實(shí)踐,我才深切地理睬到了“走出課堂,投身實(shí)踐”必要性。平時,咱們只能在課堂上與教師一起紙上談兵,思維結(jié)識基本上只是局限于課本范疇之內(nèi),也許就是這個因素就導(dǎo)致咱們對專業(yè)知識結(jié)識片面性,使得咱們只知因此然,而不知其之因此然!限制了咱們網(wǎng)絡(luò)知識水平提高。但是課本上所學(xué)到理論知識是為咱們實(shí)際操作指明了方向、提供相應(yīng)辦法,真正職業(yè)技巧是要咱們從后來實(shí)際工作中慢慢汲取。而針對實(shí)際操作中遇到某些特殊問題,咱們不能拘泥于課本,不可純粹地“以本為本”。在這次課程設(shè)計(jì)中我得到了許多收獲,我第一次體會到軟件工程師工作是什么樣子,也發(fā)現(xiàn)了諸多不曾注意到細(xì)節(jié),在實(shí)訓(xùn)演示過程中,我對作為一名軟件工程師注意事項(xiàng)應(yīng)當(dāng)從小事做起、從基本做起。把職業(yè)能力訓(xùn)練與職業(yè)素質(zhì)有機(jī)結(jié)合起來。相信這對我接下來學(xué)習(xí)專業(yè)知識會起到很有效協(xié)助,在接下來幾種月里,我會以作為一名職業(yè)人身份在這幾種方面規(guī)定自己,嚴(yán)格自我,向軟件工程師接近。而通過這次實(shí)訓(xùn),讓我明白如果是一種完整項(xiàng)目開發(fā),必要需要她人協(xié)助來完畢。因而不論在工作中還是在生活中要和教師、同窗保持良好關(guān)系是很重要。做事一方面要學(xué)做人,要明白做人道理,如何與人相處是當(dāng)代社會做人一種最基本問題。對于自己這樣一種即將步入社會人來說,需要學(xué)習(xí)東西諸多,她們就是最佳教師,正所謂“三人行,必有我?guī)煛?,咱們可以向她們學(xué)習(xí)諸多知識、道理。實(shí)訓(xùn)結(jié)束了感覺雖然辛苦,但很充實(shí)。我想這就是Java工程師工作。我也體會到軟件工程師成功地完畢一種任務(wù)那種興奮,那種小有成就感覺是只有置身其中人才干體會??傊?,這次實(shí)訓(xùn)為我提供了與眾不同窗習(xí)辦法和學(xué)習(xí)體會,從課本中面對現(xiàn)實(shí),為我將來走上社會打下了夯實(shí)基本。作為在校計(jì)算機(jī)專業(yè)學(xué)生,當(dāng)前我能做就是吸取知識,提高自身綜合素質(zhì),提高自己職業(yè)技能,自己有了能力,屆時候才會是“車到山前必有路”。我相信在不久將來,會有屬于我自己一片天空。8、附件:com.dao包packagecom.dao;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importcom.model.Cashier;/***收銀員登錄驗(yàn)證。*@authorcsp-pc**/publicclassCashierDao{ publicCashierlogon(Connectioncon,Cashiercashier)throwsException{ CashierresultCashier=null; Stringsql="select*fromcashierwherename=?andpassword=?";//查詢收銀員姓名和密碼 PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setString(1,cashier.getName()); pstmt.setString(2,cashier.getPassword()); ResultSetrs=pstmt.executeQuery(); if(rs.next()){ resultCashier=newCashier(sql,sql); resultCashier.setName(rs.getString("name")); resultCashier.setPassword(rs.getString("password"));//得到姓名和密碼 }else{ } returnresultCashier; }}packagecom.dao;importjava.sql.*;importcom.model.*;importcom.util.StringUtil;/***收銀員信息dao*@authorcsp-pc**/publicclassCashierinforDao{ publicintcashierinforAdd(Connectioncon,Cashierinforcashierinfor)throwsException{ Stringsql="insertintocashiervalue(?,?,?)"; PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setInt(1,cashierinfor.getNumber());//這個數(shù)據(jù)類型需要再考慮考慮。 pstmt.setString(2,cashierinfor.getName()); pstmt.setString(3,cashierinfor.getPassword()); returnpstmt.executeUpdate(); } publicResultSetCashierinforList(Connectioncon,Cashierinforcashierinfor)throwsException{ StringBuffersb=newStringBuffer("select*fromcashier"); if(StringUtil.isNotEmpty(cashierinfor.getName())){ sb.append("andnamelike'%"+cashierinfor.getName()+"%'"); } PreparedStatementpstmt=con.prepareStatement(sb.toString().replaceFirst("and","where")); //典型消息查詢算法。 returnpstmt.executeQuery(); } publicintcashierinfordelete(Connectioncon,Stringnumber)throwsException{ Stringsql="deletefromcashierwherenumber=?"; PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setString(1,number); returnpstmt.executeUpdate(); } publicintcashierinformodify(Connectioncon,Cashierinforcashierinfor)throwsException{ Stringsql="updatecashiersetname=?,password=?wherenumber=?"; PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setString(1,cashierinfor.getName()); pstmt.setString(2,cashierinfor.getPassword()); pstmt.setInt(3,cashierinfor.getNumber()); returnpstmt.executeUpdate(); } }packagecom.dao;importjava.sql.*;importcom.model.Cashierinfor;importcom.model.Goods;importcom.util.StringUtil;/***該類實(shí)現(xiàn)商品添加、修改、查找、刪除dao。*@authorcsp-pc**/publicclassGoodsDao{ publicintgoodsAdd(Connectioncon,Goodsgoods)throwsException{ Stringsql="insertintogoodsvalue(?,?,?,?,?,?)";//數(shù)據(jù)庫插入商品信息 PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setInt(1,goods.getNumber()); pstmt.setString(2,goods.getName()); pstmt.setString(3,goods.getKind()); pstmt.setInt(4,goods.getAmount()); pstmt.setInt(5,goods.getWprice()); pstmt.setInt(6,goods.getRprice()); returnpstmt.executeUpdate(); } publicResultSetGoodsList(Connectioncon,Goodsgoods)throwsException{ StringBuffersb=newStringBuffer("select*fromgoods");//查詢 if(StringUtil.isNotEmpty(goods.getName())){ sb.append("andnamelike'%"+goods.getName()+"%'");//按商品名進(jìn)行模糊查詢 } PreparedStatementpstmt=con.prepareStatement(sb.toString().replaceFirst("and","where")); returnpstmt.executeQuery(); } publicintgoodsdelete(Connectioncon,Stringnumber)throwsException{ Stringsql="deletefromgoodswherenumber=?"; PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setString(1,number);//刪除商品信息 returnpstmt.executeUpdate(); } publicintgoodsmodify(Connectioncon,Goodsgoods)throwsException{ Stringsql="updategoodssetname=?,kind=?,amount=?,wholesale_price=?,retail_price=?wherenumber=?"; //修改商品信息 PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setString(1,goods.getName()); pstmt.setString(2,goods.getKind()); pstmt.setInt(3,goods.getAmount()); pstmt.setInt(4,goods.getWprice()); pstmt.setInt(5,goods.getRprice()); pstmt.setInt(6,goods.getNumber()); returnpstmt.executeUpdate(); } publicResultSetGoodsid(Connectioncon,Goodsgoods)throwsException{ Stringsql="select*fromgoodswherenumber=?";//通過id查找所在商品相應(yīng)行,擬定詳細(xì)商品 PreparedStatementpstmt=con.prepareStatement(sql); if(StringUtil.isNotEmpty(Integer.toString(goods.getNumber()))){ pstmt.setInt(1,goods.getNumber()); } returnpstmt.executeQuery(); }}packagecom.dao;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.SQLException;importcom.model.Businessout;/***出貨dao類*@authorcsp-pc**/publicclassBusinessDao{ publicintb_outAdd1(Connectioncon,Businessoutbusinessout)throwsException{ Stringsql="insertintobusiness_outvalue(null,?,?,?,?,?)";//數(shù)據(jù)庫插入語句 PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setInt(1,businessout.getGoods_amount()); pstmt.setInt(2,businessout.getMember_id()); pstmt.setInt(3,businessout.getCashier_id()); pstmt.setInt(4,businessout.getGoods_id()); pstmt.setInt(5,businessout.getMoney_put());//得到相應(yīng)出庫信息值。 returnpstmt.executeUpdate(); }}packagecom.dao;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.SQLException;importcom.model.Member;/***會員信息dao*@authorcsp-pc**/publicclassMemberDao{ publicintaddMember(Connectioncon,Membermember)throwsException{ Stringsql="insertintomember(id,name)value(?,?)"; PreparedStatementpstmt=con.prepareStatement(sql); pstmt.setInt(1,member.getId()); pstmt.setString(2,member.getName()); returnpstmt.executeUpdate(); }}Com.model包packagecom.model;/***商品出庫交易模型。*@authorcsp-pc**/publicclassBusinessout{ privateintid; privateintgoods_amount; privateintmember_id; privateintcashier_id; privateintgoods_id; privateintmoney_put; publicintgetId(){ returnid; } publicintgetGoods_amount(){ returngoods_amount; } publicintgetMember_id(){ returnmember_id; } publicintgetCashier_id(){ returncashier_id; } publicintgetGoods_id(){ returngoods_id; } publicintgetMoney_put(){ returnmoney_put; } publicvoidsetId(intid){ this.id=id; } publicvoidsetGoods_amount(intgoods_amount){ this.goods_amount=goods_amount; } publicvoidsetMember_id(intmember_id){ this.member_id=member_id; } publicvoidsetCashier_id(intcashier_id){ this.cashier_id=cashier_id; } publicvoidsetGoods_id(intgoods_id){ this.goods_id=goods_id; } publicvoidsetMoney_put(intmoney_put){ this.money_put=money_put; } publicBusinessout(intgoods_amount,intgoods_id){ super(); this.goods_amount=goods_amount; this.goods_id=goods_id; }}packagecom.model;/***顧客登錄模型。*@authorcsp-pc**/publicclassCashier{ privateintid; privateStringName; privateStringPassword; publicCashier(Stringname,Stringpassword){ super(); Name=name; Password=password; } publicintgetId(){ returnid; } publicStringgetName(){ returnName; } publicStringgetPassword(){ returnPassword; } publicvoidsetId(intid){ this.id=id; } publicvoidsetName(Stringname){ Name=name; } publicvoidsetPassword(Stringpassword){ Password=password; } }packagecom.model;/***收銀員基本信息模型。*@authorcsp-pc**/publicclassCashierinfor{ privateintnumber; privateStringname; privateStringpassword; publicCashierinfor(){ super(); //TODO自動生成構(gòu)造函數(shù)存根 } publicCashierinfor(intnumber,Stringname,Stringpassword){ super(); this.number=number; =name; this.password=password; } publicintgetNumber(){ returnnumber; } publicStringgetName(){ returnname; } publicStringgetPassword(){ returnpassword; } publicvoidsetNumber(intnumber){ this.number=number; } publicvoidsetName(Stringname){ =name; } publicvoidsetPassword(Stringpassword){ this.password=password; } }packagecom.model;/***商品基本信息模型。*@authorcsp-pc**/publicclassGoods{ privateintnumber; privateStringname; privateStringkind; privateintamount; privateintwprice; privateintrprice; publicGoods(){ super(); //TODO自動生成構(gòu)造函數(shù)存根 } publicGoods(intnumber,Stringname,Stringkind,intamount,intwprice,intrprice){ super(); this.number=number; =name; this.kind=kind; this.amount=amount; this.wprice=wprice; this.rprice=rprice; } publicintgetNumber(){ returnnumber; } publicStringgetName(){ returnname; } publicStringgetKind(){ returnkind; } publicintgetAmount(){ returnamount; } publicintgetWprice(){ returnwprice; } publicintgetRprice(){ returnrprice; } publicvoidsetNumber(intnumber){ this.number=number; } publicvoidsetName(Stringname){ =name; } publicvoidsetKind(Stringkind){ this.kind=kind; } publicvoidsetAmount(intamount){ this.amount=amount; } publicvoidsetWprice(intwprice){ this.wprice=wprice; } publicvoidsetRprice(intrprice){ this.rprice=rprice; } }packagecom.model;/***會員信息模型。*@authorcsp-pc**/publicclassMember{ privateintid; privateStringname; privateintconsume; privateintintegral; publicintgetId(){ returnid; } publicStringgetName(){ returnname; } publicintgetConsume(){ returnconsume; } publicintgetIntegral(){ returnintegral; } publicvoidsetId(intid){ this.id=id; } publicvoidsetName(Stringname){ =name; } publicvoidsetConsume(intconsume){ this.consume=consume; } publicvoidsetIntegral(intintegral){ egral=integral; } publicMember(intid,Stringname){ super(); this.id=id; =name; } publicMember(){ super(); //TODO自動生成構(gòu)造函數(shù)存根 }}Com.util包packagecom.util;importjava.sql.Connection;importjava.sql.DriverManager;/***數(shù)據(jù)庫連接*@authorcsp-pc**/publicclassDbUtil{ privateStringjdbcName="com.mysql.jdbc.Driver";//驅(qū)動名 privateStringdbUserName="root";//數(shù)據(jù)庫顧客名 privateStringdbPassword="";//數(shù)據(jù)庫顧客密碼 privateStringdbUrl="jdbc:mysql://localhost:3306/supermarket_manager";//詳細(xì)庫地址 publicConnectiongetCon()throwsException{ Class.forName(jdbcName); Connectioncon=DriverManager.getConnection(dbUrl,dbUserName,dbPassword); returncon; }//獲取連接 publicvoidcloseCon(Connectioncon)throwsException{ if(con!=null){ con.close(); } }//關(guān)閉連接 publicstaticvoidmain(String[]args){ DbUtildbutil=newDbUtil(); try{ dbutil.getCon(); System.out.println("數(shù)據(jù)庫連接成功!"); }catch(Exceptione){ //TODO自動生成catch塊 e.printStackTrace(); } //測試連接與否成功。 }}packagecom.util;/***判斷值與否為空。兩個工具。*@authorcsp-pc**/publicclassStringUtil{ publicstaticbooleanisEmpty(Stringstr){ if("".equals(str)||str==null){ returntrue; }else{ returnfalse; } }//判斷是空 publicstaticbooleanisNotEmpty(Stringstr){ if(!"".equals(str)&&str!=null){ returntrue; }else{ returnfalse; } }//判斷不是空。}packagecom.view;importjava.awt.BorderLayout;importjava.awt.EventQueue;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.border.EmptyBorder;importjavax.swing.JLabel;importjava.awt.Font;importjavax.swing.ImageIcon;/***作者簡介窗口*@authorcsp-pc**/publicclassauthorFrameextendsJFrame{ privateJPanelcontentPane; /** *Launchtheapplication. */ publicstaticvoidmain(String[]args){ EventQueue.invokeLater(newRunnable(){ publicvoidrun(){ try{ authorFrameframe=newauthorFrame(); frame.setVisible(true); }catch(Exceptione){ e.printStackTrace(); } } }); } /** *Createtheframe. */ publicauthorFrame(){ setTitle("\u5173\u4E8E\u6211\u4EEC"); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setBounds(100,100,450,300); contentPane=newJPanel(); contentPane.setBorder(newEmptyBorder(5,5,5,5)); setContentPane(contentPane); contentPane.setLayout(null); JLabellabel=newJLabel("\u6E56\u5317\u6587\u7406\u5B66\u9662"); label.setIcon(newImageIcon("D:\\java\\workspace\\\u8D85\u5E02\u7BA1\u7406\u7CFB\u7EDF\\image\\book(2).png")); label.setFont(newFont("宋體",F(xiàn)ont.BOLD,18)); label.setBounds(73,10,189,49); contentPane.add(label); JLabellblNewLabel=newJLabel("\u6570\u5B66\u4E0E\u8BA1\u7B97\u673A\u79D1\u5B66\u5B66\u9662"); lblNewLabel.setIcon(newImageIcon("D:\\java\\workspace\\\u8D85\u5E02\u7BA1\u7406\u7CFB\u7EDF\\image\\book(1).png")); lblNewLabel.setFont(newFont("宋體",F(xiàn)ont.BOLD,15)); lblNewLabel.setBounds(73,69,289,35); contentPane.add(lblNewLabel); JLabellblNewLabel_1=newJLabel("\u8F6F\u5DE51511"); lblNewLabel_1.setIcon(newImageIcon("D:\\java\\workspace\\\u8D85\u5E02\u7BA1\u7406\u7CFB\u7EDF\\image\\me.png")); lblNewLabel_1.setFont(newFont("宋體",F(xiàn)ont.BOLD,13)); lblNewLabel_1.setBounds(73,114,144,15); contentPane.add(lblNewLabel_1); JLabellabel_1=newJLabel("\u9648\u4ED5\u9E4F"); label_1.setFont(newFont("宋體",F(xiàn)ont.BOLD,13)); label_1.setIcon(newImageIcon("D:\\java\\workspace\\\u8D85\u5E02\u7BA1\u7406\u7CFB\u7EDF\\image\\userName.png")); label_1.setBounds(73,149,94,15); contentPane.add(label_1); JLabellabel_2=newJLabel("117457"); label_2.setIcon(newImageIcon("D:\\java\\workspace\\\u8D85\u5E02\u7BA1\u7406\u7CFB\u7EDF\\image\\modify.png")); label_2.setFont(newFont("宋體",F(xiàn)ont.BOLD,13)); label_2.setBounds(73,182,121,15); contentPane.add(label_2); }}packagecom.view;importjava.awt.EventQueue;importjavax.swing.JInternalFrame;importjavax.swing.JList;importjavax.swing.JOptionPane;importjavax.swing.JLabel;importjavax.swing.JTextField;importjavax.swing.table.DefaultTableModel;importcom.dao.BusinessDao;importcom.dao.GoodsDao;importcom.model.Businessout;importcom.model.Goods;importcom.util.DbUtil;importcom.util.StringUtil;importjavax.swing.JButton;importjavax.swing.JTable;importjava.awt.event.ActionListener;importjava.sql.Connection;importjava.sql.ResultSet;importjava.util.Vector;importjava.awt.event.ActionEvent;/***商品出庫鏈接窗體。*@authorcsp-pc**/publicclassB_outInterFrmextendsJInternalFrame{ privateJTextFieldoutamountTxt; privateJTextFieldgoodsidTxt; privateJLabellblNewLabel; privateJTextFieldmeber_idTxt; privateJTextFieldcashier_idTxt; privateJLabellabel_2; privateJLabellabel_4; privateJTextFieldmoney_putTxt; privateJButtonJb_outconfirm; privateJButtonJb_outsetconfirm; /** *Launchtheapplication. */ DbUtildbUtil=newDbUtil(); BusinessDaobusinessDao=newBusinessDao(); GoodsDaogoodsDao=newGoodsDao(); privateJTextFieldramountTxt; publicstaticvoidmain(String[]args){ EventQueue.invokeLater(newRunnable(){ publicvoidrun(){ try{ B_outInterFrmframe=newB_outInterFrm(); frame.setVisible(true); }catch(Exceptione){ e.printStackTrace(); } } }); } /** *Createtheframe. */ publicB_outInterFrm(){ setTitle("\u5546\u54C1\u51FA\u5E93\u7BA1\u7406"); setIconifiable(true); setClosable(true); setBounds(100,100,450,360); getContentPane().setLayout(null); JLabellabel=newJLabel("\u51FA\u5E93\u6570\u91CF\uFF1A"); label.setBounds(230,67,66,15); getContentPane().add(label); outamountTxt=newJTextField(); outamountTxt.setBounds(294,64,112,21); getContentPane().add(outamountTxt); outamountTxt.setColumns(10); JLabellabel_1=newJLabel("\u5546\u54C1\u7F16\u53F7\uFF1A"); label_1.setBounds(24,67,66,15); getContentPane().add(label_1); goodsidTxt=newJTextField(); goodsidTxt.setBounds(88,64,112,21); getContentPane().add(goodsidTxt); goodsidTxt.setColumns(10); lblNewLabel=newJLabel("\u4F1A\u5458\u7F16\u53F7\uFF1A"); lblNewLabel.setBounds(24,220,66,15); getContentPane().add(lblNewLabel); meber_idTxt=newJTextField(); meber_idTxt.setBounds(88,217,112,21); getContentPane().add(meber_idTxt); meber_idTxt.setColumns(10); cashier_idTxt=newJTextField(); cashier_idTxt.setBounds(307,217,99,21); getContentPane().add(cashier_idTxt); cashier_idTxt.setColumns(10); label_2=newJLabel("\u6536\u94F6\u5458\u7F16\u53F7\uFF1A"); label_2.setBounds(227,220,86,15); getContentPane().add(label_2); label_4=newJLabel("\u76C8\u5229\u663E\u793A\uFF1A"); label_4.setBounds(24,164,68,15); getContentPane().add(label_4); money_putTxt=newJTextField(); money_putTxt.setBounds(91,161,109,21); getContentPane().add(money_putTxt); money_putTxt.setColumns(10); Jb_outconfirm=newJButton("\u786E\u5B9A"); Jb_outconfirm.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ Stringgoodsid=goodsidTxt.getText(); Stringoutamount=outamountTxt.getText(); intgi=Integer.parseInt(goodsid); intoi=Integer.parseInt(outamount); if(StringUtil.isEmpty(goodsid)){ JOptionPane.showMessageDialog(null,"商品編號不能為空!"); return; } if(StringUtil.isEmpty(outamount)){ JOptionPane.showMessageDialog(null,"商品數(shù)量不能為空!"); return; } Businessoutbusinessout=newBusinessout(gi,oi); Connectioncon=null; try{ con=dbUtil.getCon(); Goodsgoods=newGoods(); goodsDao.Goodsid(con,goods); intwprice=goods.getWprice(); intrprice=goods.getRprice(); intgoodsmoney=rprice-wprice; intmoney_put=goodsmoney*oi; money_putTxt.setText(Integer.toString(money_put)); intn=businessDao.b_outAdd1(con,businessout); }catch(Exceptione){ //TODO自動生成catch塊 JOptionPane.showMessageDialog(null,"異常,商品賺錢計(jì)算失敗!"); e.printStackTrace(); }finally{ try{ dbUtil.closeCon(con); }catch(Exceptione){ //TODO自動生成catch塊 e.printStackTrace(); } } } }); Jb_outconfirm.setBounds(313,108,93,23); getContentPane().add(Jb_outconfirm); Jb_outsetconfirm=newJButton("\u786E\u8BA4\u8BB0\u5F55\u4EA4\u6613"); Jb_outsetconfirm.setBounds(294,279,117,23); getContentPane().add(Jb_outsetconfirm); JLabellblNewLabel_1=newJLabel("\u5E93\u5B58\u6570\u91CF:"); lblNewLabel_1.setBounds(230,164,54,15); getContentPane().add(lblNewLabel_1); ramountTxt=newJTextField(); ramountTxt.setBounds(295,161,111,21); getContentPane().add(ramountTxt); ramountTxt.setColumns(10); }}packagecom.view;importjava.awt.EventQueue;importjavax.swing.JInternalFrame;importjavax.swing.JLabel;importjavax.swing.JTextField;importjavax.swing.JButton;/***商品進(jìn)庫鏈接窗體。*@authorcsp-pc**/publicclassB_putInterFrmextendsJInternalFrame{ privateJTextFieldtextField_1; privateJTextFieldtextField_2; privateJTextFieldtextField_3; /** *Launchtheapplication. */ publicstaticvoidmain(String[]args){ EventQueue.invokeLater(newRunnable(){ publicvoidrun(){ try{ B_putInterFrmframe=newB_putInterFrm(); frame.setVisible(true); }catch(Exceptione){ e.printStackTrace(); } } }); } /** *Createtheframe. */ publicB_putInterFrm(){ setIconifiable(true); setClosable(true); setBounds(100,100,450,323); getContentPane().setLayout(null); JLabellabel=newJLabel("\u5546\u54C1\u7F16\u53F7\uFF1A"); label.setBounds(28,64,70,15); getContentPane().add(label); textField_1=newJTextField(); textField_1.setBounds(93,61,112,21); getContentPane().add(textField_1); textField_1.setColumns(10); JLabellabel_1=newJLabel("\u5165\u5E93\u6570\u91CF\uFF1A"); label_1.setBounds(227,64,70,15); getContentPane().add(label_1); textField_2=newJTextField(); textField_2.setBounds(301,61,97,21); getContentPane().add(textField_2); textField_2.setColumns(10); JButtonbutton=newJButton("\u786E\u8BA4"); button.setBounds(305,111,93,23); getContentPane().add(button); JLabellabel_2=newJLabel("\u652F\u51FA\u663E\u793A\uFF1A"); label_2.setBounds(26,166,72,15); getContentPane().add(label_2); textField_3=newJTextField(); textField_3.setBounds(93,163,305,21); getContentPane().add(textField_3); textField_3.setColumns(10); JButtonbutton_1=newJButton("\u786E\u8BA4\u4EA4\u6613\u8BB0\u5F55"); button_1.setBounds(286,216,112,23); getContentPane().add(button_1); }}packagecom.view;importjava.awt.EventQueue;importjava.awt.JobAttributes;importjavax.swing.JInternalFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JTextField;importcom.dao.CashierinforDao;importcom.model.Cashierinfor;importcom.util.DbUtil;importcom.util.StringUtil;importjavax.swing.JButton;importjava.awt.event.ActionListener;importjava.sql.Connection;importjava.awt.event.ActionEvent;/***收銀員信息窗體。*@authorcsp-pc**/publicclassCashierInterFrmextendsJInternalFrame{ privateJTextFieldCashierinfornameTxt; privateJTextFieldCashierinforpasswordTxt; /** *Launchtheapplication. */ DbUtildbUtil=newDbUtil(); CashierinforDaocashierinfordao=newCashierinforDao(); privateJTextFieldCashierinfornumberTxt; /** *獲取數(shù)據(jù)庫連接。 *@paramargs */ publicstaticvoidmain(String[]args){ EventQueue.invokeLater(newRunnable(){ publicvoidrun(){ try{ CashierInterFrmframe=newCashierInterFrm(); frame.setVisible(true); }catch(Exceptione){ e.printStackTrace(); } } }); } /** *Createtheframe. */ publicCashierInterFrm(){ setIconifiable(true); setClosable(true); setTitle("\u6536\u94F6\u5458\u4FE1\u606F\u6DFB\u52A0"); setBounds(100,100,420,305); getContentPane().setLayout(null); JLabellabel=newJLabel("\u6536\u94F6\u5458\u59D3\u540D"); label.setBounds(63,85,80,15); getContentPane().add(label); CashierinfornameTxt=newJTextField(); CashierinfornameTxt.setBounds(194,82,179,21); getContentPane().add(CashierinfornameTxt); CashierinfornameTxt.setColumns(10); JLabellblNewLabel=newJLabel("\u5BC6\u7801"); lblNewLabel.setBounds(63,128,65,15); getContentPane().add(lblNewLabel); CashierinforpasswordTxt=newJTextField(); CashierinforpasswordTxt.setBounds(194,125,179,21); getContentPane().add(CashierinforpasswordTxt); CashierinforpasswordTxt.setColumns(10); JButtonJb_Add=newJButton("\u6DFB\u52A0");//添加按鈕功能。 Jb_Add.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringcashierinforname=CashierinfornameTxt.getText(); Stringcashierinforpassword=CashierinforpasswordTxt.getText(); Stringcashierinfornumber=CashierinfornumberTxt.getText(); if(StringUtil.isEmpty(cashierinfornumber)){ JOptionPane.showMessageDialog(null,"員工編號不能為空!"); return; } if(StringUtil.isEmpty(cashierinforname)){ JOptionPane.showMessageDialog(null,"姓名不能為空!"); return; } if(StringUtil.isEmpty(cashierinforpassword)){ JOptionPane.showMessageDialog(null,"密碼不能為空!"); return; } inti=Integer.parseInt(cashierinfornumber); Cashierinforcashierinfor=newCashierinfor(i,cashierinforname,cashierinforpassword); Connection
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 馬鈴薯食品加工供應(yīng)鏈協(xié)議
- 企業(yè)社會責(zé)任共建協(xié)議
- 產(chǎn)科安全醫(yī)療管理
- 井建設(shè)項(xiàng)目協(xié)議
- 二手電梯買賣合同
- 代持股權(quán)益合同書
- 企業(yè)文化顧問協(xié)議
- 個人消費(fèi)貸款合同范本
- 企業(yè)入駐技術(shù)許可合同
- 代理人自我管理與成長
- 消防系統(tǒng)調(diào)試及聯(lián)動方案
- 觀光農(nóng)業(yè)概論教案分享
- 英文譯稿《藥品注冊管理辦法》
- 危險(xiǎn)預(yù)知訓(xùn)練教材(KYT)
- ISO9001體系文件與IRIS標(biāo)準(zhǔn)條款對應(yīng)表
- 漢語教師志愿者培訓(xùn)大綱
- SPC培訓(xùn)資料_2
- 壓力表使用警示標(biāo)識
- 小學(xué)英語課堂教學(xué)策略與方法探討
- 2019年重慶普通高中會考通用技術(shù)真題及答案
- DB44 T 552-2008 林業(yè)生態(tài) 術(shù)語
評論
0/150
提交評論