第一篇:JAVA酒店管理系統(tǒng)
JAVA酒店管理系統(tǒng)
摘要
該酒店客房管理系統(tǒng)是基于JAVA的Application模式,運用JAVA語言開發(fā)技術(shù)和Mysql數(shù)據(jù)庫原理開發(fā)的。在該系統(tǒng)中,操作人員可通過房態(tài)查看或客房查詢來進行住宿登記,也可通過追加押金使房客繼續(xù)入住,可方便有效的對客房信息及住宿信息進行統(tǒng)計或設(shè)置,宿費提醒及掛帳退房功能可使酒店損失降低至最低點,操作員管理功能可實時地對操作人員進行有效地管理從而使酒店在客房管理上分工明確。該系統(tǒng)的合理運用能使得酒店提高其客房管理效率并節(jié)約管理成本。
該系統(tǒng)遵循軟件工程中的開發(fā)規(guī)則。本文介紹了酒店客房管理系統(tǒng)的開發(fā)過程,詳盡論述了需求分析、系統(tǒng)分析、概要設(shè)計、詳細設(shè)計、以及測試與調(diào)試的整個開發(fā)過程,總結(jié)了開發(fā)過程中的經(jīng)驗及本系統(tǒng)今后的改進方向。
關(guān)鍵詞
客房;JAVA;JDK;SQL
參考文獻
[1]夏昕著.深入淺出Hibernate北京:電子工業(yè)出版社,2005
[2] 強鋒科技著.Java開發(fā)利器:Hibernate開發(fā)及整合應(yīng)用大全 北京:清華大學(xué)出版社 出版日期: 2006-2-1
[3] :鄒竹彪.JSP寶典北京:電子工業(yè)出版社, 2006
[4](美)Hessert著.STRUTS 2003北京:機械工業(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北京:機械工業(yè)出版社原出版社:Wrox, 2003
[8] Bruce Tate / Justin Gehtland著.Spring北京:清華大學(xué)出版社, 2006
第二篇:基于酒店管理系統(tǒng)
基于酒店管理系統(tǒng)
①接待處必須備有工作日記,并規(guī)定工作日記的書寫規(guī)范。②系統(tǒng)工作人員應(yīng)定期更換密碼,以免其它工作人員使用。
③如果有系統(tǒng)工作人員調(diào)離崗位,接待處主管應(yīng)及時通知系統(tǒng)維護人員注銷 該系統(tǒng)工作人員代號。
④如果系統(tǒng)工作人員在短時間內(nèi)不使用電腦,應(yīng)先退出該系統(tǒng),待使用時再 重新登錄。
⑤操作過程中如果遇到系統(tǒng)故障,應(yīng)及時通知系統(tǒng)維護人員來進行修復(fù)。接待處審計制度細則
①工作人員負責(zé)與客房部核實客房入住狀態(tài)和自用房有效登記信息。②工作人員負責(zé)打印《客帳匯總表》
③工作人員審核現(xiàn)住房間總數(shù)、房號、房間人數(shù)是否合理。
④審核本系統(tǒng)中是否有已入住但未輸入、或己退房但未結(jié)帳客戶。
⑤審核免房費客人、打折客人、免服務(wù)費、免附加費客人是否有審批單據(jù)。⑥審核每個團隊房間總數(shù)及房號是否正確、房價是否與預(yù)訂處所定相同。⑦作人員審核并簽字。接待處傳遞單子
接待處提交的報表包括
①《當(dāng)天按預(yù)訂單號查詢鎖房情況》為接待客人作好先行工作。②《當(dāng)天退房客人報表》詢問客人是否辦理續(xù)住手續(xù)。③《空房表》根據(jù)空房表進行排房和安排散客入住。
④《客帳匯總表》審核客人房號、房費、人數(shù)等信息并存檔。⑤《一「作日記》交給夜審審核。總臺收銀處工作規(guī)程 班時
押金的處理
根據(jù)酒店要求,散客需要預(yù)先支付部分現(xiàn)金、刷卡或抵押支票,現(xiàn)金的金額 ·般為·到二天的房費。散客交押金后,收銀處操作員應(yīng)將押金輸入系統(tǒng),打印 出扣金憑認卜,交給客人一份,自己留存份,幾交財務(wù)一份。
對于小需要交付押金并允許簽單消費的客戶需由相關(guān)領(lǐng)導(dǎo)簽字方可同意。基于十酒店管理系統(tǒng)
營銷人員將預(yù)訂單轉(zhuǎn)交預(yù)訂處時,需要確定預(yù)訂單的內(nèi)容是否齊全、各 項審批手續(xù)是否完備,具體內(nèi)容如下
①預(yù)訂單中的所有標(biāo)有項目應(yīng)填寫完整。
②重要客人預(yù)訂,必須設(shè)置標(biāo)志,并根據(jù)需要提前分配房間。
③對于團隊、會議、旅行代理和公司預(yù)訂,必須在預(yù)訂單上注明人數(shù)、房數(shù)、房價、傭金、銷售員姓名,以便排房時工作人員能夠有效安排旅客。預(yù)訂房間退 房之后必須核實團隊主帳單和客人帳單的結(jié)算項目情況。接待處工作規(guī)程
當(dāng)班人員提前到崗,負責(zé)與上一班工作人員交接,查看交接班工作信息, 了解當(dāng)天還有哪些工作未完成,如果有不明白的問題需要和上一班操作員交談。并保留前一天由預(yù)訂處交接的預(yù)訂單和預(yù)訂報表。當(dāng)班人員打印當(dāng)天預(yù)訂單,為當(dāng)天工作做好充分準(zhǔn)備。
當(dāng)班人員需要檢查每張預(yù)訂單上是否有正確的結(jié)算信息描述,對于檢查出問 題的預(yù)訂單必須與預(yù)訂處進行確認,并追究當(dāng)事人責(zé)任,避免由于未檢查結(jié)算而 引起帳目錯誤給酒店造成經(jīng)濟損失。
如果預(yù)訂處不負責(zé)分房,則由當(dāng)班人員根據(jù)空房表為當(dāng)天應(yīng)到預(yù)訂單顧 客安排房間。
預(yù)訂客人到達時向接待處工作人員提交預(yù)訂底單人員姓名,接待處工作 人員按照人員姓名查找計算機中的預(yù)訂單。核實無誤后辦理入住手續(xù)。零散客人到接待處直接辦理入住手續(xù)。接待處工作人員為客人辦理入住手續(xù)。
客人開房后電話等級自動開啟,根據(jù)客人的需要可以調(diào)整電話等級。接待處在接到自用房通知單時,應(yīng)及時通過自用房登記將客人姓名、審 批領(lǐng)導(dǎo)、自用原因、預(yù)住時間輸入到電腦中。
晚班一作人員與客房部工作人員配合核對房態(tài)和客人入住信息。晚班一作人員負責(zé)接收井核對預(yù)汀處轉(zhuǎn)交的預(yù)訂單和預(yù)訂報表。晚班一上作人員負責(zé)審核現(xiàn)住客人房費情況。晚班工作人員完成當(dāng)日所有遺留事務(wù)。接待處操作員工作規(guī)范細則 基于酒店管理系統(tǒng)
第章酒店管理系統(tǒng)需求分析 需求分析
隨著酒店行業(yè)的發(fā)展,以前的人工管理方式遠遠不能滿足酒店行業(yè)的需求。各個大酒店業(yè)己經(jīng)開始認識到使用管理系統(tǒng)的重要性。
從酒店行業(yè)的特點和實際需要,本系統(tǒng)以服務(wù)為基礎(chǔ),突出前臺信息管理, 從專業(yè)技術(shù)角度出發(fā),提供科學(xué)管理模式,為酒店的服務(wù)質(zhì)量提供了有效的保障。該系統(tǒng)的軟件需求分析是用戶對目標(biāo)軟件在功能、操作、性能、設(shè)計約束等 方面的期望。它是酒店管理信息系統(tǒng)開發(fā)最重要的階段。
常用的軟件需求分析方法有面向數(shù)據(jù)流的方法、面向數(shù)據(jù)結(jié)構(gòu)的 方法'】、面向?qū)ο蟮姆椒ê驮头ǖ取1鞠到y(tǒng)的需求分析主要內(nèi)容包括對各部門、各業(yè)務(wù)的詳細了解及客戶的需要理解,并在此基礎(chǔ)上進行分析,提出可行方案, 評估系統(tǒng)的可行性,達到系統(tǒng)的經(jīng)濟和實效。本章針對酒店管理進行數(shù)據(jù)采集、數(shù)據(jù)評估、系統(tǒng)數(shù)據(jù)流程圖的確定以及系統(tǒng)方案的確定。
系統(tǒng)需求要求酒店能夠有效處理客人在酒店的各種消費信息,并能按照酒
店的各項數(shù)據(jù)對酒店的各項工作進行成本效益分析,以便采取適當(dāng)?shù)拇胧┨岣呔?店的運營效益。
業(yè)務(wù)需求酒店的業(yè)務(wù)分客房、餐飲、洗浴、會議室、財務(wù)、營銷、庫存、系統(tǒng)維護幾個相對獨立的子模塊。系統(tǒng)功能分析
系統(tǒng)的功能分析是在需求分析的基礎(chǔ)上完成的,本系統(tǒng)的功能實現(xiàn)了酒店內(nèi) 部各種信息管理的自動化,提高酒店服務(wù)的工作效率。客房管理
本系統(tǒng)中,客房管理主要分為預(yù)定、接待、總臺收銀、房務(wù)中心、商場相 關(guān)部分。了 預(yù)訂處工作規(guī)程
預(yù)訂處工作人員負責(zé)接收營銷人員傳遞的訂單,然后輸入系統(tǒng),并打印
客房預(yù)訂單。預(yù)訂信息要及時和準(zhǔn)確輸入系統(tǒng),便于酒店對整體預(yù)定信息進行總 體規(guī)劃。
基于十酒店管理系統(tǒng)
業(yè)發(fā)展的現(xiàn)狀和面臨的問題,針對這些問題,結(jié)合現(xiàn)代科技發(fā)展的最新成果,構(gòu) 思規(guī)劃了一個酒店管理業(yè)嶄新的管理模式,從功能、組成結(jié)構(gòu)、系統(tǒng)的特點和技 術(shù)問題解決幾方面進行了論述。對酒店的各部門管理工作起著重要的指導(dǎo)作用。論文的框架和主要內(nèi)容
本文是作者在近年來計算機軟件開發(fā)培訓(xùn)的若干系統(tǒng)項目之一,是結(jié)合所學(xué)
專業(yè)知識及相應(yīng)的課程實踐經(jīng)驗設(shè)立的題目。文中首先分析了管理信息系統(tǒng)的體 系結(jié)構(gòu)和開發(fā)方法,然后分階段地介紹了具體的開發(fā)過程。一該系統(tǒng)的開發(fā)嚴(yán)格遵 守軟件工程的要求,文檔規(guī)范完善,在開發(fā)過程中堅持實用性和科學(xué)性相結(jié)合的 原則。主要的篇章結(jié)構(gòu)如下 緒論
主要介紹論文的選題背景和目的、酒店管理信息系統(tǒng)的現(xiàn)狀和存在的問題、論文研究意義和主要結(jié)構(gòu)安排。酒店管理系統(tǒng)的需求分析
本章的任務(wù)是針對酒店管理系統(tǒng),按照軟件工程的思想,進行系統(tǒng)的需求分 析,詳細的說明了系統(tǒng)所包含各個模塊的功能分析。酒店管理系統(tǒng)的系統(tǒng)設(shè)計
本章的任務(wù)是詳細的敘述系統(tǒng)的設(shè)計思想和原則,系統(tǒng)的主要數(shù)據(jù)流圖,以 及結(jié)構(gòu)功能設(shè)計。
砰酒店管理系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計
本章說明了本系統(tǒng)數(shù)據(jù)庫的設(shè)計準(zhǔn)則和主要的表結(jié)構(gòu)。系統(tǒng)實現(xiàn)
本章守幾要針對酒店管理系統(tǒng),進行開發(fā)技術(shù)選擇,建立機制,使用 訪問數(shù)據(jù)庫,以及用戶界面設(shè)計的問題進行闡述。系統(tǒng)的特點與優(yōu)勢
本章主要闡述酒店管理中客戶服務(wù)存在的難以解決的問題入手說明本系統(tǒng) 所存在的優(yōu)勢和特點。基于酒店管理系統(tǒng)
如果客人以刷卡方式預(yù)付押金,工作人員應(yīng)根據(jù)實際情況填寫押金類型。客人結(jié)帳時工作人員開據(jù)發(fā)票,錢款多退少補,并將客人押金單收回核對。操作員每天上午要查詢”押金不足帳單”,對此類客戶要催收押金。對于押金不足又無法聯(lián)系客人,請示相關(guān)領(lǐng)導(dǎo),施行強制退房。帳目調(diào)整處理
有特殊情況要調(diào)整帳目時,必須下發(fā)帳目調(diào)整通知單,由該部門主管簽字, 收銀處工作人員根據(jù)通知單進行帳目相關(guān)處理,并注明其調(diào)整原因。
對于其它部門送來的帳單,檢查帳單上是否有房號、客人簽字、帳單金額是 否與電腦中住掛的金額一致,核實無誤后,帳單保存在客人檔案里。散客結(jié)算處理
當(dāng)班人員應(yīng)每天晚上過帳前打印《客帳匯總表》,以防由于停電或機器故障 不能及時轉(zhuǎn)為手工結(jié)帳。
客人結(jié)帳時,先問清客人房號,請客人出示房卡,再詢問客人是僅僅結(jié)帳還
是結(jié)帳退房。如果客人退房,應(yīng)先打電話通知客房中心查房。如果客房部通知工 作人員客人有客房費用時,作人員應(yīng)等待樓層服務(wù)員送交的單據(jù),請客人簽字 確認后,將費用轉(zhuǎn)入到客人消費中,客人結(jié)帳時,可先用帳單給客人打印一份對 帳單,然后雙手遞交給客人核查。最后收回客人的房卡。
如果客人有押金,必須請客人提交押金收據(jù)。客人退房查房時,若發(fā)現(xiàn)有客
房吧、賠償費及其他消費時,收銀處工作人員應(yīng)在收到客房吧消費單或賠償費單 時,請客人簽字確認后將消費數(shù)據(jù)輸入進系統(tǒng)中。
如果客人只支付某些帳的話,操作員可進行挑帳處理。
如果客人支付固定數(shù)額的費用的話,操作員應(yīng)使用拆帳功能進行處理。如果客人同時入住兒間房,可用“聯(lián)房結(jié)算”這幾間客房,簡化工作流程。如果客人結(jié)帳時間超過或時,收銀處工作人員必須按照系統(tǒng) 仁的實際退房時間加收全天或半天房費。
如果客人結(jié)帳時是以支票或信用卡付款方式,需要在結(jié)帳“備注”欄上注明 支票或信用一耘號碼。
如果客人結(jié)帳為外掛帳時一,可以按照系統(tǒng)中財務(wù)所設(shè)置的可掛帳單位的記 錄,核實客人的身份,無一誤后,進行掛帳結(jié)算,并打印出帳單,要求掛帳單位經(jīng) 辦人簽字,把帳單中的第二聯(lián)在下班前交到總臺應(yīng)收款管理員處。基于酒店管理系統(tǒng)
若客人為電話退房時,應(yīng)及時通知客服中心查房,如果有費用直接輸入系統(tǒng) 客人消費中。當(dāng)客人到前臺結(jié)帳時,通過系統(tǒng)帳目進行結(jié)算。
結(jié)帳完成后必須打印結(jié)帳單,并請客人在帳單上簽字確認。將一份帳單雙手
遞交給客人,其它的帳單遞交給審計部分。客人結(jié)帳離店后要及時在系統(tǒng)中退房, 如果發(fā)現(xiàn)只結(jié)帳不退房,要追究相關(guān)工作人員責(zé)任。結(jié)帳完成后,房間電話等級將自動變成關(guān)閉狀態(tài)。
工作人員對使用過的帳單必須小心保留,打印的帳單號必須連續(xù)的,帳單不
能私自遺失或撕毀。收銀處使用的發(fā)票號也必須是連續(xù),空白發(fā)票不能短缺或隨 意使用。團隊結(jié)算業(yè)務(wù)
若團隊和客人結(jié)帳發(fā)生變化,應(yīng)由預(yù)訂處修改團隊主帳單,在修改前應(yīng)確認 團隊費用情況,將按照正確帳目進行調(diào)整。
無論團隊是統(tǒng)一離店還是分批離店,收銀處主管或領(lǐng)班都必須主動提前與團 隊的陪同聯(lián)系,請求負責(zé)人協(xié)助尋找客人結(jié)其自付帳目。對于團主帳單,必須請 陪同確認并結(jié)算簽字。如果店方、陪同、客人對各自帳目出現(xiàn)疑問時,必須按照 預(yù)訂單上的簽單情況請帳務(wù)處主管、陪同與客人三方共同協(xié)商解決,避免由于帳 目混淆或態(tài)度問題引起酒店經(jīng)濟損失和信譽損失。
如果團隊客人統(tǒng)一結(jié)帳退房,應(yīng)將所有余額不為的帳戶結(jié)清后,剩下房間 用團隊結(jié)算結(jié)清。
如果一該團隊下仍有未結(jié)帳的團員時,該團隊不能進行結(jié)算處理。下班時
整理操作的各種原始單據(jù)、結(jié)帳單、代收現(xiàn)金單、發(fā)票,將單據(jù)統(tǒng)一交給夜 審。
打印當(dāng)班的收銀匯總表,然后處理好所收的錢款,無誤后把匯總表,錢款, 外掛帳單的第一三聯(lián)封存到帳袋中。
對住客押金不足的要做注解,記錄到交接班日記中。打印」二作日記,卜交夜審。交接班 當(dāng)班人員與上一班交班人員辦理交接手續(xù),并查看交接班日記,了解當(dāng)天還 有哪些未完成的工作,如果不明自的問題當(dāng)場問清土一班操作員。基于酒店管理系統(tǒng)
與上班交班人員交接備用金,如備用金不足時,由上班人員的簽字負數(shù)收銀 匯總表,算法為現(xiàn)金收銀匯總表上的負數(shù)現(xiàn)金數(shù)備用金。
若房卡由收銀管理,還應(yīng)清點房卡數(shù)量,房卡數(shù)量不夠時,應(yīng)有相應(yīng)的房卡 押金,即房卡數(shù)量房卡押金折合卡數(shù)量初始房卡數(shù)量。
瀏覽查詢”押金不足帳單”,針對押金不足的情況要說明原因,原則上收銀員 當(dāng)班時應(yīng)保證在住散客的押金大于本日房費,特殊客人除外。房務(wù)中心工作規(guī)程 客人住掛帳時
要求客人在賬單上簽字確認后,如果有計算機直接輸入,再把帳單送到收銀 處一聯(lián)如果沒有計算機直接將單據(jù)送到收銀處,由收銀處工作人員簽字確認后, 工作人員收回一聯(lián),每晚過賬前根據(jù)此聯(lián)作夜審報表。客人外掛帳時
要求客人在賬單上簽字確認后,如果有計算機直接輸入,再把帳單送到收銀 處一聯(lián)如果沒有計算機將單據(jù)送到收銀處,由收銀處工作人員簽字確認,工作 人員收回一聯(lián),每晚過賬前按照此聯(lián)作夜審報表。客人現(xiàn)金結(jié)算時
把錢款及兩聯(lián)的帳單送到收銀處,收款員簽字后商務(wù)中心再拿回一聯(lián),每晚 過賬前根據(jù)此聯(lián)作夜審報表。夜審日報表格式如下表一 表卜房務(wù)中心夜審日報表
項項目目住掛掛金額額外掛掛外掛掛現(xiàn)金金金額額合計計合計計 筆筆筆數(shù)數(shù)數(shù)筆數(shù)數(shù)金額額筆數(shù)數(shù)數(shù)筆數(shù)數(shù)金額額 傳傳真真真真真真真真真真 復(fù)復(fù)印印印印印印印印印印 打打字字字字字字字字字字 商商務(wù)電話話話話話話話話話話 電電腦使用用用用用用用用用用 商場工作規(guī)程 客人住掛帳時 基于酒店管理系統(tǒng)
請客人在賬單上簽字確認后,若有計算機直接輸入,再把帳單送到收銀處一 聯(lián),若沒有計算機直接將單據(jù)送到收銀處,由收銀處操作員簽字確認后,自己收 回一聯(lián),每晚過賬前根據(jù)此聯(lián)作夜審報表。客人外掛帳時
請客人在賬單上簽字確認后,若沒有計算機將單據(jù)送到收銀處,由收銀處操 作員簽字確認后,自己收回一聯(lián),每晚過賬前根據(jù)此聯(lián)作夜審報表。客人現(xiàn)金結(jié)算時
把錢款及兩聯(lián)的帳單送到收銀處,收款員簽字后商場再拿回一聯(lián),每晚過賬 前根據(jù)此聯(lián)作夜審報表。夜審日報表格式如下表一 表一商場夜審日報表 項項目目住掛掛金額額外掛掛外掛掛現(xiàn)金金金額額合計計合計計 筆筆筆數(shù)數(shù)數(shù)筆數(shù)數(shù)金額額筆數(shù)數(shù)數(shù)筆數(shù)數(shù)金額額 服服裝裝裝裝裝裝裝裝裝裝 飲飲料料料料料料料料料料 商商品品品品品品品品品品 小小食品品品品品品品品品品 酒酒水水水水水水水水水水 餐飲管理 餐廳預(yù)訂員
訂單的制定包含訂餐日期、訂餐單位、聯(lián)系人電話、訂餐標(biāo)準(zhǔn)、訂餐人數(shù)、訂餐地點、銷售員等信息,制作系統(tǒng)的“客戶大眾口味分析”報表,為客人裁定 菜單。
只有宴會帶標(biāo)準(zhǔn)的才需要打印“宴會預(yù)訂單”,通知迎賓員送到廚師長處。把廚師長送達的宴會備菜單輸入到系統(tǒng)中,然后打印出備菜單,廚師長簽字 后送交后廚備菜,系統(tǒng)自動計算宴會成本,如果超標(biāo)準(zhǔn)自動形成負數(shù)的宴會服務(wù) 費如果不足標(biāo)準(zhǔn)自動形成正數(shù)的宴會服務(wù)費。
對于客人在預(yù)詞'時一就可以確定的菜單明細的「'由預(yù)訂員填寫預(yù)訂菜單。基于酒店管理系統(tǒng)
每日開餐前分鐘,打印當(dāng)餐預(yù)訂明細表,等待迎賓員來取。
客人到達后,如人數(shù)、桌數(shù)、標(biāo)準(zhǔn)有變化,接到服務(wù)員告知后及時調(diào)整宴會 相關(guān)情況。如果客人在開臺前換菜或修改菜單數(shù)量,可由預(yù)訂員修改備菜單。餐廳廚師長
根據(jù)預(yù)訂員送達的“用餐預(yù)訂單”制作備菜單,把制作好的備菜單送交用餐 預(yù)訂處,待預(yù)訂員打印出備菜單后,在備菜單上簽字然后下發(fā)到后廚各崗位。查詢菜單,對已經(jīng)變價或不再銷售的菜肴要及時通知財務(wù)部予以修改或刪 除。餐廳領(lǐng)班
開餐前分鐘到各自區(qū)域,查詢各自預(yù)訂情況,通知本班組服務(wù)員做開餐 前準(zhǔn)備。
審核服務(wù)員下的退菜單并簽字確認。餐廳迎賓員
開餐前分鐘到預(yù)訂辦公室取當(dāng)餐預(yù)訂明細表。
客人到達后,將客人領(lǐng)送至包房,將點菜卡留給服務(wù)員,將收銀卡交給收銀。餐廳服務(wù)員
根據(jù)領(lǐng)班通知做開餐前準(zhǔn)備。在客人到達后進行預(yù)訂開臺。
散客點菜時,把客人點菜信息一記載到點菜卡上,然后到最近的錄入點錄入。遇到菜牌沒有的菜,及時通知收款員添加。
點餐時把客人特殊的口味等要求輸入到計算機中。餐廳收款員
負責(zé)酒水與菜單消費的錄入。
負責(zé)退菜的操作,退菜單必須有前臺經(jīng)理簽字刁`可以操作。在客人要求更換包房或桌臺時,通過后臺操作更換桌號。若散客為銷售員客戶,負責(zé)在開臺信息卜確認銷售員的信息。收款員結(jié)算有現(xiàn)金、住掛、外掛、招待費、會員卡五種結(jié)算方式,先與報 務(wù)員核對酒水的數(shù)量,問清客人的結(jié)算方式,若需減免,則通過打折方式進行減 免,在結(jié)算帳單卜必須有掃一折的簽字確認。如果現(xiàn)金方式結(jié)算,直接進行結(jié)算。如果會員卡結(jié)算則需要確認客人的卡余額足夠即可外掛帳結(jié)算方式,必須是財 基于酒店管理系統(tǒng)
務(wù)授權(quán)的單位方可掛帳,帳單的第二聯(lián)封裝到交款袋中住掛帳方式結(jié)算首先 查詢住客押金是否夠,押金夠,可掛帳,并將有客人簽字的結(jié)帳單送交總臺收銀 處。如果押金不夠應(yīng)與總臺取得聯(lián)系,總臺授權(quán)后方可掛帳。
收款員下班時根據(jù)收銀報表清點現(xiàn)金,封裝后存入財務(wù)錢柜打印帳單報 表附上結(jié)算賬單送交夜審。餐廳傳菜員
開餐前及開餐過程中在指定的計算機上設(shè)置沽清菜,讓服務(wù)員能及時了解后 廚的備料情況,避免工作重復(fù)。
傳菜員把計算機打印出的分單的后廚聯(lián)撕開后交后廚各部位,菜品傳出時在 總單聯(lián)上畫菜確認,全部畫滿后把分單聯(lián)投到封閉的傳菜箱中,傳菜箱只有夜審 能打開。
退菜單確認后把分單聯(lián)投到封閉的傳菜箱中。餐廳酒水員
根據(jù)服務(wù)員下的酒水單收付酒水,在酒水單上簽字確認酒水的收款。交接班時查詢本天的酒水日報表,及時了解吧臺的庫存情況。餐廳后廚
根據(jù)廚師長下發(fā)的宴會備菜單進行備料。
當(dāng)接到傳菜員送到的標(biāo)有預(yù)訂字樣的分單,與廚師長下發(fā)的宴會預(yù)訂菜單核 實后,交灶臺制作。
接到普通零點分單,根據(jù)口味等要求交灶臺制。
菜品制作完成后,將分單貼在菜盤上,交給服務(wù)員傳菜。
按照下一日的宴會預(yù)訂一情況,由后廚各部位班長提采購計劃單。洗浴管理 洗浴總臺接待
與卜班廠作人員交接手牌,檢查空閑手牌的數(shù)量,空閑手牌的號碼與計算 機中的空閑手牌對比,準(zhǔn)確無誤后,則交接完成。洗浴手牌登記
總臺接待要先填寫開牌登記單,根據(jù)單據(jù)將信息輸入計算機中。洗浴手牌登記時通過手牌登記將手牌顯示為占用狀態(tài)。基于酒店管理系統(tǒng) 財務(wù)管理 財務(wù)審計
為了保證酒店營業(yè)收入統(tǒng)計的準(zhǔn)確性,本系統(tǒng)中建立了分級審計概念,即將 系統(tǒng)審計分為三級工作人員審計、夜審、日審。工作人員審計一級審計
這里工作人員特指所有收銀員。每一位收銀員在下班之前應(yīng)做好如下工作 正確完成個人審計或班審后,收銀員必須打印歷史賬單統(tǒng)計表、退菜表、退 單報表,以及個人工作日一記,并查看報表內(nèi)容和報表日期是否正確。
打印收銀統(tǒng)計表,按照收銀統(tǒng)計表將值班人員所收的現(xiàn)金、信用卡底單、支 票、帳單等資料交夜審審核。夜審二級審計
夜審主要是審核當(dāng)天收回帳目是否正確,避免由于操作失誤而造成收入上的
損失。對于酒店來說,夜審人員的工作態(tài)度和工作效果直接影響到整個酒店的營 業(yè)收入。因此,夜審工作應(yīng)由專職的、有一定工作經(jīng)驗的財務(wù)人員完成。夜審人員的工作內(nèi)容主要有以下幾方面 審核消費項目變更審批表。
根據(jù)系統(tǒng)的歷史帳單審核餐廳上交的單據(jù)資料。
審核“房務(wù)中心”上交的客人當(dāng)天退房時間記錄表。審核“商務(wù)中心”的當(dāng)天營業(yè)匯總表。
按照相應(yīng)財務(wù)數(shù)據(jù)制作經(jīng)理晨會需要的報表。卜審三級審計
日審人員的工作內(nèi)容主要有以下兒方面
簡要地核對夜審工作的正確性,解決夜審遺留的問題。各種報表分門別類遞交給各個部門使用。
核對計算機二級庫銷售出庫報表與吧員手工統(tǒng)計一報表是否相同。核對電腦洗浴中心特業(yè)提成報表與特業(yè)人員手工單據(jù)報表是否相同。通過幾作日記,核對帳單檢查每份帳單的完整性。核對收款員的帳單必須是否是連續(xù)號碼。
核對各部門打印的結(jié)算帳單與系統(tǒng)中的歷史帳單是否相符。基于酒店管理系統(tǒng)
二級庫包括中餐廳酒水庫、洗浴酒水庫、客房吧庫。業(yè)務(wù)類型一級庫的業(yè)務(wù)包括入庫、出庫、調(diào)撥 二級庫的業(yè)務(wù)包括調(diào)撥入庫、材料領(lǐng)用出庫。物品的入庫、出庫、調(diào)撥、結(jié)算流程 物品入庫流程
供貨單位貨到后,由保管員驗收入庫,填寫入庫單給供貨單位,然后把入庫 單的第二聯(lián)上交給核算員,核算員填寫并核實入庫單,保管員復(fù)核、記賬,并打 印出此入庫單,最后采購員和保管員在此單據(jù)上簽字。物品出庫流程
根據(jù)業(yè)務(wù)的種類有以下三種流程
流程一適用于客房備品、餐廳備品、洗浴中心備品、辦公用品
領(lǐng)用人持領(lǐng)料審批單到保管員處領(lǐng)料,保管員填制出庫單,在填制時即可知
道庫內(nèi)余數(shù)是否夠本次出庫,填寫完后打印出庫單,領(lǐng)用人及庫管員在單據(jù)上簽 字,領(lǐng)用人拿回一聯(lián)帳單。保管員把另外一聯(lián)交核算員,核算員復(fù)核、記帳。流程二適用于餐廳的非直入直出的物品,如糧食、冰鮮等
領(lǐng)料人到保管員處填寫商品表格式的出庫單,因為出庫工作比較瑣粹,在當(dāng) 天工作結(jié)束前,保管員按照后廚詳細匯總后輸入到系統(tǒng)中,核算員復(fù)核,記帳。流程三適用于餐廳直入直出如蔬菜、肉類等的商品
商品一重量驗收一庫管員手工制作入庫單輸入計算機一核算員復(fù)核,記帳 一打印此單據(jù),庫管員、領(lǐng)用人、采購員在單據(jù)上簽字。物品調(diào)撥流程
大庫向二級庫調(diào)撥應(yīng)及時操作并審核、記賬,由于餐廳吧臺二級庫的三級明 細帳在系統(tǒng)中保存著,大庫向二級庫的調(diào)撥時,系統(tǒng)會自動進行二級庫的入庫, 前臺銷售自動產(chǎn)生二級庫的出庫,所以不及時操作調(diào)撥三二級庫,庫存余數(shù)容易產(chǎn) 生負數(shù),造成錯誤信息的出現(xiàn)。供貨單位結(jié)算流程
結(jié)算時供貨單位拿入庫單到核算員處換取打印出的入庫單,此單七有庫管 員及采購員的簽字,供貨單位與采購員持入庫單及發(fā)票到財務(wù)部門結(jié)算。基于酒店管理系統(tǒng)
核對打折授權(quán)、招待授權(quán)。
核對退宿客史檔案與房務(wù)中心上交的退宿報告的時間是否相同。核對咖啡廳的資料
結(jié)算帳單的收款員、吧員、服務(wù)員的各分單聯(lián)還原,確保不丟單。執(zhí)行調(diào)整記帳日期的過房帳的程序、記載夜審報告。
打印當(dāng)天營業(yè)額統(tǒng)計報表、收入日報、收銀匯總統(tǒng)計表、客帳匯總統(tǒng)計表。財務(wù)出納員
每天上午根據(jù)前日的“收銀匯總統(tǒng)計表”清點各收款員的交款,確認無誤。打印前日的“收入日報表”作為當(dāng)天收入憑證的附件,打一印好收入憑證附件 后,轉(zhuǎn)交會計審核。財務(wù)收入會計
按照收入日報審核出納的收入憑證,錄入相關(guān)的財務(wù)收入信息。財務(wù)核算員
制作菜牌種類、出菜位置。
菜單設(shè)置編號、名稱、單位、單價、種類、出菜部位、折扣屬性。
制作菜牌種類與營業(yè)部門的對應(yīng)關(guān)系、出菜部位與營業(yè)部門的對應(yīng)關(guān)系。毛利率分析統(tǒng)計采用曲線圖表分析的方式。營銷管理
隨時了解酒店各部門的營業(yè)狀況,以便能及時安排客戶的預(yù)訂。
分析所有客戶在酒店的消費情況,為不同客戶制定不同優(yōu)惠方案,以便做好 酒店的銷售工作。
針對不同的客戶做好客戶的消費個性化分析,以便給客廠'更好的服務(wù)。對每一個客戶都要及時交流需求信息,做好客戶的回訪記錄。每天或每段時間統(tǒng)計銷售員的銷售業(yè)績。庫存管理
庫存帳套的設(shè)置及業(yè)務(wù)類型
帳套設(shè)置一級庫包括食品大庫、酒水大庫、備品大巧 基于酒店管理系統(tǒng)
如果客人需要調(diào)換手牌,接待處可以按照需要給客人進行手牌的調(diào)換。并填 寫手牌變更單。
如果客人要預(yù)訂包房,該預(yù)訂由總臺接待完成。在預(yù)訂時一定要處理好預(yù)訂 手牌、預(yù)訂時間、預(yù)訂要求。包房客人有無手牌均能完成預(yù)訂。洗浴總臺收銀
洗浴總臺收銀處應(yīng)提前到崗,與前一班人員進行換班,查看是否有因特殊原 因而未結(jié)算的手牌,是否有留牌等,與上一班交接清楚,避免結(jié)算時發(fā)生誤會。如果客人在結(jié)算時需要轉(zhuǎn)帳,總臺收銀員要先問清客人是退手牌還是繼續(xù)保 留手牌,如果客人退手牌,應(yīng)直接將客人的消費轉(zhuǎn)入另一手牌,請客人在轉(zhuǎn)帳單 上簽字確認如果客人保留手牌,可以將客人的所有消費或部分消費轉(zhuǎn)入另一手 牌,請客人在轉(zhuǎn)帳單上簽字確認。
客人在結(jié)算時如果使用會員卡,在系統(tǒng)中減免對客人的消費,請客人在打出 的結(jié)算帳一單上簽字確認。若在結(jié)算時使用優(yōu)惠券減免,直接輸入系統(tǒng)中,將收到 的優(yōu)惠券訂在結(jié)算帳單上。
對支票過期、信用卡超限額,與客人交談不能及時結(jié)帳要請求領(lǐng)導(dǎo)進行處理。結(jié)算完成后應(yīng)檢驗手牌是否處于結(jié)算完畢狀態(tài)。洗浴總臺收銀處下班時
打印本人歷史賬單,并將所有結(jié)算的帳單明細按流水號排好,統(tǒng)一上交給財 務(wù)部。
洗浴中心的其它規(guī)程
洗浴中心必須備有工作日一記本,并規(guī)定工作日記的書寫規(guī)范。「作人員交班時,錢款及帳單投到保險柜內(nèi),所開單據(jù)交接清楚。工作人員應(yīng)定期更換密碼,以免其它工作人員使用。
如果有「作人員調(diào)離崗位時,洗浴中心主管應(yīng)及時通知系統(tǒng)維護人員退出該 一作人員編號。
如果'「作人員在短時間內(nèi)不使用系統(tǒng),應(yīng)注銷系統(tǒng),待繼續(xù)使用時,再重新 登錄。
操作過程中如果遇到電腦故障,應(yīng)及時通知系統(tǒng)維護人員維護。基于十酒店管理系統(tǒng) 前臺接待流程圖
預(yù)預(yù)定單單單單單單單客客客客房房 流流流流量表表 客客房表表
圖一前臺接待流程圖 結(jié)賬流程圖
客客客客客客客客客客客房表表結(jié)結(jié)帳信息息息息息息息 一一一一一一一一一一一一一一一 預(yù)預(yù)付款信信信應(yīng)收款款 息息息息息息息息 消消費帳單單 圖一結(jié)眼流程圖 基于酒店管理系統(tǒng)
第章酒店管理系統(tǒng)的系統(tǒng)設(shè)計 設(shè)計思想
如果將酒店的監(jiān)視監(jiān)控系統(tǒng)比作人的眼睛的話,那么酒店計算機管理系統(tǒng)可
以稱其為一個人的大腦。作為酒店經(jīng)營管理的信息中心、指揮中心,酒店電腦信 息系統(tǒng)投入實際運營以后將發(fā)揮至關(guān)重要的作用。酒店電腦信息系統(tǒng)的設(shè)計和建 設(shè)將遵循此思想。
根據(jù)酒店的實際需求及對計算機管理系統(tǒng)的說明,結(jié)合有關(guān)部門對酒店軟硬 件方面的要求,酒店電腦信息系統(tǒng)系統(tǒng)設(shè)計以先進性、智能化、高可靠性為主, 并根據(jù)酒店本身特點,充分考慮未來的擴充性,以保證本系統(tǒng)可靠性和時效性川。設(shè)計原則 實用性原則
系統(tǒng)必須從實際情況出發(fā),適應(yīng)酒店的具體情況,切實地解決實際問題,提 高經(jīng)營質(zhì)量,降低經(jīng)營成本,提高管理水平,降低決策風(fēng)險。易用性原則
系統(tǒng)應(yīng)該有友好的用戶界面,易于使用,易于維護,使有微機基本操作技能 的人員經(jīng)過簡單的培訓(xùn)即可順利使用。經(jīng)濟性原則
系統(tǒng)充分考慮經(jīng)濟性原則,以盡量低的造價為企業(yè)帶來盡量大的效益,提供 良好的性價比。先進性原則
系統(tǒng)確保符合技術(shù)發(fā)展趨勢,在技術(shù)上選擇那此先進、成熟、穩(wěn)定的技術(shù), 保證系統(tǒng)在近幾年內(nèi)不被淘汰。可擴展性原則
系統(tǒng)能夠方便地擴展,包括功能的擴展及使用用戶的擴展,以適應(yīng)酒店的發(fā) 展。
主要數(shù)據(jù)流圖
本文中所涉及的數(shù)據(jù)流圖是描繪系統(tǒng)的邏輯模型,是描繪信息在系統(tǒng)中流動 和處理的情況。總流程圖
基于酒店管理系統(tǒng) 客客戶戶戶客戶戶 圖一總流程圖 客房主要流程圖
預(yù)預(yù)定定定接待待待待待待待待待待待待待待待待待待待待待待待待客房房,,,, ``````` 電電話話 夜夜審審
圖一客房主要流程圖 客房預(yù)定流程圖 圖一客房預(yù)定流程圖 基于酒店管理系統(tǒng) 結(jié)構(gòu)功能設(shè)計
為了適應(yīng)酒店管理的發(fā)展要求,提高系統(tǒng)的可擴充性和可維護性,酒店管理 系統(tǒng)采用模塊化管理。
酒店的主要業(yè)務(wù)包括客房、餐飲、洗浴、會議室、財務(wù)、營銷、庫存、系統(tǒng) 維護等。系統(tǒng)功能結(jié)構(gòu)圖如圖一。酒酒店管理系統(tǒng)統(tǒng)
前前臺子系統(tǒng)統(tǒng)統(tǒng)后臺子系統(tǒng)統(tǒng) 客客房管理理理庫存管理理 餐餐飲管理理理財務(wù)管理理 洗洗浴管理理理系統(tǒng)維護護 營營銷管理理理理 圖一
由于篇幅的限制,以下主要介紹了客房、個酒店業(yè)務(wù)上最重要的子系統(tǒng)。酒店管理系統(tǒng)結(jié)構(gòu)圖 餐飲、洗浴、庫存、財務(wù)五個在整 客房管理系統(tǒng)
客房管理分為前臺、后臺兩部分,前臺指營業(yè)「管理系統(tǒng),后臺指房務(wù)中心 管理系統(tǒng)。客房前臺系統(tǒng)功能結(jié)構(gòu)圖如下圖一 基于酒店管理系統(tǒng) 營營業(yè)口管理系統(tǒng)統(tǒng)
入入入入退退退客客客房房房房房房房房房客客客信信信出出 住住住住房房房房房房價價價客客客態(tài)態(tài)態(tài)房房房息息息租租 登登登登結(jié)結(jié)結(jié)輸輸輸調(diào)調(diào)調(diào)換換換查查查預(yù)預(yù)預(yù)修修修率率 記記記記帳帳帳入入入整整整房房房詢詢詢定定定改改改統(tǒng)統(tǒng) 計計計計計計計計計計計計計計計計計計計 圖一營業(yè)口管理系統(tǒng)結(jié)構(gòu)圖
客房房務(wù)中心管理系統(tǒng)功能結(jié)構(gòu)圖如下圖一 房務(wù)中心管理系統(tǒng)
管理房態(tài)商錄房客入品詢料客戶資查統(tǒng)計客房備品理接班管交記日 圖一房務(wù)中心管理系統(tǒng)結(jié)構(gòu)圖 餐飲管理系統(tǒng)
餐飲管理系統(tǒng)分為餐飲前臺管理系統(tǒng)和餐飲成本核算管理系統(tǒng)兩部分'。其 功能結(jié)構(gòu)圖分別如卜 基于料酒店管理系統(tǒng) 餐餐飲前臺管理系統(tǒng)統(tǒng)
換換換換退退退力口口口餐餐餐歷歷歷未未未開開開退退退結(jié)結(jié)
之之轟轟轟房房房菜菜菜飲飲飲史史史結(jié)結(jié)結(jié)乙入入入菜菜菜算算口口口口結(jié)結(jié)結(jié)管管管預(yù)預(yù)預(yù)帳帳帳帳帳帳口口口管管管管
帳帳帳帳帳帳理理理定定定目目目目目目登登登理理理理 杳杳杳杳杳杳杳杳杳杳杳杳查查查記記記記記記 詢詢詢詢詢詢詢詢詢詢詢詢詢詢詢詢詢詢詢詢 圖一餐飲前臺管理系統(tǒng)結(jié)構(gòu)圖 餐飲成本核算管理系統(tǒng)
編商定義品號理論實際耗照消對與對應(yīng)材料商品原與據(jù)材耗數(shù)成料消生原菜牌管理餐飲 圖一餐飲成本核算管理系統(tǒng)結(jié)構(gòu)圖 洗浴管理系統(tǒng)
洗浴管理系統(tǒng)分為洗浴前臺管理和洗浴后臺竹理系統(tǒng)兩部分。其功能結(jié)構(gòu)圖分別如下 基于酒店管理系統(tǒng) 洗洗浴前臺管理系統(tǒng)統(tǒng)
鑒鑒鑒轉(zhuǎn)轉(zhuǎn)轉(zhuǎn)帳帳帳包包包歷歷歷未未未手手手分分分結(jié)結(jié)口口口口帳帳帳目目目房房房史史史結(jié)結(jié)結(jié)牌牌牌帳帳帳算算
帳帳帳帳帳帳輸輸輸管管管帳帳帳帳帳帳管管管管管管 入入入入入入入入理理理目目目目目目理理理理理理 查查查查查查查查查查查查查查查查查查查查 詢詢詢詢詢詢詢詢詢詢詢詢詢詢詢詢詢詢詢詢 圖一洗浴前臺管理系統(tǒng)結(jié)構(gòu)圖 洗浴后臺管理系統(tǒng) 標(biāo)準(zhǔn)收理票管費門義包房定提標(biāo)準(zhǔn)成義服定務(wù)員標(biāo)準(zhǔn)包房收義定費牌定義手 圖一洗浴后臺管理系統(tǒng)結(jié)構(gòu)圖 庫存管理系統(tǒng)
庫存憐理系統(tǒng)功能結(jié)構(gòu)圖如下圖一 基于十十酒店管理系統(tǒng)
第章酒店管理系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計 設(shè)計準(zhǔn)則
數(shù)據(jù)庫設(shè)計是建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的技術(shù),是信息系統(tǒng)開發(fā)的核心技
術(shù),概括一說,數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境構(gòu)造最優(yōu)的數(shù)據(jù)庫模式, 建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的信息要求 和處理要求。酒店軟件的核心就是如何使用和操作數(shù)據(jù)庫,所以,數(shù)據(jù)庫設(shè)計極 其重要。從用戶使用的角度來看,酒店系統(tǒng)的組成部分分成三個層次數(shù)據(jù)存儲 層、業(yè)務(wù)處理層和界面表示層。
數(shù)據(jù)存儲層就是完成對數(shù)據(jù)的各種維護操作,一般是由數(shù)據(jù)庫管理系統(tǒng)來完 成該層上的工作業(yè)務(wù)處理層就是應(yīng)用程序要處理的、與用戶密切相關(guān)的各種業(yè) 務(wù)操作,這一層次的工作通常是通過程序設(shè)計語言的編程來完成的界面表示層 是應(yīng)用程序系統(tǒng)提供給用戶的可視化操作界面,是用戶提出請求和接受回應(yīng)的地 方。這三個層次都與數(shù)據(jù)庫相關(guān),數(shù)據(jù)存儲層就是指數(shù)據(jù)庫本身,業(yè)務(wù)處理層處 理的對象是數(shù)據(jù)庫中的數(shù)據(jù),界面表示層是操作界面,其目的是為了方便使用數(shù) 據(jù)庫中的數(shù)據(jù)。因此數(shù)據(jù)庫的設(shè)計是酒店管理系統(tǒng)開發(fā)的基礎(chǔ)和關(guān)鍵'”〕。數(shù)據(jù)庫設(shè)計的是否全面、合理、規(guī)范,直接關(guān)系到酒店系統(tǒng)的功能能否實現(xiàn) 如果數(shù)據(jù)庫設(shè)計得合理,后續(xù)程序開發(fā)將取得事半功倍的效果,否則將會加大編 程的工作量,甚至要回頭重新修改數(shù)據(jù)庫,因此作者采用了規(guī)范化的設(shè)計方法刀。按照前面功能設(shè)計提出的總體要求,設(shè)計酒店系統(tǒng)的數(shù)據(jù)庫應(yīng)該有如下特 點結(jié)構(gòu)簡單、數(shù)據(jù)關(guān)系明確、容量小、執(zhí)行效率高。主要表結(jié)構(gòu)
根據(jù)調(diào)研從中得到的基本數(shù)據(jù)資料,并經(jīng)過嚴(yán)密分析和論證,建立了系統(tǒng)數(shù) 據(jù)庫。限一于篇幅的關(guān)系,只將部分主要表的詳細設(shè)計內(nèi)容列出如下 表一用戶信息表幾' 字字段名稱稱數(shù)據(jù)類型型說明明 文本本用戶姓名名 文本本用戶登錄密碼碼 數(shù)字字用戶編號號
數(shù)字字用戶性別二男,女 基于桿酒店管理系統(tǒng) 數(shù)字字用戶年齡齡 呵文本本用戶籍貫貫 文本本用戶住址址 數(shù)字字用戶權(quán)限級別 普通員工,卜管理人員員 表一客房標(biāo)準(zhǔn)表
字字段名稱稱數(shù)據(jù)類型型說明明 文本本客房編號主鍵 升升文本本客房類型 單單單單人間標(biāo)準(zhǔn)間豪華套房房 數(shù)字字客房面積積 數(shù)字字最多容納人數(shù)數(shù) 數(shù)字字空調(diào)二無,二有有 數(shù)字字電話無,卜有有 數(shù)字字電視無,卜有有 數(shù)字字網(wǎng)絡(luò)無,有有
數(shù)字字獨立衛(wèi)生間無,有有 數(shù)字字價格格 表一菜譜信息表
字字段名稱稱數(shù)據(jù)類型型說明明 數(shù)字字食物編號號 文本本食物名稱稱 文本本食物類型型 數(shù)字字食物價格格 數(shù)字字食物成本價價 文本本食物介紹紹 對象象食物參考圖片 基于十十酒店管理系統(tǒng) 庫庫存管理系統(tǒng)統(tǒng)
出出出出庫庫庫入入入調(diào)調(diào)調(diào)商商商報報報供供 庫庫庫庫存存存庫庫庫撥撥撥口口口表表表應(yīng)應(yīng) 管管管管管管管管管管部部部口口口口查查查商商 理理理理理理理理理理門門門目目目詢詢詢管管 管管管管管管管管管管錄錄錄錄錄理理
理理理理理理理理理理管管管管管管理理理理理理理理理理理理理理理 圖一庫存管理系統(tǒng)結(jié)構(gòu)圖 財務(wù)管理系統(tǒng)
財務(wù)管理系統(tǒng)的功能結(jié)構(gòu)圖如下 財務(wù)管理系統(tǒng)
帳管理總報營業(yè)表當(dāng)日信息客戶查詢應(yīng)管理收用費營額統(tǒng)業(yè)計日報表房態(tài) 圖一財務(wù)管理系統(tǒng)結(jié)構(gòu)圖 基于酒店管理系統(tǒng) 表一訂餐信息表眾
字字段名稱稱數(shù)據(jù)類型型說明明 們數(shù)字字餐桌編號號 們文本本用戶姓名名 數(shù)字字食物編號號 們文本本食物名稱稱 數(shù)字字單價價 數(shù)字字?jǐn)?shù)量量 數(shù)字字食物價格格 數(shù)字字折扣扣 數(shù)字字折后價格格 石文本本點菜時間間 數(shù)字字是否結(jié)帳未結(jié), 已結(jié)結(jié)
表一桌臺信息表
字字段名稱稱數(shù)據(jù)類型型說明明 數(shù)字字餐桌編號號 數(shù)字字總金額額 文本本付款方式式 文本本收銀員姓名名 文本本結(jié)帳時間間
數(shù)字字是否結(jié)帳二未結(jié), 二己結(jié)結(jié)
表一付款方式表
字字段名稱稱數(shù)據(jù)類型型說明明 數(shù)字字付款方式編號號 文本本付款方式名稱 基于酒店管理系統(tǒng) 表一銷售統(tǒng)計表加
字字段名稱稱數(shù)據(jù)類型型說明明 文本本結(jié)帳方式式 數(shù)字字單數(shù)數(shù) 數(shù)字字結(jié)帳金額額 表一單品銷售統(tǒng)計表, 字字段名稱稱數(shù)據(jù)類型型說明明 文本本食品名稱稱 數(shù)字字?jǐn)?shù)量量 數(shù)字字金額額 表一訂房信息表。
字字段名稱稱數(shù)據(jù)類型型說明明 數(shù)字字客房編號號 文本本客房類型型 文本本登記人姓名名 文本本登記人證件號號 數(shù)字字入住人數(shù)數(shù)
文本本入住日期年一月一日日 文本本入住時間時分秒秒 數(shù)字字押金金
數(shù)字字是否結(jié)帳未結(jié), 已結(jié)結(jié)
數(shù)字字用餐標(biāo)準(zhǔn) 元天
基于酒店管理系統(tǒng) 第章系統(tǒng)的實現(xiàn) 開發(fā)技術(shù)的選擇 開發(fā)工具
本系統(tǒng)可以完成整個酒店各個部門、對客戶營業(yè)口的信息錄入、管理、查詢 和附加的功能。十是當(dāng)今最流行的可視化軟件開發(fā)工具之一,完全可以 滿足于數(shù)據(jù)庫的各種操作的要求,所以采用作為本系統(tǒng)開發(fā)平臺。軟件環(huán)境 架構(gòu)體系 燈體系。運行平臺 端或。端數(shù)據(jù)庫。數(shù)據(jù)庫開發(fā)語言
選擇因其具有如下特性
數(shù)據(jù)倉庫分析服務(wù),數(shù)據(jù)備份,數(shù)據(jù)開采,分析事務(wù),索引化視圖。電子商務(wù)對支持的增強,認陌數(shù)據(jù)訪問,分布式分區(qū)視圖,安全 性,簡化數(shù)據(jù)庫管理,數(shù)據(jù)庫復(fù)制。
可伸縮性和可用性同一個數(shù)據(jù)庫引擎可以在不同的平臺上使用。數(shù)據(jù)庫軟件是自帶的軟件,操作簡單。
數(shù)據(jù)庫是一種關(guān)系型數(shù)據(jù)庫,它除了支持傳統(tǒng)關(guān)
系數(shù)據(jù)庫組件如數(shù)據(jù)庫、表和特征外,另外也支持當(dāng)今關(guān)系數(shù)據(jù)庫常用的組件, 女一存儲過程、視圖等'”。支持目前關(guān)系數(shù)據(jù)庫都支持的標(biāo)準(zhǔn)查詢語言, 另外一項重要的特點是它支持?jǐn)?shù)據(jù)庫復(fù)制的功能【。在當(dāng)今流行的 結(jié)構(gòu)中是扮演后端的角色,它主要的職責(zé)是保存數(shù)據(jù)和提供一 套方法來管理數(shù)據(jù),并月應(yīng)付來自的連接和數(shù)據(jù)訪問需求,由于 是扮演端的角色,是數(shù)據(jù)庫的提供者,所以在中看不到類似
設(shè)計的功能,也就是說并不提供工具讓我們可以設(shè)計出一個輸入或查一詢 的操作界而,也看一不到和報表設(shè)計·有關(guān)的具,因為對于所扮演的角色 而臺,這不是它的職責(zé)所在,用戶操作界面的設(shè)計作是的事情。系統(tǒng)稱為數(shù)據(jù)庫引擎,因為它是整個數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心,它的 基于酒店管理系統(tǒng)
以還必須依靠中間件才能有效地降低工作難度。中間件能夠把使用者與復(fù)雜的通 信規(guī)程、硬件平臺及操作系統(tǒng)隔開,數(shù)據(jù)通過中間件在客戶與服務(wù)器間流動,客 戶與服務(wù)器通過中間件進行平穩(wěn)互訪,這種方式無疑大大降低了編程者的技術(shù)難 度及工作量。
本系統(tǒng)是客戶與服務(wù)器分別在不同硬件平臺上的系統(tǒng)即基于網(wǎng)絡(luò)的 系統(tǒng),它們在實現(xiàn)時應(yīng)遵循以下原則
盡量讓客戶機完成針對特定用戶的事務(wù)處理。因為服務(wù)器由多個客戶機 共享,如果把每個用戶的特定處理都放在服務(wù)器上,就會增大服務(wù)器的工作量, 因而降低其響應(yīng)速度,延長客戶申請的等待時間,所以盡量讓客戶機完成針對特 定用戶的事務(wù)處理,目的是為了減輕服務(wù)器的負擔(dān),提高系統(tǒng)的整體性能。盡量讓服務(wù)器管理全部的共享資源。可共享的資源包括數(shù)據(jù)、部分外設(shè)
及基礎(chǔ)服務(wù)處理,這些都應(yīng)由服務(wù)器來管理,以保證各用戶都能享用。對于共享 數(shù)據(jù),由服務(wù)器集中處理還有助于保證數(shù)據(jù)的完整性、一致性和安全性〕。盡量減少客戶與服務(wù)器間傳送的數(shù)據(jù)量在網(wǎng)絡(luò)間傳送數(shù)據(jù),可能產(chǎn)生數(shù)
據(jù)錯誤、丟失、延時、故障等問題。數(shù)據(jù)傳遞得越多,產(chǎn)生的問題、要求恢復(fù)的 可能性也就越大。而且網(wǎng)絡(luò)上堆積了大量數(shù)據(jù),必然會降低系統(tǒng)對其他客戶機的 反應(yīng)速度,同時影響客戶之間及客戶與服務(wù)器間的通信通信也是一種共享資 源。所以,減少網(wǎng)絡(luò)中數(shù)據(jù)的傳遞量,有助于保證系統(tǒng)的整體性能。
堅持局部數(shù)據(jù)在局部存儲和管理。這是為了減少網(wǎng)絡(luò)上的數(shù)據(jù)傳輸量、減輕服務(wù)器的壓力、增強服務(wù)器對請求的響應(yīng),提高系統(tǒng)的總體性能。根據(jù)上述原則,在做基于數(shù)據(jù)庫的系統(tǒng)實現(xiàn)時,可以把接口表示部分如
輸入、輸出界面放在客戶機上,把數(shù)據(jù)的管理部分如查詢、存儲、更新、優(yōu)化 等放在服務(wù)器上。對其他處理邏輯,則要根據(jù)具體情況進行分析,例如對于 計算密集型的處理,可把計算部分放在客戶機上,而有關(guān)數(shù)據(jù)特性的一般約束處 理如完整性、安全性,一致性等則可放在服務(wù)器上。
對一于數(shù)據(jù)的分布,也應(yīng)作妥善安排。對于提供給各客戶共享的數(shù)據(jù),應(yīng)放在 服務(wù)器以作為遠程數(shù)據(jù)來處理而對于各自的獨用數(shù)據(jù),則應(yīng)放在自己的客戶機 ,。
使用訪問數(shù)據(jù)庫
自一視化數(shù)據(jù)廠其使用 基于酒店管理系統(tǒng)
重要性就如同一輛車子的引擎,沒有它車子就無法開動,不過光有弓擎還不能成 為車子,必須還要有方向盤、輪子等周邊設(shè)備才可以讓車子上路,同樣地,光有 數(shù)據(jù)庫引擎也不能構(gòu)成一套完整的應(yīng)用系統(tǒng),還要利用前端的開發(fā)工具,如本系 統(tǒng)采用十開發(fā)出用戶界面,這樣刁能成為一個完整的數(shù)據(jù)庫應(yīng)用系統(tǒng),前端 開發(fā)工具用來設(shè)計輸入和查詢界面,用戶通過這個界面輸入數(shù)據(jù),在由前端程序 通過網(wǎng)絡(luò)傳給后端的數(shù)據(jù)庫引擎并將數(shù)據(jù)保存在數(shù)據(jù)庫中,當(dāng)用戶要查詢數(shù)據(jù) 時,前端程序?qū)⒉樵兠顐鹘o后端的數(shù)據(jù)庫執(zhí)行,前端程序則等待接收數(shù)據(jù)結(jié)果, 然后在將結(jié)果顯示在界面上。和前端平臺相連最主要是靠網(wǎng)絡(luò)完成的,所 以網(wǎng)絡(luò)必須設(shè)置正確,刁`能正確運行,在網(wǎng)絡(luò)協(xié)議方面,可通過 ,等通信協(xié)議和前端平臺相連,主要采用技術(shù)將前臺與 后臺連接在一起形成一個整體進行所有的操作。建立機制
一個燈系統(tǒng)稱為系統(tǒng)和傳統(tǒng)的由單臺計算機或單主機多終
端組成的一計算機系統(tǒng)不同,它由一個或多個客戶機和一個或多個服務(wù)機通過局 域網(wǎng)或廣域網(wǎng)甚至網(wǎng)組成。在應(yīng)用中,人們多把的應(yīng)用程序分成兩
部分讓客戶程序駐留在網(wǎng)絡(luò)的前端工作站上,服務(wù)器處理程序則在網(wǎng)絡(luò)的后臺。當(dāng)客戶通過請求的方式提出了所需要的服務(wù)時,服務(wù)器不必關(guān)心客戶程序的功 能,只需響應(yīng)請求就行。
在這種結(jié)構(gòu)中,服務(wù)器的硬件必須具有足夠的處理能力,刁能滿足各客戶的 要求。從概念上看,“服務(wù)器”的含義非常廣泛,數(shù)據(jù)庫服務(wù)器只是其中的一 種。數(shù)據(jù)庫服務(wù)器至少應(yīng)提供對數(shù)據(jù)的存取、加工、處理等服務(wù),同時還要提供 完善的安全保護及數(shù)據(jù)的完整性等處理,并允許多個客戶同時訪問同一個數(shù)據(jù) 庫。因此,客戶可以不用考慮對數(shù)據(jù)的安全、優(yōu)化、完整性等基礎(chǔ)處理,只需專 心自己的廠作。
客戶應(yīng)用程序除了向服務(wù)器提出請求外,還要分析從服務(wù)器返回的信息包 括數(shù)據(jù)君指令,并據(jù)此做一些再處理如向操作者顯示相應(yīng)的數(shù)據(jù)、要求補充輸 入些數(shù)據(jù)等。
中間件是系統(tǒng)中的一種系統(tǒng)軟件【“,它負責(zé)鏈接客戶與服務(wù)器。客戶與 服務(wù)器聯(lián)接的最底層是網(wǎng)絡(luò)的硬件,但對應(yīng)用級的程序員來說,關(guān)心的焦點還是 它們在軟件卜的通信鏈接。因為的環(huán)境復(fù)雜,而且涉及多種規(guī)程及協(xié)議,所 基于酒店管理系統(tǒng) 表一當(dāng)班統(tǒng)計表
字字段名稱稱數(shù)據(jù)類型型說明明 文本本結(jié)帳方式式 數(shù)字字結(jié)帳金額額 表一客房信息表
字字段名稱稱數(shù)據(jù)類型型說明明 文本本客房編號主鍵 文本本客房類型型 數(shù)字字價格格
文本本客房狀態(tài)空閑預(yù)定定 表一結(jié)算信息表
字字段名稱稱數(shù)據(jù)類型型說明明 文本本客房編號主鍵 數(shù)字字餐費費 盯盯數(shù)字字餐費費
文本本退房日期年一月一日日 文本本退房時間時分秒秒 數(shù)字字入住天數(shù)數(shù) 數(shù)字字金額額 數(shù)字字折扣會員, 團團團團體二,散客 基于酒店管理系統(tǒng) 第章系統(tǒng)的特點與優(yōu)勢
本系統(tǒng)集成了先進的酒店管理經(jīng)驗,能夠解決酒店經(jīng)營普遍關(guān)注的四大問 題
對客戶服務(wù)問題 管理控制問題
工作效果與效率問題 數(shù)據(jù)庫維護問題
下面結(jié)合這四大問題介紹一下本系統(tǒng)的特點與優(yōu)勢 對客戶服務(wù)的問題 ,解決總臺對客戶服務(wù)慢
前臺接待在辦理客戶入住、對房間電話核實、收銀結(jié)算速度慢,這些都容易 給客戶造成不好的印象。針對這個問題,本系統(tǒng)采用了直觀的操作界面,簡單的 操作方式,前臺接待可以很迅速的登記信息,在很短時間內(nèi)完成客戶的入住。在 電話的和方面,與電話虛擬網(wǎng)連接,在總臺開房和退房時自 動完成電話和,在。時設(shè)置缺省等級,如客戶有特殊需
要開更高的等級,在前臺就可以完成,不用先通知總機,這樣既節(jié)省了客戶的時 間也節(jié)省酒店的時間,很容易給客戶留下好的印象。解決上菜慢
手工傳單到后廚需要一定的時間,點菜的服務(wù)員不了解當(dāng)天的各種所點菜數(shù) 量,很浪費客人的時間,本系統(tǒng)采用了后廚自動分單的方式,服務(wù)員在很短的時 間內(nèi)就能完成電腦的輸入,在輸入的時候各種所點菜單會自動提示,加快了卜菜 速度,也節(jié)省了對客戶服務(wù)時間。解決餐飲結(jié)算慢
在餐飲的結(jié)算過程中,導(dǎo)致收銀結(jié)算慢的原因主要有三個【”收款員錄入帳 單住掛帳需要客人信息校驗外掛帳需要核實該單位是否可以掛帳、是否過了 掛帳期限、是否已經(jīng)超過了限額,上述過程很煩瑣。在本系統(tǒng)中簡化了收款員操 基于酒店管理系統(tǒng)
可以創(chuàng)建將每個步驟封裝在數(shù)據(jù)訪問系統(tǒng)中的部件。從數(shù)據(jù)源開始,幾 可視化數(shù)據(jù)工具提供了在系統(tǒng)中查看并操作表、視圖、存儲過程和數(shù)據(jù) 庫結(jié)構(gòu)描述的功能。
中間層部件和。,在生成自己的瓦和
時,還可以在應(yīng)用程序中使用瓏料創(chuàng)建中間層部件。叭皿日現(xiàn) 在的增強功能允許自定義應(yīng)用程序,以便同幾介助陽,一起使 用。
數(shù)據(jù)提供程序和數(shù)據(jù)使用者之間的橋梁就是數(shù)據(jù)源,數(shù)據(jù)源是使用 創(chuàng)建的,而是巧在任
何數(shù)據(jù)源中,無論是關(guān)系的還是非關(guān)系的訪問數(shù)據(jù)的主要方法。數(shù)據(jù)源和數(shù)據(jù)控 件在客戶端,有幾種新的數(shù)據(jù)源是可用的,其中包括數(shù)據(jù)環(huán)境,它是一種圖形設(shè) 計器,允許快速創(chuàng)建和”來訪問數(shù)據(jù)。數(shù)據(jù)環(huán)境設(shè)計
器為工程中的數(shù)據(jù)訪問對象提供了動態(tài)可編程界面。此外,數(shù)據(jù)環(huán)境還提供了高 級的數(shù)據(jù)定型服務(wù),即創(chuàng)建相關(guān)數(shù)據(jù)的層次結(jié)構(gòu)、合計以及自動分組等功能,所 有這些都不需要代碼。
除了使用訪問數(shù)據(jù)以外,新的數(shù)據(jù)控件與內(nèi)部數(shù)據(jù)控件和 控件非常相似。在什中,現(xiàn)在可以使用記錄集作為控件和對 象的數(shù)據(jù)源。
在叭中,要封裝業(yè)務(wù)規(guī)則或?qū)S械臄?shù)據(jù)結(jié)構(gòu),既可以作為用戶控件 創(chuàng)建自己的數(shù)據(jù)源,也可以作為類來創(chuàng)建數(shù)據(jù)源。
現(xiàn)在已經(jīng)具有將數(shù)據(jù)源動態(tài)綁定到數(shù)據(jù)使用者的功能了。在運行 時,可以將數(shù)據(jù)使用者的屬性設(shè)置為數(shù)據(jù)源。在】十十的先前版 本中不可用的這種功能允許創(chuàng)建能夠訪問大量數(shù)據(jù)源的應(yīng)用程序。一提供了大量的方法來向最終用戶顯示數(shù)據(jù)。場一中包括了 所有數(shù)據(jù)綁定控件的基于的版本。用戶界面設(shè)計
用戶界面是一個應(yīng)用程序最重要的部分,它是最直接的現(xiàn)實世界。對用戶而 言,界面就是應(yīng)用程序,它們感覺不到幕后正在執(zhí)行的代碼。不論花多少時間和 基于酒店管理系統(tǒng)
精力來編制和優(yōu)化代碼,應(yīng)用程序的可用性仍然依賴于界面。用戶界面應(yīng)具備的特征 第一,復(fù)雜性和可靠性。
預(yù)定功能的前提下,用戶界面越簡單越好。
戶界面應(yīng)保證用戶正確、可靠地使用系統(tǒng),保證程序和數(shù)據(jù)的安全性。第二,使用性。使用的簡單性。用戶界面中所用術(shù)語的標(biāo)準(zhǔn)化和一致性。應(yīng)有幫助功能。
快速的系統(tǒng)響應(yīng)和低的系統(tǒng)成本。用戶界面應(yīng)具有容錯能力。第三,靈活性。
對不同的用戶,應(yīng)有不同的界面形式。
系統(tǒng)能夠按照用戶的需要,提供不同詳細程度的系統(tǒng)響應(yīng)信息。能通過簡單地將控件拖動并放置到窗體上而使得創(chuàng)建用戶界面非
常容易,但是,在設(shè)一計之前構(gòu)思一卜就能使應(yīng)用程序的可用性有很大的改觀。本 項目使用以下兩種方法創(chuàng)建用戶界面 使用控件
利用各種控件來管理用戶與應(yīng)用程序之間的交互方式。十提供了多 種控件以增強應(yīng)用程序界面的功能。設(shè)計菜單與工具欄
一個好的菜單系統(tǒng)可以使用戶了解到大量有關(guān)應(yīng)用程序設(shè)計和結(jié)構(gòu)的信息。
精心規(guī)劃菜單與工具欄有助一于提高程序的可用性,幫助用戶快速完成一些日常任 務(wù)。對于酒店管理系統(tǒng)界面的菜單,應(yīng)盡量地設(shè)計為簡單、清晰、方便、美觀。基于十酒店管理系統(tǒng)
作,只負責(zé)結(jié)算,不負責(zé)手工錄入單據(jù)。對于住掛帳,有住宿客人一卡通功能, 通過房卡直接識別客人的身份、押金余額,確認客人是否能掛帳。對于外掛帳, 在電腦中可以直接體現(xiàn)掛帳單位的名稱、掛帳期限和掛帳限額,這樣就直接加快 了收銀的結(jié)算速度。,解決不能準(zhǔn)確對營業(yè)收入進行分析
本系統(tǒng)全部采用自動統(tǒng)計,對各營業(yè)部門按種類進行統(tǒng)計收入、客房早餐開
支自動調(diào)整到相應(yīng)的餐飲部門,自動扣除提成部分。營業(yè)額的本月、本年、去年 同期對比以及預(yù)算對比使酒店管理層清楚知道各時期賓客人數(shù)變化與收入結(jié)構(gòu) 變化,可以作好及時調(diào)整經(jīng)營方式與策略。管理控制問題 房間門鎖
前臺門鎖和酒店管理軟件以前是分開的,在前臺隨時可以制作房間的房卡, 空閑的房間也可以制作房卡進入房間。使的對房卡控制帶來一定的困難。在本系統(tǒng)中,將貴賓卡的制作與前臺的房間入住聯(lián)系在一起,只有真正入住 的房間才能做出房卡,也就是說用酒店管理軟件制做貴賓卡,而客房部使用的總 控卡褸層卡、清掃卡由門鎖軟件做。空房電話
客人退房后需要通知總機關(guān)閉電話,若不及時就很容易出現(xiàn)空房電話,造成 電話費流失。在本系統(tǒng)客人退房時,電話自動關(guān)閉,不給有心人留有機會,這樣 避免了出現(xiàn)空房電話。退房消費
在客人退房時,如果發(fā)現(xiàn)客人有消費,而此消費又未能收回,則容易造成前 臺收銀和客服中心互相推卸責(zé)任。
上述情況一旦消費漏輸,前臺會說是客服中心沒報,而客服中心會說前臺沒
輸,分不清是前臺的責(zé)任還是客服中心的責(zé)任。在處理這個問題時很頭痛。針對 基于酒店管理系統(tǒng) 帳目調(diào)整問題
收銀入帳后如發(fā)現(xiàn)賬目錯誤,收銀員不能隨意進行更改。收銀入帳均只能用 負數(shù)沖減,不能修改當(dāng)前記錄,這樣便于財務(wù)進行審核,防止出現(xiàn)詐單現(xiàn)象。同 時對所有操作的一記錄,本軟件有強大的事件跟蹤器,任何細小的操作均記錄在電 腦中,隨時可以查詢工作記錄本系統(tǒng)對電腦權(quán)限的管理非常細致,各項功能均 有權(quán)限控制,保證各類數(shù)據(jù)不被無權(quán)過問的人觀看和操作。工作效率與效果問題 酒店交接班
收銀點交接班速度慢,造成總臺人員的堆積,對飯店的形象有一定的影響。在這個問題上,本軟件在交接時只根據(jù)一張收銀匯總表,將今天應(yīng)該交的款項全 部列出,收銀員只需要按照收銀匯總表交款,備用金與下班操作人員交接即可。成本結(jié)算
人力核算餐飲成本、各類收入分析報表,加大工作的難度,拖慢工作的 速度,加大人員的開支。
每月庫存盤點難,手工做收發(fā)存匯總表,影響下月的工作速度。
以上兩個問題可以放在一起解決,成本和收入對于一個酒店是很重要的組成 部分,因為它們直接決定著酒店一段時間內(nèi)的經(jīng)營狀況和財務(wù)狀況,這樣就要求 成本和收入的高度準(zhǔn)確。對于收入的統(tǒng)計,可以按照權(quán)責(zé)發(fā)生制和收付實現(xiàn)制分 別統(tǒng)計,針對每一個具體的營業(yè)項目的收入進行更細化的分析。本系統(tǒng)的庫存模 塊,直接將各類成本進行分析,可以具體到某個明細的領(lǐng)用部門,也可以明細到 每一類的原材料的消耗成本,在月末盤點后,針對于后廚剩余的庫存,在電腦中 做假退庫,將餐廳的成本變成真正的實際成本。隨時在電腦中可以查到庫存余額 表,可以隨時進行盤點。月末直接出收發(fā)存匯總表,體現(xiàn)一個月各個明細的出入 庫情況。員工提成
對于洗浴人員的工作提成占據(jù)核算人員大量的工作時間,服務(wù)項目比較多, 基于十酒店管理系統(tǒng)
這個問題,在客服中心的操作界面上填加了查房確認功能,即客服中心確認退房 房間檢查完畢時,在電腦中做此項操作,前臺收銀只有在看到客服中心的確認后, 才能將該房間退房。這樣很容易將責(zé)任區(qū)分清。折扣的管理問題
在酒店的管理當(dāng)中,折扣也是一個很難管理的地方。對于折扣的控制只能是
人為的控制。客人在結(jié)算的時候也很麻煩。本軟件針對這個問題,將折扣用電腦 控制,任何超出權(quán)限的操作都是不允許的,這樣就大大的簡化了不易管理的折扣 問題。多報銷問題
一般酒店都采取財務(wù)軟件記帳的方式,不能將核算到各個明細科目,使得財
務(wù)記帳與實際庫存不符,記帳與實際不符的差額既為賒銷部分。這樣的一個差額 給個人留有一定的空間。而本系統(tǒng)的庫存模塊,完全彌補了這個不足,對每一個 明細都核算的很準(zhǔn)確,對于庫,我們隨時可以查詢各明細科目的余數(shù)和余額,讓 大庫完全在管理者的掌控之中。成本的控制問題
如何清晰準(zhǔn)確的了解各部門的成本是各大酒店非常關(guān)心的問題。我們軟件支 持采用成本卡方式、理論成本輸入方式來統(tǒng)計銷售中產(chǎn)生的理論消耗數(shù)據(jù),與后 臺庫存的實際出庫數(shù)據(jù)產(chǎn)生實際成本相對比,確認各部門是否存在浪費問題。傭金的管理
酒店接待旅行團體或會議時,對于聯(lián)系人會給一些相應(yīng)的報酬,稱之為傭金。酒店一般將傭金先給營銷人員,而后由營銷人員給聯(lián)系人,再這個環(huán)節(jié)就有人 為的因素存在,給予一些個人便利的條件。在這個問題上,本軟件有完善的傭金 統(tǒng)計報表,而且可以將傭金發(fā)在卡上,只有有卡的人刁`可以到財務(wù)部提款,將傭 金的發(fā)放完全控制在財務(wù)部。基于十酒店管理系統(tǒng)
提成比例也都不相同,財務(wù)人員在統(tǒng)計的時候會很麻煩。本軟件在輸入電腦結(jié)算 過程中就已經(jīng)將提成金額計算出來,然后再形成一份針對每一個明細的服務(wù)報 表。在收入的報表中工作人員的提成直接去掉,不用手工去調(diào)整營業(yè)收入。數(shù)據(jù)庫維護問題 數(shù)據(jù)庫模塊概述
在系統(tǒng)的日常使用過程中,數(shù)據(jù)庫損壞或數(shù)據(jù)庫丟失的現(xiàn)象時有發(fā)生,為了 避免該現(xiàn)象對用戶造成的影響,本系統(tǒng)加入了數(shù)據(jù)庫維護模塊【,用戶可以通過 該模塊對數(shù)據(jù)庫進行備份、還原及初始化等操作,大大提高了用戶數(shù)據(jù)的安全性。數(shù)據(jù)庫維護技術(shù)分析
由于本系統(tǒng)采用的是數(shù)據(jù)庫,所以在數(shù)據(jù)庫的操作方面與 數(shù)據(jù)庫有一定的不同,例如數(shù)據(jù)庫的備份操作數(shù)據(jù)庫直接使 用語句實現(xiàn),而在數(shù)據(jù)庫中沒有語句供程序員使用,在
數(shù)據(jù)庫中備份數(shù)據(jù)庫是將源數(shù)據(jù)庫復(fù)制到相應(yīng)文件夾的過程,還原數(shù)據(jù)
庫則是備份操作的逆過程,即將備份好的數(shù)據(jù)庫復(fù)制粘貼到現(xiàn)在數(shù)據(jù)庫所在的文 件夾的過程。在系統(tǒng)進行復(fù)制前首先要獲得當(dāng)前數(shù)據(jù)庫的位置,這是「一以使用 方法獲取當(dāng)前數(shù)據(jù)庫所在的地址路徑。紅】首先創(chuàng)建一個字符數(shù)組存放路徑 ,獲取數(shù)據(jù)庫所在的文于夾 ,“”將文件夾路徑與數(shù)據(jù)庫名稱連接組成數(shù)據(jù)庫的地士路 徑
單擊“還原”按鈕時系統(tǒng)自動將用戶選取的數(shù)據(jù)庫文件復(fù)制到當(dāng)前的數(shù)據(jù)庫所 在文件。代碼如一下 , “還原完成”,“系統(tǒng)提刁、”,燈 基于料酒店管理系統(tǒng) 參考文獻
【唐彬,劉超案例開發(fā)集錦電子工業(yè)出版社, 【」袁國宏現(xiàn)代飯店,可持續(xù)發(fā)展的戰(zhàn)略與對策【廣州廣東旅游出版 社, 【」鄧新華現(xiàn)代酒店服務(wù)與管理【長沙湖南師范大學(xué)出版社, 砂
一一一, 〕薩師煊,王珊數(shù)據(jù)庫系統(tǒng)概論第三版高等教育出版社, 美微軟公司,實現(xiàn)數(shù)據(jù)庫設(shè)計北京希望電 子出版社, 」方盈中文版徹底研究中國鐵道出版社, 〕, 詳解卷一,機械工業(yè)出版社, 〕,一, 【〕咚煥然酒店管理系統(tǒng)的設(shè)計與實現(xiàn)大連理工大學(xué)碩士論文, , , 【」鄭人杰,殷人昆,陶永雷實用軟件工程第二版清華大學(xué)出版 社, 【〕侯其鋒,李銷華,李沙數(shù)據(jù)庫通用模塊開發(fā)與系統(tǒng)移植清 華大學(xué)出版社, 」樊平餐廳服務(wù)【州匕京旅游教育出版社, 【」郭敏文餐飲部運行與管理北京旅游教育出版社, 【」陳祝平餐飲營銷策劃與案例】沈陽遼寧科學(xué)技術(shù)出版社, 張衛(wèi)華,劉征,趙志剛、門'十程序設(shè)計實戰(zhàn)訓(xùn)練人民郵電出版 社, 〔,,一 一
基于十十酒店管理系統(tǒng) 結(jié)語
本文工作總結(jié)
該系統(tǒng)實現(xiàn)了酒店管理的電子化,自動化,提高了各個模塊之間的辦公效率, 為提高酒店服務(wù)質(zhì)量提供了有效的保障,本文工作主要涵蓋以下幾點 實現(xiàn)對客房標(biāo)準(zhǔn)的管理,包括預(yù)定、接待、總臺收銀、房務(wù)中心、商場 的工作流程的設(shè)定。
實現(xiàn)對洗浴管理,包括洗浴總臺的手牌登記規(guī)程,洗浴吧臺錄入規(guī)程, 洗浴總臺收銀和洗浴其它工作流程。
實現(xiàn)財務(wù)管理,包括財務(wù)審計,操作員審計,夜審,日審,以及財務(wù)出
納員,財務(wù)收入會計,財務(wù)信貸會計,財務(wù)成本會計,財務(wù)核算員的各自職責(zé)。實現(xiàn)營銷管理,包括了解和分析客戶在飯店的消費情況,及時與客戶溝 通,統(tǒng)計銷售員的銷售業(yè)績。
實現(xiàn)庫存管理,包括庫存帳套的設(shè)置及業(yè)務(wù)類型,物品的入庫,出庫, 調(diào)撥,結(jié)算的流程。進一步工作展望
本文的工作只是對該系統(tǒng)的實現(xiàn)框架需求進行了初步的探索與實現(xiàn),進一步 的工作將從以下幾個方面進行 密碼設(shè)置及操作權(quán)限的分配。洗浴包房的收費標(biāo)準(zhǔn)。男賓、女賓、兒童票價格。的洗浴男女賓手牌號。
洗浴特業(yè)人員的工號及姓名。
初始化洗浴代金券、優(yōu)惠券的種類、優(yōu)惠方案。餐飲的服務(wù)費標(biāo)準(zhǔn)。
飯店各部門人員的工號及姓名。電話檔案的建立。房間基本信息的確認。丫, , 【霍斯特曼面向?qū)ο蟮脑O(shè)計與模式張?zhí)蕉髯g北京電子工業(yè)出版 社, 【劉吉成財務(wù)信息的計算機管理與分析北京經(jīng)濟科學(xué)出版 社, 【朱振元數(shù)據(jù)結(jié)構(gòu)教程「」西安西安電子科技大學(xué)出版社, 〔〕詹紅霞,侯思穎,陶永紅程序設(shè)計教程清華大學(xué)出版社, 〔蔡振山,李志玲程序設(shè)計教程清華大學(xué)出版社, 〔〕鄭人杰,殷人昆,陶永雷實用軟件工程第二版北京清華大學(xué)出 版社, 〔」冀振燕系統(tǒng)分析設(shè)計與應(yīng)用案例【】北京人民郵電出版社, 魏亮,李春葆程序設(shè)計例學(xué)與實踐清華大學(xué)出版社, 〔張凱程序設(shè)計大連理工大學(xué)出版社, 【李言,李偉明,李賀一項目開發(fā)全程實錄清華大學(xué)出版社, 「」網(wǎng)冠科技時尚編程百例機械〔業(yè)出版社, 「門求是科技十?dāng)?shù)據(jù)庫通用模塊及典型系統(tǒng)開發(fā)人民郵電出 版社,
第三篇:基于java小型超市管理系統(tǒng)
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.Arrays;import java.util.Scanner;
public class Mytest { static int sign=0;//goodname數(shù)組第一個空下標(biāo)號
static int sign1=0;//cname數(shù)組第一個空下標(biāo)號
static String[] cpass=new String[20];//存放售貨員名稱
static String[] cname=new String[20];//存放售貨員登入密碼
static String[] goodname=new String[20];//存放商品名稱
static double[] goodprice=new double[20];//存放商品價格
static int[] goodout=new int[20];//存放商品銷售量
static int[] goodnum=new int[20];//存放商品數(shù)量
public static void main(String[] args)throws Exception { cname[0]=“ZhouTian”;//初始的售貨員名稱
cpass[0]=“723”;//初始的售貨員密碼 createArrays();readArrays(“goodname”);//將文件中的內(nèi)容讀入到相應(yīng)的數(shù)組里
readArrays(“goodprice”);readArrays(“goodnum”);readArrays(“cname”);readArrays(“cpass”);readArrays(“goodout”);menu();//登入之后加載的主菜單
} /** * 加載登入菜單
*/ private static void menu(){
Scanner scan = new Scanner(System.in);
System.out.println(“ttt歡迎使用商超購物管理系統(tǒng) n”);
System.out.println(“tttt1.登錄系統(tǒng)n”);
System.out.println(“tttt2.退出 ”);
System.out.println(“*************************************************”);
System.out.println(“請選擇,輸入數(shù)字: ”);
int a = scan.nextInt();
switch(a){
case 0:
System.out.println(“退出!”);//按0不登入
case 1:
System.out.println(“請輸入用戶名:”);// 查找售貨員姓名是否存在,與所對應(yīng)的密碼是否匹配
String name = scan.next();
System.out.println(“請輸入密碼:”);
String pass = scan.next();
int flage = 0;
int ff = 0;
for(int i = 0;i < cname.length;i++){
if(name.equals(cname[i])){
flage = 1;//售貨員的名稱匹配flage=1;
ff = i;
break;
}
}
if(flage == 1){//名稱匹配之后再匹配密碼
if(pass.equals(cpass[ff])){
loadmenu1();//密碼也匹配之后再允許登入
} else {
System.out.println(“密碼錯誤!”);
}
} else {
System.out.println(“該用戶名不具有權(quán)限”);
}
break;
case 2:
System.out.println(“謝謝您的使用!”);
break;
default:
break;
} }
/** * ,創(chuàng)建文件,將數(shù)組信息存入到各文件中, */ static void createArrays(){
BufferedWriter bw = null;
try {
File file1 = new File(“d:gname.txt”);
if(!file1.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:gname.txt”));
String content1 = strToString(goodname);//數(shù)組內(nèi)容轉(zhuǎn)換成字符串
bw.write(content1);//寫入
bw.close();
}
File file2 = new File(“d:gprice.txt”);
if(!file2.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:gprice.txt”));
String content2 = doubleToString(goodprice);//數(shù)組內(nèi)容轉(zhuǎn)換成字符串
bw.write(content2);//寫入
bw.close();
}
File file3 = new File(“d:gnum.txt”);
if(!file3.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:gnum.txt”));
String content3 = intToString(goodnum);//數(shù)組內(nèi)容轉(zhuǎn)換成字符串
bw.write(content3);//寫入
bw.close();
}
File file4 = new File(“d:cname.txt”);
if(!file4.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:cname.txt”));
String content4 = strToString(cname);//數(shù)組內(nèi)容轉(zhuǎn)換成字符串
bw.write(content4);//寫入
bw.close();
}
File file5 = new File(“d:cpass.txt”);
if(!file5.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:cpass.txt”));
String content5 = strToString(cpass);//數(shù)組內(nèi)容轉(zhuǎn)換成字符串
bw.write(content5);//寫入
bw.close();
}
File file6 = new File(“d:gout.txt”);
if(!file6.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:gout.txt”));
String content5 = intToString(goodout);//數(shù)組內(nèi)容轉(zhuǎn)換成字符串
bw.write(content5);//寫入
bw.close();
}
} catch(IOException e){
e.printStackTrace();
}
}
/** * 登入之后加載商超購物管理系統(tǒng)
*/ static void loadmenu1(){
System.out.println(“歡迎進入商超購物管理系統(tǒng)!”);
System.out.println(“tttt商超購物管理系統(tǒng)”);
System.out
.println(“********************************************************************************”);
System.out.println(“tttt1.商品維護”);
System.out.println(“tttt2.前臺收銀”);
System.out.println(“tttt3.商品管理”);
System.out.println(“tttt4.退出”);
System.out.println(“********************************************************************************”);
System.out.println(“請選擇,輸入數(shù)字或按0退出:”);
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
switch(a){
case 0:
System.out.println(“謝謝您的使用!”);
break;
case 1:
System.out.println(“執(zhí)行顯示商品維護菜單”);
loadmenu2();
break;
case 2:
System.out.println(“執(zhí)行前臺收銀”);
loadmenu6();
break;
case 3:
System.out.println(“執(zhí)行商品管理”);
loadmenu7();
break;
default:
break;
} } /* * 在商超購物管理系統(tǒng)中按1鍵時 */ static void loadmenu2(){
System.out.println(“tttt商超購物管理系統(tǒng) 商品維護”);
System.out
.println(“********************************************************************************”);
System.out.println(“tttt1.添加商品t”);
System.out.println(“tttt2.更改商品t”);
System.out.println(“tttt3.刪除商品t”);
System.out.println(“tttt4.顯示所有商品t”);
System.out.println(“tttt5.查詢商品t”);
System.out
.println(“********************************************************************************”);
System.out.println(“請選擇,輸入數(shù)字或按0返回上一級菜單:”);
Scanner scan = new Scanner(System.in);
int b = scan.nextInt();
switch(b){
case 0:
loadmenu1();
break;
case 1:
addgoods();
break;
case 2:
System.out.println(“執(zhí)行更改商品操作”);
loadmenu3();// 修改商品
break;
case 3:
System.out.println(“執(zhí)行商品刪除操作”);
loadmenu4();// 商品刪除
break;
case 4:
System.out.println(“顯示所有商品”);
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數(shù)量ttt”
+ “備注”);
showgoods();
break;
case 5:
System.out.println(“執(zhí)行查詢商品操作”);
loadmenu5();
break;
default:
break;
} } /* * 在商超購物管理系統(tǒng)中按2鍵時
*/ static void loadmenu6(){
System.out.println(“tttt商超購物管理系統(tǒng) 前臺收銀”);
System.out
.println(“********************************************************************************”);
System.out.println(“tttt1.購物結(jié)算”);
Scanner scan = new Scanner(System.in);
int ch = scan.nextInt();
switch(ch){
case 0:
loadmenu1();
break;
case 1:
pay();
break;
default:
break;
}
} /* * 在商超購物管理系統(tǒng)中按3鍵時
*/ static void loadmenu7(){
Scanner scan = new Scanner(System.in);
System.out.println(“ttt商超購物管理系統(tǒng) 商品管理”);
System.out
.println(“********************************************************************************”);
System.out.println(“tttt1.庫存查詢”);
System.out.println(“tttt2.已出售商品”);
System.out.println(“tttt3.售貨員管理”);
System.out.println(“請選擇,輸入數(shù)字或按0返回上一級菜單:”);
int ch = scan.nextInt();
switch(ch){
case 0: loadmenu1();
break;
case 1:
System.out.println(“執(zhí)行庫存查詢操作:”);
kusear();
break;
case 2:
System.out.println(“執(zhí)行已出售商品查詢操作”);
besold();
break;
case 3:
System.out.println(“執(zhí)行售貨員管理操作”);
salesman();
break;
default:
break;
}
} /* * 對售貨員信息的增添,修改 */ static void salesman()
{
Scanner scan = new Scanner(System.in);
System.out.println(“
1、添加售貨員”);
System.out.println(“
2、修改售貨員信息”);
System.out.println(“請選擇,輸入數(shù)字或按0返回上一級菜單:”);
int b = scan.nextInt();
switch(b){
case 0:
loadmenu7();//返回上一級
break;
case 1:
addsale();//選擇1鍵,添加售貨員
break;
case 2:
modifysale();//更改售貨員的信息
break;
default:
break;
} } /* 添加售貨員 * */ static void addsale(){
Scanner scan = new Scanner(System.in);
String f;
// sign1 = sign1 + 1;
do {
System.out.println(“添加售貨員姓名:”);
String addname = scan.next();
add(cname, addname, sign1);//將新信息添加到相應(yīng)數(shù)組中
System.out.println(“添加售貨員登陸密碼:”);
String addpass = scan.next();
add(cpass, addpass, sign1);//將新信息添加到相應(yīng)數(shù)組中
// writeArray();
sign1++;//新信息添加后數(shù)組下標(biāo)加1
writeArray();
System.out.println(“是否繼續(xù)(y/n)”);
f = scan.next();
// writeArray();
} while(f.equals(“y”));
salesman();} /* * 更改售貨員的信息 */ static void modifysale(){
String f;
Scanner scan = new Scanner(System.in);
System.out.println(“輸入更改員工名稱:”);
String newname = scan.next();
int k = searmember(newname);//查詢需要改的售貨員的信息,并返回其在數(shù)組中的下標(biāo)
if(k >= 0){//判斷售貨員是否存在
System.out.println(“員工姓名” + “ttt密碼”);
System.out.println(cname[k] + “ttt” + cpass[k]);
System.out.println(“選擇您要更改的內(nèi)容:”);
System.out.println(“
1、更改員工姓名:”);
System.out.println(“
2、更改登錄密碼:”);
int kk = scan.nextInt();
switch(kk){
case 1:
System.out.println(“請輸入已更改員工姓名:”);
String newnname = scan.next();
cname[k] = newnname;
writeArray();
System.out.println(“是否繼續(xù)(y/n)”);
f = scan.next();
if(f.equals(“y”)){
modifysale();
} else {
salesman();
}
break;
case 2:
System.out.println(“請輸入已更改密碼:”);
String newpass = scan.next();
cpass[k] = newpass;
writeArray();
System.out.println(“是否繼續(xù)(y/n)”);
// System.out.println(“是否繼續(xù)(y/n)”);
f = scan.next();
if(f.equals(“y”)){
modifysale();
}
salesman();
break;
default:
break;
}
} } /* * 查詢ename姓名的售貨員在數(shù)組中的下標(biāo) */ static int searmember(String ename){
for(int i = 0;i < cname.length;i++){
if(cname[i].equals(ename)){
return i;
}
}
return-1;// 不存在時
} /* * 查詢已出售的商品信息 */ static void besold()
{
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數(shù)量ttt” + “備注”);
for(int i = 0;i < goodout.length;i++){
if(goodout[i]!= 0){
System.out.println(goodname[i] + “ttt” + goodprice[i]
+ “ttt” + goodout[i]);
}
}
loadmenu7();} /* * 查詢庫存中售的商品信息
*/ static void kusear(){
Scanner scan = new Scanner(System.in);
String f;
do {
System.out.println(“輸入要查詢的商品名稱:”);
String sname = scan.next();
int t = ndimsear(sname);//按確切的商品名稱進行查詢,即非模糊查詢,找出商品名稱信息的下標(biāo)
if(t >= 0){
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數(shù)量ttt”
+ “備注”);
System.out.println(goodname[t] + “ttt” + goodprice[t]
+ “ttt” + goodnum[t] + “ttt”);//按下標(biāo)輸出商品相應(yīng)的信息
} else {
System.out.println(“沒有此商品”);
}
System.out.println(“是否繼續(xù)(y/n)”);
f = scan.next();
} while(f.equals(“y”));
loadmenu7();
} /* * 按確切的商品名稱進行查詢,即非模糊查詢,找出商品名稱信息的下標(biāo)
*/ static int ndimsear(String s){
for(int i = 0;i < goodname.length;i++){
if(goodname[i].equals(s)){
return i;
}
}
return-1;//沒查詢到時
}
/* * 商品結(jié)算
*/ static void pay(){
Scanner scan = new Scanner(System.in);
double sum = 0;
String f;
do {
dimsearch1();//按關(guān)鍵字進行模糊查詢,查找可能需要的商品
System.out.println(“請選擇商品:”);
String bnam = scan.next();//按查詢到的相關(guān)商品中選擇要購買的商品
System.out.println(“請輸入購買數(shù)量:”);
int bnum = scan.nextInt();
int fl = seargood(bnam);
System.out.println(bnam + “ttt” + goodprice[fl] + “ttt”
+ “購買數(shù)量” + bnum + “ttt” + bnum * goodprice[fl]);
goodnum[fl] = goodnum[fl]sum));
writeArray();//將對數(shù)組的更改寫入到文件中
loadmenu1();//結(jié)束購買返回
} /* * 查找商品返回下標(biāo) */ static int seargood(String bbnam){
for(int i = 0;i <= goodname.length;i++){
if(goodname[i].equals(bbnam)){
return i;
}
}
return-1;}
/* * 對商品進行各種查找
*/
static void loadmenu5(){
Scanner scan = new Scanner(System.in);
System.out.println(“
1、按商品數(shù)量升序查詢”);
System.out.println(“
2、按商品價格升序查詢”);
System.out.println(“
3、輸入關(guān)鍵字查詢商品”);
System.out.println(“請選擇,輸入數(shù)字或按0返回上一級菜單:”);
int choice = scan.nextInt();
switch(choice){
case 0:
loadmenu2();//返回上一級
break;
case 1:
numshenxu();//按商品數(shù)量升序進行查找
break;
case 2:
priceshenxu();//按商品價格升序進行查找
break;
case 3:
dimsearch();//按商品的關(guān)鍵字進行查找
break;
default:
break;
}
}
static void dimsearch1(){
int[] k;
Scanner scan = new Scanner(System.in);
System.out.println(“輸入商品關(guān)鍵字:”);
String sear = scan.next();
k = Arrays.copyOf(index(sear), index(sear).length);
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數(shù)量ttt” + “備注”);
if(k!= null){
for(int i = 0;i < k.length;i++){
System.out.println(goodname[k[i]] + “ttt” goodprice[k[i]]
+ “ttt” + goodnum[k[i]] + “ttt”);
}
}
} /* * 按商品的關(guān)鍵字進行查找
*/ static void dimsearch()
+ {
String f;
do {
int[] k;
Scanner scan = new Scanner(System.in);
System.out.println(“輸入商品關(guān)鍵字:”);
String sear = scan.next();
k = Arrays.copyOf(index(sear), index(sear).length);
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數(shù)量ttt”
+ “備注”);
if(k!= null){
for(int i = 0;i < k.length;i++){
System.out.println(goodname[k[i]] + “ttt”
+ goodnum[k[i]]
+ “ttt”);
}
goodprice[k[i]]
+
“ttt”
+
}
System.out.println(“是否繼續(xù)(y/n)”);
f = scan.next();} while(f.equals(“y”));loadmenu2();} static int[] index(String ss){ int countt = 0;int counttt = 0;for(int i = 0;i < goodname.length;i++){
if(goodname[i].indexOf(ss)>= 0){
countt++;
} } int[] location = new int[countt];for(int i = 0;i < goodname.length;i++){
if(goodname[i].indexOf(ss)>= 0){
location[counttt] = i;
counttt++;
}
}
return location;} /* * 按商品數(shù)量升序進行查找
*/ static void numshenxu(){
int[] newnum = Arrays.copyOf(goodnum, goodnum.length);
double[]
newprice
=
Arrays.copyOf(goodprice, goodprice.length);
String[] goodname.length);
for(int i = 0;i < newnum.lengthi1;i++){
for(int j = 0;j < newprice.length1;j++){
if(newprice[j] < newprice[j + 1]){
int temp = newnum[j];
newnum[j] = newnum[j + 1];
newnum[j + 1] = temp;
double temp1 = newprice[j];
newprice[j] = newprice[j + 1];
newprice[j + 1] = temp1;
String temp2 = newname[j];
newname[j] = newname[j + 1];
newname[j + 1] = temp2;//相應(yīng)的下標(biāo)在不同的數(shù)
newname
=
Arrays.copyOf(goodname, 組里進行挑換,商品的信息才能保持一致
}
}
}
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數(shù)量ttt” + “備注”);
for(int k = 0;k < newnum.length;k++){
if(newprice[k]!= 0){
System.out.println(newname[k] + “ttt” + newprice[k]
+ “ttt” + newnum[k] + “ttt”);
}
}
loadmenu5();} /* *更改商品信息的操作
*/ static void loadmenu3(){
Scanner scan = new Scanner(System.in);
System.out.println(“輸入更改商品名稱:”);
String nam = scan.next();
int b = showflage(nam);
print(b);
System.out.println(“選擇您要更改的內(nèi)容:”);
System.out.println(“
1、更改商品名稱::”);
System.out.println(“
2、更改商品價格:”);
System.out.println(“
3、更改商品數(shù)量:”);
int ch = scan.nextInt();
switch(ch){
case 0:
break;
case 1:
int counnt = 0;
String f = “y”;
while(f.equals(“y”)){
if(counnt!= 0){
// Scanner scan = new Scanner(System.in);
System.out.println(“輸入更改商品名稱:”);
nam = scan.next();
b = showflage(nam);//查找需要更改商品的下標(biāo)
print(b);//輸出這個商品的各種信息
}
System.out.println(“請輸入已更改商品名稱”);
String cname = scan.next();
goodname[b] = cname;//更改名稱
System.out.println(“是否繼續(xù)(y/n)”);
f = scan.next();
counnt++;
writeArray();
}
loadmenu2();
break;
case 2:
counnt = 0;
f = “y”;
while(f.equals(“y”)){
if(counnt!= 0){
// Scanner scan = new Scanner(System.in);
System.out.println(“輸入更改商品名稱”);
nam = scan.next();
b = showflage(nam);
print(b);
}
System.out.println(“請輸入已更改商品價格”);
double cprice = scan.nextDouble();
goodprice[b] = cprice;//新價格寫入數(shù)組
System.out.println(“是否繼續(xù)(y/n)”);
f = scan.next();
counnt++;
writeArray();
}
loadmenu2();
break;
case 3:
counnt = 0;
f = “y”;
while(f.equals(“y”)){
if(counnt!= 0){
// Scanner scan = new Scanner(System.in);
System.out.println(“輸入更改商品名稱”);
nam = scan.next();
b = showflage(nam);
print(b);
}
System.out.println(“請輸入已更改商品數(shù)量”);
int cnum = scan.nextInt();
goodnum[b] = cnum;
counnt++;
writeArray();
System.out.println(“是否繼續(xù)(y/n)”);
f = scan.next();
}
loadmenu2();
break;
default:
break;
}
} /* * 查詢nama這個商品在goodname中的下標(biāo)
*/ static int showflage(String nama){
int flag = 0;
for(int i = 0;i < goodname.length;i++){
if(goodname[i].equals(nama)){
flag = i;
break;
}
}
return flag;}
static void print(int b){
System.out.println(“商品名稱 tt” + “商品價格 tt” + “商品數(shù)量 tt” + “備注”);
System.out.println(goodname[b] + “tt” + goodprice[b] + “tt”
+ goodnum[b] + “ tt”);
} /* * 刪除商品菜單
*/ static void loadmenu4(){
String f;
int d;
do {
Scanner scan = new Scanner(System.in);
System.out.println(“請輸入要刪除的商品名稱:
String dname = scan.next();
d = showflage(dname);
delete(d);
System.out.println(”是否繼續(xù)(y/n)“);
f = scan.next();
writeArray();//刪除之后重新寫入文件
} while(f.equals(”y“));
loadmenu2();}
”);/* * 刪除商品 */ static void delete(int dd){
for(int i = dd;i < goodname.length1] = null;
goodprice[goodprice.length1] = 0;
} /* * 查詢所有商品
*/ static void showgoods(){
int i = 0;
while(goodprice[i]!= 0){
System.out.print(goodname[i] +
“ttt” goodprice[i] + “ttt”
+
+ goodnum[i] + “ttt”);
if(goodnum[i] < 10){
System.out.println(“ttt*該商品已不足10件!”);
}
System.out.println();
i++;
}
loadmenu2();
} /* * 商品添加操作 */ static void addgoods(){
System.out.println(“執(zhí)行添加商品操作:t”);
String a;
do {
Scanner scan = new Scanner(System.in);
System.out.println(“輸入商品名稱:”);
String na = scan.next();
add(goodname, na, sign);
System.out.println(“輸入添加商品價格:”);
double pr = scan.nextDouble();
add(goodprice, pr, sign);
System.out.println(“輸入添加商品數(shù)量:”);
int c = scan.nextInt();
add(goodnum, c, sign);
sign++;
System.out.println(“是否繼續(xù)(y/n)”);
a = scan.next();
writeArray();
} while(a.equals(“y”));
loadmenu2();
} /* * 將數(shù)組信息寫入到相應(yīng)的文件里,啟動程序時就要調(diào)用這個函數(shù) */ static void writeArray(){
BufferedWriter bw = null;
try {
bw
=
new
BufferedWriter(new FileWriter(“d:gname.txt”));
String content1 = strToString(goodname);
bw.write(content1);
bw.close();
bw
=
new
BufferedWriter(new FileWriter(“d:gprice.txt”));
String content2 = doubleToString(goodprice);
bw.write(content2);
bw.close();
bw
=
new
BufferedWriter(new FileWriter(“d:gnum.txt”));
String content3 = intToString(goodnum);
bw.write(content3);
bw.close();
bw = new BufferedWriter(new FileWriter(“d:cname.txt”));
String content4 = strToString(cname);
bw.write(content4);
bw.close();
bw
=
new
BufferedWriter(new FileWriter(“d:cpass.txt”));
String content5 = strToString(cpass);
bw.write(content5);
bw.close();
bw
=
new
BufferedWriter(new FileWriter(“d:gout.txt”));
String content6 = intToString(goodout);
bw.write(content6);
bw.close();
} catch(IOException e){
e.printStackTrace();
} } /* * 添加商品名稱 */ static void add(String[] aa, String n, int b){
if(b == aa.length){
aa =(String[])Arrays.copyOf(aa, aa.length * 2);
}
aa[b] = n;} /* * 添加商品價格
*/ static void add(double[] aa, double pr, int b){
if(b == aa.length){
aa =(double[])Arrays.copyOf(aa, aa.length * 2);
}
aa[b] = pr;} /* * 添加商品數(shù)量
*/ static void add(int[] aa, int cc, int b){
if(b == aa.length){
aa =(int[])Arrays.copyOf(aa, aa.length * 2);
}
aa[b] = cc;
}
/** * 從文件中讀取信息到相應(yīng)的數(shù)組里
*/ static void readArrays(String name)throws Exception {
BufferedReader br = null;
try {
if(“goodname”.equals(name)){
br
=
new
BufferedReader(new FileReader(“d:gname.txt”));
String content1 = br.readLine();
String[] arr = strToString(content1);
goodname arr.length);
for(int i = 0;i < goodname.length;i++){
if(!goodname[i].equals(“null”)){
sign++;
=
(String[])
Arrays.copyOf(arr,}
}
} else if(“goodprice”.equals(name)){
br
=
new
BufferedReader(new FileReader(“d:gprice.txt”));
String content2 = br.readLine();
double[] arr = doubleToString(content2);
goodprice arr.length);
} else if(“goodnum”.equals(name)){
br
=
new
BufferedReader(new
=
(double[])
Arrays.copyOf(arr, FileReader(“d:gnum.txt”));
String content3 = br.readLine();
int[] arr = intToString(content3);
goodnum =(int[])Arrays.copyOf(arr, arr.length);
} else if(“cname”.equals(name)){
br
=
new
BufferedReader(new FileReader(“d:cname.txt”));
String content4 = br.readLine();
String[] arr = strToString(content4);
cname arr.length);
=(String[])Arrays.copyOf(arr,for(int i = 0;i < cname.length;i++){
if(!cname[i].equals(“null”)){
sign1++;
}
}
} else if(“cpass”.equals(name)){
br
=
new
BufferedReader(new FileReader(“d:cpass.txt”));
String content5 = br.readLine();
String[] arr = strToString(content5);
cpass arr.length);
} else {
br
=
new
BufferedReader(new
=
(String[])
Arrays.copyOf(arr, FileReader(“d:gout.txt”));
String content6 = br.readLine();
int[] arr = intToString(content6);
goodout =(int[])Arrays.copyOf(arr, arr.length);
}
} catch(FileNotFoundException e){
e.printStackTrace();
} catch(IOException e){
e.printStackTrace();
}
} /* * 將字符串轉(zhuǎn)換成字符串?dāng)?shù)組 */ static String strToString(String[] arry){
// String arrys=“";
// for(int i=0;i // { // arrys=arry+arry[i]+”,“; // } // //arrys=arrys+arry[arry.length-1]; // System.out.println(arrys); // return arrys; StringBuilder sb = new StringBuilder(); for(int i = 0;i < arry.length;i++){ sb.append(arry[i]).append(”,“); } sb.deleteCharAt(sb.length()-1); // System.out.println(sb.toString()); return sb.toString();} /* * 將字符串轉(zhuǎn)換成字符串?dāng)?shù)組 */ static String[] strToString(String ar){ String[] arry = ar.split(”,“);return arry;} /* * 將int型數(shù)組轉(zhuǎn)換成字符串 */ static String intToString(int[] arrr){ String ss = ”“; ss = Arrays.toString(arrr); String sss = ss.replace(”[“,”“).replace(”]“, ”“).replace(” “, ”"); java管理系統(tǒng)項目總結(jié) 篇一:java管理系統(tǒng)項目總結(jié) 期末將至,怕沒有時間再去寫這篇不成器的文章,所以早早寫完,早早留給時間去復(fù)習(xí)。隨著期末的臨近,java課程也結(jié)束了,距離之前寫過的“java-象棋設(shè)計心得”有差不多過了2個月了。我們的java課程主要做全班選出來的兩個項目,一個是象棋,一個就是人事管理系統(tǒng)。做完都要通過答辯才能評分,以此兩次來作為整個java學(xué)期的成績。快走題了,就在這里止步回頭! 這一次的主要通過 問題->理解->修改->添加 的步驟講解,跟java-象棋設(shè)計心得的講解思路基本上差不多。 ----問題篇 一開始著手這個java-人事管理系統(tǒng)項目的時候就感覺到這比之前的java-象棋項目難了,知識明顯不夠,需要邊看書本源代碼邊查看API文檔和通過網(wǎng)上來解惑。就這樣,一周的時間就過去了,當(dāng)然一周里還有很多課程需要跟上,所以并不是把一周的所有時間都花在項目設(shè)計上。 這里介紹一下我項目中遇到的一些“坎”: 1.布局管理器 GridBagLayout的使用和GridBagConstraints類的使用 類和DefaultMutableTreeNode類和其他類的使用 面板和JSplitePane面板和其他面板 4.設(shè)計的界面的還原 5.數(shù)據(jù)庫如何實現(xiàn)數(shù)據(jù)的保存 可見,問題多多,解決起來又會出現(xiàn)其它的問題,但我知道每一個項目必定存在多個類和面板的設(shè)計,設(shè)計的過程也是一個不斷自我矛盾和自我更正的過程,只有這樣設(shè)計出來的產(chǎn)品才符合我們的要求。其中首先要說問題的是界面的還原是比較耗費時間的,但這也是任何軟件設(shè)計的第一步,所以必須理解透!其次就是數(shù)據(jù)庫和SQL語言的學(xué)習(xí),因為數(shù)據(jù)庫是新知識,還沒有可以通過課程來學(xué)習(xí)的,這就意味著只能通過自己學(xué)習(xí)新知識,這又是一個新問題的開始,但我知道必須要克服。最后就是動作的實現(xiàn)問題,例如:點擊了這個節(jié)點,相應(yīng)的功能是如何實現(xiàn),是通過什么來實現(xiàn)的,這些問題也必須理解,因為是答辯問的最多問題。好了,問題篇就到這里了。 ----理解篇 理解的基本條件就是問題的產(chǎn)生,上篇說的就是問題篇,那么這里說的就是理解。或許這里有一些東西會跟java-象棋設(shè)計心得有些相同,所以會提醒一下就過了,理解是理解軟件制作的必要過程,重要性可想而知了,在java-象棋設(shè)計心得里,有些理解的方法這里就不在重復(fù)了。那么這里要講的東西不多,主要講的是功能的實現(xiàn)過程,書本中人事管理系統(tǒng)的功能有,如下: 1.基本信息管理--添加人員信息、修改人員信息、刪除人員信息、查詢?nèi)藛T信息、部門管理; 2.人員調(diào)動管理--人員調(diào)動、調(diào)動歷史查詢; 3.人員考核管理--人員考核、考核歷史查詢; 4.勞資管理--勞資分配管理、勞資歷史查詢 因為基本上以上的所有功能的實現(xiàn)基本相同,所以這里通過其中一個功能的實現(xiàn)來粗略理解其它功能的實現(xiàn)吧,說的不好請諒解! 那么就說“人員調(diào)動管理--人員調(diào)動”這個功能的實現(xiàn),從點擊葉子節(jié)點人員調(diào)用后,調(diào)用了人員調(diào)用的實現(xiàn)類,在右面板顯示相應(yīng)的人員調(diào)用面板,由圖可知面板里的放了“人員調(diào)動”的JLabel、數(shù)據(jù)顯示的表單Jtable、一些文本框TextField和Jabel,還有下拉菜單JComboBox,以及三個按鈕。主面板里使用默認的BorderLayout布局,可以看下圖來知道該功能布局的實現(xiàn):圖片的大小和真實的有差別,只作為理解而用。 接下來說如何通過點擊面板上的調(diào)入新部門的按鈕來實現(xiàn)與數(shù)據(jù)庫的連接,當(dāng)正確操作后,按調(diào)入新部門按鈕后,調(diào)用與數(shù)據(jù)庫連接的實現(xiàn)類的相應(yīng)方法,來對數(shù)據(jù)庫存放數(shù)據(jù)的相應(yīng)表進行修改和給存放歷史數(shù)據(jù)的表進行調(diào)動歷史添加。這樣就完成以一個調(diào)用人員功能的實現(xiàn)了,類似的功能也可以參照次步驟來理解。 除了理解好這些功能的實現(xiàn)外,我還應(yīng)該要是自己來實現(xiàn)一個功能,作為真正理解好一個功能實現(xiàn)的動手機會,這個會在添加功能里詳解。好了,理解篇就到這里了! ----修改篇 修改、添加也是在理解的基礎(chǔ)上才能對代碼進行改進和添加,這里是修改篇,下一篇就是理解篇。可以說書本上的每一項目的代碼都存在不足和缺陷,可以運行但運行起來其中總是存在不少的缺陷和矛盾,所以就需要修改,那么在實際開發(fā)過程中,修改和添加就相當(dāng)于軟件的后期維護了,這是一個永遠也完成不了的功能,要做到軟件的完美,是不可能的!只能不斷的修改,添加,再修改,再添加。。 在書本的人事管理系統(tǒng)代碼,只代表本人的觀點下,進行了一些修改,這里就不一一說明了。 ----添加篇 因為人事管理系統(tǒng)的龐大,其功能也可以有相當(dāng)多,之前就說過,功能的實現(xiàn)都是差不多的,而且考慮到作業(yè)提交和答辯的時間,所以只添加了一個功能 “加班信息管理--添加人員加班信息、人員加班信息查詢”,請看下圖: 總結(jié):雖然java課程隨著人員管理系統(tǒng)的完成而結(jié)束了,但java的學(xué)習(xí)還會繼續(xù),這是一個厲害的技能,不是說課程教完就結(jié)束了,老師只能帶領(lǐng)我們進門,但java提升是靠自己的努力的,有不少人說java作為一個謀生的技能很不錯,我想我會在邊學(xué)習(xí)java之余邊體會java的魅力。 篇二:java管理系統(tǒng)項目總結(jié) 這個學(xué)生管理系統(tǒng)相對來說比較簡單,主要就是復(fù)習(xí)下java怎么連接數(shù)據(jù)庫,然后你怎么來實現(xiàn)這個功能,我簡單的說下思路吧。 首先你要構(gòu)思好這個界面,他包括增刪查改這些基本功能,然后你去分析這些功能都能怎么實現(xiàn),對于查找,應(yīng)該是比較簡單的,這里連接數(shù)據(jù)庫就不詳述了,導(dǎo)jar包,設(shè)置三個變量,然后傳固定的參數(shù)進去,查詢你應(yīng)該單獨寫一個類,在這個類里面你要做的就是傳入sql語句,利用executeQuery返回的結(jié)果集存放在一個向量里面,然后返回給java界面里面JTabel的參數(shù),同樣增加一條記錄,你可以自定義java界面,從鍵盤讀入數(shù)據(jù),然后將數(shù)據(jù)返回給你自定義的add類里面,在這個類里,主要處理sql增加語句,所以語句將被使用,這里還是要注意下防止sql注入。修改操作和增加操作類似,這里因為主鍵的特殊性,所以你需要把他設(shè)為不可修改,當(dāng)然你也可以選擇不。對于刪除操作,因為不需要特別的界面為他服務(wù),所以你大可以在Main函數(shù)里面進行操作,除非你覺得有必要整理下長的嚇人的代碼,其實刪除操作也就是獲取你指定的主鍵,然后在sql里面執(zhí)行操作。大概也就是這些了,有些細節(jié)地方要注意下,很多參數(shù)里面的下標(biāo)要千萬小心,不然很痛苦的,連接sql文件后記得關(guān)閉,彈出界面自己要加些異常處理,每次操作完后,要記得及時更新界面。另外對于MVC模式,你可以在寫完后,想想,其實很多代碼都有其復(fù)用性,你可以分幾層來操作啊,業(yè)務(wù)層就專門提交具體操作,也就是contral啊,然后增刪查改界面可以全放在view里面,model就專門處理和數(shù)據(jù)庫的銜接,反正mvc模式你會覺得代碼非常清晰,后續(xù)你還可以增加分頁操作啊,分頁操作其實很簡單,上一次sql里面測試了下,對于百萬級的數(shù)據(jù),分頁操作跑了三到五秒,或許我的本本真該換了。想說的也就是這么多了,另外鑒于昨天晚上發(fā)生的一些事情,后續(xù)不打算再更新任何東西了,也許這兩者沒任何關(guān)聯(lián),于我而言,結(jié)局早已注定。 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(“請選擇:”); int m;Scanner s=new Scanner(System.in);m=s.nextInt(); if(m==1){ for(int i=0;i<3;i++){ System.out.println(“請輸入賬戶名和密碼”); 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(“用戶名或密碼輸入錯誤一次,還有兩次機會!”); if(i==1&&b1==false)System.out.println(“用戶名或密碼輸入錯誤兩次,還有一次機會!”); if(i==2&&b1==false){System.out.println(“三次輸入錯誤,退出系統(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(“請一次輸入編號,姓名,積分”); 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(“請輸入要求刪除的會員編號:”);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(“查無此會員!”);} static void correct(){ System.out.println(“請輸入要修改信息的會員編號:”);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(“請輸入新的姓名和積分:”); 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(“查無此會員!”);} static void select(){ System.out.println(“請輸入要查詢的會員編號:”);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(“查無此會員!”);} 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(“查無此會員,不能兌換!”);} public static void shop(String s1,int a,int b){ boolean b1=true; for(int i=0;i if(b1==true)System.out.println(“查無此會員,不能購買!”);} 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(“請輸入要刪除的禮品編號:”); 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(“請輸入要添加的禮品編號,名稱,所需積分:”); 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(“請輸入您的會員編號:”); s1=me.next(); System.out.println(“請輸入您要兌換的禮品編號:”); s2=me.next(); System.out.println(“請輸入您要兌換的禮品數(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(“請輸入您的會員編號:”);s1=me.next();System.out.println(“請輸入書籍編號:”);s2=me.next();System.out.println(“請輸入購買數(shù)量:”);a=me.nextInt();b=bookmanger.price(s2);s3=bookmanger.name(s2);System.out.println(“書名”+“ ”+“單價”+“ ”+“數(shù)量”+“ ”+“總價”);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、會員管理”); 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)>會員管理:”); 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(“ 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(); } } } }第四篇:java管理系統(tǒng)項目總結(jié)
第五篇:java書店管理系統(tǒng)源代碼