第一篇:Java實(shí)現(xiàn)的商場VIP消費(fèi)管理系統(tǒng)
《Java實(shí)現(xiàn)的商場VIP消費(fèi)管理系統(tǒng)》實(shí)驗(yàn)指導(dǎo)書
一 實(shí)驗(yàn)?zāi)康?/p>
通過實(shí)現(xiàn)商場VIP消費(fèi)管理系統(tǒng)功能的實(shí)際編程了解基于Swing的圖形用戶界面開發(fā)和數(shù)據(jù)庫操作原理,提高Swing和JDBC技術(shù)結(jié)合的綜合運(yùn)用能力。
二 實(shí)驗(yàn)原理
本實(shí)驗(yàn)要求一個(gè)簡單的商場VIP消費(fèi)管理系統(tǒng),系統(tǒng)功能包括商品信息錄入、商品信息查詢、VIP信息錄入、VIP消費(fèi)記錄查詢、VIP消費(fèi)購物記錄登記、系統(tǒng)維護(hù)(系統(tǒng)用戶、商品和VIP信息等實(shí)現(xiàn)管理)和系統(tǒng)幫助。系統(tǒng)功能流程框架圖如下圖所示:
(1)系統(tǒng)登錄:對(duì)用戶的帳號(hào)和密碼進(jìn)行合法性驗(yàn)證,登錄成功則進(jìn)入系統(tǒng)功能界面。登陸界面如下圖所示:
(2)系統(tǒng)功能界面:上面可采用功能菜單或工具欄(JToolBar)或選項(xiàng)板(JTabbedPane)來實(shí)現(xiàn),下放用表格列出信息,默認(rèn)時(shí)列出所有信息。
(3)商品信息錄入:可錄入商品編號(hào)、名稱、價(jià)格、折扣等信息,對(duì)錄入的信息保存至數(shù)據(jù)庫表或文件。界面可參考如下圖所示:
(4)商品信息查詢:可根據(jù)商品編號(hào)或名稱進(jìn)行查詢。界面可參考如下圖所示:
(5)VIP信息錄入:可對(duì)VIP用戶的姓名、年齡、入會(huì)時(shí)間、性別、工作單位、手機(jī)號(hào)碼、聯(lián)系電話、聯(lián)系地址、郵編等信息進(jìn)行輸入(6)VIP消費(fèi)記錄查詢:可VIP用戶的消費(fèi)記錄進(jìn)行查詢
(7)VIP消費(fèi)購物記錄登記:可對(duì)用戶的購物記錄進(jìn)行登記,保存至數(shù)據(jù)庫或文件。(8)系統(tǒng)維護(hù)包括對(duì)系統(tǒng)用戶、商品和VIP信息等實(shí)現(xiàn)管理。
(9)系統(tǒng)幫助:提供系統(tǒng)的幫助信息。
三 實(shí)驗(yàn)環(huán)境
運(yùn)行Windows的PC機(jī),具有JDK1.4以上Java編譯環(huán)境和JCreator3.5或Eclipse3.0以上Java編輯環(huán)境。
四 實(shí)驗(yàn)內(nèi)容和步驟
(1)系統(tǒng)需求分析,寫出功能流程圖
(2)項(xiàng)目分析:確定對(duì)象并確定對(duì)象的屬性和操作,為對(duì)象建模,畫出UML類圖(3)若采用數(shù)據(jù)庫方式實(shí)現(xiàn),則設(shè)計(jì)的主要數(shù)據(jù)表包括用戶表、VIP信息表、商品信息表和消費(fèi)記錄表,數(shù)據(jù)庫設(shè)計(jì)的表結(jié)構(gòu)可參考如下如所示:
若采用文件方式實(shí)現(xiàn),則需要設(shè)計(jì)幾個(gè)對(duì)應(yīng)的文件來保存用戶、商品信息或消費(fèi)記錄。(4)類的設(shè)計(jì)與實(shí)現(xiàn),類的定義如下所示: 1)系統(tǒng)登錄:LoginFrame.java
2)商品信息錄入:CommodityInputFrame.java 3)商品信息查詢:CommodityQueryFrame.java 4)VIP信息錄入:VipInputFrame.java 5)VIP信息查詢: VipQuery.java
6)VIP 消費(fèi)購物登記:VipShoppingFrame.java 7)系統(tǒng)維護(hù):SystemMenu.java
8)用戶信息管理:UseManagerFrame.java 9)商品信息管理:CommodityManagerFrame.java 10)VIP信息管理:VIPManagerFrame.java 11)系統(tǒng)幫助:HelpFrame.java
(5)系統(tǒng)測試:整合系統(tǒng),對(duì)系統(tǒng)各模塊進(jìn)行功能測試
(6)撰寫文檔和實(shí)驗(yàn)報(bào)告:包括系統(tǒng)方案書,數(shù)據(jù)庫設(shè)計(jì)說明書,系統(tǒng)使用說明書,技術(shù)報(bào)告和測試報(bào)告
五 實(shí)驗(yàn)報(bào)告要求
(1)記錄實(shí)驗(yàn)內(nèi)容中的商場VIP消費(fèi)管理系統(tǒng)基本功能的詳細(xì)過程文檔,包括相應(yīng)的UML類圖、數(shù)據(jù)表說明和類的說明(按API方式)。
(2)完成該實(shí)現(xiàn)后,可試著考慮加強(qiáng)它的功能,如給VIP用戶增加消費(fèi)積分功能,給出如何實(shí)現(xiàn)這些功能的思路。
第二篇:JAVA酒店管理系統(tǒng)
JAVA酒店管理系統(tǒng)
摘要
該酒店客房管理系統(tǒng)是基于JAVA的Application模式,運(yùn)用JAVA語言開發(fā)技術(shù)和Mysql數(shù)據(jù)庫原理開發(fā)的。在該系統(tǒng)中,操作人員可通過房態(tài)查看或客房查詢來進(jìn)行住宿登記,也可通過追加押金使房客繼續(xù)入住,可方便有效的對(duì)客房信息及住宿信息進(jìn)行統(tǒng)計(jì)或設(shè)置,宿費(fèi)提醒及掛帳退房功能可使酒店損失降低至最低點(diǎn),操作員管理功能可實(shí)時(shí)地對(duì)操作人員進(jìn)行有效地管理從而使酒店在客房管理上分工明確。該系統(tǒng)的合理運(yùn)用能使得酒店提高其客房管理效率并節(jié)約管理成本。
該系統(tǒng)遵循軟件工程中的開發(fā)規(guī)則。本文介紹了酒店客房管理系統(tǒng)的開發(fā)過程,詳盡論述了需求分析、系統(tǒng)分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、以及測試與調(diào)試的整個(gè)開發(fā)過程,總結(jié)了開發(fā)過程中的經(jīng)驗(yàn)及本系統(tǒng)今后的改進(jìn)方向。
關(guān)鍵詞
客房;JAVA;JDK;SQL
參考文獻(xiàn)
[1]夏昕著.深入淺出Hibernate北京:電子工業(yè)出版社,2005
[2] 強(qiáng)鋒科技著.Java開發(fā)利器:Hibernate開發(fā)及整合應(yīng)用大全 北京:清華大學(xué)出版社 出版日期: 2006-2-1
[3] :鄒竹彪.JSP寶典北京:電子工業(yè)出版社, 2006
[4](美)Hessert著.STRUTS 2003北京:機(jī)械工業(yè)出版社,2006
[5] :朱敏 朱晴婷 李媛媛著.JSP Web應(yīng)用教程北京:清華大學(xué)出版社,北京交通大學(xué)出版社, 2004
[6] Matt Raible 著.Spring Live北京:電子工業(yè)出版社, 2006
[7] Rod Johnson / Juergen Hoeller(英)著.Expert One-on-One J2EE Development without EJB北京:機(jī)械工業(yè)出版社原出版社:Wrox, 2003
[8] Bruce Tate / Justin Gehtland著.Spring北京:清華大學(xué)出版社, 2006
第三篇:基于Java的高速公路收費(fèi)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于Java的高速公路收費(fèi)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
【摘 要】本文闡述了基于Struts2+Spring+Hibernate開源框架實(shí)現(xiàn)高速公路收費(fèi)管理子系統(tǒng)的開發(fā)流程。本文首先對(duì)Struts2、Hibernate、Spring等框架進(jìn)行論述,其次描述了系統(tǒng)的需求分析與總體架構(gòu)設(shè)計(jì),包括系統(tǒng)的功能需求、性能需求、功能結(jié)構(gòu)設(shè)計(jì)和體系結(jié)構(gòu)設(shè)計(jì)等;然后詳細(xì)介紹了系統(tǒng)的各個(gè)模塊的具體實(shí)現(xiàn),主要模塊有登陸模塊、數(shù)據(jù)錄入模塊、維護(hù)模塊等;最后,對(duì)系統(tǒng)進(jìn)行的測試并對(duì)項(xiàng)目的主要工作和存在的不足做了論述。
【關(guān)鍵詞】Struts2;Spring;Hibernate
0 引言
基于B/S結(jié)構(gòu)的Web程序的開發(fā),有非常大的靈活性,允許用戶遠(yuǎn)程訪問系統(tǒng)資源的同時(shí)能對(duì)數(shù)據(jù)平臺(tái)和管理訪問權(quán)限進(jìn)行有效的保護(hù)。B/S結(jié)構(gòu)軟件的所有的客戶端只是瀏覽器,也只需要管理服務(wù)器,更為快捷、方便、高效。與C/S體系結(jié)構(gòu)相比,B/S體系結(jié)構(gòu)不僅具有C/S體系結(jié)構(gòu)的全部優(yōu)點(diǎn),而且具有客戶端零維護(hù)、可擴(kuò)展性好、安全性好、資源重用性好等新的優(yōu)點(diǎn)。系統(tǒng)需求分析
計(jì)算機(jī)收費(fèi)系統(tǒng)式收費(fèi)站的主要組成部分[3]。每個(gè)收費(fèi)站由網(wǎng)絡(luò)服務(wù)器、管理計(jì)算機(jī)構(gòu)成的上端管理系統(tǒng)和若干個(gè)車道控制計(jì)算機(jī)構(gòu)成 的車道控制系統(tǒng)組成局域網(wǎng)。高速公路計(jì)算機(jī)收費(fèi)系統(tǒng)的目標(biāo)是:按照每輛車的車型和實(shí)際行駛里程收費(fèi);提高收費(fèi)的工作效率,盡量降低由于收費(fèi)過程引起的交通延誤,提高高速公路的通行能力;實(shí)現(xiàn)高速公路的現(xiàn)代化營運(yùn)管理為智能運(yùn)輸系統(tǒng)的實(shí)現(xiàn)留有一定的接口?;谙到y(tǒng)的以上目標(biāo),收費(fèi)系統(tǒng)應(yīng)該具有以下功能:
1)實(shí)行計(jì)算機(jī)管理,盡量減少人為干預(yù),保證車型判別的正確性。
2)系統(tǒng)能自動(dòng)檢查設(shè)備運(yùn)行狀態(tài),能準(zhǔn)確并及時(shí)地給出故障信息和故障排除信息。
3)系統(tǒng)應(yīng)該是全天候、實(shí)時(shí)的,如收費(fèi)車道應(yīng)該在任何時(shí)間有車輛通過時(shí)能正常使用。
4)具有一定的報(bào)警功能,如遇搶劫時(shí)的遠(yuǎn)程報(bào)警,與車輛沖關(guān)或進(jìn)出口收費(fèi)員判刑不一致時(shí)報(bào)警。
根據(jù)以上對(duì)系統(tǒng)需求的描述和功能的分析,對(duì)于收費(fèi)管理系統(tǒng),它主要處理的數(shù)據(jù)是收費(fèi)數(shù)據(jù),主要包括 4個(gè)模塊:數(shù)據(jù)登錄模塊,錄入模塊,維護(hù)模塊。技術(shù)平臺(tái)
2.1 MVC模式和Struts框架
MVC某種語言所特有的設(shè)計(jì)思想,而是所有面向?qū)ο蟪绦蛟O(shè)計(jì)語言都應(yīng)該遵守的規(guī)范[4]。MVC思想將應(yīng)用分為三個(gè)基本部分:模型、視圖、控制器。這三個(gè)部分將以最少的耦合協(xié)同工作,從而提高應(yīng)用的可擴(kuò)展性及可維護(hù)性。
Struts2是Struts的下一代產(chǎn)品,是一個(gè)優(yōu)雅的,可擴(kuò)展的Java EE Web框架[5]。它是Struts和WebWork的技術(shù)基礎(chǔ)上進(jìn)行合并的全新的Struts2框架。但是,Struts2沒有繼承Struts1的血統(tǒng),而是繼承WebWork的血統(tǒng)。Struts框架作為MVC模式的典型實(shí)現(xiàn),對(duì)Model、View和Controller都提供了對(duì)應(yīng)的實(shí)現(xiàn)組件。
2.2 Spring框架
Spring框架是一個(gè)分層架構(gòu),由7個(gè)模塊組成,各個(gè)模塊之間是相互的。Spring其他模塊構(gòu)建在核心容器之上,其中,核心容器定義了創(chuàng)建、配置和管理bean的方式。系統(tǒng)實(shí)現(xiàn)
在系統(tǒng)需求分析和設(shè)計(jì)的基礎(chǔ)上,在系統(tǒng)的開發(fā)過程中,將SSH架構(gòu)應(yīng)用到實(shí)際的項(xiàng)目開發(fā)中,并且利用第三方報(bào)表開發(fā)軟件開發(fā)報(bào)表部分,極大地簡化了系統(tǒng)的開發(fā),提高了效率。在整個(gè)系統(tǒng)的實(shí)現(xiàn)過程中,本文主要實(shí)現(xiàn)了收費(fèi)管理系統(tǒng)模塊。
3.1 數(shù)據(jù)登錄模塊
用戶登錄模塊的設(shè)計(jì)中完全實(shí)現(xiàn)了MVC模式,實(shí)現(xiàn)了視圖與數(shù)據(jù)處理的分離。登錄頁面、修改密碼頁面以及登錄成功頁面構(gòu)成視圖層;用戶登錄及修改密碼的請(qǐng)求應(yīng)答控制由控制器實(shí)現(xiàn);具體的用戶信息合法性由Struts2提供的客戶端輸入校驗(yàn)完成,保證輸入信息的合法性。圖1是用戶登錄的簡要圖。
3.2 錄入模塊
數(shù)據(jù)錄入模塊主要就是報(bào)表文件的開發(fā),設(shè)計(jì)報(bào)表文件,首先要打開設(shè)計(jì)器,連接到數(shù)據(jù)源,然后開始進(jìn)行報(bào)表文件的設(shè)計(jì)。本模塊中報(bào)表文件,僅用于數(shù)據(jù)錄入,因此可以創(chuàng)建的報(bào)表應(yīng)該選擇填報(bào)或參數(shù)表單。然后在快逸報(bào)表中的表格中填寫選項(xiàng),設(shè)置選項(xiàng)的屬性要根據(jù)需求來設(shè)置,包括設(shè)置數(shù)據(jù)的格式,編輯的風(fēng)格、是否可寫,能否為空等。
3.3 維護(hù)模塊
該模塊主要是負(fù)責(zé)維護(hù)人員名單的相關(guān)信息。由于本系統(tǒng)是內(nèi)部人員使用的系統(tǒng),用戶較少,不需要通過注冊(cè)來添加人員,而是通過該模塊來添加刪除人員或者修改其權(quán)限。
主要涉及到的信息包括:站號(hào)、用戶ID、用戶名、用戶密碼、班次編號(hào)、錄入權(quán)限、監(jiān)視權(quán)限、統(tǒng)計(jì)權(quán)限、檢索權(quán)限、稽查權(quán)限、維護(hù)權(quán)限、票據(jù)管理權(quán)限、卡管理權(quán)限等,如表1所示。其中各種管理權(quán)限來自于用戶信息中purview字段,每個(gè)比特位代表一種權(quán)限。結(jié)論
系統(tǒng)采用SSH(Struts2+Spring+Hibernate)輕量級(jí)框架,完成了高速公路收費(fèi)管理系統(tǒng)的開發(fā),對(duì)三個(gè)框架的使用和集成有了深刻的認(rèn)識(shí)。本文詳細(xì)介紹了三個(gè)框架的背景、相關(guān)技術(shù)以及內(nèi)部實(shí)現(xiàn)原理,包括MVC的開發(fā)模式、ORM技術(shù)以及IOC和AOP,這些對(duì)于系統(tǒng)的開發(fā)有非常重要的幫助。項(xiàng)目基于MVC的思想進(jìn)行開發(fā),Struts2框架負(fù)責(zé)了表示層和控制層;采用Hibernate框架以面向?qū)ο蟮姆绞絹碓L問數(shù)據(jù)庫,極大地簡化了數(shù)據(jù)庫操作;Spring框架將業(yè)務(wù)層又細(xì)分為業(yè)務(wù)邏輯層和數(shù)據(jù)持久層,使得接口和實(shí)現(xiàn)進(jìn)一步的分離,使開發(fā)者從繁雜的事務(wù)管理中解脫出來,而專注于業(yè)務(wù)邏輯的處理。
【參考文獻(xiàn)】
[1]彭艷玲,胡松濤.高速公路收費(fèi)現(xiàn)狀與存在問題研究[J].山西科技,2008(04):10-12.doi:10.3969/j.issn.1004-6429.2008.04.005.[2]吳煒,丁月華,文貴華.ETC車道控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2001(05):162-163.doi:10.3969/j.issn.1000-3428.2001.05.065.[3]郭敏.高速公路收費(fèi)系統(tǒng)[M].北京:人民交通出版社,2002,7:15.[4]李剛.較輕量級(jí)JavaEE企業(yè)應(yīng)用實(shí)踐[M].北京:電子工業(yè)出版社,2004,11:158.[5][美]巴西亞,等,編.Java企業(yè)級(jí)持久化技術(shù)指南[M].葉斌,譯.北京:科學(xué)出版社,2010,6:137.[6]白廣元.Java Web整合開發(fā)完全自學(xué)手冊(cè)[S].北京:機(jī)械工業(yè)出版社,2009,8:144.[責(zé)任編輯:丁艷]
第四篇:java管理系統(tǒng)項(xiàng)目總結(jié)
java管理系統(tǒng)項(xiàng)目總結(jié)
篇一:java管理系統(tǒng)項(xiàng)目總結(jié)
期末將至,怕沒有時(shí)間再去寫這篇不成器的文章,所以早早寫完,早早留給時(shí)間去復(fù)習(xí)。隨著期末的臨近,java課程也結(jié)束了,距離之前寫過的“java-象棋設(shè)計(jì)心得”有差不多過了2個(gè)月了。我們的java課程主要做全班選出來的兩個(gè)項(xiàng)目,一個(gè)是象棋,一個(gè)就是人事管理系統(tǒng)。做完都要通過答辯才能評(píng)分,以此兩次來作為整個(gè)java學(xué)期的成績??熳哳}了,就在這里止步回頭!
這一次的主要通過 問題->理解->修改->添加 的步驟講解,跟java-象棋設(shè)計(jì)心得的講解思路基本上差不多。
----問題篇
一開始著手這個(gè)java-人事管理系統(tǒng)項(xiàng)目的時(shí)候就感覺到這比之前的java-象棋項(xiàng)目難了,知識(shí)明顯不夠,需要邊看書本源代碼邊查看API文檔和通過網(wǎng)上來解惑。就這樣,一周的時(shí)間就過去了,當(dāng)然一周里還有很多課程需要跟上,所以并不是把一周的所有時(shí)間都花在項(xiàng)目設(shè)計(jì)上。
這里介紹一下我項(xiàng)目中遇到的一些“坎”: 1.布局管理器
GridBagLayout的使用和GridBagConstraints類的使用
類和DefaultMutableTreeNode類和其他類的使用
面板和JSplitePane面板和其他面板
4.設(shè)計(jì)的界面的還原
5.數(shù)據(jù)庫如何實(shí)現(xiàn)數(shù)據(jù)的保存
可見,問題多多,解決起來又會(huì)出現(xiàn)其它的問題,但我知道每一個(gè)項(xiàng)目必定存在多個(gè)類和面板的設(shè)計(jì),設(shè)計(jì)的過程也是一個(gè)不斷自我矛盾和自我更正的過程,只有這樣設(shè)計(jì)出來的產(chǎn)品才符合我們的要求。其中首先要說問題的是界面的還原是比較耗費(fèi)時(shí)間的,但這也是任何軟件設(shè)計(jì)的第一步,所以必須理解透!其次就是數(shù)據(jù)庫和SQL語言的學(xué)習(xí),因?yàn)閿?shù)據(jù)庫是新知識(shí),還沒有可以通過課程來學(xué)習(xí)的,這就意味著只能通過自己學(xué)習(xí)新知識(shí),這又是一個(gè)新問題的開始,但我知道必須要克服。最后就是動(dòng)作的實(shí)現(xiàn)問題,例如:點(diǎn)擊了這個(gè)節(jié)點(diǎn),相應(yīng)的功能是如何實(shí)現(xiàn),是通過什么來實(shí)現(xiàn)的,這些問題也必須理解,因?yàn)槭谴疝q問的最多問題。好了,問題篇就到這里了。
----理解篇
理解的基本條件就是問題的產(chǎn)生,上篇說的就是問題篇,那么這里說的就是理解?;蛟S這里有一些東西會(huì)跟java-象棋設(shè)計(jì)心得有些相同,所以會(huì)提醒一下就過了,理解是理解軟件制作的必要過程,重要性可想而知了,在java-象棋設(shè)計(jì)心得里,有些理解的方法這里就不在重復(fù)了。那么這里要講的東西不多,主要講的是功能的實(shí)現(xiàn)過程,書本中人事管理系統(tǒng)的功能有,如下:
1.基本信息管理--添加人員信息、修改人員信息、刪除人員信息、查詢?nèi)藛T信息、部門管理;
2.人員調(diào)動(dòng)管理--人員調(diào)動(dòng)、調(diào)動(dòng)歷史查詢;
3.人員考核管理--人員考核、考核歷史查詢;
4.勞資管理--勞資分配管理、勞資歷史查詢
因?yàn)榛旧弦陨系乃泄δ艿膶?shí)現(xiàn)基本相同,所以這里通過其中一個(gè)功能的實(shí)現(xiàn)來粗略理解其它功能的實(shí)現(xiàn)吧,說的不好請(qǐng)諒解!
那么就說“人員調(diào)動(dòng)管理--人員調(diào)動(dòng)”這個(gè)功能的實(shí)現(xiàn),從點(diǎn)擊葉子節(jié)點(diǎn)人員調(diào)用后,調(diào)用了人員調(diào)用的實(shí)現(xiàn)類,在右面板顯示相應(yīng)的人員調(diào)用面板,由圖可知面板里的放了“人員調(diào)動(dòng)”的JLabel、數(shù)據(jù)顯示的表單Jtable、一些文本框TextField和Jabel,還有下拉菜單JComboBox,以及三個(gè)按鈕。主面板里使用默認(rèn)的BorderLayout布局,可以看下圖來知道該功能布局的實(shí)現(xiàn):圖片的大小和真實(shí)的有差別,只作為理解而用。
接下來說如何通過點(diǎn)擊面板上的調(diào)入新部門的按鈕來實(shí)現(xiàn)與數(shù)據(jù)庫的連接,當(dāng)正確操作后,按調(diào)入新部門按鈕后,調(diào)用與數(shù)據(jù)庫連接的實(shí)現(xiàn)類的相應(yīng)方法,來對(duì)數(shù)據(jù)庫存放數(shù)據(jù)的相應(yīng)表進(jìn)行修改和給存放歷史數(shù)據(jù)的表進(jìn)行調(diào)動(dòng)歷史添加。這樣就完成以一個(gè)調(diào)用人員功能的實(shí)現(xiàn)了,類似的功能也可以參照次步驟來理解。
除了理解好這些功能的實(shí)現(xiàn)外,我還應(yīng)該要是自己來實(shí)現(xiàn)一個(gè)功能,作為真正理解好一個(gè)功能實(shí)現(xiàn)的動(dòng)手機(jī)會(huì),這個(gè)會(huì)在添加功能里詳解。好了,理解篇就到這里了!
----修改篇
修改、添加也是在理解的基礎(chǔ)上才能對(duì)代碼進(jìn)行改進(jìn)和添加,這里是修改篇,下一篇就是理解篇??梢哉f書本上的每一項(xiàng)目的代碼都存在不足和缺陷,可以運(yùn)行但運(yùn)行起來其中總是存在不少的缺陷和矛盾,所以就需要修改,那么在實(shí)際開發(fā)過程中,修改和添加就相當(dāng)于軟件的后期維護(hù)了,這是一個(gè)永遠(yuǎn)也完成不了的功能,要做到軟件的完美,是不可能的!只能不斷的修改,添加,再修改,再添加。。
在書本的人事管理系統(tǒng)代碼,只代表本人的觀點(diǎn)下,進(jìn)行了一些修改,這里就不一一說明了。
----添加篇
因?yàn)槿耸鹿芾硐到y(tǒng)的龐大,其功能也可以有相當(dāng)多,之前就說過,功能的實(shí)現(xiàn)都是差不多的,而且考慮到作業(yè)提交和答辯的時(shí)間,所以只添加了一個(gè)功能 “加班信息管理--添加人員加班信息、人員加班信息查詢”,請(qǐng)看下圖:
總結(jié):雖然java課程隨著人員管理系統(tǒng)的完成而結(jié)束了,但java的學(xué)習(xí)還會(huì)繼續(xù),這是一個(gè)厲害的技能,不是說課程教完就結(jié)束了,老師只能帶領(lǐng)我們進(jìn)門,但java提升是靠自己的努力的,有不少人說java作為一個(gè)謀生的技能很不錯(cuò),我想我會(huì)在邊學(xué)習(xí)java之余邊體會(huì)java的魅力。
篇二:java管理系統(tǒng)項(xiàng)目總結(jié)
這個(gè)學(xué)生管理系統(tǒng)相對(duì)來說比較簡單,主要就是復(fù)習(xí)下java怎么連接數(shù)據(jù)庫,然后你怎么來實(shí)現(xiàn)這個(gè)功能,我簡單的說下思路吧。
首先你要構(gòu)思好這個(gè)界面,他包括增刪查改這些基本功能,然后你去分析這些功能都能怎么實(shí)現(xiàn),對(duì)于查找,應(yīng)該是比較簡單的,這里連接數(shù)據(jù)庫就不詳述了,導(dǎo)jar包,設(shè)置三個(gè)變量,然后傳固定的參數(shù)進(jìn)去,查詢你應(yīng)該單獨(dú)寫一個(gè)類,在這個(gè)類里面你要做的就是傳入sql語句,利用executeQuery返回的結(jié)果集存放在一個(gè)向量里面,然后返回給java界面里面JTabel的參數(shù),同樣增加一條記錄,你可以自定義java界面,從鍵盤讀入數(shù)據(jù),然后將數(shù)據(jù)返回給你自定義的add類里面,在這個(gè)類里,主要處理sql增加語句,所以語句將被使用,這里還是要注意下防止sql注入。修改操作和增加操作類似,這里因?yàn)橹麈I的特殊性,所以你需要把他設(shè)為不可修改,當(dāng)然你也可以選擇不。對(duì)于刪除操作,因?yàn)椴恍枰貏e的界面為他服務(wù),所以你大可以在Main函數(shù)里面進(jìn)行操作,除非你覺得有必要整理下長的嚇人的代碼,其實(shí)刪除操作也就是獲取你指定的主鍵,然后在sql里面執(zhí)行操作。大概也就是這些了,有些細(xì)節(jié)地方要注意下,很多參數(shù)里面的下標(biāo)要千萬小心,不然很痛苦的,連接sql文件后記得關(guān)閉,彈出界面自己要加些異常處理,每次操作完后,要記得及時(shí)更新界面。另外對(duì)于MVC模式,你可以在寫完后,想想,其實(shí)很多代碼都有其復(fù)用性,你可以分幾層來操作啊,業(yè)務(wù)層就專門提交具體操作,也就是contral啊,然后增刪查改界面可以全放在view里面,model就專門處理和數(shù)據(jù)庫的銜接,反正mvc模式你會(huì)覺得代碼非常清晰,后續(xù)你還可以增加分頁操作啊,分頁操作其實(shí)很簡單,上一次sql里面測試了下,對(duì)于百萬級(jí)的數(shù)據(jù),分頁操作跑了三到五秒,或許我的本本真該換了。想說的也就是這么多了,另外鑒于昨天晚上發(fā)生的一些事情,后續(xù)不打算再更新任何東西了,也許這兩者沒任何關(guān)聯(lián),于我而言,結(jié)局早已注定。
第五篇:java書店管理系統(tǒng)源代碼
Java 源代碼
public class loaduser { public String user;public String password;boolean b1;loaduser(String s1,String s2){
user=s1;
password=s2;} void load(){
System.out.println(“ 書店管理銷售系統(tǒng)”);
System.out.println(“**************************************”);System.out.println(“
1、登錄系統(tǒng)”);System.out.println(“
2、退出系統(tǒng)”);
System.out.println(“**************************************”);System.out.println(“請(qǐng)選擇:”);
int m;Scanner s=new Scanner(System.in);m=s.nextInt();
if(m==1){
for(int i=0;i<3;i++){
System.out.println(“請(qǐng)輸入賬戶名和密碼”);
String s3,s4;
Scanner ss=new Scanner(System.in);
s3=s.next();
s4=s.next();
if(user.equals(s3)&&password.equals(s4))b1=true;
else b1=false;
if(i==0&&b1==false)System.out.println(“用戶名或密碼輸入錯(cuò)誤一次,還有兩次機(jī)會(huì)!”);
if(i==1&&b1==false)System.out.println(“用戶名或密碼輸入錯(cuò)誤兩次,還有一次機(jī)會(huì)!”);
if(i==2&&b1==false){System.out.println(“三次輸入錯(cuò)誤,退出系統(tǒng)!”);System.exit(0);}
if(b1==true){
System.out.println(“登錄成功!”);
break;} } }
if(m==2)System.exit(0);}
package manger;import java.util.ArrayList;import java.util.Scanner;import manger.vip;import System.menu;public class vipmanger { static ArrayList
vipgroup.add(new vip(“001”,“王芳”,100));
vipgroup.add(new vip(“002”,“李娜”,60));
vipgroup.add(new vip(“003”,“楊麗”,50));
vipgroup.add(new vip(“004”,“孫潔”,150));
vipgroup.add(new vip(“005”,“肖青”,300));} static void addd(){ System.out.println(“請(qǐng)一次輸入編號(hào),姓名,積分”);
String S1,S2;
int A;
Scanner s=new Scanner(System.in);
S1=s.next();
S2=s.next();
A=s.nextInt();
vip v1=new vip(S1,S2,A);vipgroup.add(v1);}
static void delete(){ System.out.println(“請(qǐng)輸入要求刪除的會(huì)員編號(hào):”);String s;Scanner me=new Scanner(System.in);s=me.next();
boolean b1=true;
for(int i=0;i if(s.equals(vipgroup.get(i).ID)){vipgroup.remove(i);b1=false;} if(b1)System.out.println(“查無此會(huì)員!”);} static void correct(){ System.out.println(“請(qǐng)輸入要修改信息的會(huì)員編號(hào):”);String sss;Scanner s=new Scanner(System.in);sss=s.next(); boolean b1=true; for(int i=0;i if(sss.equals(vipgroup.get(i).ID)){ b1=false; System.out.println(“請(qǐng)輸入新的姓名和積分:”); String ss1;Scanner s7=new Scanner(System.in);ss1=s7.next();vipgroup.get(i).name=ss1;int b; Scanner s8=new Scanner(System.in); b=s8.nextInt(); vipgroup.get(i).score=b;} if(b1==true)System.out.println(“查無此會(huì)員!”);} static void select(){ System.out.println(“請(qǐng)輸入要查詢的會(huì)員編號(hào):”);String s;Scanner me=new Scanner(System.in);s=me.next(); boolean b1=true; for(int i=0;i if (s.equals(vipgroup.get(i).ID)){System.out.println(vipgroup.get(i).ID+“ ”+vipgroup.get(i).name+“ ”+vipgroup.get(i).score);b1=false;} if(b1==true)System.out.println(“查無此會(huì)員!”);} static void show(){ for(int i=0;i System.out.println(vipgroup.get(i).ID+“ ”+vipgroup.get(i).name+“ ”+vipgroup.get(i).score);} public static void exchange(String s1,int a,int b){ boolean b1=true; for(int i=0;i if(s1.equals(vipgroup.get(i).ID)) {if(vipgroup.get(i).score<(a*b))System.out.println(“積分不足,不能兌換!”); else vipgroup.get(i).score-=a*b; b1=false; } if(b1==true)System.out.println(“查無此會(huì)員,不能兌換!”);} public static void shop(String s1,int a,int b){ boolean b1=true; for(int i=0;i if(b1==true)System.out.println(“查無此會(huì)員,不能購買!”);} public static boolean start(){ menu m=new menu();m.vip(); int x;Scanner me= new Scanner(System.in);x=me.nextInt(); switch(x){ case 1:show();break; case 2:delete();break; case 3:addd();break; case 4:correct();break; case 5:select();break; case 6:return false;} return true;} } public class book { public String number; public String name; public int price; public int jf;book(String s1,String s2,int a,int b){ number=s1; name=s2; price=a; jf=b;} } package manger;import java.util.ArrayList;import java.util.Scanner;import System.menu;public class bookmanger { static ArrayList for(i=0;i return a;} public static String name(String s1){ String a = “無此書”;for(int i=0;i return a;} public static boolean start(){ menu m=new menu();m.bookmanger();int x;Scanner me= new Scanner(System.in);x=me.nextInt();switch(x){ case 1:show();break;case 2:delete();break;case 3:addd();break;case 4:return false;} return true;} } public class gift { public String number;public String caption;public int costjf;gift(String s1,String s2,int a){ number=s1;caption=s2;costjf=a;} } package manger;import java.util.ArrayList;import java.util.Scanner;import manger.vipmanger;import manger.vip;import System.menu;import manger.gift;public class giftmanger { static ArrayList giftgroup.add(new gift(“001”,“鼠標(biāo)墊”,100)); giftgroup.add(new gift(“002”,“書夾子”,50)); giftgroup.add(new gift(“003”,“中性筆”,30));} static void show(){ for(int i=0;i System.out.println(“請(qǐng)輸入要?jiǎng)h除的禮品編號(hào):”); String s; Scanner ss=new Scanner(System.in); s=ss.next(); boolean b1=true; for(int i=0;i if(s.equals(giftgroup.get(i).number)) {giftgroup.remove(i); b1=false; } if(b1)System.out.println(“查無此禮品!”);} static void addd(){ System.out.println(“請(qǐng)輸入要添加的禮品編號(hào),名稱,所需積分:”); String s1,s2; int a; Scanner me=new Scanner(System.in); s1=me.next(); s2=me.next(); a=me.nextInt(); gift g1=new gift(s1,s2,a); giftgroup.add(g1);} static void exchange(){ String s1,s2,c=“無此禮品”; int a,b=0; giftmanger.show(); Scanner me=new Scanner(System.in); System.out.println(“請(qǐng)輸入您的會(huì)員編號(hào):”); s1=me.next(); System.out.println(“請(qǐng)輸入您要兌換的禮品編號(hào):”); s2=me.next(); System.out.println(“請(qǐng)輸入您要兌換的禮品數(shù)量:”); a=me.nextInt(); boolean b1=true; for(int i=0;i {b=giftgroup.get(i).costjf; c=giftgroup.get(i).caption; b1=false; } if(b1==true)System.out.println(“查無此禮品!”); else vipmanger.exchange(s1, a, b); System.out.println(“兌換結(jié)果:”); System.out.println(“禮品名稱”+“ ”+“禮品積分”+“ ”+“禮品數(shù)量”+“ ”+“消耗積分”); System.out.println(c+“ ”+b+“ ”+a+“ ”+(a*b));} public static boolean start(){ menu m=new menu(); m.gift(); int x; Scanner me= new Scanner(System.in); x=me.nextInt(); switch(x){ case 1:show();break; case 2:delete();break; case 3:addd();break; case 4:exchange();break; case 5:return false; } return true;} } public class shoping { static void shop(){ bookmanger.show();String s1,s2,s3; int a,b=0;Scanner me=new Scanner(System.in);System.out.println(“請(qǐng)輸入您的會(huì)員編號(hào):”);s1=me.next();System.out.println(“請(qǐng)輸入書籍編號(hào):”);s2=me.next();System.out.println(“請(qǐng)輸入購買數(shù)量:”);a=me.nextInt();b=bookmanger.price(s2);s3=bookmanger.name(s2);System.out.println(“書名”+“ ”+“單價(jià)”+“ ”+“數(shù)量”+“ ”+“總價(jià)”);System.out.println(s3+“ ”+b+“ ”+a+“ ”+(a*b));vipmanger.shop(s1, a, b);} public static boolean start(){ menu m=new menu(); m.shopping(); int x; Scanner me= new Scanner(System.in); x=me.nextInt(); switch(x){ case 1:shop();break; case 2:return false; } return true;} } public class menu { void mainmenu(){ System.out.println(“ 書店管理系統(tǒng)”); System.out.println(“****************************”); System.out.println(“書店管理系統(tǒng)”); System.out.println(“ 1、會(huì)員管理”); System.out.println(“ 2、書籍管理”); System.out.println(“ 3、購物結(jié)算”); System.out.println(“ 4、積分兌換禮品”); System.out.println(“ 5、注銷”); System.out.println(“****************************”); } public void vip(){ System.out.println(“書店管理系統(tǒng)>會(huì)員管理:”); System.out.println(“****************************”); System.out.println(“ 1、顯示會(huì)員信息”); System.out.println(“ 2、刪除會(huì)員”); System.out.println(“ 3、添加會(huì)員”); System.out.println(“ 4、修改會(huì)員信息”); System.out.println(“ 5、查詢會(huì)員”); System.out.println(“ 6、返回上層菜單”); System.out.println(“****************************”); } public void bookmanger(){ System.out.println(“書店管理系統(tǒng)>書籍管理:”); System.out.println(“****************************”); System.out.println(“ 1、書籍信息查詢”); System.out.println(“ 2、刪除書籍”); System.out.println(“ 3、添加書籍”); System.out.println(“ 4、返回上層菜單”); System.out.println(“****************************”); } public void shopping(){ System.out.println(“書店管理系統(tǒng)>購物結(jié)算:”); System.out.println(“****************************”); System.out.println(“ 1、購物”); System.out.println(“ 2、返回上層菜單”); System.out.println(“****************************”); } public void gift(){ System.out.println(“書店管理系統(tǒng)>禮品兌換:”); System.out.println(“****************************”); System.out.println(“ 1、禮品信息”); System.out.println(“ 2、刪除禮品”); System.out.println(“ 3、添加禮品”); System.out.println(“ 4、兌換禮品”); System.out.println(“ 5、返回上層菜單”); System.out.println(“****************************”); } public static void main(String[] args){ loaduser u1=new loaduser(“manger”,“416426”); u1.load();menu m1=new menu(); vipmanger vip=new vipmanger();bookmanger book=new bookmanger();giftmanger gi=new giftmanger(); while(true){ m1.mainmenu(); int x; Scanner me=new Scanner(System.in); x=me.nextInt(); switch(x){ case 1:while(vipmanger.start());break; case 2:while(bookmanger.start());break; case 3:while(shoping.start());break; case 4:while(giftmanger.start());break; case 5:u1.load(); } } } }