Eclipse酒店管理系統(tǒng)java_第1頁
Eclipse酒店管理系統(tǒng)java_第2頁
Eclipse酒店管理系統(tǒng)java_第3頁
Eclipse酒店管理系統(tǒng)java_第4頁
Eclipse酒店管理系統(tǒng)java_第5頁
已閱讀5頁,還剩98頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

目錄

摘要...........................................................

1序言...........................................................

L1目的...................................................

1.2定義....................................................

2需求分析......................................................

2.1需求分析報(bào)告.............................................

2.2數(shù)據(jù)流圖................................................

4數(shù)據(jù)庫的邏輯設(shè)計(jì)..............................................

5系統(tǒng)設(shè)計(jì)......................................................

5.2用戶身份驗(yàn)證模塊........................................

5.3酒店管理模塊.............................................

5.3.1菜品管理..........................................

5.3.2菜系管理..........................................

5.3.3臺(tái)號(hào)管理..........................................

5.3.4結(jié)賬查詢..........................................

5.4用戶管理及密碼模塊......................................

5.訂單管理模塊..............................................

6系統(tǒng)的實(shí)現(xiàn)與調(diào)試..............................................

6.1系統(tǒng)的實(shí)現(xiàn)..............................................

6.2系統(tǒng)的調(diào)試..............................................

7小結(jié)...........................................................

7.1系統(tǒng)的功能.............................................

7.2系統(tǒng)的特點(diǎn).............................................

7.3系統(tǒng)開發(fā)過程的特點(diǎn).....................................

7.4存在的問題與改善方向...................................

7.5自我體會(huì)................................................

參考文獻(xiàn).........................................................

附錄.............................................................

附錄:核心代碼............................................................

摘要

隨著旅游業(yè)的發(fā)展,酒店、餐飲娛樂行業(yè)日趨發(fā)達(dá),引入全方位的電腦服務(wù)和電

腦管理日漸成為必要。據(jù)調(diào)查,在酒店和餐廳娛樂業(yè)引入電腦服務(wù)和管理

后明顯取得了優(yōu)良的經(jīng)濟(jì)效益和社會(huì)效益。

以往傳統(tǒng)的酒店管理往往令管理者花大量的時(shí)間來解決顧客投訴,

例如錯(cuò)誤查詢、瑣的登記和結(jié)帳手續(xù)、旅客費(fèi)用計(jì)算錯(cuò)誤、空余客房資

料不能及時(shí)提供等,影響出租率。以上問題可以通過電腦系統(tǒng)輔助一一

解決。

酒店管理的電腦化,不僅是體現(xiàn)酒店現(xiàn)代化形象的一個(gè)重要標(biāo)志,

并旦對(duì)提高員工工作效率,讓管理層有時(shí)間集中精力規(guī)劃管理、制定運(yùn)作策略和

實(shí)行決策,加速資金周轉(zhuǎn)、減少各項(xiàng)成本以及改善服務(wù)質(zhì)量都有十分積極的作

用C

因此為了提高住房出租效率,提高服務(wù)管理質(zhì)量,規(guī)范酒店星級(jí)管理工作,建

立起用戶和旅游需求的橋梁,為旅游業(yè)的擴(kuò)展提供優(yōu)質(zhì)的物質(zhì)保證,使資源合理

配置,也緩解旅游住宿壓力,哺育良好的客戶群體,根據(jù)酒店管理業(yè)務(wù)實(shí)際情況,

進(jìn)行此系統(tǒng)的開發(fā)。

1序言

1.1目的

針對(duì)目前酒店電子化管理的實(shí)際需求,和消費(fèi)客戶對(duì)跨時(shí)域地區(qū)預(yù)訂住宿的規(guī)

定,本需求分析定義的開發(fā)酒店管理系統(tǒng)的總體規(guī)定是:作為兩類用戶(一般客

戶和酒店管理人員)和軟件開發(fā)員互相了解的基礎(chǔ),系統(tǒng)成品提供用戶登錄、查

詢、管理員后臺(tái)管理等四大功能服務(wù)。

系統(tǒng)開發(fā)目的:對(duì)內(nèi)是為了使酒店管理更加便捷、高效,員工操作更加明晰、規(guī)

范,大大提高酒店管理質(zhì)量。對(duì)外是能讓用戶自助登錄、查詢酒店住房信息和酒

店服務(wù)、實(shí)現(xiàn)零距離實(shí)時(shí)預(yù)定酒店房間,為客戶提供舒心的出行住宿保證,提高

社會(huì)效益。

本需求分析包含了初步分析設(shè)計(jì)各功能模塊、提供性能規(guī)定、對(duì)用戶影響的信息、

以及對(duì)各功能模塊功能的描述;同時(shí)也是規(guī)范開發(fā)人員進(jìn)行設(shè)計(jì)和部署實(shí)行的基

礎(chǔ)和依據(jù),為整體工作組的工作流程做出明確指導(dǎo),引導(dǎo)工作成員之間、工作成

員與用戶之間的溝通。最終作為總體審核、驗(yàn)證、確認(rèn)和結(jié)項(xiàng)驗(yàn)收的依據(jù);為開

發(fā)方與客戶方提供合法的協(xié)議保障。

L2定義

DrinkeryManage

T店管理系統(tǒng)

2需求分析

2.1需求分析報(bào)告

酒店管理系統(tǒng)是面向酒店的的各項(xiàng)事務(wù),涉及酒店管理,訂單管理、菜系管

理等業(yè)務(wù)解決工作,是運(yùn)用計(jì)算機(jī)進(jìn)行集中管理而開發(fā)的系統(tǒng)。該系統(tǒng)

是基于Eclipse連接SQLServer2023數(shù)庫進(jìn)行開發(fā)的酒店管理系統(tǒng),力求

與實(shí)際相結(jié)合具有查詢、管理等功能,在達(dá)成使酒店的管理和運(yùn)營(yíng)趨于

計(jì)算機(jī)化,使之更加方便、快捷以提高工作效率。

重要涉及五大管理模塊:

1)登錄管理

提供用戶登錄、注銷等功能

1用戶登錄

i用戶退出

2)菜品管理

用戶可以對(duì)菜名、菜品、單位、助記符零進(jìn)行查詢、修改、添加、刪除

操作。

上名稱

i單位

i助記符

3)菜系管理

用戶可以對(duì)酒店內(nèi)的所有菜系進(jìn)行查詢、修改、添加、刪除操作。

i菜系名稱

4)臺(tái)號(hào)管理

用戶可以對(duì)酒店內(nèi)的所有的臺(tái)號(hào)進(jìn)行查詢、修改、添加、刪除操作。

,臺(tái)號(hào)

X座位數(shù)

5)結(jié)賬管理

操作員可以對(duì)系統(tǒng)的使用者以及該系統(tǒng)中數(shù)據(jù)庫里的多張表中數(shù)據(jù)項(xiàng)進(jìn)

行查詢操作

X日結(jié)賬

月結(jié)賬

X年結(jié)賬

6)用戶管理

1操作員可以進(jìn)行查詢、添加、刪除用戶信息等操作,并可以修改

自己的用戶密碼

X修改密碼

」用戶管理

7)菜單管理

1當(dāng)前操作員可以進(jìn)行開單、簽單、取消等操作,并進(jìn)行金額結(jié)賬

」開單簽單

」金額結(jié)賬

2.2數(shù)據(jù)流圖

客戶信息酒店管)管理人員信息

管理人員

理系統(tǒng)/

收銀信息系統(tǒng)管理

菜單信息

圖1.頂級(jí)數(shù)據(jù)流圖

圖2.第二層流程圖

3數(shù)據(jù)庫概念設(shè)計(jì)

在酒店管理系統(tǒng)中,存在菜品、菜系、臺(tái)號(hào)、定單、用戶等幾個(gè)對(duì)象實(shí)體:以

菜品、菜系、臺(tái)號(hào)、定單以及用戶這幾個(gè)對(duì)象為例,一個(gè)定單相應(yīng)多個(gè)菜品,同

時(shí)一個(gè)菜品只能屬于一個(gè)菜系;一個(gè)定單中有多個(gè)菜系,一個(gè)菜系擁有多個(gè)菜

品。一個(gè)定單相應(yīng)一個(gè)操作員,一個(gè)操作員只能相應(yīng)一個(gè)定單;一個(gè)定單相應(yīng)一

個(gè)臺(tái)號(hào),一個(gè)臺(tái)號(hào)只能相應(yīng)一個(gè)定單。

(1)上述分析相應(yīng)的實(shí)體-屬性圖如下所:

圖3.1菜品

圖3.2菜系

圖3.3臺(tái)號(hào)

圖3.4訂單

圖3.5菜品單

圖3.6用戶

(2)實(shí)體-聯(lián)系圖如下:

圖3.8實(shí)體-聯(lián)系圖

4數(shù)據(jù)庫的邏輯設(shè)計(jì)

E-R模型所表達(dá)的全局概念結(jié)構(gòu),是對(duì)用戶數(shù)據(jù)需求的一種抽象表達(dá)形式,

它獨(dú)立于任何一種數(shù)據(jù)模型。為了實(shí)現(xiàn)用戶的需求,必須將概念結(jié)構(gòu)進(jìn)一步轉(zhuǎn)化

為與我們選用的具體的機(jī)器上DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯垢構(gòu),

這就是數(shù)據(jù)庫邏輯設(shè)計(jì)的任務(wù)。

一方面要實(shí)現(xiàn)的是E-R模型向關(guān)系模型的轉(zhuǎn)換,將E-R模型轉(zhuǎn)換為關(guān)系模

型事實(shí)上就是要將實(shí)體、實(shí)體的屬性和實(shí)體間的聯(lián)系轉(zhuǎn)換為關(guān)系模式的過程。

①這種轉(zhuǎn)換一般遵循如下規(guī)則:

②對(duì)于實(shí)體類型的轉(zhuǎn)換:將每個(gè)實(shí)體類型轉(zhuǎn)換成一個(gè)關(guān)系模式,實(shí)體的屬

性為關(guān)系模式的屬性,實(shí)體的碼即為關(guān)系模式的碼。

③對(duì)于實(shí)體間聯(lián)系的轉(zhuǎn)換,根據(jù)三種不同情況作出不同的解決:

若實(shí)體間的聯(lián)系是1:1,可以在兩個(gè)實(shí)體類型轉(zhuǎn)換成的兩個(gè)關(guān)系模式中的任意

一個(gè)關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式的碼和聯(lián)系的屬性。

若實(shí)體間的聯(lián)系是1:N,則在N端實(shí)體類型轉(zhuǎn)換成的關(guān)系模式中加入1端實(shí)體

類型轉(zhuǎn)換成的關(guān)系模式的碼和聯(lián)系的屬性。

若實(shí)體間的聯(lián)系是N:M,則將聯(lián)系類型也轉(zhuǎn)換成關(guān)系模式,其屬性為兩端實(shí)體

類型的碼加上聯(lián)系類型的屬性,而關(guān)系的碼則為兩端實(shí)體的碼的結(jié)合。

通過以上所述原則,由E-R圖轉(zhuǎn)換得到如下的關(guān)系模式

表4.1系統(tǒng)中所用到的基本信息表及用途

表名用途

Tb_desk臺(tái)號(hào)

Tb_menu菜品

Tb_ordei_form訂單

Tb_order_item菜品單

Tb_sort菜系

Tb_user用戶

表4.2臺(tái)號(hào)基本信息表(Tb_desk)

表4.3菜品信息表(Tb_menu)

列名數(shù)據(jù)類型允許空

numchar(8)□

sortjdint□

namevarchar(20)□

codevarchar(lO)□

unitvarchar(4)□

unit_priceint□

statechar(4)□

表4.4訂單信息表(Tb_order_form)

表4.5菜品單信息表(Tb_order_item)

列名數(shù)據(jù)類型允

應(yīng)idint

order_form_numchar(ll)

menu_numchar(8)

amountint

totalint

表4.6菜系信息表(Tbsort)

列名數(shù)據(jù)類型允許空

idint口

namevarchar(20)□

表4.7用戶信息表(Tb_user)

列名數(shù)據(jù)類型允空

idint

namevarchar(8)

sexchar(2)□

birthdaydatetime□

id_cardvarchar(20)□

passwordvarchar(20)□

freezechar(4)□

5系統(tǒng)設(shè)計(jì)

在本章中,我將就社區(qū)管理中各個(gè)模塊做一些介紹,從系統(tǒng)的預(yù)覽中可以看到各

個(gè)模塊的設(shè)計(jì)風(fēng)格是相同的,都是由一個(gè)框架頁面來實(shí)現(xiàn)的。在這我具體來就幾

個(gè)重點(diǎn)模塊進(jìn)行說明。

圖5.1功能結(jié)構(gòu)圖

5.2用戶身份驗(yàn)證模塊

登錄名和密碼由系統(tǒng)管理員授予給用戶,一般用戶有查詢、插入、更新、

刪除的權(quán)力,而管理員不僅擁有這些權(quán)力,尚有添加刪除用戶、密碼維護(hù)等權(quán)力。

在如圖所示的界面登錄。選擇下拉框,并輸入密碼。

0T科技;X|

酒店管理累統(tǒng)

默認(rèn)用戶:Tsoft

5.3酒店管理模塊

在登錄后出現(xiàn)的界而,上方是簽單列表、開臺(tái)列表,中間橫條可輸入進(jìn)行開

單簽單操作,左下方顯示時(shí)間和操作員,接著有消費(fèi)金額、實(shí)收金額、找零金額,

右下方有菜品管理、菜系管理、臺(tái)號(hào)管理、日結(jié)賬、月結(jié)賬、年結(jié)賬,修改密碼、

用戶管理、退出系統(tǒng)九個(gè)圖標(biāo),點(diǎn)擊則進(jìn)入相應(yīng)模塊。

臺(tái)號(hào):由遂搭▼商品<03號(hào)助記]:商品名殊:

?*?:□EI開?U?洎I

今天事:

消費(fèi)金額,0.00元

2012年6月伯日

扉取一-實(shí)收金額,QjQO|jC

1T:12:O4I一黑I

當(dāng)剪除作反:

找零金額,D.8沅

9

5.3.1菜品管理

菜品管理界面為酒店管理模塊的菜名界面,此界面可以查看、添

加和刪除菜品資料。

編號(hào):12061801名稱:?jiǎn)挝唬?/p>

助記碼:菜系:請(qǐng)選擇v單價(jià):元

|添加]|刪除|

序號(hào)編號(hào)名稱助記碼菜系

07122401紅*獅子頭hsszt燉炒類

07122402蝦碟將xbxj燉炒類

07122403雪*火焰山xmhys涼菜類

407122404水*肉片szrp燉炒類

07122405綣cs酒水類

a07122406可樂kl酒水類

707122407水餃J

¥07122408港?蛆魚qCy燉炒類

07122801干,卿魚gbjy燉炒類

■+1.1.

退

O編號(hào),?

<>菜品管理

消費(fèi)金額:0.00元£r日結(jié)嫄

5.3.2菜系管理

此界面可以查看菜系信息,并對(duì)菜系信息進(jìn)行修改、刪除、添加。

在刪除相應(yīng)記錄時(shí),只需選擇相應(yīng)記錄,點(diǎn)擊刪除按鈕即可進(jìn)入刪

除界面,點(diǎn)擊確認(rèn),即可提交。

,一菜品管理,

消費(fèi)金額:0.00元

5.3.3臺(tái)號(hào)信息

此界面可以查看臺(tái)號(hào)信息,并對(duì)臺(tái)號(hào)信息進(jìn)行修改、刪除、添加。在刪除相應(yīng)記

錄時(shí),只需選擇相應(yīng)記錄,點(diǎn)擊刪除按鈕即可進(jìn)入刪除界面,點(diǎn)擊確認(rèn),即可提

交。

圖5.5樓宇概況

5.3.4日結(jié)賬、月結(jié)賬、年結(jié)賬查詢

此界面可以查詢所有的菜單信息,在下拉框選擇年、月、日,即可查詢相應(yīng)

的日月、年的所有消費(fèi)記錄。

5.4用戶管理及密碼模塊

點(diǎn)擊用戶管理,即可進(jìn)入用戶管理模塊。本模塊涉及用戶基本信息、密碼信息。

用戶基本信息提供操作員信息的查詢功能,添加、刪除用戶信息。在密碼修改區(qū)

可更改當(dāng)前用戶的密碼。

開單

5.5訂單管理模塊

在此模塊,當(dāng)前操作員可以選擇臺(tái)號(hào)、輸入菜單信息,進(jìn)行開單、簽單操作。簽

單后,消費(fèi)金額顯示當(dāng)前金額,在實(shí)收金額輸入市的金額(大于等于實(shí)收金額),

找零金額顯示應(yīng)找金額。

34:,陽號(hào)RhwW):商品名粗:?jiǎn)挝唬?a:[7]]開單][筌?]|*刑]

6系統(tǒng)的實(shí)現(xiàn)與調(diào)試

6.1系統(tǒng)的實(shí)現(xiàn)

在通過需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、系統(tǒng)設(shè)計(jì)四個(gè)階段后,接下來要

做的是系統(tǒng)的實(shí)現(xiàn)。

1.擬定你的SQLSERVER2023的用戶登錄名和密碼,在代碼JDBC,java中修

改好相應(yīng)的信息。

2.打開SQLSERVER2023,在對(duì)象資源管理器中附加dbJrinkeryManage數(shù)

據(jù)庫。

3.打開登錄界面

6.2系統(tǒng)的調(diào)試

開發(fā)一個(gè)系統(tǒng),調(diào)試是一個(gè)必不可少的環(huán)節(jié),也是一個(gè)非常重要的環(huán)節(jié)。系統(tǒng)測(cè)試

是系統(tǒng)開發(fā)中比較重要而耗時(shí)的過程,是系統(tǒng)能否成功運(yùn)營(yíng)的保證之一。通過測(cè)試可以發(fā)現(xiàn)

系統(tǒng)中存在的錯(cuò)誤和漏洞.所以測(cè)試過程必須認(rèn)真謹(jǐn)慎嚴(yán)格對(duì)待。

測(cè)試的方法分為兩種:人工測(cè)試和機(jī)器測(cè)試。機(jī)器測(cè)試又分為:黑盒測(cè)試和白盒

測(cè)試。人工測(cè)試分為:個(gè)人復(fù)查、走查、會(huì)審。人工測(cè)試只用個(gè)人復(fù)查。

由于本系統(tǒng)并不是真正要應(yīng)用到實(shí)際當(dāng)中,本人的精力和時(shí)間有限,只能進(jìn)行

個(gè)人測(cè)試。在測(cè)試系統(tǒng)過程中,碰到不對(duì)的或不抱負(fù)的地方時(shí),給予修改。

7小結(jié)

7.1系統(tǒng)的功能

較為完整的星級(jí)酒店管理軟件應(yīng)當(dāng)覆蓋泗店的整個(gè)管理自動(dòng)化系統(tǒng),包含

結(jié)賬管理、賬單管理、住房管理、餐飲管理、KTV等服務(wù)功能。而本酒店管理

軟件重要包含與訂單相關(guān)的結(jié)賬管理、賬單管理、菜類管理。下面具體說明酒店

管理軟件一般涉及的模塊功能:

I)用戶登錄模塊

用戶身份驗(yàn)證模戾實(shí)現(xiàn)用戶合法性檢查,把用戶名以及密碼保存到數(shù)據(jù)庫

表中,而在后面的頁面中通過讀取用戶信息來登陸。在這個(gè)模塊中還提供用戶提

出的功能

2)菜品管理模塊

在菜品管理模塊里重要涉及了對(duì)菜品信息的查詢,添加、刪除功能。有編號(hào)、

菜名稱、助記符、單位、價(jià)格等信息。

3)菜系管理模塊

菜系管理模塊重要提供的是查看,添加,刪除菜種類的基本信息。

4)臺(tái)號(hào)管理模塊

臺(tái)號(hào)管理模塊重要提供的是對(duì)酒店內(nèi)的臺(tái)號(hào)的基本信息進(jìn)行查看,添加和

刪除操作。有臺(tái)號(hào)、座位數(shù)相關(guān)信息。

5)結(jié)賬管理模塊

操作員可以對(duì)系統(tǒng)的使用者以及該系統(tǒng)中數(shù)據(jù)庫里的多張表中數(shù)據(jù)項(xiàng)進(jìn)行

查詢操作。有日結(jié)賬、月結(jié)賬、年結(jié)賬。

6)用戶管理模塊

操作員可以進(jìn)行查詢、添加、刪除用戶信息等操作,在密碼修改區(qū)可更改當(dāng)

前用戶的自己的登錄密碼。

7)菜單管理模塊

結(jié)賬管理模塊涉及開單列表、開臺(tái)列表、金頒收結(jié)。在此模塊,當(dāng)前操作員

可以選擇臺(tái)號(hào)、輸入菜單信息,進(jìn)行開單、簽單操作。簽單后,消費(fèi)金額顯示當(dāng)

前金額,在實(shí)收金額輸入對(duì)的金額(大于等于實(shí)收金額),找零金額顯示應(yīng)找金

額。

7.2系統(tǒng)的特點(diǎn)

1.整個(gè)系統(tǒng)是個(gè)框架結(jié)構(gòu)的單機(jī)界面,各個(gè)模塊中框架結(jié)構(gòu)相似。

2.整個(gè)系統(tǒng)的主色為灰色,以綠色和紅色作為輔色。

3.本系統(tǒng)提供密碼登錄,未授予登錄名和密碼的用戶無法登錄。

4.代碼維護(hù)簡(jiǎn)樸。本系統(tǒng)提供了代碼維護(hù)功能,可以修改代碼。

7.35.系統(tǒng)數(shù)據(jù)庫中的表數(shù)據(jù)簡(jiǎn)潔,冗余度低,效率高。

7.46.用戶有查詢、插入、更新、刪除的權(quán)力,尚有添加刪除用戶、密碼維護(hù)

等權(quán)力。

7.5系統(tǒng)開發(fā)過程的特點(diǎn)

1.本系統(tǒng)的整個(gè)開發(fā)過程由三人完畢,以課程設(shè)計(jì)的方式提交。

7.6本系統(tǒng)的開發(fā)工具為Eclipse+SQLServer2023,開發(fā)系統(tǒng)速度快,但功能

上受到限制。

7.7由于自學(xué)開發(fā)系統(tǒng),開發(fā)本系統(tǒng)是一個(gè)不斷學(xué)習(xí)、不斷進(jìn)步的過程,直到系

統(tǒng)驗(yàn)收那一刻前,我們都一直在作修改。

7.8存在的問題與改善方向

1.我開發(fā)的酒店管理系統(tǒng)是按照用Swing+SQLSERVER開發(fā)的酒店管理系

統(tǒng)模板做的,而我是用Eclipsc+SQLSERVER20235開發(fā),在實(shí)現(xiàn)系統(tǒng)功

能上受到了一定的限制。另一方面,一個(gè)系統(tǒng)存在問題在所難免,何況

我們需要在短時(shí)間內(nèi)自學(xué)Eclipse和Java,提交系統(tǒng)。本系統(tǒng)存在的問

題如下:

2.在界面登錄時(shí),假如用戶或密碼輸入錯(cuò)誤,在點(diǎn)擊登錄按鈕會(huì)出現(xiàn)卡死

的問題,以任務(wù)管理器結(jié)束進(jìn)程。

7.9在提供查詢功能時(shí),做到了精擬定位,沒有提供模糊查詢。模糊查詢只需

將條件改成like,再加上通配符就可以了。選擇精擬定位還是模糊查詢?nèi)Q

于實(shí)際需求。對(duì)于本系統(tǒng)而言,由于操作員熟悉酒店業(yè)務(wù)情況,提供精擬

定位功能,效率會(huì)更高。

7.10有時(shí)不妥操作會(huì)清空三張表:tb_user、tb_order_item、

tb_order_form,所有需時(shí)常做好數(shù)據(jù)備份。

7.11自我體會(huì)

1、汪偉:本次課程設(shè)計(jì)收獲良多。從初期的無從下手,到現(xiàn)在較完整完畢數(shù)據(jù)

庫課程設(shè)計(jì)。中間碰到了很多問題,也解決了很多問題。感覺在解決問題的

過程中,我在一步步成長(zhǎng),在一點(diǎn)點(diǎn)積累知識(shí)。學(xué)習(xí)Java語言,看Eclipse

教學(xué)視頻,學(xué)習(xí)SQLServer2023。邊學(xué)邊做,期間擋在面前的很多問題,都

需要自己去弄懂、學(xué)習(xí),百度、谷歌都是自己理解問題、解決問題的途徑。

到最終的成品出來,這也是對(duì)自己的一次肯定。對(duì)以后的課程設(shè)計(jì)及畢業(yè)設(shè)

計(jì),本次實(shí)踐有著不可替代的意義,相信自己在以后的項(xiàng)目開發(fā)過程中都

會(huì)有著良好的習(xí)慣,能學(xué)到更多的東西。以下摘取些碰到的問題及解決:

2^將eclipse連接到SQLServer:具體環(huán)節(jié)見《Eclipse連接SQL+Server+2023

數(shù)據(jù)庫》文檔

3、Exceptioninthread"main”

com.microsoft.sqlserver.jdbc.SQLServerException:無法打開登錄所請(qǐng)

求的數(shù)據(jù)庫〃db_DrinkeryManage”。登錄失敗。

ClientConnectionld:f194c087-3b95-4d59-a0f2-fccd5d0bec8b

解決:

URL=/,jdbc:sqlserver://localhost:1433;DatabaseName=db_DrinkeryManag

e

USERNAME=〃sa〃

PASSWORD=〃q〃

4、LoadCONFIG.INIisfalse!!

界面排版:對(duì)于尺寸、分割、邊框,需要安排好整個(gè)界面大小及各個(gè)塊的大小

徐懷群:做了本學(xué)期的課程設(shè)計(jì),有很多有關(guān)于數(shù)據(jù)庫方面的心得體會(huì)。在同

學(xué)的互相合作下,終于把整個(gè)系統(tǒng)完畢了,實(shí)現(xiàn)了預(yù)定的功能,SQL語言及

java語言沒學(xué)扎實(shí),一開始的程序這塊兒就要令我抓狂了。后來在幾天幾夜的

努力,終于有了頭緒,然后又在同學(xué)的幫助下,找到了一些參考書,又在這寫

書的幫助下了解了系統(tǒng)設(shè)計(jì)的各種方法,在編譯過程中經(jīng)常出現(xiàn)的問題,和解

決的方法。沒想到這項(xiàng)看起來不需要多少技術(shù)的工作卻是非常的勞心勞力。我

看到有很多人跟我同樣,都他們是三三兩兩,一同討論學(xué)習(xí)。當(dāng)我想放棄的時(shí)

候,我也這么對(duì)自己說,即使你做出來的是次品甚至不合格品,但是你一定要

拿出來一件成品。一個(gè)學(xué)期后我們的程序終于完畢了,并且放到一起也能用。

在機(jī)房調(diào)試雖然出現(xiàn)了一些問題,但都解決了。最后,我發(fā)現(xiàn)自己對(duì)編程居然

也有了一點(diǎn)愛好。

王乾坤:一學(xué)期的時(shí)間不久就過去了,這學(xué)期不敢說自己有多大進(jìn)步,獲得了

多少知識(shí),但起碼是了解了項(xiàng)目開發(fā)的部分過程。雖然學(xué)習(xí)了數(shù)據(jù)庫相關(guān)課程,

但沒有親身經(jīng)歷數(shù)據(jù)庫開發(fā)的相關(guān)工作,這次課程設(shè)計(jì)給了一次很好的鍛煉機(jī)

會(huì)。從各種文檔的閱讀到開始需求分析,概念結(jié)構(gòu)設(shè)計(jì),邏輯結(jié)構(gòu)設(shè)計(jì),物理

結(jié)構(gòu)設(shè)計(jì),親身體會(huì)了一次系統(tǒng)開發(fā)的過程,在這個(gè)過程中我們深刻理解所學(xué)

的知識(shí),同時(shí)也可以學(xué)到很多可實(shí)用的東西。我們學(xué)習(xí)并運(yùn)用了sql語言,對(duì)

數(shù)據(jù)庫的創(chuàng)建,修改,刪除方法有了一定的了解,學(xué)會(huì)了對(duì)表的一些操作。很

多事情不是想象的那么簡(jiǎn)樸,它涉及各種實(shí)體,屬性,數(shù)據(jù)流程,數(shù)據(jù)解決等

等,不管做什么,我們都應(yīng)當(dāng)相信自己,不怕困難,努力嘗試。

參考文獻(xiàn)

[1].王珊,薩師炮.數(shù)據(jù)庫系統(tǒng)概論.北京:高等教育出版社,2023,5

[2].印晏.Java語言與面向?qū)ο蟪绦蛟O(shè)計(jì).北京:清華大學(xué)出版社,2023,9

[3].張峰.Java程序設(shè)計(jì)與項(xiàng)目實(shí)戰(zhàn).北京:清華大學(xué)出版社,2023,8

[4].陳剛.Eclipse從入門到精通[M].北京:清華大學(xué)出版社,2023

[5].SQLServer2023.北京:清華大學(xué)出版社,2023

附錄

附錄:核心代碼

1.連接數(shù)據(jù)庫

publicclassJDBC{

privatestaticfinalStringDRIVERCLASS=

"com.microsoft.jdbc.sqlserver.SQLServerDriver";

privatestaticfinalStringURL=

"jclbc:sqlseivei://localliost:1433;DatabaseNaine-db_DiinkeiyManageM;

privatestaticfinalStringUSERNAME="san;

privatestaticfinalStringPASSWORD="qH;

privatestaticfinalThreadLocal<Connection>threadLocal=new

ThreadLocal<Connection>();

static{//通過靜態(tài)方法加載數(shù)據(jù)庫驅(qū)動(dòng)

try(

ClassJ*M〃棧(OR/VERCLASS).newInstance();〃加載數(shù)據(jù)庫驅(qū)動(dòng)

}catch(Exceptione){

e.printStackTrace();

)

publicstaticConnectiongelConnection(){//創(chuàng)建數(shù)據(jù)庫連接的方法

Connectionconn=threadLocal.get();//從線程中獲得數(shù)據(jù)庫連接

if(conn==null){//沒有可用的數(shù)據(jù)庫連接

try{

conn=DnverManager.getConnection(URL,USERNAME,

PASSWORD);//創(chuàng)建新的數(shù)據(jù)庫連接

threadLocaI.set(conny,//將數(shù)據(jù)庫連接保存到線程中

}catch(SQLExceptione){

e.printStackTrace();

)

)

returnconn;

)

publicstaticbooleancioseConnection(){//關(guān)閉數(shù)據(jù)庫連接的方法

booleanisClosed=true;

Connectionconn=threadLocaL^JI從線程中獲得數(shù)據(jù)庫連接

threadLocal.set(nu11);//清空線程中的數(shù)據(jù)庫連接

if(conn!=null){//數(shù)據(jù)庫連接可用

conn.close();//關(guān)閉數(shù)據(jù)庫連接

}catch(SQLExceptione){

isClosed=false;

c.printStackTracc();

1

}

returnisClosed;

I

2.查詢數(shù)據(jù)庫

publicclassDaoextendsBaseDao{

privatestaticDaodao\

static{

dao=newDao();

)

publicstaticDaogetlnslance(){

returndao;

}

//tb_uscr

publicVectorsUser()(

returnselectSomeNote("selectname,sex,birthdayjd_card,freezefrom

tb_userwherefreeze=‘正常"');

)

publicVectorsUserNameOfNotFreezeO{

returnselectSomeValue(Mselectnamefromtb_userwherefreeze='正常"’);

)

publicVectorsUscrByNamc(Stringname){

returnselectOnlyNote("select*fromtb_uscrwherename="'+name十'

)

publicbooleanuPasswordByName(Stringname,Stringpassword){

returnsuper.IongHaul("updatetb_usersetpassword:"'+password

+wherename="'+name+

I

publicbooleanuFreezeByName(Stringname,Stringfreeze){

returnsuper.longHaul("updatelb_usersetfreeze=*"+freeze

+wherename=,"+name+

}

publicbooleaniUser(Stringvakics[]){

Stringsql="insertintotb_user(name,sex,birthday,id_card,password,freeze)

valuesC"

+values[O]

+

+values[1]

十二”'

+values[2]

十二”,

+values⑶++values[4]++values[5]+

System.<7z/r.println(sql);

returnlongHaul(sql);

)

//tb_order_form

publicVectorsOrderFormOfDay(Stringdate){

returnselectSomeNote("select*fromtb_order_formwheredatetime

between

+date+n()():()():()()'and+date+"23:59:59"');

1

publicStringsOrderFormOfMaxId(){

Objectobject=selectOnlyValue(Mselectmax(num)fromtb_order_form");

if(object==null){

returnnull;

}else{

returnobject.toStringO;

)

1

publicStringsOrderFormOfMinDatetime(){

Objectobject=selectOnlyValue("selectmin(datetirne)from

tb_order_form");

if(object==null){

returnnull;

}else{

returnobject.toStringO;

)

)

publicString[]monthCheckOut(Stringnum){

Stringvalues[]={u——“——“——“——“——“};

Stringsqls[]=|

"selectcount(*)fromtb_order_fbrmwherenumlike+num

+“%]

"selectsum(money)fromtb_order_formwherenumlike+num

+“%]

"selectavg(money)fromtb_order_fbrmwherenumlike+num

+n%";

"selectmax(moncy)fromtb_ordcr_formwherenumlike+num

+“%]

"selectmin(money)fromtb_order_formwherenumlike+num

+“%,"};

for(inti=0;i<sqls.length;i++){

Objectvalue=super.selcctOniyValuc(sqlsliJ);

if(value!=null)(

Stringv=value.toStringO;

if(!v.equals("0"))

values[ij=v;

)

}

returnvalues;

)

publicVectoryearCheckOut(intyear){

Vector<Vector>valueV=newVector<Vec:or>();

Stringsql="H;

StringformatMonth=

StringformatDay=

for(intday=1;day<=31;day++){

VectorrowV=newVector。:〃記錄行

rowV.add(day)://加入IIW]

formatDay=(day<10?"0"+day:""+day);

for(intmonth=1;month<=12;month++){//做記錄

formatMonth=(month<10?"0"+month:""+month);

sql="selectsum(moncy)fromtb_ordcr_formwherenumlike

+year+fomiatMonth+formatDay+"%”';

yearCheckOut(rowV,sql);

}

sql="selectsum(money)fromtb_order_fbrmwherenumlike

+year+M_"+formatDay+做列總計(jì)

yearCheckOut(rowV,sql);

valueV.add(rowV);

}

VectorrowV=newVector();//總計(jì)行

rowV.addC總計(jì))

for(intmonth=1;month<=12;monlh++){//做月總id。

formatMonth=(month<10?"0"+month:""+month);

sql=^selectsum(money)fromtb_order_fbrmwherenumlike

+year+formatMonth+"%”';

ycarCheckOut(rowV,sql);

}

sql="selectsum(moncy)fromtb_ordcr_fbnnwherenumlike+year

+做年總計(jì)

yearCheckOut(rowV,sql);

valueV.add(rowV);

returnvalueV;

)

publicvoidycarChcckOut(VectorrowV,Stringsql){

Objectvalue=super.sclcctOnlyValue(sql);

if(value==null)

rowV.addC——

else

rowV.add(value):

)

publicbooleaniOrderFonn(String[1values){

Stringsql="insertintotb_ordcr_form(num,desk_num,datetime,money,

user_id)values("'

+values[0]

+?nin

+values[1]

+二”'

+valucs[2]

十二”

+valuesl3J+",n+values[4]+")n;

returnlongHaul(sql);

//tb_order_item

publicbooleaniOrderItem(String[]values){

Stringsql="insertintotb_order_item(order_form_num,menu_nuin,amount,

total)valuesC"

+va!ues[0]

+二”’

+values[1]

+二”

+values[2]

+“J

+values[3]+

returnlongHaul(sql);

//v_order_item_and_menu

publicVeclorsOrderItemAndMenuByOrderFormNum(Stringnum){

returnseleclSomeNote("select*fromv_order_item_and_menuwhere

order_form^num=,n

+num+);

)

//Desk

publicVcciorsDesk(){

returnselectSomeNote("select*fromtb_dcsk");

)

publicVectorsDeskByNum(Stringnum){

returnselectOnlyNote("select*fromtb_deskwherenum=,n+num+

I

publicbooleaniDesk(Stringnum,Stringseating){

Stringsql="insertintotb_deskvaluesC"+num++seating

+”)”;

returnlongHaul(sql);

publicbooleandDeskByNum(Stringnum){

Stringsql="deletefromtb_deskwherenum-"+num+

returnlongHaul(sql);

)

//Sort

publicVeclorsSortName(){

returnselectSomeNote("selectnamefromtb_sort");

)

publicVcciorsSonById(Stringid){

returnselectOnlyNote("select*fromtb_sortwhereid="+id);

)

publicVectorsSortByNarne(Stringname){

returnselectSomeNote("select*fromtb_sortwherename="'+name+

I

publicbooleaniSort(Stringname){

Stringsql="insertintotb_sortvaluesC"+name+

returnlongHaul(sql);

}

publicbooleandSortByName(Stringname)(

Stringsql="deletefromtb_sortwherename=,"+name+

returnlongHaul(sql);

//Menu

publicVectorsMenu(){

Stringhql="selectnum,name,code,sort_id,unit,unit_pricefrom

tb_inenun;

Vectorvector=selectSomeNote(hql);

for(inti=0;i<vector.size();i++){

VectormenuV=(Vector)vector.get(i);

VectorsortV=sSortById(menuV.get(4).toString());

menuV.set(4,rortV.get(1)):

)

returnvector;

)

publicVectorsMenuOfSell(){

Stringhql="selectnum,name,code,sort_id,unit,unit_pricefromtb_menu

whereslate二'銷售"';

Veclorvector=selectSomeNote(hql);

for(inti=0;i<vector.size();i++){

VectormenuV=(Vector)vector.get(i);

VectorsortV=sSortBykl(mcnuV.gct(4).toString());

mcnuV.sct(4,sortV.gct(1));

}

returnvector;

1

publicVeclorsMenuBy!d(Stringnum){

returnseleclSomeNote("select*fromtb_menuwherenumlike+num

+

)

publicVectorsMcnuByCodc(Stringcode){

returnsclcctSomeNotc("sclcct*fromtb_mcnuwherecodelike"*+code

+"%"');

}

//publicVectorsMenuByName(Stringname){

//returnselectOnlyNoteC'select*fromtb_menuwherename="'+name

//+andstated銷售“');

//)

publicVeclorsMenuByNameAndState(Stringname,Siringstate){

returnselectOnlyNoleC^elect*fromtb_menuwherename=“'+name

+,uandstate=M,+state+);

publicStringsMenuOfMaxId(){

Objectobject=selectOnlyValuef'selectmax(nuin)fromtb_menu");

if(object==null){

returnnull;

)else{

returnobject.toStringO;

)

)

publicbooleaniMcnu(String[]values){

Stringsql="insertintotb_menu(num,name,code,sort_id,unit,unit_price,

state)values("'

+valuesfO]

+

+values[1]

+

+values⑵

+values[3]

HI

+

+valucs[4]

+二”'

+valucs[5]

十二”'

+values[6]+

returnlongHaul(sql);

I

publicbooleanuMenu(String[lvalues){

Stringsql="updatetb_menusetcode="'+values[2]+sort_id="

+values[3]+”,unit-n+values[4]+unit_price="

+values[5]+",state=""+values[6]+wherename='"

+values[l]+;

returnlongHaul(sql);

I

publicbooleanuMenuStateByName(Stringname,Stringstate){

returnlongHaul("updatetb_menusetstate="'+state+wherename=“'

+name+);

)

publicbooleandMenuByName(Stringname){

returnlongHaul("deletefromtb_menuwherename='u+name+

1

3.臺(tái)號(hào)管理

packagecom.mwq.frame.manage;

importjava.awt.BorderLayout;

importjava.awt.Dimension;

importjava.awt.FlowLayoui;

importjava.awl.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.KeyEvent;

importjava.awt.event.KeyListener;

importjava.awt.event.WindowAdapter;

importjava.awl.event.WindowEvent;

importjava.util.Vector;

importjava.util.regex.Matcher;

importjava.utiLregex.Pattern;

importjavax.swing.JButton;

importjavax.swing.JDialog;

importjavax.swing.JLabel;

importjavax.swing.JOptionPanc;

importjavax.swing.JPanel;

importjavax.swing.JScrollPane;

importjavax.swing.JTablc;

importjavax.swing.JTcxtFicld;

importjavax.swing.tablc.DefaultTableModel;

importcom.mwq.dao.Dao;

importcom.mwq.dao.JDBC;

importcom.mwq.inwing.MTable;

importcom.mwq.tool.Validate;

publicclassDeskNumDialogextendsJDialog{

privateJTablctable;

privateJTextFieldseatingTextField;

privateJTextFieldiiumTcxtFicld;

privatefinalVectorcolumnNameV=newVector();

privatefinalDefauhTableModeltableModel=newDefaultTableModel();

privatefinalDaodao=Dao.getlnstance();

privateJTablcopcncdDcskTablc;

*Launchtheapplication

*

*@paramargs

*/

publicstaticvoidmain(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論