酒店管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文_第1頁
酒店管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文_第2頁
酒店管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文_第3頁
酒店管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文_第4頁
酒店管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

XX科技大學(xué)畢業(yè)設(shè)計(論文)題目酒店管理系統(tǒng)的設(shè)計與實現(xiàn)作者學(xué)院專業(yè)學(xué)號指導(dǎo)教師二〇一二年五月二十二日摘要隨著社會的發(fā)展,計算機(jī)信息管理系統(tǒng)越來越受到企業(yè)重視,傳統(tǒng)的酒店管理往往令管理者花大量的時間來處理顧客投訴,例如錯誤查詢、煩瑣的登記和結(jié)帳手續(xù)、旅客費用計算錯誤、空余客房資料不能及時提供等,從而影響出租率,使得管理人員不得不集中精力規(guī)劃管理運行策略和進(jìn)行決策。以上問題可通過電腦系統(tǒng)輔助解決,酒店管理的電腦化,不僅是體現(xiàn)酒店現(xiàn)代化形象的一個重要標(biāo)志,而且對于提高員工工作效率,加速資金周轉(zhuǎn)、降低各項成本及改善服務(wù)質(zhì)量都有十分積極的作用。本文主要分析了酒店管理系統(tǒng)的一些基本功能和組成情況,包括系統(tǒng)的需求分析、系統(tǒng)結(jié)構(gòu),功能模塊劃分以及數(shù)據(jù)庫模式分析等,重點對應(yīng)用程序的實際開發(fā)實現(xiàn)作了介紹。達(dá)到了數(shù)據(jù)的一致性和安全性,且應(yīng)用程序功能完備,符合了酒店管理系統(tǒng)作為典型的信息管理系統(tǒng)(MIS)的要求。關(guān)鍵詞:酒店管理系統(tǒng);JAVA;MySQLABSTRACTWiththedevelopmentofsociety,informationmanagementsystemofthecomputerisbeingpaidattentiontobyenterprises,thetraditionalhotelmanagementoftenmakemanagersspendalotoftimetodealwithcustomercomplaints,suchasincorrectinformation,cumbersomeregistrationandpaymentprocedures,thecostofmiscalculationpassengers,informationisnottimelyprovidedfreerooms,thusaffectingtherentalrate,makethemanagementstafftoconcentrateonstrategicplanningandoperationalmanagementdecision-making.Abovethequestionmaythroughthecomputersystemaidedsolution,thehotelmanagementcomputerization,notonlyistheembodimentofhotelimageofamodernimportantsign,butalsotoimproveemployeeworkefficiency,acceleratethecapitalturnover,reducecostsandimprovethequalityofserviceallhastheextremelypositiverole.Thispapermainlyanalyzesthehotelmanagementsystemofsomeofthebasicfunctionsandcomposition,includingthesystemrequirementanalysis,systemstructure,functionmoduleanddatabaseschemaanalysis,focusingontheactualapplicationdevelopmentwasintroducedtoachieve.Achievedataconsistencyandsecurity,andapplicationfunctions,inlinewiththehotelmanagementsystemasatypicalmanagementinformationsystem(MIS)requirements.AndbrieflyintroducedtheprogrammingenvironmentoftheJavaandMySQLdatabasemanagementsystemfeatures.Keywords:HotelManagementSystem;JAVA;MySQL湖南科技大學(xué)本科生畢業(yè)設(shè)計(論文)-i-目錄第一章緒論 11.1研發(fā)背景 11.2系統(tǒng)目標(biāo) 11.3組織結(jié)構(gòu) 1第二章系統(tǒng)相關(guān)技術(shù) 32.1JDK簡介 32.2Eclipse簡介 32.3MySQL簡介 3第三章系統(tǒng)設(shè)計 63.1系統(tǒng)功能需求 63.3系統(tǒng)功能模塊圖 73.4數(shù)據(jù)庫設(shè)計 8第四章系統(tǒng)實現(xiàn) 94.1開發(fā)環(huán)境的搭建 94.1.1JDK下載、安裝及配置 94.1.2MySql的下載、安裝及配置 104.1.3Eclipse的下載、安裝及配置 104.2數(shù)據(jù)庫實現(xiàn) 114.3主要功能模塊的實現(xiàn) 164.3.1系統(tǒng)登錄 164.3.2主界面 174.3.3散客開單 184.3.4團(tuán)體開單 204.3.5賓客結(jié)帳 224.3.6客房預(yù)訂 244.3.7營業(yè)查詢 264.3.8客戶管理 284.3.9系統(tǒng)設(shè)置 30第五章總結(jié) 35致謝 36參考文獻(xiàn) 37湖南科技大學(xué)本科生畢業(yè)設(shè)計(論文)2-第一章緒論1.1研發(fā)背景隨著旅游業(yè)的發(fā)展,酒店、餐飲娛樂行業(yè)日趨發(fā)達(dá),引入全方位的電腦服務(wù)和電腦管理日益流行。同時,酒店和餐廳娛樂業(yè)引入電腦服務(wù)和管理也取得了優(yōu)良的經(jīng)濟(jì)效益和社會效益。為此,國家建設(shè)部已于最近作出明確規(guī)定:凡星級酒店在項目審批時,其設(shè)計方案必須包括電腦管理系統(tǒng),否則不予立項。可見,酒店管理電腦化勢在必行。酒店管理系統(tǒng)將先進(jìn)的電腦技術(shù)與現(xiàn)代酒店服務(wù)管理完美地結(jié)合起來,實現(xiàn)了住宿、餐飲、娛樂全新概念的服務(wù)和管理方式。開發(fā)一款用于酒店管理,使酒店更具信息化管理,方便使用者查閱,減輕管理人員的工作量。該系統(tǒng)具備散客開單、團(tuán)體開單、賓客結(jié)帳、客房預(yù)訂、營業(yè)查詢、客戶管理、系統(tǒng)設(shè)置等等功能。同時為了方便工作人員的管理系統(tǒng)還具備權(quán)限設(shè)置功能,可以向系統(tǒng)中添加系統(tǒng)角色,系統(tǒng)用戶及設(shè)置權(quán)限,還可以查看系統(tǒng)用戶操作日志。1.2系統(tǒng)目標(biāo)此次設(shè)計將要模擬完成建立一個酒店管理系統(tǒng)系統(tǒng),實現(xiàn)信息化,節(jié)省大量的勞力財力,加強(qiáng)公司的現(xiàn)代化管理和高效的服務(wù)。酒店日常管理中所涉及到的大量數(shù)據(jù)都由數(shù)據(jù)庫管理系統(tǒng)管理。本文中數(shù)據(jù)庫服務(wù)器端采用MySQL作為后臺數(shù)據(jù)庫,結(jié)合SQL語句強(qiáng)大的處理功能實現(xiàn)酒店管理中各個對象的分類、添加、刪除、修改等操作,采用免費的eclipse編程平臺,使開發(fā)成本降到最小。經(jīng)過對酒店管理業(yè)務(wù)的具體分析,精心對相關(guān)信息的學(xué)習(xí)和在指導(dǎo)老師的指導(dǎo)下,朋友的幫助下多次改進(jìn)終于開發(fā)制作了這個酒店管理系統(tǒng),本系統(tǒng)的設(shè)計遵循軟件開發(fā)的全過程,在做需求分析的時候?qū)嶋H到酒店企業(yè)中熟悉酒店的業(yè)務(wù)流程和管理,然后概要設(shè)計,詳細(xì)設(shè)計和編碼測試。每個過程都按照軟件工程的規(guī)范進(jìn)行。本系統(tǒng)的設(shè)計中運用Java技術(shù)和SQL語言操作后臺數(shù)據(jù)庫。由于Java虛擬機(jī),實現(xiàn)了各種平臺的兼容性,體現(xiàn)了良好的跨平臺特點和編程技術(shù)的優(yōu)點。該系統(tǒng)的操作界面簡潔,適合各類管理人員應(yīng)用。在安全性方面,通過數(shù)據(jù)庫的權(quán)限管理和Java的優(yōu)秀技術(shù),實現(xiàn)系統(tǒng)的靈活性和系統(tǒng)的安全性。管理者還可以通過修改密碼來進(jìn)行用戶管理。筆者完成了酒店管理系統(tǒng)的全部制作,從需求分析到編碼測試,從概要設(shè)計到詳細(xì)設(shè)計,基本實現(xiàn)了酒店管理系統(tǒng)的基本功能,并對業(yè)務(wù)所需要信息進(jìn)行維護(hù)。本系統(tǒng)有以下特點:系統(tǒng)中模塊劃分明確,模塊功能設(shè)計有較強(qiáng)的針對性。系統(tǒng)操作界面簡單,靈活性好、響應(yīng)時間短,系統(tǒng)安全性高,運行穩(wěn)定。設(shè)計完全符合軟件工程中的各個階段的要求,模塊間具有高內(nèi)聚,低耦合的良好性能。1.3組織結(jié)構(gòu)本論文的主要內(nèi)容安排如下:第一章:緒論。介紹課題研究的背景和目標(biāo)。第二章:系統(tǒng)相關(guān)技術(shù)。涉及到開發(fā)用的技術(shù)與理論概念。第三章:系統(tǒng)設(shè)計。需求分析與技術(shù)分析。第四章:系統(tǒng)實現(xiàn)。根據(jù)需求分析和技術(shù)分析來實現(xiàn)系統(tǒng)的各個模塊功能,使系統(tǒng)能夠正常運行。這部分主要搭建開發(fā)環(huán)境,設(shè)計數(shù)據(jù)庫,編寫代碼,測試,運行,修改bug等。第五章:結(jié)論。對本課題做一個總結(jié),對本課題的重點難點做一個分析,提出對本系統(tǒng)需要改進(jìn)與加強(qiáng)的地方。湖南科技大學(xué)本科生畢業(yè)設(shè)計(論文)8-第二章系統(tǒng)相關(guān)技術(shù)2.1JDK簡介JDK(JavaDevelopmentKit)是整個Java的核心,包括了Java運行環(huán)境(JavaRuntimeEnvirnment),一堆Java工具和Java基礎(chǔ)的類庫(rt.jar)。不論什么Java應(yīng)用服務(wù)器實質(zhì)都是內(nèi)置了某個版本的JDK。因此掌握J(rèn)DK是學(xué)好Java的第一步。最主流的JDK是Sun公司發(fā)布的JDK,除了Sun之外,還有很多公司和組織都開發(fā)了自己的JDK,例如IBM公司開發(fā)的JDK,BEA公司的Jrocket,還有GNU組織開發(fā)的JDK等等。其中IBM的JDK包含的JVM(JavaVirtualMachine)運行效率要比SunJDK包含的JVM高出許多。而專門運行在x86平臺的Jrocket在服務(wù)端運行效率也要比SunJDK好很多。從SUN的JDK5.0開始,提供了泛型等非常實用的功能,其版本信息也不再延續(xù)以前的1.2,1.3,1.4,而是變成了5.0,6.0了。從6.0開始,其運行效率得到了非常大的提高,尤其是在桌面應(yīng)用方面。2.2Eclipse簡介Eclipse是一個開放源代碼的軟件開發(fā)項目,專注于為高度集成的工具開發(fā)提供一個全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺。它主要由Eclipse項目、Eclipse工具項目和Eclipse技術(shù)項目三個項目組成,具體包括四個部分組成——EclipsePlatform、JDT、CDT和PDE.JDT支持Java開發(fā)、CDT支持C開發(fā)、PDE用來支持插件開發(fā),EclipsePlatform則是一個開放的可擴(kuò)展IDE,提供了一個通用的開發(fā)平臺。它提供建造塊和構(gòu)造并運行集成軟件開發(fā)工具的基礎(chǔ)。EclipsePlatform允許工具建造者獨立開發(fā)與他人工具無縫集成的工具從而無須分辨一個工具功能在哪里結(jié)束,而另一個工具功能在哪里開始。EclipseSDK(軟件開發(fā)者包)是EclipsePlatform、JDT和PDE所生產(chǎn)的組件合并,它們可以一次下載。這些部分在一起提供了一個具有豐富特性的開發(fā)環(huán)境,允許開發(fā)者有效地建造可以無縫集成到EclipsePlatform中的工具。EclipseSDK由Eclipse項目生產(chǎn)的工具和來自其它開放源代碼的第三方軟件組合而成。Eclipse項目生產(chǎn)的軟件以CPL發(fā)布,第三方組件有各自自身的許可協(xié)議?,F(xiàn)在eclipse已經(jīng)成為最廣泛的Java開發(fā)平臺,成為廣大Java愛好者的首選編程平臺。憑借其免費和穩(wěn)定以及強(qiáng)大的功能和豐富的插件功能,所以本程序采用eclipse環(huán)境。2.3MySQL簡介MySQL是一個精巧的SQL數(shù)據(jù)庫管理系統(tǒng),雖然它不是開放源代碼的產(chǎn)品,但在某些情況下你可以自由使用。由于它的強(qiáng)大功能、靈活性、豐富的應(yīng)用編程接口(API)以及精巧的系統(tǒng)結(jié)構(gòu),受到了廣大自由軟件愛好者甚至是商業(yè)軟件用戶的青睞,特別是與Apache和PHP/PERL結(jié)合,為建立基于數(shù)據(jù)庫的動態(tài)網(wǎng)站提供了強(qiáng)大動力。2.3.1MySQL的特點與作用MySQL是一個真正的多用戶、多線程SQL數(shù)據(jù)庫服務(wù)器。SQL(結(jié)構(gòu)化查詢語言)是世界上最流行的和標(biāo)準(zhǔn)化的數(shù)據(jù)庫語言。MySQL是以一個客戶機(jī)/服務(wù)器結(jié)構(gòu)的實現(xiàn),它由一個服務(wù)器守護(hù)程序mysqld和很多不同的客戶程序和庫組成。SQL是一種標(biāo)準(zhǔn)化的語言,它使得存儲、更新和存取信息更容易。例如,你能用SQL語言為一個網(wǎng)站檢索產(chǎn)品信息及存儲顧客信息,同時MySQL也足夠快和靈活以允許你存儲記錄文件和圖像。MySQL主要目標(biāo)是快速、健壯和易用。最初是因為我們需要這樣一個SQL服務(wù)器,它能處理與任何可不昂貴硬件平臺上提供數(shù)據(jù)庫的廠家在一個數(shù)量級上的大型數(shù)據(jù)庫,但速度更快,MySQL就開發(fā)出來。自1996年以來,我們一直都在使用MySQL,其環(huán)境有超過40個數(shù)據(jù)庫,包含10,000個表,其中500多個表超過7百萬行,這大約有100個吉字節(jié)(GB)的關(guān)鍵應(yīng)用數(shù)據(jù)。MySQL數(shù)據(jù)庫的主要功能只在組織和管理很龐大或復(fù)雜的信息和基于WEB的庫存查詢請求不僅僅為客戶提供信息,而且還可以為您自己使用數(shù)據(jù)庫可以提供如下功能:減少記錄編檔的時間減小記錄檢索時間靈活的查找序列靈活的輸出格式多個用戶同時訪問記錄2.3.2MySQL的技術(shù)路線與發(fā)展在運行數(shù)據(jù)庫系統(tǒng)時,MySQL的使用相當(dāng)簡單,且進(jìn)行MySQL安裝和使用所需的工作也很少。然而,不論您是什么級別的專家,MySQL的安裝程序都不能自動運行。MySQL數(shù)據(jù)庫系統(tǒng)由幾部分組成。2.3.3MySQL服務(wù)器MySQL的服務(wù)器能夠從命令行中手工啟動和終止服務(wù)器,并且在系統(tǒng)啟動和關(guān)閉時知道怎樣進(jìn)行自動啟動和關(guān)閉。如果服務(wù)器崩潰了或啟動不正常的話,了解怎樣使服務(wù)器再次運行也是重要的。2.3.4安全性當(dāng)運行MySQL安裝程序時,確保用戶所存儲的數(shù)據(jù)的安全性是很重要的。MySQL管理員有責(zé)任控制對數(shù)據(jù)目錄和服務(wù)器的訪問,并應(yīng)了解以下的問題:文件系統(tǒng)的安全性。UNIX機(jī)器可能會使幾個用戶賬號成為宿主賬號,而這些賬號都沒有與MySQL相關(guān)的管理職責(zé)。確保這些賬號沒有對數(shù)據(jù)目錄的訪問是重要的。因為這樣可以防止它們通過拷貝數(shù)據(jù)庫表或移動數(shù)據(jù)庫表,或者通過能夠讀取包含敏感信息的日志文件來損壞文件系統(tǒng)級的數(shù)據(jù)。您應(yīng)該知道如何建立MySQL服務(wù)器的UNIX用戶賬號,如何建立該用戶所擁有的數(shù)據(jù)目錄,以及如何啟動服務(wù)器以便利用該用戶的權(quán)限運行。服務(wù)器的安全性。必須了解MySQL的安全系統(tǒng)是怎樣進(jìn)行工作的,以便在建立用戶賬號時授予適當(dāng)?shù)臋?quán)限。通過網(wǎng)絡(luò)連接到服務(wù)器的用戶只允許做他們應(yīng)該做的事情。您不要由于對安全系統(tǒng)的錯誤理解,將超級用戶的訪問權(quán)授予匿名用戶。第三章系統(tǒng)設(shè)計3.1系統(tǒng)功能需求功能概述1、散客開單:完成散客的開單,可一次最多開5間相同類型的房間。2、團(tuán)體開單:完成團(tuán)體的開單,開放數(shù)量沒有限制,可同時開不同類型的房間。3、賓客結(jié)帳:自動統(tǒng)計每個登記客人在店時所發(fā)生的消費額和應(yīng)付款額,并完成結(jié)帳收銀操作。4、客房預(yù)訂:完成增加預(yù)訂、修改預(yù)訂、刪除預(yù)訂,預(yù)訂情況的查詢等功能。5、營業(yè)查詢:完成結(jié)帳單、全部賓客消費、在店賓客消費、離店賓客消費的查詢6、客戶管理:完成會員基本信息的維護(hù)和來賓一覽。7、系統(tǒng)設(shè)置:完成房間項目、客戶類型、操作員、計費設(shè)置。用戶權(quán)限分配管理員,具有操作全部功能的權(quán)限;普通用戶,部分功能不允許使用。系統(tǒng)數(shù)據(jù)流圖如圖3.1所示:消費信息消費信息表D3臺號信息表D2會員顧客開房、預(yù)定查詢房間信息D1房間信息表管理員刪除、修改添加管理員房間信息房間信息臺號信息房間信息房間信息查詢信息房間信息圖3.1系統(tǒng)數(shù)據(jù)流圖消費信息消費信息表D3臺號信息表D2會員顧客開房、預(yù)定查詢房間信息D1房間信息表管理員刪除、修改添加管理員房間信息房間信息臺號信息房間信息房間信息查詢信息房間信息表3.2功能需求與程序的關(guān)系功能需求散客開單團(tuán)體開單賓客結(jié)帳房間預(yù)定營業(yè)查詢客戶管理系統(tǒng)設(shè)置開單√√—————結(jié)帳——√————房間查詢————√——結(jié)帳查詢————√——賓客查詢————√——會員設(shè)置—————√操作員設(shè)置——————√房間設(shè)置——————√房間預(yù)定———√———3.3系統(tǒng)功能模塊圖登錄界面主框架窗口散客開單團(tuán)體開單賓客結(jié)帳客房預(yù)訂營業(yè)查詢客戶管理關(guān)于我們系統(tǒng)設(shè)置登錄界面主框架窗口散客開單團(tuán)體開單賓客結(jié)帳客房預(yù)訂營業(yè)查詢客戶管理關(guān)于我們系統(tǒng)設(shè)置離店賓客查詢房間項目設(shè)置客戶類型設(shè)置操作員設(shè)置計費設(shè)置在店賓客查詢結(jié)帳單查詢會員信息維護(hù)來賓信息一覽退出系統(tǒng)圖3.2系統(tǒng)功能模塊圖3.4數(shù)據(jù)庫設(shè)計該系統(tǒng)的主要的數(shù)據(jù)操作是對客房和客戶信息的管理,及對房間信息表、客戶信息表的操作:房間信息表:主鍵(pk)、房間號(id)、房間類型編號(r_type_id)、房間狀態(tài)(state)、所處位置(location)、房間電話(t_tel)、備注(remark)、狀態(tài)計時(statetime)、刪除標(biāo)記(delmark)等??蛻粜畔⒈恚褐麈I(pk)、客戶類型編號(id)、客戶類型(c_type)、證件號(no_post)、電話號碼(c_tel)、備注(remark)、刪除標(biāo)記(delmark)等。全局E-R圖如圖3.2:編號編號類型狀態(tài)姓名類型證件號使用使用顧客客房mn顧客客房類型聯(lián)系方式計時位置類型聯(lián)系方式計時位置mn服務(wù)維護(hù)服務(wù)維護(hù)11服務(wù)臺服務(wù)臺圖3.2全局E-R圖21-第四章系統(tǒng)實現(xiàn)4.1開發(fā)環(huán)境的搭建4.1.1JDK下載、安裝及配置JDK是整個Java的核心,包括了Java運行環(huán)境(JavaRuntimeEnvirnment),一堆Java工具和Java基礎(chǔ)的類庫(rt.jar)。第一步:下載JDK的一個常用版本J2SE(Java2SDKStandardEdition)可以從Sun的Java網(wǎng)站上下載到:/j2se/downloads.html,我們建議下載最新版本的。當(dāng)前最新版本為:J2SE5.0JDK。第二步:安裝下載好的JDK是一個可執(zhí)行安裝程序,執(zhí)行安裝即可。安裝完成在安裝目錄下會有jdk1.5.0和jre1.5.0兩個文件夾。第三步:設(shè)置環(huán)境變量打開“我的電腦->屬性->高級->環(huán)境變量->系統(tǒng)變量”,設(shè)置以下三個變量:JAVA_HOME=<JDK安裝目錄>如:E:\ProgramFiles\Java\jdk1.5.0CLASSPATH=.Path=<原Path>;<bin安裝目錄>如:E:\ProgramFiles\Java\jdk1.5.0\bin請注意:CLASSPATH變量的值是“.”(不包括引號).Java虛擬機(jī)的ClassLoader會按照CLASSPATH設(shè)定的路徑搜索class文件。請注意,ClassLoader不會在當(dāng)前目錄下搜索,習(xí)慣了Windows的用戶可能會感到意外,Linux用戶就非常清楚。為方便起見,我們將CLASSPATH設(shè)置為“.”就包括了當(dāng)前目錄。第四步:環(huán)境測試1、編輯:用任何文本編輯器編輯如下:HelloWorld.java文件publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("HelloWorld!");}}2、編譯:打開控制臺,切換到該文件所在目錄下,輸入:javacHelloWorld.java如果編譯通過,屏幕上沒有任何顯示。否則,屏幕上會有出錯信息。3、運行:輸入:javaHelloWorld屏幕輸出:HelloWorld!說明運行成功!JDK環(huán)境搭建成功!4.1.2MySql的下載、安裝及配置第一步:下載MySql是一款非常優(yōu)秀的開源數(shù)據(jù)庫管理系統(tǒng)你可以從其官方網(wǎng)站上得到:/downloads/index.html頁面上有各個版本的下載,建議您下載最新版(但不要下載測試版)。網(wǎng)站上提供了安裝版和非安裝版(zip包),我們以安裝版為例。第二步:安裝安裝版提供一個可執(zhí)行文件,雙擊即可完成安裝。第三步:測試到bin目錄下(我的是E:\ProgramFiles\MySQL\MySQLServer4.1\bin)找到winmysqladmin.exe,雙擊運行,進(jìn)行第一次注冊。設(shè)置完后,運行“cmd”,改變目錄到bin目錄下,運行mysql–uroot–p,輸入密碼(默認(rèn)為空)進(jìn)入mysql。輸入showdatabases;如果你看到:++|Database|++|mysql||test|++2rowsinset(0.02sec)mysql已經(jīng)安裝成功了。4.1.3Eclipse的下載、安裝及配置Eclipse是一款非常優(yōu)秀的開源IDE,基于Java的可擴(kuò)展開發(fā)平臺。除了可作為Java的集成開發(fā)環(huán)境外,還可作為編寫其他語言(如C++和Ruby)的集成開發(fā)環(huán)境。Eclipse憑借其靈活的擴(kuò)展能力、優(yōu)良的性能與插件技術(shù),受到了越來越多開發(fā)者的喜愛。1、下載Eclipse下載面向Windows系列操作系統(tǒng)的最新版本Eclipse-SDK資源包(eclipse-SDK-3.6.1-win32.zip)。該資源包包括了適合于windows平臺的Eclipse開發(fā)環(huán)境、Java開發(fā)環(huán)境、Plug-in開發(fā)環(huán)境、所有源代碼和文檔。2、安裝Eclipse下載Eclipse-SDK(eclipse-SDK-3.6.1-win32.zip)后,將其解壓。Eclipse是一個綠色軟件,無需安裝即可執(zhí)行。進(jìn)入解壓后的eclipse目錄,點擊eclipse.exe文件即可運行Eclipse集成開發(fā)環(huán)境。如需中文版的Eclipse集成開發(fā)環(huán)境,可在Eclipse官方網(wǎng)站下載中文語言包。(NLpack1-eclipse-SDK-3.6.1-win32.zip)。解壓后,分別將其features、plugins目錄下的文件復(fù)制到Eclipse安裝目錄下的features、plugins4.2數(shù)據(jù)庫實現(xiàn)表4.1房間類型表[roomtype]字段名類型允許為空默認(rèn)值說明pkdecimal×—主鍵idvarchar×—房間類型編號r_typevarchar×—房間類型bedint×—床位數(shù)pricefloat×—單價foregiftfloat×—押金cl_roomvarchar×N是否鐘點房cl_pricefloat×—鐘點房價remarkvarchar√—備注sysmarkint×0系統(tǒng)級標(biāo)志delmarkInt×0刪除標(biāo)記表4.2房間信息表[roominfo]字段名類型允許為空默認(rèn)值說明pkdecimal×—主鍵idvarchar×—房間號r_type_idvarchar×—房間類型編號statevarchar×—房間狀態(tài)locationvarchar×—所處位置r_telvarchar×—房間電話remarkvarchar√—備注statetimeint×0狀態(tài)計時delmarkint×0刪除標(biāo)記other1varchar√—保留1other2varchar√—保留2Indimarkint√—表4.3客戶類型表[customertype]字段名類型允許為空默認(rèn)值說明pkdecimal×—主鍵idvarchar×—客戶類型編號c_typevarchar×—客戶類型dis_attrvarchar×—折扣屬性discountint×—折扣比例pricefloat×—原價格dis_pricevarchar×—折扣后價格remarkvarchar√—備注delmarkint×0刪除標(biāo)記表4.4入住信息表[livein]字段名類型允許為空默認(rèn)值說明pkdecimal×—主鍵In_novarchar×—入住單號r_novarchar×—房間號r_type_idvarchar×—房間類型編號Main_roomvarchar×—主房間號Main_pkdecimal×—主PKc_type_idvarchar×—客戶類型編號m_idvarchar×*客戶編號c_namevarchar×—客戶名稱c_jpvarchar√—客戶名稱簡拼sexvarchar×—性別zj_typevarchar×—證件類型zj_novarchar×—證件編號addressvarchar×*地址renshuint×—人數(shù)in_timevarchar×—入住時間daysint×—預(yù)住天數(shù)accountfloat×—消費數(shù)量foregiftfloat×押金chk_novarchar×*結(jié)算單號chk_timevarchar×*結(jié)算時間remarkvarchar√—備注useridvarchar×—操作員cluemarkint×0提醒標(biāo)志statemarkvarchar×0狀態(tài)標(biāo)志delmarkint×0刪除標(biāo)記表4.5預(yù)定信息表[engage]字段名類型允許為空默認(rèn)值說明pkdecimal×—主鍵c_namevarchar×—客戶名稱c_jpvarchar×—客戶名稱簡拼c_telvarchar×—客戶電話r_type_idvarchar×—房間類型編號r_novarchar×—房間號pa_timevarchar×—預(yù)抵時間keep_timeint×—保留時間eng_timevarchar×—預(yù)定時間remarkvarchar√—備注engagemarkint×0預(yù)定狀態(tài)標(biāo)志cluemarkint×0提醒標(biāo)志delmarkint×0刪除標(biāo)記表4.6預(yù)訂信息中間表[engage1]字段名類型允許為空默認(rèn)值說明pkdecimal×—主鍵c_namevarchar×—客戶名稱c_jpvarchar×—客戶名稱簡拼c_telvarchar×—客戶電話r_type_idvarchar×—房間類型編號r_novarchar×—房間號pa_timevarchar×—預(yù)抵時間keep_timeint×—保留時間eng_timevarchar×—預(yù)定時間remarkvarchar√—備注engagemarkint×0預(yù)定狀態(tài)標(biāo)志cluemarkint×0提醒標(biāo)志delmarkint×0刪除標(biāo)記表4.7結(jié)算表[checkout]字段名類型允許為空默認(rèn)值說明pkdecimal×—主鍵chk_novarchar×—結(jié)帳單號in_novarchar×—入住單號daysint×—實住天數(shù)moneyfloat×—金額chk_timevarchar×—結(jié)算時間remarkvarchar√0備注delmarkint×—刪除標(biāo)記表4.8臨時費用表[expense_temp]字段名類型允許為空默認(rèn)值說明In_novarchar×—入住號r_novarchar×—房號pricefloat×—價格c_namevarchar×—用戶姓名discountbigint×—折扣moneyfloat×—金額In_timevarchar×—入住時間useridvarchar×—用戶編號表4.9臨時結(jié)算表[checkout_temp]字段名類型允許為空默認(rèn)值說明pkdecimal×—主鍵chk_novarchar×—結(jié)帳單號in_novarchar×—入住單號daysint×—實住天數(shù)moneyfloat×—金額chk_timevarchar×—結(jié)算時間remarkvarchar√0備注delmarkint×—刪除標(biāo)記表4.10日志表[record]字段名類型允許為空默認(rèn)值說明pkdecimal×—主鍵timedatetime×—操作時間operatorvarchar×—操作員briefvarchar×—內(nèi)容摘要contentvarchar×—內(nèi)容delmarkint×—刪除標(biāo)記other1varchar√0保留1表4.11操作員信息表[pwd]字段名類型允許為空默認(rèn)值說明pkdecimal×—主鍵useridvarchar×—用戶登錄IDpwdvarchar×—登錄密碼puisint×—用戶權(quán)限delmarkint√0刪除標(biāo)記表4.12會員信息表[member]字段名類型允許為空默認(rèn)值說明pkdecimal×—主鍵m_idvarchar×—會員編號m_namevarchar×—會員名稱sexvarchar×—性別zj_novarchar×—證件編號addressvarchar×—詳細(xì)地址m_telvarchar×—聯(lián)系電話remarkvarchar×—備注delmarkint√0刪除標(biāo)記表4.13散客開單中間表[roomnum]字段名類型允許為空默認(rèn)值說明roomidvarchar√—房間編號表4.14團(tuán)體開單中間表[roomnums]字段名類型允許為空默認(rèn)值說明rr_typevarchar√—房間類型roomidvarchar√—房間編號pricefloat√—單價4.3主要功能模塊的實現(xiàn)4.3.1系統(tǒng)登錄實現(xiàn)用戶登錄,如圖4.1所示:圖4.1系統(tǒng)登錄選擇用戶名,輸入密碼,調(diào)用JDBC.java對象連接數(shù)據(jù)庫,在表tb_user中進(jìn)行多次核對,以保證更高的準(zhǔn)確度,連續(xù)3次輸入錯誤將自動退出登錄界面,部分核心代碼如下:privatevoiddengLu(){ Stringuser=cb.getSelectedItem()+""; Stringpwd =String.valueOf(pf.getPassword()); Stringcode="selectpwd,puisfrompwdwheredelmark=0anduserid='"+user+"'"; ResultSetrs=sunsql.executeQuery(code); try{ if(rs.next()){ //用戶名存在 if(pwd.equals(rs.getString(1))){ bott.setText(clue+"登錄成功,正在進(jìn)入系統(tǒng)..."); Stringpuis=rs.getString(2); //獲得操作員權(quán)限 booleanflag=Journal.writeJournalInfo(user,"登錄本系統(tǒng)",Journal.TYPE_LG); if(flag){ //記錄日志 newcom.sunshine.mainframe.HotelFrame(user,puis); //進(jìn)入主程序窗口(用戶名,權(quán)限) this.setVisible(false); }//Endif(pwd.equals(rs.getString(1))) } else{ bott.setText(clue+"用戶ID["+user+"]不存在..."); }//Endif(rs.next()) }程序流程圖:用戶名和密碼重新輸入用戶名和密碼提示錯誤提示錯誤數(shù)據(jù)庫匹配退出登錄數(shù)據(jù)庫匹配退出登錄錯誤正確登錄成功登錄成功主界面主界面圖4.2程序流程圖4.3.2主界面系統(tǒng)運行主框架,實時顯示房態(tài)信息,并進(jìn)行客房預(yù)定、散客開單、團(tuán)體開單、營業(yè)查詢等操作,如果是超級用戶可以進(jìn)行客戶管理、系統(tǒng)設(shè)置等所有操作,普通用戶只能進(jìn)行開單、預(yù)定、查詢等常規(guī)操作,如圖4.3所示:圖4.3主界面主窗體分4個模塊:左上面板、左下面板、右下面板還有上面框架。在左下的快速通道欄,輸入放號,將在狀態(tài)欄顯示相應(yīng)房號的所有信息,便簽用來進(jìn)行實時的記錄備忘或事件,核心代碼如下:publicHotelFrame(Stringus,Stringpu){ super("王府酒店管理系統(tǒng)"); userid=us; //獲得操作員名稱 puil=pu; //獲得操作員權(quán)限 panelMain=newJPanel(newBorderLayout()); //主面板 //制作菜單 buildMenuBar(); //制作工具欄 buildToolBar(); //制作分割面板 buildSpaneMain(); //制作窗口底端信息框 buildBott(); //加入組件到主面板 panelMain.add("North",tb); //加入工具欄 panelMain.add("South",bott); //加入窗口底端信息框 panelMain.add("Center",spaneMain); //加入分割面板 //加入菜單欄 this.setJMenuBar(mb); //加事件監(jiān)聽 addListener(); this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEventwe){ quit(); }//EndwindowClosing }); (newThread(this)).start(); //啟動房間狀態(tài)檢查線程 }}4.3.3散客開單完成對散客的開單任務(wù),最多能追加五個相同類型的房間,如圖4.4所示:圖4.4散客開單以客戶的第一個房間號為主號,可以開設(shè)不多于5間同類型的房間,核心代碼如下:privatevoidaddRoom(){ //獲得選擇的行號 intarows[]=tb1.getSelectedRows(); if(arows.length+tb2.getRowCount()>5){ JOptionPane.showMessageDialog(null,"最多只能追加四間客房,"+ "入住五間以上客房請使用團(tuán)體開單","提示",JOptionPane.INFORMATION_MESSAGE); StringsqlCode[]=newString[arows.length*2]; if(arows.length>0){ for(inti=0;i<arows.length;i++){ sqlCode[ar]="insertintoroomnum(roomid)values('"+ dtm1.getValueAt(arows[i],0)+"')";//加入開單列表 ar++; //清除可供列表 sqlCode[ar]="updateroominfosetindimark=1where"+ "delmark=0andid='"+dtm1.getValueAt(arows[i],0)+"'"; ar++; zRooms++; //記數(shù)器+1 }//Endfor intflag=sunsql.runTransaction(sqlCode); if(flag<arows.length){ JOptionPane.showMessageDialog(null,"添加失敗,請檢查網(wǎng)絡(luò)情況", "提示",JOptionPane.INFORMATION_MESSAGE); zRooms=zr; }else{ JOptionPane.showMessageDialog(null,"請在可供房間列表中選中指定房間,"+"再追加","提示",JOptionPane.INFORMATION_MESSAGE); return; }//endif }散客開單退房數(shù)據(jù)流圖:客房顧客信息登記開通服務(wù)客房顧客信息登記開通服務(wù)退房結(jié)賬申請開房申請成功申請退房圖4.5數(shù)據(jù)流圖4.3.4團(tuán)體開單完成對團(tuán)體賓客的開單任務(wù)。房間數(shù)沒有限制,可同時追加不同類型的房間,如下圖4.6所示:圖4.6團(tuán)體開單核心代碼: StringsqlCode[]=newString[arows.length*2]; if(arows.length>0){ for(inti=0;i<arows.length;i++){ sqlCode[ar]=dtm2.getValueAt(arows[i],0)+""; if(!sqlCode[ar].equals(tf5.getText())){ //判斷主房間不能刪除 sqlCode[ar]="deletefromroomnumswhereroomid='"+ dtm2.getValueAt(arows[i],0)+"'";//移除開單列表 ar++; //清除可供列表 sqlCode[ar]="updateroominfosetindimark=0where"+ "delmark=0andid='"+dtm2.getValueAt(arows[i],0)+"'"; ar++; }else{ JOptionPane.showMessageDialog(null,"["+dtm2.getValueAt(arows[i],0)+ "]房間是主房間,不能移除...","提示",JOptionPane.INFORMATION_MESSAGE); intflag=sunsql.runTransaction(sqlCode);34-程序流程圖:客房顧客信息登記開通服務(wù)客房顧客信息登記開通服務(wù)退房結(jié)賬申請開房申請成功申請退房主房號圖4.7程序流程圖4.3.5賓客結(jié)帳自動統(tǒng)計每個登記客人在店時所發(fā)生的消費額和應(yīng)付款額,并完成結(jié)帳收銀操作,如圖4.8所示圖4.8收銀結(jié)賬選擇要結(jié)賬的房號,實收金額大于或等于應(yīng)收金額時可以成功結(jié)賬,如果實收金額小于營收金額則有錯誤提示,結(jié)賬成功后,客房恢復(fù)可用。程序流程圖:顧客顧客押金申請押金入住時間退房入住時間服務(wù)臺服務(wù)臺房間類型房間類型折扣信息折扣信息信息整合結(jié)算結(jié)算結(jié)賬完成結(jié)賬完成圖4.9結(jié)賬流程圖核心代碼:longckPK=sunsql.getPrimaryKey(); //獲得結(jié)算記錄首PK StringchNO=suntools.getNumber(suntools.Number_JS); //獲得結(jié)算單號 StringchkTime=Journal.getNowDTime(); //結(jié)算時間 StringreMark=tf3.getText(); //備注 intflag=Integer.parseInt(sunini.getIniKey("Ck_Habitus"));//結(jié)算后的房間狀態(tài)0:可供1:清理 if(flag==1){ riState="臟房"; stateTime=sunini.getIniKey("Ck_Minute"); }//Endif sqlCode[i]="insertintocheckout(pk,chk_no,in_no,days,money,chk_time,remark)values("+ (ckPK+sc)+",'"+chNO+"','"+inNo+"',"+dtm.getValueAt(sc,6)+","+ dtm.getValueAt(sc,7)+",'"+chkTime+"','"+reMark+"')"; i++; sqlCode[i]="updateliveinsetstatemark='已結(jié)算'wherepk='"+dtm.getValueAt(sc,0)+"'"; flag=sunsql.runTransaction(sqlCode); //執(zhí)行事務(wù)操作 }elseif(flag==sqlCode.length){ //如果事務(wù)成功,則更改狀態(tài)圖片 RightTopPanel.setViewListButtonImage(dtm.getValueAt(i,1)+"", dtm.getValueAt(i,2)+"",riState); tf1.setText("0.00"); //清空控件 tf2.setText("0.00");4.3.6客房預(yù)訂完成增加預(yù)訂、修改預(yù)訂、刪除預(yù)訂,預(yù)訂情況的查詢等功能,如圖4.10、4.11所示:圖4.10客戶預(yù)定程序流程圖:顧客顧客申請服務(wù)臺信息確認(rèn)信息回饋服務(wù)臺信息采集預(yù)定信息預(yù)定信息確認(rèn)預(yù)定成功圖4.11預(yù)定流程圖客戶電話預(yù)定客房,為客戶選取房間,設(shè)置抵達(dá)時間及預(yù)留時間,房間狀態(tài)處于預(yù)定狀態(tài),客戶到前臺確認(rèn)開房,選擇對應(yīng)的預(yù)定房間選擇開設(shè)房間后房間處于使用狀態(tài),超過預(yù)留時間為開房,房間自動出于可用狀態(tài),也可以對預(yù)定房間進(jìn)行刪除、修改等操作,核心代碼如下: Objecto=ae.getSource(); if(o==bt1){ //增加預(yù)定信息 sunsql.executeUpdate("deletefromengage1"); StringsqlCode="selecta.r_type預(yù)定規(guī)格,b.r_no房間fromroomtypeasa,engage1asbwherea.id=b.r_type_id"; sunsql.initDTM(ei.dtm1,sqlCode); ei.chk.setSelected(false); ei.show(true); initDTM(); } elseif(o==bt2){ //修改預(yù)定信息 if(initMrt()){ //傳數(shù)據(jù)給窗口 em.show(true); //修改預(yù)定信息 initDTM(); //刷新表數(shù)據(jù) 添加、修改預(yù)訂信息時彈出子窗口,如圖4.11所示:圖4.11客房預(yù)訂核心代碼:publicvoidactionPerformed(ActionEventae){ Objecto=ae.getSource(); Stringr_type,r_no,pa_time,keep_time,remark; r_type=cb1.getSelectedItem()+""; r_no=cb2.getSelectedItem()+""; pa_time=tf3.getText(); keep_time=tf4.getText(); remark=ta.getText(); if(o==bt1){ //===============================================保存,用事務(wù)完成 if(r_no.equals("")||pa_time.equals("")||keep_time.equals("")){ JOptionPane.showMessageDialog(null,"預(yù)定信息有空值,請完整填寫!"); return; }else{// if(!suntools.isDate(pa_time)){//判斷預(yù)抵日期是否合法 JOptionPane.showMessageDialog(null,"預(yù)抵時間輸入有誤,請正確輸入(yyyy-mm-dd)"); tf3.setText(""); tf3.requestFocus(); }elseif(!suntools.isDate(tf4.getText())){//判斷保留時間是否合法 JOptionPane.showMessageDialog(null,"保留時間輸入有誤,請正確輸入(yyyy-mm-dd)"); tf4.setText(""); tf4.requestFocus(); }else{ StringsqlCode[]=newString[3];4.3.7營業(yè)查詢完成結(jié)帳單、全部賓客消費、在店賓客消費、離店賓客消費的查詢,如圖4.12所示:圖4.12營業(yè)查詢可通過時間查詢、條件查詢兩種方式顯示賓客消費信息,核心代碼:StringsqlCode="selecta.chk_no帳單號,b.r_no房間號,b.c_name賓客姓名,b.foregift已收押金,a.money實收金額,a.chk_time結(jié)算時間,a.remark備注"+ "fromcheckoutasa,liveinasbwherea.delmark=0anda.in_no=b.in_no"; sunsql.initDTM(dtm1,sqlCode); if(o==bt11){ //結(jié)帳單查詢 HotelFrame.lbA.setText(HotelFrame.clue+ "查詢結(jié)帳單信息"); }elseif(o==bt12){ //結(jié)帳單刷新 HotelFrame.lbA.setText(HotelFrame.clue+ "刷新結(jié)帳單信息"); }elseif(o==bt31){ //在店賓客查詢 HotelFrame.lbA.setText(HotelFrame.clue+ "查詢在店賓客信息"); }elseif(o==bt32){ //在店賓客刷新 HotelFrame.lbA.setText(HotelFrame.clue+ "刷新在店賓客信息"); }elseif(o==bt41){ //離店賓客查詢 HotelFrame.lbA.setText(HotelFrame.clue+ "查詢離店賓客信息"); }elseif(o==bt42){ //離店賓客刷新 HotelFrame.lbA.setText(HotelFrame.clue+ "刷新離店賓客信息"); } }4.3.8客戶管理完成會員基本信息的維護(hù)和來賓一覽,如圖4.13所示:圖4.13客戶管理可增加、刪除、修改會員信息,只有超級用戶才是進(jìn)入該設(shè)置,也可通過會員編號、姓名對會員信息進(jìn)行查詢,核心代碼如下: Objecto=ae.getSource(); if(o==bt1){//=====================================保存 longpk=sunsql.getPrimaryKey();//得到主鍵 Stringm_id,m_name,sex,zj_no,m_tel,address; if(m_id.equals("")||m_name.equals("")||zj_no.equals("")||m_tel.equals("")||address.equals("")){ //若添加項有空值 JOptionPane.showMessageDialog(null,"會員信息有空值,請重新輸入!"); return; }else{ try{ ResultSetrs=sunsql.executeQuery("selectm_idfrommemberwherem_id='"+m_id+"'anddelmark=0"); if(rs.next()){ JOptionPane.showMessageDialog(null,"該會員編號已存在,請重新輸入!"); StringsqlCode="insertintomember(pk,m_id,m_name,sex,zj_no,m_tel,address)"+ "values("+pk+",'"+m_id+"','"+m_name+"','"+sex+"','"+zj_no+"','"+m_tel+"','"+address+"')"; sunsql.executeUpdate(sqlCode); this.setVisible(false); if(!suntools.isNum(tf4.getText())){//判斷電話是否由數(shù)字組成 JOptionPane.showMessageDialog(null,"聯(lián)系電話必須由數(shù)字組成,請重新輸入!");增加、修改會員信息時彈出子窗口,如下圖4.14所示:圖4.14會員信息修改核心代碼: try{ ResultSetrs=sunsql.executeQuery("selectm_idfrommemberwherem_id='"+m_id+"'anddelmark=0"); if(rs.next()){ JOptionPane.showMessageDialog(null,"該會員編號已存在,請重新輸入!"); tf1.requestFocus(); tf1.setText(""); }elseif(!suntools.isNum(tf4.getText())){//判斷電話是否由數(shù)字組成 }else{//將添加的信息插入會員表 StringsqlCode="insertintomember(pk,m_id,m_name,sex,zj_no,m_tel,address)"+ "values("+pk+",'"+m_id+"','"+m_name+"','"+sex+"','"+zj_no+"','"+m_tel+"','"+address+"')"; sunsql.executeUpdate(sqlCode); this.setVisible(false); } if(!suntools.isNum(tf4.getText())){//判斷電話是否由數(shù)字組成 JOptionPane.showMessageDialog(null,"聯(lián)系電話必須由數(shù)字組成,請重新輸入!"); tf4.setText(""); }else{ tf5.requestFocus();4.3.9系統(tǒng)設(shè)置完成房間項目、客戶類型、操作員、計費設(shè)置,如圖4.15所示:圖4.15系統(tǒng)設(shè)置操作員設(shè)置主要包括對權(quán)限的設(shè)置,操作員的添加、修改、刪除,計費設(shè)置主要包括對鐘點房和普通房的初始計費時間的設(shè)置。核心代碼如下: longckPK=sunsql.getPrimaryKey(); //獲得結(jié)算記錄首PK StringchNO=suntools.getNumber(suntools.Number_JS); //獲得結(jié)算單號 StringchkTime=Journal.getNowDTime(); //結(jié)算時間 StringreMark=tf3.getText(); //備注 intcount=tb.getRowCount(); //得到有幾點結(jié)算記錄 StringsqlCode[]=newString[count*3]; //創(chuàng)建SQL語句數(shù)組 StringriState="可供"; //房間狀態(tài) StringstateTime="0"; //房間的狀態(tài)計時 if(flag==1){ stateTime=sunini.getIniKey("Ck_Minute"); }//Endif intsc=0; for(inti=0;i<count*3;i++){ //向結(jié)算表加數(shù)據(jù) inNo= sqlCode[i]="insertintocheckout(pk,chk_no,in_no,days,money,chk_time,remark)values("+ (ckPK+sc)+",'"+chNO+"','"+inNo+"',"+dtm.getValueAt(sc,6)+","+ dtm.getValueAt(sc,7)+",'"+chkTime+"','"+reMark+"')"; i++; //更改入住信息表里的記錄狀態(tài)為已結(jié)算 sqlCode[i]="updateroominfosetstate='"+riState+"',statetime="+stateTime+"wheredelmark=0andid='"+ dtm.getValueAt(sc,2)+"'"; sc++; //DTM指針+1 flag=sunsql.runTransaction(sqlCode); //執(zhí)行事務(wù)操作 for(inti=0;i<tb.getRowCount();i++){ RightTopPanel.setViewListButtonImage(dtm.getValueAt(i,1)+"", dtm.getValueAt(i,2)+"",riState);添加、修改房間類型時彈出子窗口。點擊房費打折彈出子窗口,如圖4.16、4.17所示:圖4.16房間參數(shù)修改圖4.17折扣設(shè)置房間項目設(shè)置包括房間類型設(shè)置、房間信息設(shè)置、房間的添加、刪除操作,房費的折扣設(shè)置等等,核心代碼:privatebooleanisValidity(){ if(tf1.getText().length()==0){ JOptionPane.showMessageDialog(null,"[房間編號]不能為空","提示", JOptionPane.INFORMATION_MESSAGE); tf1.requestFocus(true); returnfalse; }elseif(tf2.getText().length()==0){ JOptionPane.showMessageDialog(null,"房間[所在區(qū)域]不能為空","提示", JOptionPane.INFORMATION_MESSAGE); tf2.requestFocus(true); returnfalse; }elseif(!suntools.isNum(tf3.getText(),4,1000,9999)){ JOptionPane.showMessageDialog(null,"[房間電話]只能是數(shù)字,最長為4位,"+ "范圍1000-9999之間","提示",JOptionPane.INFORMATION_MESSAGE); tf3.requestFocus(true); returnfalse; }//Endif returntrue; }添加、修改房間類型窗口彈出子窗口。批量添加房間彈出子窗口,如圖4.18、4.19所示:圖4.18類型添加圖4.19房間批量添加實現(xiàn)房間類型的添加、修改、刪除等操作,批量的添加某類型的房間,核心代碼如下:privatebooleanisValidity(){ if(tf0.getText().length()==0){ JOptionPane.showMessageDialog(null,"房間[類型編號]不能為空","提示", JOptionPane.INFORMATION_MESSAGE); tf0.requestFocus(true); returnfalse; }elseif(tf1.getText().length()==0){ JOptionPane.showMessageDialog(null,"房間[類型名稱]不能為空","提示", JOptionPane.INFORMATION_MESSAGE); tf1.requestFocus(true); returnfalse; }elseif(!suntools.isNum(tf2.getText(),2,1,10)){ JOptionPane.showMessageDialog(null,"[床位數(shù)量]只能是數(shù)字,且范圍在1-10之間", "提示",JOptionPane.INFORMATION_MESSAGE); tf2.requestFocus(true); returnfalse; }elseif(Double.parseDouble(tf3.getText())>=Double.parseDouble(tf4.getText())){ JOptionPane.showMessageDialog(null,"[預(yù)設(shè)押金]必需要大于[預(yù)設(shè)單價]",單個添加、修改房間彈出子窗口,如圖4.20所示:圖4.20房間信息修改對單個房間進(jìn)行添加、修改,核心代碼如下:try{ ResultSetrs=sunsql.executeQuery("selectr_type_idfromroominfo"+ "wheredelmark=0andid='"+tf1.getText()+"'"); if(rs.next()){ //檢測新的房間編號是否存在 JOptionPane.showMessageDialog(null,"新指定的房間編號["+tf1.getText()+ "]已存在,不能執(zhí)行添加操作,請重新核對...","提示",JOptionPane.INFORMATION_MESSAGE); tf1.requestFocus(true); return; }//Endif rs=sunsql.executeQuery("selectidfromroominfo"+ "wheredelmark=0andr_tel='"+tf3.getText()+"'"); if(rs.next()){ //檢測新的房間電話號是否重復(fù) JOptionPane.showMessageDialog(null,"分配給新房間的電話號["+tf3.getText()+ "]已存在,不能執(zhí)行添加操作,請重新核對...","提示",

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論