數(shù)據(jù)庫課程設計----賓館客房信息管理系統(tǒng)設計_第1頁
已閱讀1頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設 計 任 務 書</p><p>  課程名稱 數(shù)據(jù)庫原理課程設計 </p><p>  課 題 賓館客房信息管理系統(tǒng) </p><p>  專業(yè)班級 08計算機03班 </p><p>  學生姓名 </p><p>

2、  學 號 </p><p><b>  指導老師 </b></p><p>  審 批 </p><p>  任務書下達日期 2011 年 3 月 4 日</p><p>  任務完成日期 2011年 3 月 1

3、8 日</p><p>  一、設計內(nèi)容與設計要求</p><p><b>  1.設計內(nèi)容:</b></p><p>  數(shù)據(jù)庫系統(tǒng)原理的課程設計要求學生綜合利用本課程的有關(guān)知識,在教師的指導下,利用特定的數(shù)據(jù)庫設計環(huán)境,針對具體的問題,完成從系統(tǒng)的需求分析、數(shù)據(jù)庫的概念設計、數(shù)據(jù)庫的邏輯設計,到數(shù)據(jù)庫實現(xiàn)等設計過程,最終實現(xiàn)一個較為完整的反

4、映應用需求的數(shù)據(jù)庫系統(tǒng)。因此,在設計中,要求學生應該全面考慮各個設計環(huán)節(jié)以及它們之間的相互聯(lián)系。</p><p>  下面是各個設計階段的具體內(nèi)容。</p><p><b> ?、?系統(tǒng)需求分析</b></p><p>  需求分析是數(shù)據(jù)庫系統(tǒng)設計的一個重要的環(huán)節(jié)。本階段應該對整個應用情況作全面的、詳細的調(diào)查,確定特定數(shù)據(jù)庫應用環(huán)境下的設計目標

5、,收集該應用環(huán)境下針對系統(tǒng)設計所需要的基礎(chǔ)數(shù)據(jù)以及對這些數(shù)據(jù)的具體存儲要求,從而確定用戶的需求。用戶對數(shù)據(jù)庫的需求包括:</p><p> ?、?處理需求。即用戶要完成什么處理功能等。學生在設計中應根據(jù)具體的課題要求確定系統(tǒng)應該實現(xiàn)的功能,一些基本的功能通常是必須具備的,如用戶的管理與維護,基本數(shù)據(jù)的維護,靈活的信息查詢等。</p><p> ?、?信息需求。即在數(shù)據(jù)庫中需要存儲哪些數(shù)據(jù)。

6、學生應該根據(jù)具體的課題,認真分析有關(guān)的要求,確定本設計的信息需求。</p><p> ?、?安全性和完整性功能。實踐中這是一個需要與用戶不斷交流才能逐步確定的需求。本課程設計要求學生在自己的設計中能反映出基本的安全性和完整性功能。 </p><p>  本階段的設計結(jié)果(即系統(tǒng)需求分析)應該在課程設計報告中進行詳細描述,畫出系統(tǒng)的數(shù)據(jù)流圖,寫出較為詳細的數(shù)據(jù)字典,作為本課程設計的驗收依據(jù)之

7、一。</p><p>  ⒉ 數(shù)據(jù)庫的概念設計</p><p>  數(shù)據(jù)庫的概念設計是在需求分析的基礎(chǔ)上,利用與用戶雙方都能理解的形式,設計出數(shù)據(jù)庫的概念模型。本課程設計要求學生采用E-R方法進行數(shù)據(jù)庫的概念設計。本設計階段可分為:</p><p>  ● 數(shù)據(jù)抽象。即根據(jù)需求分析的結(jié)果,抽取出與本課程設計相關(guān)的特性。設計局部概念模式。運用E-R方法,設計出系統(tǒng)的各

8、個局部ER模型。</p><p>  ● 設計全局概念模式。通過對局部E-R模型的操作,解決各個E-R模型關(guān)于對象定義不一致問題,以及對各個E-R模型進行合并優(yōu)化等,最終形成數(shù)據(jù)庫的全局概念模式。</p><p>  本階段的設計結(jié)果(局部和全局E-R圖、具體數(shù)據(jù)庫設計工具中概念結(jié)構(gòu)設計圖)應該在課程設計報告中進行詳細描述,應該能夠反映該設計的正確性,作為本課程設計的驗收依據(jù)之一。<

9、/p><p> ?、?數(shù)據(jù)庫的邏輯設計</p><p>  數(shù)據(jù)庫邏輯設計的目的是將概念設計階段設計好的E-R圖轉(zhuǎn)換成與具體機器上的DBMS(如Oracle)所支持的數(shù)據(jù)模型(如關(guān)系模型)相符合的邏輯結(jié)構(gòu)。</p><p>  鑒于本課程設計的具體環(huán)境要求,學生在進行數(shù)據(jù)庫的邏輯結(jié)構(gòu)設計時應該充分考慮特定的數(shù)據(jù)庫環(huán)境。</p><p>  要求學

10、生在本階段的設計中分兩步進行:</p><p>  ● 形成初始的關(guān)系模式。將概念設計階段產(chǎn)生的全局概念模式(E-R圖)轉(zhuǎn)換成初始的關(guān)系模式。</p><p>  ● 關(guān)系模式的規(guī)范化處理。為了減少或消除關(guān)系模式中存在的數(shù)據(jù)冗余和操作異常,根據(jù)設計所要求的規(guī)范級別,按照本課程所學知識,逐一分析各個關(guān)系模式是否滿足規(guī)定的范式。</p><p>  在課程設計報告中應該

11、提供本設計階段的相關(guān)內(nèi)容,作為本課程設計的驗收依據(jù)之一。</p><p><b> ?、?創(chuàng)建數(shù)據(jù)庫</b></p><p>  在某一數(shù)據(jù)庫管理系統(tǒng)環(huán)境中創(chuàng)建數(shù)據(jù)庫,根據(jù)需要也可建立相關(guān)數(shù)據(jù)視圖和存儲過程。</p><p>  在課程設計報告中應該提供相關(guān)的內(nèi)容,包括數(shù)據(jù)庫及各個數(shù)據(jù)庫對象的定義的SQL語句,作為本課程設計的驗收依據(jù)之一。&l

12、t;/p><p><b>  2.設計要求:</b></p><p>  鑒于數(shù)據(jù)庫選題原理課程設計的具體內(nèi)容,對課程設計提出如下要求:</p><p><b> ?、?選題原則</b></p><p>  課程設計題目以選用學生相對比較熟悉的業(yè)務模型為宜,要求通過本實踐性教學環(huán)節(jié),能較好地鞏固數(shù)據(jù)庫的

13、基本概念、基本原理、關(guān)系數(shù)據(jù)庫的設計理論、設計方法等主要相關(guān)知識點,針對實際問題設計概念模型,并應用現(xiàn)有的工具完成小型數(shù)據(jù)庫的設計與實現(xiàn)。</p><p><b> ?、?選題要求</b></p><p>  在后面的課題表中列出了幾個設計課題,每個課題都有相應的要求或說明。各課題的難易度有一定的差異,因此,參加課程設計的學生首先要了解設計的任務,仔細閱讀各個課題的設

14、計要求,為了避免多人選同一題,所做課題為(學號最后兩位數(shù) mod 課題號,比如學號23號,選題為23 mod 10=3,即做第三題——學生管理系統(tǒng))。一般來說,選擇課題應以在規(guī)定的時間內(nèi)能完成,并能得到應有的鍛煉為原則。</p><p>  若學生對課題表以外的相關(guān)課題較感興趣,希望選作課程設計的課題時,應征得指導教師的認可,并寫出明確的設計要求和說明。</p><p>  設計時要嚴格按

15、照題意要求進行設計,不能隨意更改。若確因條件所限,必須要改變課題要求時,應在征得指導教師同意的前提下進行。</p><p><b>  3.參考選題 </b></p><p><b>  工資管理系統(tǒng)</b></p><p><b>  人事管理系統(tǒng)</b></p><p>&

16、lt;b>  倉庫管理系統(tǒng)</b></p><p><b>  學生管理系統(tǒng)</b></p><p><b>  圖書館管理信息系統(tǒng)</b></p><p>  賓館客房管理信息系統(tǒng)</p><p><b>  學籍管理系統(tǒng)</b></p>&l

17、t;p><b>  機票預定系統(tǒng)</b></p><p>  學生成績管理系統(tǒng)課程管理子系統(tǒng)通訊錄子系統(tǒng)教室管理子系統(tǒng)宿舍管理子系統(tǒng)個人事務管理子系統(tǒng)庫房管理系統(tǒng)小商店銷售管理系統(tǒng)其它管理子系統(tǒng)數(shù)據(jù)庫設計(自己選題需經(jīng)指導教師認可).</p><p>  4.課程設計報告要求</p><p>  課程設計的設計報告是學生對

18、本次課程設計的全面總結(jié),應該反映每個設計階段的設計思路和設計內(nèi)容。該設計報告,應作為整個課程設計評分的書面依據(jù)和存檔材料。設計報告一般要以固定規(guī)格的紙張(如A4)書寫或打印并裝訂,字跡及圖形要清楚,工整,規(guī)范。內(nèi)容及要求如下:</p><p> ?、?設計任務、要求及所用軟件環(huán)境或工具介紹。</p><p>  ⑵ 課程設計內(nèi)容中要求的設計結(jié)果。</p><p>&

19、lt;b> ?、?總結(jié)</b></p><p><b> ?、?驗收情況</b></p><p><b>  二、進度安排</b></p><p>  第三周 星期二 8:00——12:00</p><p>  星期三 8:00——12:00</p><p&

20、gt;  星期四 8:00——12:00</p><p>  第四周 星期二 8:00——12:00</p><p>  星期三 8:00——12:00</p><p>  星期四 8:00——12:00</p><p><b>  附:</b></p><p>  課程設計報告裝訂順序:封面

21、、任務書、目錄、正文、評分、附件(A4大小的圖紙及程序清單)。 </p><p>  正文的格式:一級標題用3號黑體,二級標題用四號宋體加粗,正文用小四號宋體;行距為22。</p><p>  正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實現(xiàn)(至少要有一個主要模塊的流程圖);四、程序調(diào)試;五、總結(jié);六、附件(所有程序的原代碼,要求對程序?qū)懗霰?/p>

22、要的注釋)。</p><p>  正文總字數(shù)要求在5000字以上(不含程序原代碼)。</p><p><b>  目錄</b></p><p>  一. 系統(tǒng)需求分析6</p><p>  1.1 設計前調(diào)查6</p><p>  1.2 用戶需求分析6</p><p&

23、gt;  1.3 核心數(shù)據(jù)流圖7</p><p>  1.4 核心數(shù)據(jù)字典8</p><p><b>  二、概念設計9</b></p><p>  2.1 局部E-R圖9</p><p>  2.2 全局E-R圖10</p><p><b>  三、邏輯設計11</b

24、></p><p>  3.1 開發(fā)環(huán)境11</p><p>  3.2.1有以下關(guān)系模式:11</p><p>  3.2.2分解分析:11</p><p>  四、創(chuàng)建數(shù)據(jù)庫11</p><p>  五、程序以及調(diào)試和使用說明12</p><p>  5.1程序登陸界面12

25、</p><p>  5.2 主面板13</p><p>  5.3具體介紹14</p><p>  5.3.1房態(tài)查看14</p><p>  5.3.2 入住登記和預定房間14</p><p>  5.3.3 調(diào)房,住宿、退宿查詢15</p><p>  5.3.4 掛帳,結(jié)帳,日

26、報表,追加押金16</p><p>  5.3.5報修和維修16</p><p>  5.3.6添加用戶,添加員工,修改密碼17</p><p><b>  六、總結(jié)18</b></p><p><b>  七、部分代碼19</b></p><p>  7.2添加員

27、工19</p><p>  7.3 賓客入住21</p><p>  計算機與通信學院課程設計評分表26</p><p>  一. 系統(tǒng)需求分析</p><p><b>  1.1 設計前調(diào)查</b></p><p>  近年來,賓館業(yè)迅猛發(fā)展,市場的競爭日趨激烈,全面提高賓館的軟件管理水

28、準,已成為賓館業(yè)發(fā)展的當務之急。尤其是對于星級賓館,既需要完成前臺的一些服務工作,還需要完成后臺的管理工作。然而,傳統(tǒng)的人工管理模式已經(jīng)遠遠不能滿足有效、快捷地處理經(jīng)營中產(chǎn)生的大量信息數(shù)據(jù)的需要,從而使得企業(yè)決策層無法及時、準確地掌握一線資料,繼而影響對市場進行正確地分析和預測。像沿海城市三星級以上賓館引進外方管理,使小部分賓館管理水準幾乎接近或達到國際水平。但對占80%以上的廣大中小型賓館來說,是難以做到的。因此,欲在競爭中甩開對手,

29、取得優(yōu)勢,必須在經(jīng)營、管理、產(chǎn)品、服務等方面具備獨到之處。而對賓館的經(jīng)營狀況起決定作用的是客房的管理。簡單的服務標準已不是制勝的錦囊,只有管理做到最細微之處,才能讓顧客體會到賓館服務的高標準、高質(zhì)量,而準確、快速、周全往往就是最基本的成功要素。</p><p>  傳統(tǒng)的管理方法已經(jīng)不能適應現(xiàn)代社會的需要,因此采用電腦管理業(yè)務、財務等諸多環(huán)節(jié)已成為推動賓館業(yè)迅速發(fā)展的先決條件,賓館客房管理信息系統(tǒng)是各大中小型賓館

30、所需要使用的一個管理系統(tǒng)。</p><p>  1.2 用戶需求分析</p><p>  建立一套功能完善的管理信息系統(tǒng),既能滿足業(yè)務人員日常處理的需要,增強企業(yè)經(jīng)營全過程的數(shù)字化管理水平;又能滿足管理人員決策分析的需要,提高公司管理層對公司經(jīng)營反饋信息的響應速度。從而大幅度提高工作效率,提高實施管理的準確性、科學性,使擔負管理的工作人員從繁雜的手工勞作中解脫出來。因而程序需要實現(xiàn)的功能有

31、如下主要六大功能:</p><p>  客房管理:客房登記,入住情況查詢,客房狀態(tài)查看。</p><p>  賓客入住管理:客房預定,登記入住,房間調(diào)整,退房結(jié)帳</p><p>  物資管理:物品登記,物品查詢,報修和維修,定時提醒。</p><p>  財務管理:追加押金,增刪財務,日報表</p><p>  員工

32、管理:增改員工,查刪員工</p><p>  系統(tǒng)管理:增刪管理員,修改密碼,以及預留的基于SQL的數(shù)據(jù)庫管理(該程序考慮到 </p><p>  作為課程設計和信息系統(tǒng)不是很大,使用了單機版的ACCESS,以求方便 寫程序)</p><p>  其他功能:界面管理(提供兩套外觀:經(jīng)典外觀和春天里)</p><p>  1.3 核心數(shù)

33、據(jù)流圖 </p><p><b>  維修信息</b></p><p>  客房信息 </p><p>  客房信息 客房狀態(tài)</p><p>  客人信息 入住登記</p><p

34、><b>  帳務信息</b></p><p>  入住信息 </p><p><b>  部分數(shù)據(jù)流圖</b></p><p> ?。ㄙe館客房管理系統(tǒng)的數(shù)據(jù)流——客人信息)

35、 </p><p>  (賓館客房管理系統(tǒng)的數(shù)據(jù)流——入住登記)</p><p> ?。ㄙe館客房管理系統(tǒng)的數(shù)據(jù)流——客房信息)</p><p>  (賓館客房管理系統(tǒng)的數(shù)據(jù)流——房間狀態(tài))</p><p> ?。ㄙe館客房管理系統(tǒng)的數(shù)據(jù)流——帳務信息)</p><p>  1.4 核心數(shù)據(jù)字典</p>

36、<p>  [賓客入住信息表:Cmanage] </p><p>  [客房登記表:Roomlogin] </p><p>  [管理員表::pw]</p><p>  [財務管理表:Smanage]</p><p>  [維修/報修表:fix]</p><p>  [提醒表:Reminder]</p&

37、gt;<p><b>  二、概念設計 </b></p><p>  2.1 局部E-R圖 </p><p><b>  [客房E-R]</b></p><p>  [客人E-R] [管理員E-R] </p&g

38、t;<p><b>  [職員E-R]</b></p><p>  2.2 全局E-R圖</p><p>  n 1 </p><p>  1 </p><p>  1

39、 1</p><p>  1 1 1</p><p>  n q p</p><p><b>  m</b></p><p>  1

40、</p><p><b>  1</b></p><p><b>  m </b></p><p><b>  [全局E-R圖]</b></p><p><b>  三、邏輯設計</b></p><p><b>  3.

41、1 開發(fā)環(huán)境</b></p><p>  開發(fā)語言:Visual Basic</p><p>  開發(fā)平臺:windows xp,1G內(nèi)存,集成顯卡。</p><p>  開發(fā)工具:Visual Basic 6.0企業(yè)版,SQL Server 2000,Access 2003</p><p>  3.2 關(guān)系模式形成以及規(guī)范<

42、;/p><p>  3.2.1有以下關(guān)系模式:</p><p>  PW(user,pwd,power);</p><p>  Empl(eid,ename,eage,esex,eaddress,etel,ejob,ejtime,ejage);</p><p>  Fix(Fid,fname,froom,fstatue,ffdate,fpay,f

43、man,fuser);</p><p>  Gmanage(Gid,gname,gtype,gnum,gprice,guse,gsum,gdate,guser,gdw);</p><p>  Roomlogin(Rid,rname,rtype,rdescribe,rprice,rstatue,ruser);</p><p>  Reminder(remid,remn

44、ame,remdate,remtype,remstatue,remuser);</p><p>  Smanage(Sid,sreason,sin,sout,ssum,sdate,sman,scomp,suser);</p><p>  Cmanage(cnumber,cname,cictype,cicnum,csex,caddress,ctel,cmember,croom,ctype,c

45、price, cindate,cintype,coutdate,cya,cyaadd,cstatue,cchange,creason,cmtel,cmmeeting,cmcar,cmdamage,cmother,cmshould,cmpay,cmback,cuser);</p><p>  3.2.2分解分析:</p><p>  各分量都是不可分割的數(shù)據(jù)項。滿足第一范式;<

46、;/p><p>  每一個關(guān)系中的非碼屬性都完全函數(shù)依賴于碼,符合第二范式;</p><p>  每個關(guān)系中的主屬性不傳遞依賴關(guān)系中的每個關(guān)系鍵,符合第三范式;</p><p>  關(guān)系中所有非主屬性對每個碼都是完全依賴,且所有主碼對于每個不包含它的碼也是完全函數(shù)依賴,沒有任 </p><p>  何屬性完全函數(shù)依賴非碼的任何一組屬性</p

47、><p><b>  四、創(chuàng)建數(shù)據(jù)庫</b></p><p>  1)創(chuàng)建數(shù)據(jù)庫,讓數(shù)據(jù)庫可以動態(tài)增長</p><p>  create database hotel</p><p><b>  on </b></p><p>  (name=hotel_data,</p&

48、gt;<p>  filename='E:\hotel.mdf',</p><p>  size=5mB,maxsize=20mb,filegrowth=10%)</p><p><b>  log on</b></p><p>  (name=hotel_log,</p><p>  fi

49、lename='E:\hotel.ldf',</p><p>  size=2mb,maxsize=5mb,filegrowth=1mb)</p><p><b>  go</b></p><p><b>  2)創(chuàng)建PW用戶表</b></p><p><b>  use

50、hotel</b></p><p><b>  go</b></p><p>  create table pw</p><p>  (user char (12) not null primary key,</p><p>  Pwd char(8) not null,</p><p

51、>  Power char(1) not null )</p><p><b>  go</b></p><p>  3)創(chuàng)建客房登記表RoomLogin</p><p>  create table roomlogin</p><p>  (rid char (12) not null, </p

52、><p>  Rname char(20) not null primary key,</p><p>  Rtype char(10) not null </p><p>  Rdescribe char(100),</p><p>  Rprice money not null,</p><p>  Rstatue c

53、har(8) not null,</p><p>  Ruser char(12) not null,)</p><p><b>  go</b></p><p>  4)同上創(chuàng)建提醒表Reminder、物品表Gmanage、維修表fix、員工表Empl、帳務表Smanage、客戶如住表Cmanage</p><p> 

54、 五、程序以及調(diào)試和使用說明</p><p><b>  5.1程序登陸界面</b></p><p>  [說明:進入登陸界面后,系統(tǒng)會自動加載已有的用戶,讓用戶選擇自己的帳戶進行登陸,密碼 </p><p>  輸入三次后關(guān)閉窗口;用控件屬性設置來實現(xiàn)用戶定義的完整性:密碼最大長度為8。用戶名錯誤,或密碼錯誤,系統(tǒng)都會對其進行提醒,以達到正確

55、輸入,本程序設置一超級用戶:admin,權(quán)限為1,其他用戶的權(quán)限均為0。超級用戶能對押金進行追加,其他用戶必須在超級用戶協(xié)助下才能完成押金追加]</p><p><b>  5.2 主面板</b></p><p>  [說明:主界面用VB中的MDIForm,多入口提供給用戶操作,包括菜單欄、工具欄(可選擇顯示和不顯示)、側(cè)邊欄(可隱藏)、主面板Panel(提供操作員最

56、常用的操作,節(jié)約時間),在狀態(tài)欄可以顯示系統(tǒng)時間和當前用戶以及需要維修的房間數(shù)。實現(xiàn)了所有要求的功能]</p><p>  [說明:提供兩種風格供用戶選擇。在vb模塊里有一函數(shù)change(),一變量保存當前風格類型,當每次show一窗口時,就會調(diào)用該函數(shù)通過變量判斷是顯示那種風格]</p><p><b>  5.3具體介紹</b></p><p

57、><b>  5.3.1房態(tài)查看</b></p><p>  [說明:在主面板上的快速入口上點擊房態(tài)查詢,顯示當前房間入住圖形界面。直觀、方便。點擊房間能顯示在該房間入住過的客戶。嵌入的查詢語句為:"select</p><p>  cnumber,cname,cictype,cicnum,csex,caddress,ctel,cmember,croo

58、m,ctype,cprice,cindate,coutdate,cstatue from cmanage where croom='" & Command1(Index).Caption & "'",Command1(Index).Caption為當前按下的要查詢的房間按鈕的名稱]</p><p>  5.3.2 入住登記和預定房間</p>

59、;<p>  [說明:點"登記",系統(tǒng)自動在 roomlogin表中rstatue='空閑'的房間名字添加到 房間號碼的下拉列表中,供客戶選擇房間,用戶可以選擇"現(xiàn)開/預定"當用戶選擇下拉列表中的一個房間時,系統(tǒng)自動將roomlogin中該房間的標準類型,價格自動加載顯示,房間狀況一目了然。其他用戶自定義完整性約束都通過對控件的屬性設置來完成,當用戶輸入數(shù)據(jù)破壞完整性

60、時,系統(tǒng)會發(fā)出警告,以保持數(shù)據(jù)庫的完整性]</p><p>  5.3.3 調(diào)房,住宿、退宿查詢</p><p>  [說明:通過入口可以打開窗體。當客戶需要調(diào)整房間時,點登記后,系統(tǒng)自動加載已入住客戶的房間和空閑的房間號碼,當用戶選擇要調(diào)房的客戶時,系統(tǒng)自動加載客戶的信息。選擇目標房間時候,系統(tǒng)自動加載房間信息。用戶確定調(diào)房后,系統(tǒng)修改數(shù)據(jù)庫:原房間狀態(tài)改為空閑,目標房間改為入住。原住房

61、產(chǎn)生的費用將加在新入住房間上,而提醒表中原房間改為現(xiàn)房間。因而需要修改三個表:Cmanage,roomlogin,reminder.而查詢?nèi)胱⌒畔⒌那度雜ql語句為:"select cnumber,cname,cictype,cicnum,csex,caddress,ctel,cmember,croom,ctype,cprice,cindate,coutdate,cstatue from cmanage",其他查詢語

62、句雷同,此后不在贅述。在文本框里輸入要查詢的姓名,MSFlexGrid空間將會顯示查詢結(jié)果,嵌入的查詢語句為: "select cnumber,cname,cictype,cicnum,csex,caddress,ctel,cmember,croom,ctype,cprice,cindate,coutda</p><p>  5.3.4 掛帳,結(jié)帳,日報表,追加押金</p><p&g

63、t;  [說明:追加押金窗體.系統(tǒng)自動加載已入住客戶號碼,當用戶選擇客戶號碼時候,系統(tǒng)自動加載客戶信息,用戶添加押金后,保存時系統(tǒng)對cmanage表進行修改,保存數(shù)據(jù);結(jié)帳窗體。系統(tǒng)自動加載已入住還沒退房的房間號,用戶選擇要退房的房間號,系統(tǒng)加載客戶信息以需付款和明細供核對,確定結(jié)帳后,系統(tǒng)將對 cmanage表,smanage,reminder,roomlogin進行修改,以保持數(shù)據(jù)庫的參照完整性。如果是掛帳,用戶可以選擇掛帳,在客戶

64、結(jié)帳的時候,調(diào)出掛帳結(jié)帳窗體,系統(tǒng)自動加載掛帳的單位,用戶選擇掛帳單位,系統(tǒng)自動加載需還金額。掛帳結(jié)帳只對smanage表操作。而日報表顯示smange里的信息,提供按日期查找的方法,打印當天的帳務明細。查詢的嵌入sql語句為:"select sreason,sin,sout,ssum,sdate,sman,scomp,suser from smanage where sdate =#" & DTPicke

65、r1.Value & "#"。在該處開始一直調(diào)試不出,后來發(fā)現(xiàn)在sql語句中對日期要加"#"來格式說明是日期型的。</p><p>  5.3.5報修和維修</p><p>  [說明:打開該窗體,左邊有一組option選項。當選報修時候,系統(tǒng)自動加載空閑的房間號。如果為入住的房間報修,則需先調(diào)房退房后才能報修,總不能讓客戶住在需維修的房間中

66、吧。確定報修后。系統(tǒng)將在reminder表中增加一條需提醒事項,即需維修事項,傳遞 房間號 和維修狀態(tài) 給 reminder表做為關(guān)鍵字。在主窗體中便會有提示需要維修的房間,可以通過房態(tài)查詢,查看需要維修的房間號。維修完后要進行登記,選擇登記后,系統(tǒng)加載當前狀態(tài)為 維修的房間,記錄維修費用和維修員,確定后,系統(tǒng)將操作 roomlogin和reminder表,保持數(shù)據(jù)庫系統(tǒng)的參照完整性] </p><p>  5.

67、3.6添加用戶,添加員工,修改密碼</p><p>  [說明:只有管理員,即超級用戶才能添加操作員和員工,但是普通擁護可以修改自己的密碼。添加操作員的代碼為: If Text1.Text <> "" And Text2.Text <> "" And Text2.Text = Puser.Fields("pwd") Then<

68、;/p><p>  If Text3.Text <> "" Then</p><p>  Puser.Edit</p><p>  Puser.Fields("pwd") = Text3.Text</p><p>  MsgBox ("密碼修改成功,退出操作員密碼修改!")&

69、lt;/p><p>  Puser.Update</p><p>  main.Enabled = True</p><p><b>  Unload Me</b></p><p><b>  Else</b></p><p>  MsgBox ("請輸入新密碼!!&q

70、uot;)</p><p><b>  End If</b></p><p><b>  Else</b></p><p>  If Text1.Text = "" Then</p><p>  MsgBox ("請輸入操作員!")</p>&l

71、t;p>  Text1.SetFocus</p><p><b>  Else</b></p><p>  If Text1.Text <> Puser.Fields("user") Then</p><p>  Text1.SetFocus</p><p>  Text1.Text

72、 = ""</p><p>  MsgBox ("無此操作員,請重新輸入!")</p><p><b>  End If</b></p><p><b>  End If</b></p><p>  If Text2.Text = "" T

73、hen</p><p>  MsgBox ("請輸入操作員原密碼!")</p><p>  Text2.SetFocus</p><p><b>  Else</b></p><p>  If Text2.Text <> Puser.Fields("pwd") Then

74、</p><p>  MsgBox ("原密碼錯誤,請重新輸入原密碼!")</p><p>  Text2.SetFocus</p><p><b>  End If</b></p><p><b>  End If</b></p><p>  End I

75、f 這是才用 DAO 3.6對象來對數(shù)據(jù)庫進行操作,這是另一種方法對數(shù)據(jù)庫操作</p><p>  cr = "insert into pw values(' " & text1.text& " ',' " & text2.text & " ' ,'0')"</p&g

76、t;<p>  mydb.Execute cr 這是直接用嵌入sql語句來插入記錄。兩種效果都一樣</p><p><b>  ]</b></p><p><b>  六、總結(jié) </b></p><p>  兩周的日日夜夜的奮戰(zhàn),終于達到了預定的效果,完成了該信息系統(tǒng)的設計和程序編寫。</p>

77、<p>  在??茖W校,曾學過VB語言,也開發(fā)過很多程序,所以vb語言成為首選。雖然其編寫的應用程序在不同的機器上需要解釋器,需要隨帶很多ocx控件和其他,但是在編寫信息管理系統(tǒng)這方面還是很有優(yōu)勢的。(1)可視畫編程,豐富的控件,隨用隨拖,對控件對象編程,很方便。(2)可以方便的利用API函數(shù)實現(xiàn)窗體的各種效果。有豐富的api接口。(3)語言簡單,實現(xiàn)功能很方便。在對數(shù)據(jù)庫操作方面,引用了DAO 3.6 對象,使用DAO編程連

78、接和操作。所以很自然選擇了VB語言。在數(shù)據(jù)庫方面,考慮編程方便,采用從sql中導出成access文件來進行操作。</p><p>  選定課題后,開始收集相關(guān)資料和設計軟件架構(gòu)。到賓館調(diào)查和到網(wǎng)上收集信息,以及參考了其他信息管理系統(tǒng),心里就有了輪廓。設計好軟件的幾大模塊,采用自頂向下的經(jīng)典設計方法,確定實現(xiàn)的功能,開始設計數(shù)據(jù)庫。運用相關(guān)的數(shù)據(jù)庫知識,設計好數(shù)據(jù)表,確定字段。并通過模式分解,確定其是無損的連接。有

79、了數(shù)據(jù)庫作為整個設計的底層,就好象蓋房子有了骨架,而軟件就象是磚瓦,只是將骨架填充完善,給客戶一個好的外觀。因而數(shù)據(jù)庫的設計尤為重要,但是在設計之初,往往會有很多情況不能考慮周全,再加之一個人編寫,所以進度一度很慢,后來通過列出所有可能的情況,以及同同學老師等交流,總結(jié)并重新設計了數(shù)據(jù)庫,終于是能有一個比較好的效果。通過將所有和客戶相關(guān)的財務信息都加到客戶信息里,避免了對多表的操作,避免了有可能會出現(xiàn)的參照完整性不一致的問題。繼而是軟件

80、的設計,由于對vb還是算比較熟悉,因而有了數(shù)據(jù)庫的支撐,就得心應手了??紤]到用戶使用的方便性,軟件主界面提供了很多入口,以及直觀的圖形顯示,方便用戶操作,因而也給客戶帶來方便,免去了客戶的很多等待時間,提升賓館的形象。同時提供了兩套外觀,春天里這套外觀可以避免用戶的審美疲勞。整</p><p>  由于公司規(guī)模和業(yè)務量大,因而信息系統(tǒng)不可能只在單機上運行,所以才用C/S,或B/S結(jié)構(gòu)比較合適。因時間關(guān)系所以沒能完

81、成,只預留了接口,供以后開發(fā)擴展用。當然這次課程設計因為是數(shù)據(jù)庫的課程設計,重點在數(shù)據(jù)庫的設計,所以對于軟件體系結(jié)構(gòu)風格,沒有考慮,只求能達到目的!</p><p>  在本次課程設計中,要感謝各位老師的指導,也要感謝提供意見和建議的同學,才得以大致完成該設計。本欲來讓老師答辯的,但因個人原因,在答辯那天趕回家了,所以沒得完成最終的答辯。但這不要緊,編程最大的喜事莫過于完成所有程序的那一刻,雖然后續(xù)還有很多維護和

82、修改任務,但是心里突然輕松下來那一刻的心情是無與倫比的。再次感謝老師的指導!</p><p><b>  七、部分代碼</b></p><p><b>  7.1模塊</b></p><p>  Public NowUser As String '當前用戶名</p><p>  Public

83、 nowpower As String '當前用戶權(quán)限</p><p>  Public mydb As DAO.Database '定義數(shù)據(jù)庫</p><p>  Public bgi As Integer '判斷背景風格</p><p>  Public Sub LoadAccess()</p><p>  Set

84、 mydb = DAO.OpenDatabase(App.Path & "\hotel.mdb")</p><p><b>  End Sub</b></p><p>  Public Sub bground()</p><p>  If bgi = 1 Then</p><p>  main

85、.Picture = panel.Image1.Picture</p><p>  panel.Picture = panel.Image1.Picture</p><p>  panel.Picture1.Picture = panel.Image1.Picture</p><p>  main.Picture1.Picture = panel.Image1.Pi

86、cture</p><p>  main.Picture2.Picture = panel.Image1.Picture</p><p>  Unload findEm: Unload findlogin: Unload fingG: Unload InLogin: Unload LogoutBG: Unload managekf: Unload payoff: Unload View&l

87、t;/p><p>  Unload changelogin: Unload findLogout: Unload find: panel.resizeme</p><p><b>  Else</b></p><p>  If bgi = 0 Then</p><p>  main.Picture = Nothing<

88、/p><p>  panel.Picture = Nothing</p><p>  panel.Picture1.Picture = Nothing</p><p>  main.Picture1.Picture = Nothing</p><p>  main.Picture2.Picture = Nothing</p><

89、;p>  Unload findEm: Unload findlogin: Unload fingG: Unload InLogin: Unload LogoutBG: Unload managekf: Unload payoff: Unload View</p><p>  Unload changelogin: Unload findLogout: Unload find: panel.resizeme

90、</p><p><b>  End If</b></p><p><b>  End If</b></p><p><b>  End Sub</b></p><p><b>  7.2添加員工</b></p><p>  Pri

91、vate Declare Function ReleaseCapture Lib "user32" () As Long '獲取“變動”信息</p><p>  Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVa

92、l hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long</p><p>  Private Const WM_SYSCOMMAND = &H112</p><p>  Private Const SC_MOVE = &HF010&</p><

93、p>  Private Const HTCAPTION = 2</p><p>  Dim Emp As Recordset</p><p>  Private Sub DTPicker1_Change()</p><p>  Text7.Text = Year(Date) - Year(DTPicker1.Value)</p><p>

94、;<b>  End Sub</b></p><p>  Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)</p><p>  If Button = 1 Then</p><p><b>  '如

95、果按下鼠標左鍵</b></p><p>  Dim ReturnVal As Long</p><p>  X = ReleaseCapture()</p><p>  ReturnVal = SendMessage(addEm.hwnd, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0)</p><p&g

96、t;<b>  End If</b></p><p><b>  End Sub</b></p><p>  Private Sub Form_Load()</p><p>  LoadAccess</p><p>  Set Emp = mydb.OpenRecordset("selec

97、t * from empl")</p><p>  Text1.Text = Year(Date) & Month(Date) & Day(Date) & Hour(Time) & Minute(Time)</p><p>  Text7.Text = Year(Date) - Year(DTPicker1.Value)</p>&l

98、t;p><b>  End Sub</b></p><p>  Private Sub Command1_Click() '================================================!!!!!!!!!!!!!!!!!!!!!!!!!!!</p><p>  '缺少判斷員工號是否存在的信息</p>

99、<p>  If Text1.Text = "" Or Text2.Text = "" Or Text4.Text = "" Then</p><p>  msg$ = MsgBox("請確認 員工號、員工姓名、職務 已經(jīng)輸入", 48, "Error")</p><p><

100、;b>  Else</b></p><p>  Emp.AddNew</p><p>  Emp.Fields("emid") = Text1.Text</p><p>  Emp.Fields("ename") = Text2.Text</p><p>  Emp.Fields(&q

101、uot;esex") = Combo1.Text</p><p>  Emp.Fields("ejob") = Text4.Text</p><p>  Emp.Fields("eage") = Val(Text5.Text)</p><p>  Emp.Fields("etel") = Text

102、6.Text</p><p>  Emp.Fields("ejtime") = DTPicker1.Value</p><p>  Emp.Fields("ejage") = Text7.Text</p><p>  Emp.Update '更新記錄</p><p><b> 

103、 Emp.Close</b></p><p>  msg$ = MsgBox("添加成功", 64, "Success!")</p><p><b>  Unload Me</b></p><p><b>  End If</b></p><p>

104、<b>  End Sub</b></p><p>  Private Sub Command2_Click()</p><p>  Text1.Text = "": Text2.Text = "": Combo1.Text = ""</p><p>  Text4.Text = &q

105、uot;": Text5.Text = "": Text6.Text = ""</p><p><b>  End Sub</b></p><p>  Private Sub Command3_Click()</p><p>  main.Enabled = True</p>&l

106、t;p><b>  Unload Me</b></p><p><b>  End Sub</b></p><p><b>  7.3 賓客入住</b></p><p>  Dim i As Integer '定義一個整型變量</p><p>  Dim

107、InLog As Recordset</p><p>  Dim Room As Recordset</p><p>  Dim Remind As Recordset</p><p>  Private Sub Combo4_Click()</p><p>  Set Room = mydb.OpenRecordset("sele

108、ct * from roomlogin where rname='" & Combo4.Text & "'")</p><p>  ZSDJ(4).Text = Room.Fields("rtype"): ZSDJ(5).Text = Room.Fields("rprice")</p><p&

109、gt;<b>  End Sub</b></p><p>  Private Sub Combo5_click()</p><p>  Label11.Caption = Combo5.Text</p><p><b>  End Sub</b></p><p>  Private Sub DTP3

110、_Change()</p><p>  ZSDJ(6).Text = DTP3.Value - DTP1.Value</p><p><b>  End Sub</b></p><p>  Private Sub Form_Load()</p><p>  If bgi = 1 Then Me.Picture = pan

111、el.Image1.Picture</p><p>  If bgi = 0 Then Me.Picture = Nothing</p><p>  DTP1.Value = Date: DTP2.Value = Date: DTP3.Value = Date '初始化日期及時間</p><p>  czy.Text = NowUser '賦值給

112、czy</p><p>  LoadAccess</p><p><b>  End Sub</b></p><p>  Private Sub Form_Unload(Cancel As Integer)</p><p>  main.Enabled = True '設置主窗體有效</p>

113、<p><b>  End Sub</b></p><p>  Private Sub Combo2_Click()</p><p>  If Combo2.Text = "折扣" Then</p><p>  ZSDJ(8).Enabled = True '設置ZSDJ(8)有效</p&g

114、t;<p>  ZSDJ(8).SetFocus 'ZSDJ(8)獲得焦點</p><p><b>  End If</b></p><p>  If Combo2.Text = "招待" Then</p><p>  ZSDJ(8).Enabled = True '設置ZSDJ

115、(8)有效</p><p>  ZSDJ(8).Text = 0 '賦值給ZSDJ(8)</p><p><b>  End If</b></p><p><b>  End Sub</b></p><p>  Private Sub ZSDJ_Change(Index As Int

116、eger)</p><p>  Select Case Index</p><p><b>  Case 6</b></p><p>  ZSDJ(7).Text = Format(Val(ZSDJ(6).Text) * Val(ZSDJ(5).Text), "0.00") '計算折前宿費</p>

117、<p>  ZSDJ(9).Text = ZSDJ(7).Text '賦值給ZSDJ(9)</p><p>  ZSDJ(8).Text = 100</p><p>  DTP3.Value = DTP1.Value + Val(ZSDJ(6).Text) '計算退宿日期</p><p><b>  Case

118、8</b></p><p>  ZSDJ(9).Text = Format(Val(ZSDJ(7).Text) * Val(ZSDJ(8).Text) / 100, "0.00") '計算實際宿費</p><p><b>  Case 10</b></p><p>  If ZSDJ(10).Te

119、xt <> "" Then</p><p>  ZSDJ(10).Text = Val(ZSDJ(10).Text) '用val函數(shù)將字符串轉(zhuǎn)換為數(shù)字</p><p>  DTP2.Value = DTP1.Value + Int(Val(ZSDJ(10).Text) / Val(ZSDJ(5).Text)) '計算提醒日期&

120、lt;/p><p><b>  End If</b></p><p>  End Select</p><p><b>  End Sub</b></p><p>  Private Sub ZSDJ_KeyDown(Index As Integer, KeyCode As Integer, Shift

121、 As Integer)</p><p>  Select Case Index</p><p><b>  Case 0</b></p><p>  If KeyCode = vbKeyReturn Then Combo1.SetFocus '按回車鍵Combo1獲得焦點</p><p><b&g

122、t;  Case 1</b></p><p>  If KeyCode = vbKeyReturn Then ZSDJ(2).SetFocus '按回車鍵ZSDJ(2)獲得焦點</p><p><b>  Case 2</b></p><p>  If KeyCode = vbKeyReturn Then ZSDJ

123、(3).SetFocus '按回車鍵ZSDJ(3)獲得焦點</p><p><b>  Case 3</b></p><p>  If KeyCode = vbKeyReturn Then DBCombo1.SetFocus '按回車鍵ZSDJ(2)獲得焦點</p><p><b>  Case 4&

124、lt;/b></p><p>  If KeyCode = vbKeyReturn Then ZSDJ(5).SetFocus '按回車鍵ZSDJ(5)獲得焦點</p><p><b>  Case 5</b></p><p>  If KeyCode = vbKeyReturn Then ZSDJ(6).SetFocus

125、 '按回車鍵ZSDJ(6)獲得焦點</p><p><b>  Case 6</b></p><p>  If KeyCode = vbKeyReturn Then ZSDJ(10).SetFocus</p><p><b>  Case 8</b></p><p>  If Key

126、Code = vbKeyReturn Then ZSDJ(10).SetFocus '按回車鍵ZSDJ(10)獲得焦點</p><p><b>  Case 10</b></p><p>  If KeyCode = vbKeyReturn Then ZSDJ(11).SetFocus 'ZSDJ(11)獲得焦點</p>

溫馨提示

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

評論

0/150

提交評論