




免費(fèi)預(yù)覽已結(jié)束,剩余25頁(yè)可下載查看
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
*畢業(yè)論文(設(shè)計(jì))KTV管理系統(tǒng)KTV management system摘要隨著社會(huì)的發(fā)展,人類(lèi)的進(jìn)步,21世紀(jì)人們的生活的水平有所提高,為了滿(mǎn)足人們對(duì)生活的需要,豐富業(yè)余生活,娛樂(lè)KTV等行業(yè)蓬勃發(fā)展,在數(shù)字化的今天,我們已經(jīng)離不開(kāi)計(jì)算機(jī),為了加強(qiáng)對(duì)包廂和點(diǎn)歌的管理,我們必須使用計(jì)算機(jī)來(lái)對(duì)大量的歌曲以及對(duì)包廂進(jìn)行處理,使KTV管理員對(duì)歌曲點(diǎn)播和分配包廂等操作的管理更加有序、到位,基于上述種種原因,開(kāi)發(fā)一套KTV管理系統(tǒng)迫在眉捷,我們結(jié)合本次畢業(yè)設(shè)計(jì)開(kāi)發(fā)以下的KTV管理系統(tǒng)方案。關(guān)鍵詞:KTV;管理;點(diǎn)歌AbstractWith the development of society, the progress of mankind, the 21st century, the people life level improved, in order to meet the needs of peoples life, rich amateur life, KTV entertainment industries to flourish, in digital today, we can not do without the computer, in order to strengthen the box and the song management, we must use the computer to a lot of songs as well as to box processing, make KTV manager to songs on demand and distribution box and operation management more orderly and reach the designated position, based on the above reasons, the development of a set of KTV management system a looming, we combined the graduation design and development the following KTV management system solutions. Keywords: KTV, Management; The song I目 錄中英文摘要(I)1 引 言(1)1.1 項(xiàng)目開(kāi)發(fā)背景(1)1.2 項(xiàng)目提出的意義(1)2 項(xiàng)目分析設(shè)計(jì)(1)2.1 需求分析(1)2.2 可行性分析(2)2.3系統(tǒng)開(kāi)發(fā)工具簡(jiǎn)介(3)2.4系統(tǒng)整體框架(4)3 數(shù)據(jù)庫(kù)實(shí)現(xiàn)(6)3.1數(shù)據(jù)表設(shè)計(jì)(6)3.2存儲(chǔ)過(guò)程設(shè)計(jì)(11)3.3視圖設(shè)計(jì)(13)3.4觸發(fā)器設(shè)計(jì)(14)4 系統(tǒng)模塊設(shè)計(jì)和測(cè)試(15)4.1用戶(hù)登錄模塊(15)4.2包廂管理模塊(16)4.3顧客消費(fèi)管理模塊(17)4.4點(diǎn)歌模塊(19)4.5數(shù)據(jù)維護(hù)模塊(22)總結(jié)(26)致 謝(27)參考文獻(xiàn)(28)1 引 言1.1 項(xiàng)目開(kāi)發(fā)背景隨著人們生活水平的提高,人們的業(yè)余生活也發(fā)生了巨大變化,為了滿(mǎn)足人們對(duì)生活的需要,豐富業(yè)余生活,娛樂(lè)KTV等行業(yè)蓬勃發(fā)展。近些年來(lái),人們的業(yè)余生活變得越來(lái)越豐富多彩,去練歌房練歌,成為人們?cè)谏钪嗟闹饕蓍e方式。傳統(tǒng)的卡拉OK一直用關(guān)盤(pán)來(lái)喂顧客播放歌曲,由于光盤(pán)存放歌曲數(shù)量有限,很多時(shí)候,顧客都找不到自己想唱的歌,并且用光盤(pán)播放歌曲不方便。在數(shù)字化的今天,我們已經(jīng)離不開(kāi)計(jì)算機(jī),為了加強(qiáng)對(duì)包廂和點(diǎn)歌的管理,我們必須使用計(jì)算機(jī)來(lái)對(duì)大量的歌曲以及對(duì)包廂進(jìn)行處理,使KTV管理員對(duì)歌曲點(diǎn)播和分配包廂等操作的管理更加有序、到位。系統(tǒng)采用先進(jìn)開(kāi)發(fā)工具,通過(guò)本系統(tǒng),顧客可通過(guò)多種方式點(diǎn)播自己喜愛(ài)的歌曲,管理員可向系統(tǒng)中添加、修改和刪除歌曲信息?;谏鲜龇N種原因,開(kāi)發(fā)一套KTV管理系統(tǒng)迫在眉捷,基于這些優(yōu)點(diǎn),在本次畢業(yè)設(shè)計(jì)之際,我作為一名計(jì)算機(jī)專(zhuān)業(yè)的畢業(yè)生,著手開(kāi)發(fā)以下的KTV管理系統(tǒng)方案1。1.2 項(xiàng)目提出的意義“KTV管理系統(tǒng)”是娛樂(lè)場(chǎng)所點(diǎn)歌為適應(yīng)標(biāo)準(zhǔn)化、快捷化的需要而發(fā)展起來(lái)的。它是光盤(pán)播放的一種發(fā)展與革新,它是計(jì)算機(jī)應(yīng)用于娛樂(lè)產(chǎn)業(yè)的成果。2 項(xiàng)目分析設(shè)計(jì)2.1 需求分析從顧客使用點(diǎn)歌系統(tǒng)的角度挖掘需求,點(diǎn)歌系統(tǒng)應(yīng)當(dāng)具備多種途徑的歌曲查詢(xún)點(diǎn)播功能,普通點(diǎn)歌系統(tǒng)一般會(huì)提供一個(gè)紙質(zhì)的歌單,通常其上的曲目按歌名的首字母進(jìn)行排序并對(duì)每個(gè)曲目設(shè)定有一個(gè)特定的編號(hào),也有部分點(diǎn)歌系統(tǒng)以歌名的字?jǐn)?shù)進(jìn)行排序,顧客在查找到相應(yīng)的曲目之后再通過(guò)遙控器輸入該曲目的編號(hào)完成點(diǎn)歌功能。而本系統(tǒng)追求的是全電子化的系統(tǒng),因此對(duì)曲目的查詢(xún)要求采用無(wú)紙化的操作,通過(guò)輸入即可查詢(xún)所有曲目,并且需要提供更為豐富的查詢(xún)方式。基于方便性與習(xí)慣,首先本系統(tǒng)應(yīng)當(dāng)提供傳統(tǒng)點(diǎn)歌系統(tǒng)的查詢(xún)方式,即以歌曲名首字母為依據(jù)的查詢(xún)方式和以歌曲名字?jǐn)?shù)多少為依據(jù)的查詢(xún)方式,此外,需要增加以歌手名為依據(jù)的查詢(xún)方式和以歌曲語(yǔ)種為依據(jù)的查詢(xún)方式。事實(shí)上,這些查詢(xún)方式并沒(méi)有什么奇特的地方,但是因?yàn)榭梢宰尣煌念櫩瓦x擇自己習(xí)慣與適應(yīng)的查詢(xún)方式,它必將會(huì)讓用戶(hù)在消費(fèi)時(shí)感覺(jué)更愉快些。從經(jīng)營(yíng)者使用點(diǎn)歌系統(tǒng)的角度挖掘需求,點(diǎn)歌系統(tǒng)應(yīng)當(dāng)具備基本的按消費(fèi)時(shí)間計(jì)算的計(jì)費(fèi)功能。此外,點(diǎn)歌系統(tǒng)還應(yīng)當(dāng)可以方便地增加新的曲目,也應(yīng)提供對(duì)現(xiàn)有曲目的修改、刪除功能,并且,對(duì)曲目的管理應(yīng)當(dāng)是各包房統(tǒng)一的,而不是必須一個(gè)一個(gè)包房地進(jìn)行設(shè)置與操作。另外,因?yàn)榍康墓芾頃?huì)影響到整個(gè)系統(tǒng)提供的服務(wù),所以這些管理功能應(yīng)當(dāng)只能由具有相應(yīng)權(quán)限的管理人員完成,因此,點(diǎn)歌系統(tǒng)中還應(yīng)提供相應(yīng)管理人員管理功能及權(quán)限控制功能2.2 可行性分析也稱(chēng)為可行性研究,是在系統(tǒng)調(diào)查的基礎(chǔ)上,針對(duì)新系統(tǒng)的開(kāi)發(fā)是否具備必要性和可能性,對(duì)新系統(tǒng)的開(kāi)發(fā)從技術(shù)、經(jīng)濟(jì)、操作等方面進(jìn)行分析和研究,以避免投資失誤,保證新系統(tǒng)的開(kāi)發(fā)成功。可行性研究的目的就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。該系統(tǒng)的可行性分析包括以下幾個(gè)方面的內(nèi)容。1.技術(shù)可行性:開(kāi)發(fā)此KTV管理系統(tǒng)需要的硬件環(huán)境要求不高,操作系統(tǒng)為windows 2000 以上系列即可,系統(tǒng)的開(kāi)發(fā)軟件為ecliose,數(shù)據(jù)庫(kù)管理系統(tǒng)為SQL 2000。 除專(zhuān)業(yè)技術(shù)人員外,普通操作人員無(wú)需掌握ecliose及SQL的使用, 易于學(xué)習(xí)和使用。因此從技術(shù)方面講開(kāi)發(fā)此KTV管理系統(tǒng)是可行的2。2 .經(jīng)濟(jì)可行性分析本KTV管理系統(tǒng)主要面向娛樂(lè)場(chǎng)所的,所需的硬件和軟件環(huán)境均不高,所需的專(zhuān)業(yè)技術(shù)人員也不多,大部分人員在系統(tǒng)的演示完畢之后就可以親自操作了,并且可以利用娛樂(lè)場(chǎng)所已有的工具,所以開(kāi)發(fā)此系統(tǒng)成本低、經(jīng)濟(jì)效益高、實(shí)用性高,因此從經(jīng)濟(jì)方面講開(kāi)發(fā)此KTV管理系統(tǒng)是可行的3。3 .操作可行性分析根據(jù)現(xiàn)有的技術(shù)設(shè)備條件和準(zhǔn)備充實(shí)的技術(shù)力量和設(shè)備,系統(tǒng)在技術(shù)上的實(shí)現(xiàn)是可行的。在設(shè)備方面,計(jì)算機(jī)內(nèi)存容量、外存容量輸入輸出設(shè)備等都可在原有的基礎(chǔ)上滿(mǎn)足需要4。綜上所述,此系統(tǒng)開(kāi)發(fā)目標(biāo)已明確,在技術(shù)和經(jīng)濟(jì)等方面都可行,并且投入少、見(jiàn)效快。因此系統(tǒng)的開(kāi)發(fā)是完全可行的5。2.3系統(tǒng)開(kāi)發(fā)所用的技術(shù)準(zhǔn)備2.3.1 JDK簡(jiǎn)介JDK(Java Development Kit)是Sun Microsystems針對(duì)Java開(kāi)發(fā)員的產(chǎn)品。自從Java推出以來(lái),JDK已經(jīng)成為使用最廣泛的Java SDK。JDK 是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境,Java工具和Java基礎(chǔ)的類(lèi)庫(kù)6。JDK是學(xué)好Java的第一步。而專(zhuān)門(mén)運(yùn)行在x86平臺(tái)的Jrocket在服務(wù)端運(yùn)行效率也要比Sun JDK好很多。從SUN的JDK5.0開(kāi)始,提供了泛型等非常實(shí)用的功能,其版本也不斷更新,運(yùn)行效率得到了非常大的提高7。2.3.2 Eclipse簡(jiǎn)介Eclipse 是一個(gè)開(kāi)放源代碼的、基于Java的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開(kāi)發(fā)工具(Java Development Kit,JDK)8。2.3.3 sql server 2000SQL是英文Structured Query Language的縮寫(xiě),意思為結(jié)構(gòu)化查詢(xún)語(yǔ)言。SQL語(yǔ)言的主要功能就是同各種數(shù)據(jù)庫(kù)建立聯(lián)系,進(jìn)行溝通。按照ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì))的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。SQL語(yǔ)句可以用來(lái)執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫(kù)中的數(shù)據(jù),從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)等。目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL語(yǔ)言標(biāo)準(zhǔn)。2.4系統(tǒng)整體框架和模塊功能說(shuō)明KTV管理系統(tǒng)包廂管理模塊用戶(hù)登錄模塊管理員登錄服務(wù)員登錄空房查詢(xún)時(shí)間記錄分配包廂會(huì)員管理費(fèi)用管理按歌曲語(yǔ)種按歌手按歌曲名稱(chēng)按歌曲字?jǐn)?shù)按歌手名稱(chēng)包廂信息維護(hù)歌手信息維護(hù)歌曲信息維護(hù)點(diǎn)歌模塊數(shù)據(jù)維護(hù)模塊顧客消費(fèi)管理模塊包廂管理模塊用戶(hù)登錄模塊圖2-2 系統(tǒng)整體框架圖1.用戶(hù)登錄模塊前臺(tái)身份登錄:可查詢(xún)和分配包廂信息、賦予顧客查詢(xún)權(quán)限;不可添加、修改、刪除服務(wù)員身份登錄:開(kāi)啟點(diǎn)歌系統(tǒng),讓顧客進(jìn)行點(diǎn)歌;管理員身份登錄:可進(jìn)行包廂、歌手和歌曲的添加、修改、查詢(xún)、刪除信息;2.包廂管理模塊空房查詢(xún):查詢(xún)沒(méi)被使用的包廂分配包廂:根據(jù)空房查詢(xún)的結(jié)果把可用包廂分配給顧客時(shí)間記錄:記錄包廂開(kāi)始使用和結(jié)束使用的時(shí)間3.顧客消費(fèi)管理模塊費(fèi)用管理:記錄顧客消費(fèi)的費(fèi)用會(huì)員管理:記錄會(huì)員信息4.點(diǎn)歌模塊歌手名稱(chēng)點(diǎn)歌:根據(jù)演唱歌手的名字來(lái)查詢(xún)選擇歌曲。歌曲名稱(chēng)點(diǎn)歌:按照歌曲名稱(chēng)進(jìn)行查詢(xún)選擇歌曲。歌曲拼音點(diǎn)歌:根據(jù)歌曲名稱(chēng)的每個(gè)字的首字母來(lái)選歌。歌曲字?jǐn)?shù)點(diǎn)歌:根據(jù)歌曲字?jǐn)?shù)來(lái)檢索歌曲。歌曲語(yǔ)種點(diǎn)歌:根據(jù)不同語(yǔ)種檢索歌曲。5.數(shù)據(jù)維護(hù)模塊歌曲信息維護(hù):對(duì)歌手信息進(jìn)行添加、修改、刪除及查詢(xún)操作。歌手信息維護(hù):對(duì)歌曲信息進(jìn)行添加、修改、刪除及查詢(xún)操作。包廂信息維護(hù):對(duì)用戶(hù)信息進(jìn)行添加、修改、刪除及查詢(xún)操作。3 數(shù)據(jù)庫(kù)實(shí)現(xiàn)3.1數(shù)據(jù)表設(shè)計(jì)3.1.1數(shù)據(jù)庫(kù)表總體關(guān)系數(shù)據(jù)庫(kù)各個(gè)表之間的關(guān)系如圖3-1所示:歌手歌曲管理員維護(hù)顧客選擇已選演唱點(diǎn)歌系統(tǒng)屬于前臺(tái)包廂分配登記開(kāi)啟注銷(xiāo)授權(quán)查詢(xún)會(huì)員加入KTV管理系統(tǒng)屬于服務(wù)員圖3-1數(shù)據(jù)庫(kù)表之間的關(guān)系圖3.1.2數(shù)據(jù)表詳細(xì)結(jié)構(gòu)本系統(tǒng)用SQL2000作為數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)命名為KTV,各表設(shè)計(jì)如下9:表1 UserForm:用來(lái)記錄用戶(hù)名和密碼數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型長(zhǎng)度值usernamechar4Primary keyPasswordchar10Not nullUsertypechar4Not null用戶(hù)信息實(shí)體所包含的屬性E-R圖如圖用戶(hù)用戶(hù)類(lèi)型密碼用戶(hù)名表2 Singer:用來(lái)記錄歌手信息數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型長(zhǎng)度值SingerNochar5Primary keySingerNamevarchar30Not nullSexchar2Not nullNationchar8Not null歌手信息實(shí)體所包含的屬性E-R圖如圖歌手歌手編號(hào)姓名地區(qū)性別表3 Song:用來(lái)記錄歌曲信息數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型長(zhǎng)度值SongNochar8Primary keySongNamevarchar30Not nullWordCountint4Not nullSpellvarchar10SongLanvarchar8Not nullSingerNochar5Not null歌曲信息實(shí)體所包含的屬性E-R圖如圖歌曲歌曲編號(hào)歌曲語(yǔ)種歌曲拼音歌手編號(hào)歌曲字?jǐn)?shù)歌曲名稱(chēng)表4 selected:用來(lái)記錄已選歌曲信息數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型長(zhǎng)度值recordnochar8Primary keySongNochar8Not nullSongNamevarchar30Not nullSingerNamevarchar 30Not nullSongLanvarchar8Not null已選歌曲信息實(shí)體所包含的屬性E-R圖如圖已選歌曲歌曲編號(hào)歌曲語(yǔ)種記錄編號(hào)歌手名字歌曲名稱(chēng)表5 Room:用來(lái)記錄包廂信息數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型長(zhǎng)度值RoomNochar3Primary keyRoomTypechar4Not nullRoomPriceint4Not nullStatetinyint1Not null包廂信息實(shí)體所包含的屬性E-R圖如圖包廂包廂號(hào)價(jià)格類(lèi)型包廂狀態(tài)表6 Register:用戶(hù)登記表數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型長(zhǎng)度值CustomerNamevarchar10Primary keyRoomNochar3Not nullOpenTimedatetime8Not nullLeaveTimedatetime4Not nullCardIdchar8登記用戶(hù)信息實(shí)體所包含的屬性E-R圖如圖登記開(kāi)房時(shí)間離開(kāi)時(shí)間會(huì)員卡號(hào)用戶(hù)名字包廂號(hào)表7 record:歷史記錄表數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型長(zhǎng)度值recordidint4Primary keyCustomerNamevarchar10Not nullRoomNochar3Not nullOpenTimedatetime8Not nullLeaveTimedatetime8Not nullCardIdchar8歷史記錄信息實(shí)體所包含的屬性E-R圖如圖歷史記錄用戶(hù)名字開(kāi)房時(shí)間離開(kāi)時(shí)間會(huì)員卡號(hào)包廂號(hào)記錄編號(hào)表8 charge:用來(lái)記錄用戶(hù)賬單數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型長(zhǎng)度值CustomerNameVarchar10Not nullChargefloat8Not nullDiscountfloat8Payfloat8Not nullRoomNoChar3Not nullRecordIdint4Primary key用戶(hù)賬單信息實(shí)體所包含的屬性E-R圖如圖用戶(hù)賬單用戶(hù)名字消費(fèi)金額打折數(shù)總計(jì)包廂號(hào)記錄編號(hào)表9 Vip:用來(lái)記錄會(huì)員信息數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型長(zhǎng)度值CardIdchar8Primary keyCustomerNameVarchar10Not nullCardTypevarchar8Not nullPhonechar11Not null會(huì)員信息實(shí)體所包含的屬性E-R圖如圖會(huì)員會(huì)員卡號(hào)會(huì)員類(lèi)型會(huì)員姓名電話表10 CARD:用來(lái)記錄會(huì)員卡信息數(shù)據(jù)項(xiàng)名稱(chēng)類(lèi)型長(zhǎng)度值CardTypeVarchar 8Primary keyDiscountfloat8Not null會(huì)員卡信息實(shí)體所包含的屬性E-R圖如圖會(huì)員卡會(huì)員類(lèi)型打折數(shù)3.2存儲(chǔ)過(guò)程設(shè)計(jì)3.2.1點(diǎn)歌的5個(gè)存儲(chǔ)過(guò)程1 按字?jǐn)?shù)查找CREATE proc 按字?jǐn)?shù)查找 字?jǐn)?shù) char(10)as select SongNo,SongName,SingerName,SongLanfrom 歌曲信息where Wordcount=字?jǐn)?shù)GO2按拼音查找CREATE proc 按拼音查找 拼音 char(10)as select SongNo,SongName,SingerName,SongLanfrom 歌曲信息where Spell=拼音GO3按歌手查找CREATE proc 按歌手查找 歌手名 char(30)as select SongNo,SongName,SingerName,SongLanfrom 歌曲信息where singername=歌手名GO4.按歌曲名稱(chēng)查找CREATE proc 按歌曲名稱(chēng)查找 歌曲名稱(chēng) char(30)as select SongNo,SongName,SingerName,SongLanfrom 歌曲信息where SongName=歌曲名稱(chēng)GO5.按語(yǔ)種查找CREATE proc 按語(yǔ)種查找 語(yǔ)種 char(10)as select SongNo,SongName,SingerName,SongLanfrom 歌曲信息where songlan=語(yǔ)種GO3.2.2維護(hù)的5個(gè)存儲(chǔ)過(guò)程1.修改歌手信息CREATE proc 歌手修改 singerno char(5),singername varchar(30),sex char(2),nation char(8)as update singerset singerno=singerno,singername=singername,sex=sex,nation=nationwhere singerno=singernoGO2.修改包廂信息CREATE proc 包廂修改 roomno char(3),roomtype char(4),roomprice int,state tinyintas update roomset roomno=roomno,roomtype=roomtype,roomprice=roomprice,state=statewhere roomno=roomnoGO3.修改歌曲信息CREATE proc 維護(hù)修改 songno char(8),songname varchar(30),wordcount char(4),spell varchar(10),songlan varchar(8),singerno char(5)as update songset songno=songno,songname=songname,wordcount=wordcount,spell=spell,songlan=songlan,singerno=singernowhere songno=songnoGO4.插入歌曲CREATE proc 維護(hù)插入 songno char(8),songname varchar(30),wordcount char(4),spell varchar(10),songlan varchar(8),singerno char(5)as insert into songvalues(songno,songname,wordcount,spell,songlan,singerno)GO5.顯示歌曲信息CREATE proc 維護(hù)顯示as select songno,songname,singername,songlan,wordcount,spell,Singernofrom 歌曲信息GO3.2.3顧客登記和結(jié)賬的1個(gè)存儲(chǔ)過(guò)程1.在顧客登記部分用了1個(gè)存儲(chǔ)過(guò)程來(lái)插入顧客信息CREATE proc 顧客登記 customername varchar(10),roomno char(3),opentime datetime,leavetime datetime,cardid char(3),IsCal char(4)as insert into registervalues( customername,roomno,opentime,leavetime,cardid,IsCal)GO2.在結(jié)賬部分用了1個(gè)存儲(chǔ)過(guò)程來(lái)插入賬單信息CREATE proc 賬單插入 roomno char(3),customername varchar(10),charge float(8),discount float(8),pay float(8)as insert into chargevalues(roomno,customername,charge,discount,pay)GO3.3視圖設(shè)計(jì)創(chuàng)建了2個(gè)視圖,一個(gè)用視圖來(lái)建立完整的歌曲信息,包括歌曲表中的信息和歌手表中的信息;一個(gè)視圖用來(lái)顯示vip顧客結(jié)賬時(shí)需要的信息3.3.1歌曲信息視圖CREATE VIEW dbo.歌曲信息ASSELECT dbo.Song.SongNo, dbo.Song.SongName, dbo.Singer.SingerName, dbo.Song.SongLan,dbo.Song.WordCount,dbo.Song.Spell,dbo.Singer.SingerNo, dbo.Singer.Nation, dbo.Singer.SexFROM dbo.Song INNER JOIN dbo.Singer ON dbo.Song.SingerNo = dbo.Singer.SingerNo3.3.2 VIP結(jié)賬視圖CREATE VIEW dbo.結(jié)賬ASSELECT dbo.Register.CustomerName, dbo.Register.RoomNo, dbo.Room.RoomPrice, dbo.Register.OpenTime, dbo.Register.LeaveTime, dbo.CARD.Discount, dbo.Vip.CardIdFROM dbo.Register INNER JOIN dbo.Room ON dbo.Register.RoomNo = dbo.Room.RoomNo INNER JOIN dbo.Vip ON dbo.Register.CardId = dbo.Vip.CardId INNER JOIN dbo.CARD ON dbo.Vip.CardType = dbo.CARD.CardType3.4觸發(fā)器設(shè)計(jì)1.這個(gè)觸發(fā)器是用來(lái)修改包廂狀態(tài)的,當(dāng)向register表插入信息時(shí),將room表對(duì)應(yīng)的state(狀態(tài))改成1,表示該包廂已使用CREATE Trigger 登記On dbo.Register for insert,delete As declare RoomNo char(3)beginupdate roomset state=1from room,insertedwhere room.roomno=inserted.roomnoend2.這個(gè)觸發(fā)器的作用是當(dāng)從register刪除信息時(shí),將room表對(duì)應(yīng)的state(狀態(tài))改成0,表示該包廂為空,并將刪除的信息添加到record表CREATE Trigger 注銷(xiāo)On dbo.Register for delete As declare Customername varchar(10)declare RoomNo char(3)declare OpenTime datetimedeclare LeaveTime datetimedeclare CardId char(8)begin select Customername= Customername from deletedselect RoomNo=RoomNo from deletedselect OpenTime=OpenTime from deletedselect LeaveTime=LeaveTime from deletedselect CardId=CardId from deletedupdate roomset state=0from room,deletedwhere room.roomno=deleted.roomnoinsert into recordvalues(CustomerName,RoomNo,OpenTime,LeaveTime,CardId)end4 系統(tǒng)運(yùn)行和測(cè)試4.1用戶(hù)登錄模塊4.1.1分析與設(shè)計(jì)根據(jù)應(yīng)用,要實(shí)現(xiàn)前臺(tái)、服務(wù)員和管理者的登錄,從而確保信息的安全4.1.2 測(cè)試與實(shí)現(xiàn)測(cè)試登錄界面的使用,并登錄成功測(cè)試截圖:登陸校驗(yàn)偽代碼:if (ae.getSource() = bLogin) /點(diǎn)登陸按鈕 if (tUser.getText().equals() | password.getPassword().equals() /如果用戶(hù)名和密碼為空 提示請(qǐng)輸入 else 此處省略“連接數(shù)據(jù)庫(kù),匹配用戶(hù)名和密碼” if(成功) 跳轉(zhuǎn)到登陸頁(yè)面 else 提示失敗信息 4.2包廂管理模塊4.2.1分析與設(shè)計(jì)根據(jù)設(shè)計(jì),要使前臺(tái)能實(shí)現(xiàn)包廂的空房查詢(xún),分配包廂,時(shí)間記錄,并最終注銷(xiāo)包廂,使到時(shí)間的包廂回復(fù)空包廂狀態(tài)4.2.2 測(cè)試與實(shí)現(xiàn)開(kāi)包廂偽代碼:if (ae.getSource() = b1) /添加按鈕if (t3.getText().equals() /如果卡號(hào)為空提示請(qǐng)輸入! else if(s4.equals(使用中)s4=1/s4為房間標(biāo)記,1為使用中,0為空elses4=0;if (s1.length() != 3) /顧客姓名為空提示包廂號(hào)必須為3位數(shù)字 else String sql = insert into room values( + s1 + ,+ s2 + , + s3 + , + s4 + );rs = stat.executeUpdate(sql);/執(zhí)行sql語(yǔ)句if (rs 1) /執(zhí)行sql語(yǔ)句后函數(shù)的返回結(jié)果 提示添加失敗 else 提示添加成功! 修改包廂偽代碼:else if (ae.getSource() = b2) /修改按鈕if(s4.equals(使用中)s4=1; /s4為房間標(biāo)記,1為使用中,0為空elses4=0;proc = conn.prepareCall(call 包廂修改(?,?,?,?) );r = proc.executeUpdate();/調(diào)用call包廂修改(?,?,?,?)存儲(chǔ)過(guò)程if (r 1) 提示修改失敗 else 提示修改成功! 注銷(xiāo)包廂偽代碼:else if (ae.getSource() = b2) /注銷(xiāo)包廂按鈕if (t1.getText().equals() /顧客姓名為空 提示請(qǐng)輸入包廂編號(hào)! else String s1 = t1.getText().trim();/獲取包廂號(hào)String sql = delete from room where roomno= + s1 + ;r = stat.executeUpdate(sql); /執(zhí)行sql語(yǔ)句if (r 1) 提示刪除失敗 else 提示注銷(xiāo)成功!4.3顧客消費(fèi)管理模塊4.3.1分析與設(shè)計(jì)根據(jù)設(shè)計(jì),要使前臺(tái)能實(shí)現(xiàn)對(duì)對(duì)顧客的費(fèi)用管理,進(jìn)行結(jié)操作,并且根據(jù)有需要的顧客辦理會(huì)員卡4.3.2 測(cè)試與實(shí)現(xiàn)顧客的費(fèi)用管理的代碼: /省略連數(shù)據(jù)庫(kù)的代碼 rs1 = stat.executeQuery(select * from register where roomno=+ s + );/查詢(xún)注冊(cè)者信息while (rs1.next() 此處省略獲取卡號(hào),開(kāi)房時(shí)間,離開(kāi)時(shí)間和客戶(hù)姓名h = stat.executeQuery(select datediff(n, + + tm1 + ,+ tm2 + );/ 時(shí)間計(jì)算while (h.next() min = h.getInt(1);/ 不滿(mǎn)一小時(shí)按一小時(shí)計(jì)費(fèi)if (min % 60 = 0) hour = min / 60; else hour = (int) min / 60) + 1;if (getid.equals() rs2 = stat.executeQuery(select roomprice from room where roomno=+ s + );/查詢(xún)客房price信息while (rs2.next() rp = rs2.getInt(roomprice);pay = (int) (hour * rp); else rs = stat.executeQuery(select * from VIP顧客結(jié)賬);while (rs.next() rp = rs.getInt(roomprice);/獲取價(jià)格dis = rs.getFloat(discount);/獲取打幾折pay = (int) (hour * rp * dis / 10);CallableStatement proc = conn.prepareCall(call 賬單插入(?,?,?,?,?) );if (rs3 1) 提示保存賬單失敗!4.4點(diǎn)歌模塊4.4.1分析與設(shè)計(jì)根據(jù)設(shè)計(jì),當(dāng)服務(wù)員開(kāi)啟點(diǎn)歌系統(tǒng)之后,消費(fèi)者能夠進(jìn)行點(diǎn)歌操作,可以根據(jù)歌手名稱(chēng)、歌曲名稱(chēng)、歌曲拼音、歌曲字?jǐn)?shù)、歌曲語(yǔ)種進(jìn)行點(diǎn)歌4.4.2 測(cè)試與實(shí)現(xiàn)查找功能通過(guò)調(diào)用數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程實(shí)現(xiàn)其中存儲(chǔ)過(guò)程代碼如下:歌曲名稱(chēng)查找: CREATEproc按歌曲名稱(chēng)查找歌曲名稱(chēng)char(30)asselectSongNo,SongName,SingerName,SongLanfrom歌曲信息whereSongNamelike%+歌曲名稱(chēng)+%歌手查找: CREATEproc按歌手查找歌手名char(30)asselectSongNo,SongName,SingerName,SongLanfrom歌曲信息wheresingernamelike歌手名語(yǔ)種查找: CREATEproc按語(yǔ)種查找語(yǔ)種char(10)asselectSongNo,SongName,SingerName,SongLanfrom歌曲信息wheresonglan=語(yǔ)種歌曲數(shù)字查找:CREATE proc 按字?jǐn)?shù)查找 字?jǐn)?shù) char(10)as select SongNo,SongName,SingerName,SongLanfrom 歌曲信息where Wordcount=字?jǐn)?shù)拼音查找:CREATEproc按拼音查找拼音char(10)asselectSongNo,SongName,SingerName,SongLanfrom歌曲信息whereSpell=拼音實(shí)現(xiàn)刪除功能偽代碼:if (ae.getSource() = bdelete) /此處省略連接數(shù)據(jù)庫(kù)代碼String sql = delete from selected where Recordno= + ins0+ ;/刪除選擇表中對(duì)于的記錄rs = stat.executeUpdate(sql);/執(zhí)行刪除if (rs 1) 提示無(wú)歌曲,請(qǐng)先點(diǎn)歌! else 提示刪除成功! 返回功能偽代碼:else if (ae.getSource() = breturn) /返回按鈕 此處省略返回歌曲頁(yè)面 優(yōu)先功能偽代碼:else if (ae.getSource() = bfirst) /實(shí)現(xiàn)優(yōu)先功能 1此處省略連接數(shù)據(jù)庫(kù)代碼。 并把數(shù)據(jù)存在Vector v中2把v中的數(shù)據(jù)存放在table中3. 獲取選擇表格的行4刪除表格改行記錄5把選擇的行插入到Vector v的最前面for (int i = 0; i v.size(); i+) /遍歷的所有數(shù)據(jù),并更新數(shù)據(jù)庫(kù)now = (String) v.get(i);nson = now1;nsin = now2;nsol = now3;String sql = update selected set songname= + nson+ ,singername= + nsin + ,songlan=+ nsol + where recordno= + (i + 1) + ;stat.executeUpdate(sql);6.此處顯示從新顯示表格代碼4.5 數(shù)據(jù)維護(hù)模塊4.5.1分析與設(shè)計(jì)根據(jù)設(shè)計(jì),要使管理者能實(shí)現(xiàn)對(duì)KTV數(shù)據(jù)庫(kù)里面的歌曲信息、歌手信息、包廂信息進(jìn)行管理4.5.2 測(cè)試與實(shí)現(xiàn)1.歌曲信息的維護(hù)截圖添加功能偽代碼if (ae.getSource() = b1) /添加按鈕if (t2.getText().equals()| t4.getText().equals() /歌曲名和歌手編號(hào)不能為空提示請(qǐng)輸入! else int rs;/判斷是否添加成功的標(biāo)記/此處省略連接數(shù)據(jù)庫(kù)String sql = insert into singer values( + s1 + ,+ s2 + , + s3 + , + s4 + );/插入歌手的sql語(yǔ)句rs = stat.executeUpdate(sql);/執(zhí)行添加歌手if (rs 1) 提示添加失敗 else 提示添加成功!2.歌手信息的維護(hù)截圖修改功能偽代碼if (ae
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CADBM 30-2020步入式浴缸
- 劇本殺店股份合同范本
- 二人個(gè)體入股合同范本
- 場(chǎng)地運(yùn)營(yíng)合作分成協(xié)議書(shū)
- 投資購(gòu)買(mǎi)開(kāi)發(fā)土地協(xié)議書(shū)
- 仲裁協(xié)商一致撤訴協(xié)議書(shū)
- 學(xué)校員工住宿安全協(xié)議書(shū)
- 別墅未過(guò)戶(hù)先裝修協(xié)議書(shū)
- 辦理讀書(shū)租賃合同范本
- 股股權(quán)對(duì)股協(xié)議書(shū)
- 網(wǎng)絡(luò)協(xié)議2025年考試試題及答案
- 數(shù)據(jù)投資、數(shù)據(jù)共享與數(shù)據(jù)產(chǎn)權(quán)的法律問(wèn)題探討
- 2025年城市管理執(zhí)法考試試卷及答案
- 2025年網(wǎng)絡(luò)輿情監(jiān)測(cè)與危機(jī)應(yīng)對(duì)考試題及答案
- 2025年數(shù)據(jù)工程師考試試題及答案分享
- 網(wǎng)絡(luò)與信息安全管理員考試題+參考答案解析
- 2025年中考語(yǔ)文常考作文押題《10個(gè)主題+15篇范文》
- 2025年《中央一號(hào)文件》參考試題庫(kù)資料100題及答案(含單選、多選、判斷題)
- 2024年廣西高考?xì)v史試卷真題(含答案解析)
- 自動(dòng)噴水滅火系統(tǒng)質(zhì)量驗(yàn)收項(xiàng)目缺陷判定記錄
- 提高腸鏡患者腸道準(zhǔn)備合格率課件
評(píng)論
0/150
提交評(píng)論