賓館管理信息系統(tǒng)_第1頁
賓館管理信息系統(tǒng)_第2頁
賓館管理信息系統(tǒng)_第3頁
賓館管理信息系統(tǒng)_第4頁
賓館管理信息系統(tǒng)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、分類號 編 號 華北水利水電學(xué)院 North China Institute of Water Conservancy and Hydroelectric Power 實 驗 報 告課程 數(shù)據(jù)庫課程設(shè)計 題目 賓館管理信息系統(tǒng) 院 系 信息工程學(xué)院 專 業(yè) 計算機科學(xué)與技術(shù)(2011級) 小組成員1 楊小平 (201114018) 小組成員2 楊繼波 (201114019) 指 導(dǎo) 教 師 白 娟 2014年 7 月 2 日華北水利水電學(xué)院 數(shù)據(jù)庫課程設(shè)計 實驗報告20132014學(xué)年 第 二 學(xué)期 2011 級 計算機科學(xué)與技術(shù) 專業(yè)小組成員1: 楊小平(201114018)分工:編碼以及數(shù)

2、據(jù)庫的建立 小組成員2: 楊繼波(201114019)分工: 需求分析 一、 實驗內(nèi)容:題目:賓館管理信息系統(tǒng)任務(wù):入住或預(yù)訂客房時,用戶要對客戶管理模塊或預(yù)訂管理模塊進行核對審查,并進行登記;客戶換房時,要對換房信息進行查詢和更新;客戶退房時,要進行結(jié)算,并對更新客房信息。 主要功能模塊:(1)登錄模塊:對用戶身份進行驗證,只有合法用戶才能進入系統(tǒng);(2)系統(tǒng)管理模塊:對系統(tǒng)用戶進行管理,更改用戶名、密碼等;(3)客房管理模塊:對客房信息的添加、修改和刪除等;(4)入住管理模塊:對客戶入住信息的登記、查詢等功能(5)訂房管理模塊:對客戶訂房信息的登記、查詢等。(6)換房管理模塊:對客戶換房信

3、息的登記、查詢等(7)賓館結(jié)算模塊:對已入住賓館的顧客進行結(jié)算及對訂房客戶已交的押金進行結(jié)算。ER圖:數(shù)據(jù)流字典:數(shù)據(jù)流名稱來源去向說明用戶登錄用戶輸入的用戶名與用戶密碼驗證正確后,進入系統(tǒng)界面檢索信息用戶輸入的欲查找信息系統(tǒng)的數(shù)據(jù)庫,包括客戶信息,客房信息等把數(shù)據(jù)庫相關(guān)部分包括對房間信息的查找,客戶信息的查找系統(tǒng)信息用戶輸入的本系統(tǒng)的信息數(shù)據(jù)庫系統(tǒng)用戶信息存儲部分用戶登錄密碼等信息內(nèi)容客戶信息用戶輸入的酒店客戶信息數(shù)據(jù)庫客戶信息存儲部分包括客戶的身份信息,客戶登記信息,客戶類型信息,客戶消費信息,客戶賬單等與客戶有關(guān)的信息數(shù)據(jù)客房(房間)信息酒店住房的相關(guān)信息數(shù)據(jù)庫酒店房間信息存儲部分包括系

4、統(tǒng)最初設(shè)置的房間的基本信息,如使用狀態(tài),清潔狀態(tài),類型,房號,床位數(shù)等,以及客戶提出的對客房的一些要求客戶要求客戶提出的對于酒店住房的相關(guān)要求信息用戶由用戶錄入系統(tǒng)中查詢結(jié)果顯示界面,用戶顯示界面,用戶經(jīng)查詢后得到的符合條件的結(jié)果數(shù)據(jù),系統(tǒng)數(shù)據(jù)庫包括用戶數(shù)據(jù)庫,客戶數(shù)據(jù)庫以及房間信息數(shù)據(jù)庫顯示結(jié)果系統(tǒng)數(shù)據(jù)庫系統(tǒng)顯示界面退房信息客戶用戶入住信息客戶用戶預(yù)訂房信息客戶用戶結(jié)算方式客戶用戶客戶結(jié)賬的方式,可以現(xiàn)金結(jié)算,銀行卡結(jié)算等客房預(yù)定時間核查信息酒店房間信息數(shù)據(jù)庫用戶對預(yù)訂房間客人入住前的房間的預(yù)訂入住時間是否到期的核對,包括已過期與為過期兩種結(jié)果數(shù)據(jù) 數(shù)據(jù)流圖:數(shù)據(jù)庫用戶設(shè)置修改信息刪除信息錄

5、入信息信息查詢結(jié)算金額預(yù)訂住房分配房間客戶用戶客戶二、 設(shè)計說明:設(shè)計的主要內(nèi)容:主要的內(nèi)容有用戶登陸界面,用戶管理界面,賓館信息數(shù)據(jù)庫,訂房,客房查詢及管理界面等。系統(tǒng)軟硬件環(huán)境:我們組用的都是windows7 64位的操作系統(tǒng),使用的數(shù)據(jù)庫是SQL Server2008,使用的編程軟件是MicroSoft Visual Studio 2010,使用的語言是C#,使用的做流程圖的工具是直接在Word里面畫圖。系統(tǒng)功能:系統(tǒng)的功能主要實現(xiàn)了實驗要求的功能,包括用戶登陸界面,客房管理,客房查詢,訂房管理以及客戶住房金額的計算。模塊劃分:主要分為了三個模塊,一個是管理員(即用戶的登陸),一個是客房

6、的管理,包括查房,訂房,還有一個就是客戶,包括客戶的入住,客戶結(jié)算等。具體可見下圖:客房客房號價格種類客房狀態(tài)訂單訂單號客戶編號結(jié)算金額押金到期時間手機號客戶姓名身份證號客房號預(yù)定時間用戶用戶名密碼詳細設(shè)計:1、首先建立一個賓館管理信息系統(tǒng)數(shù)據(jù)庫,數(shù)據(jù)庫要設(shè)計好各表之間的關(guān)系,并且通過優(yōu)化,使其滿足第三范式了。具體的有用戶表,客房表,客戶表以及訂房表。2、設(shè)計用戶(即賓館的管理員)登陸的界面,要能夠?qū)ζ渖矸葸M行驗證,我們需要在數(shù)據(jù)庫中添加上用戶表,表中含有用戶名、用戶密碼,在登陸界面中需要有一個用戶名和密碼的textbox,只有輸入合法的用戶名和密碼才能夠進入系統(tǒng),否則報錯。3、設(shè)計了管理界面

7、,主要是menutrip,其實際意義就是將各form結(jié)合在一起,可以在該界面的點擊跳轉(zhuǎn)到相對應(yīng)的界面。主要是通過觸發(fā)事件,實現(xiàn)相應(yīng)頁面的跳轉(zhuǎn)。4、客房查詢界面,通過單擊查詢按鈕,可直接將客房的信息顯示在datagridview里面,可很直觀的看見客房的具體信息。實現(xiàn)主要是通過entityframework將數(shù)據(jù)庫的數(shù)據(jù)加載進來,并通過調(diào)用賓館信息管理系統(tǒng)Entities,實現(xiàn)對數(shù)據(jù)的選擇,并通過虛擬的數(shù)據(jù)庫dataset,將數(shù)據(jù)在datagridview中顯示相關(guān)的信息。5、訂房信息,主要是實現(xiàn)對數(shù)據(jù)庫的更新,通過直接調(diào)用數(shù)據(jù)庫,打開數(shù)據(jù)庫,對數(shù)據(jù)庫進行連接。然后,將訂單號,押金,房號,客戶編

8、號,客戶姓名,住房天數(shù)這些信息,通過向textbox中寫入內(nèi)容,添加的數(shù)據(jù)庫,并對數(shù)據(jù)庫進行相關(guān)的更新。6、房間信息,主要也是datagridview的使用,通過點擊顯示觸發(fā)相應(yīng)的事件,在textbox中輸入空、訂或者住可查看這些房間的情況。7、客房結(jié)算,這個是將房號,種類,天數(shù),押金,客戶名,客戶編號等,直接將這些textbox屬性設(shè)為readonly,作為顯示具體信息的一個空格。通過在輸入訂單編號textbox中,查找數(shù)據(jù)庫中相應(yīng)的訂單編號,并將上面對應(yīng)的相關(guān)信息,通過數(shù)據(jù)庫中表的連接,通過賓館信息管理系統(tǒng)entities,將相關(guān)的客房,客戶及訂單的具體信息顯示出來,并進行住房的結(jié)算。8、

9、各種查詢的操作,包括模糊查詢和精確查詢。三、 源程序主要代碼:主界面:namespace 賓館管理信息系統(tǒng) private void Main_Load(object sender, EventArgs e) 賓館管理信息系統(tǒng)Entities2 entity = new 賓館管理信息系統(tǒng)Entities2(); var dj = from d in entity.客房 where d.種類 = "單間" select new 房號=d.房號 ,客房狀態(tài)=d.客房狀態(tài) ,價格=d.價格 ; dataGridViewDJ.DataSource = dj; var bj = fr

10、om d in entity.客房 where d.種類 = "標(biāo)準(zhǔn)" select new 房號 = d.房號, 客房狀態(tài) = d.客房狀態(tài), 價格 = d.價格 ; dataGridViewBJ.DataSource = bj; var sr = from d in entity.客房 where d.種類 = "三人" select new 房號 = d.房號, 客房狀態(tài) = d.客房狀態(tài), 價格 = d.價格 ; dataGridViewSR.DataSource = sr; var hh = from d in entity.客房 where

11、d.種類 = "豪華" select new 房號 = d.房號, 客房狀態(tài) = d.客房狀態(tài), 價格 = d.價格 ; dataGridViewHF.DataSource = hh; var zt = from d in entity.客房 where d.種類 = "總統(tǒng)" select new 房號 = d.房號, 客房狀態(tài) = d.客房狀態(tài), 價格 = d.價格 ; dataGridViewZT.DataSource = zt; 客戶登記:namespace 賓館管理信息系統(tǒng) 賓館管理信息系統(tǒng)Entities2 entity = new 賓館管理

12、信息系統(tǒng)Entities2(); 客戶 customer = new 客戶(); 客房 rooms = new 客房(); 訂房 book = new 訂房(); private void cobRoomType_SelectedIndexChanged(object sender, EventArgs e) List<string> kf = entity.客房.Where(c => c.種類 = cobRoomType .Text && c.客房狀態(tài) = "空").Select(c => c.房號).ToList(); switc

13、h (cobRoomType.SelectedIndex) case 0: cobRoomID.Items.Clear(); foreach (var dj in kf) cobRoomID.Items.Add(dj); break; case 1: cobRoomID.Items.Clear(); foreach (var bj in kf) cobRoomID.Items.Add(bj); break; case 2: cobRoomID.Items.Clear(); foreach (var sr in kf) cobRoomID.Items.Add(sr); break; case 3

14、: cobRoomID.Items.Clear(); foreach (var hh in kf) cobRoomID.Items.Add(hh); break; default : cobRoomID.Items.Clear(); foreach (var zt in kf) cobRoomID.Items.Add(zt); break; private void btnYes_Click(object sender, EventArgs e) string y = DateTime.Today.Year.ToString (); string m = DateTime.Today.Mont

15、h.ToString (); string d = DateTime.Today.Day.ToString (); var RoomNo = cobRoomID.Text; txtBookID.Text = y + m + d + '0' + RoomNo;/用日期和房間號,生成訂單號 var sex="" book.訂單號 = txtBookID.Text; if (txtCustomerID.Text.Length = 18) if (txtTel.Text.First() = '1' && txtTel.Text.Len

16、gth = 11) if (dateTimePicker1.Value < dateTimePicker2.Value) if (txtMoney .Text != "") if (RoomNo != "") if (txtName.Text != "") if (rdbFemale.Text !="" | rdbMale.Text != "") if (rdbMale.Checked) sex = "男" if (rdbFemale.Checked) sex = &q

17、uot;女" customer.性別 = sex; rooms.房號 = RoomNo; customer.房號 = RoomNo; customer.身份證號 = txtCustomerID.Text; book.身份證號 = txtCustomerID.Text; customer.電話號碼 = txtTel.Text; customer.預(yù)定時間 = DateTime.Parse(dateTimePicker1.Text); customer.到期時間 = DateTime.Parse(dateTimePicker2.Text); book.押金 = byte.Parse(tx

18、tMoney.Text); customer.客戶名 = txtName.Text; else MessageBox.Show("性別不能為空!請選擇!", "性別錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show("客戶名不能為空!請輸入客戶名!", "用戶名錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show("房號不能為空!

19、請選擇房號!", "房號錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show("押金不能為空!", "押金錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show("預(yù)定時間不能大于到期時間,請重新輸入!", "時間錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error); e

20、lse MessageBox.Show("輸入錯誤!手機號為1開頭11位數(shù)字,請重新輸入!", "手機號錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error); txtTel.Text = "" else MessageBox.Show("輸入錯誤!身份證號為18位,請重新輸入!", "身份證號錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error); txtCustomerID.Text = "&quo

21、t; book.備注 = richTextBox1.Text; entity.客戶.AddObject(customer); entity.SaveChanges(); entity.訂房.AddObject(book ); entity.SaveChanges(); 客房 Dj = entity.客房.Where(c => c.房號= cobRoomID.Text).Select(c => c).FirstOrDefault(); Dj.客房狀態(tài) = "訂" entity.SaveChanges(); MessageBox.Show("客戶信息登記成

22、功!", "客戶登記", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); this.Close(); private void btnClear_Click(object sender, EventArgs e) foreach (Control ctr in this.Controls) if (ctr is TextBox) ctr.Text = "" cobRoomType.Text = "" cobRoomID.Text = "" richTextB

23、ox1.Text = "" 換房:namespace 賓館管理信息系統(tǒng) 賓館管理信息系統(tǒng)Entities2 entity = new 賓館管理信息系統(tǒng)Entities2(); 客戶 customer = new 客戶(); 客房 rooms = new 客房(); private void button1_Click(object sender, EventArgs e) 客戶 cname = entity.客戶.Where(c => c.客戶名 = txtName.Text && c.房號 = cobRoomID.Text).Select(c =&g

24、t; c).FirstOrDefault(); if (cname !=null) 客戶 Cust = entity.客戶.Where(c => c.房號 = cobRoomID.Text).Select(c => c).FirstOrDefault(); Cust.房號 = cobNewRoomID.Text; entity.SaveChanges(); 客房 Old = entity.客房.Where(c => c.房號 = cobRoomID.Text).Select(c => c).FirstOrDefault(); Old.客房狀態(tài) = "空&quo

25、t; entity.SaveChanges(); 客房 New = entity.客房.Where(c => c.房號 = cobNewRoomID.Text).Select(c => c).FirstOrDefault(); New.客房狀態(tài) = "訂" entity.SaveChanges(); MessageBox.Show("換房成功!", "換房管理",MessageBoxButtons .OK ,MessageBoxIcon .Asterisk ); else MessageBox.Show("換房失

26、敗,您輸入的客戶名或房號有誤,請確定后重新輸入!","換房管理",MessageBoxButtons .OK ,MessageBoxIcon.Error ); private void cobRoomType_SelectedIndexChanged(object sender, EventArgs e) List<string> kf = entity.客房.Where(c => c.種類 = cobRoomType.Text && c.客房狀態(tài) = "訂").Select(c => c.房號).ToL

27、ist();/舊房間選擇 switch (cobRoomType.SelectedIndex) case 0: cobRoomID.Items.Clear(); foreach (var dj in kf) cobRoomID.Items.Add(dj); break; case 1: cobRoomID.Items.Clear(); foreach (var bj in kf) cobRoomID.Items.Add(bj); break; case 2: cobRoomID.Items.Clear(); foreach (var sr in kf) cobRoomID.Items.Add(

28、sr); break; case 3: cobRoomID.Items.Clear(); foreach (var hh in kf) cobRoomID.Items.Add(hh); break; default: cobRoomID.Items.Clear(); foreach (var zt in kf) cobRoomID.Items.Add(zt); break; private void cobNewRoomType_SelectedIndexChanged(object sender, EventArgs e) List<string> xf = entity.客房.

29、Where(c => c.種類 = cobNewRoomType.Text && c.客房狀態(tài) = "空").Select(c => c.房號).ToList();/新房間選擇 switch (cobNewRoomType.SelectedIndex) case 0: cobNewRoomID.Items.Clear(); foreach (var dj in xf) cobNewRoomID.Items.Add(dj); break; case 1: cobNewRoomID.Items.Clear(); foreach (var bj in

30、xf) cobNewRoomID.Items.Add(bj); break; case 2: cobNewRoomID.Items.Clear(); foreach (var sr in xf) cobNewRoomID.Items.Add(sr); break; case 3: cobNewRoomID.Items.Clear(); foreach (var hh in xf) cobNewRoomID.Items.Add(hh); break; default: cobNewRoomID.Items.Clear(); foreach (var zt in xf) cobNewRoomID.

31、Items.Add(zt); break; 預(yù)定查詢:賓館管理信息系統(tǒng)Entities2 entity = new 賓館管理信息系統(tǒng)Entities2(); private void textBox1_TextChanged(object sender, EventArgs e) var bid = from q in entity .View_FindBook where q.訂單號.Contains (textBox1.Text) select q; dataGridView1.DataSource = bid ; txtCustomerName.Text = "" t

32、extBox2.Text = "" dateTimePicker1.Text = "" private void textBox2_TextChanged(object sender, EventArgs e) var fh = from q in entity.View_FindBook where q.房號.Contains(textBox2.Text) select q; dataGridView1.DataSource = fh; textBox1.Text = "" txtCustomerName.Text = "

33、" dateTimePicker1.Text = "" private void txtCustomerName_TextChanged(object sender, EventArgs e) var name = from q in entity.View_FindBook where q.客戶名.Contains(txtCustomerName.Text) select q; dataGridView1.DataSource = name; textBox1.Text = "" textBox2.Text = "" da

34、teTimePicker1.Text = "" 退房:賓館管理信息系統(tǒng)Entities2 entity = new 賓館管理信息系統(tǒng)Entities2(); private void txtBookNo_TextChanged(object sender, EventArgs e) var info = (from b in entity.客戶 join c in entity.客房 on b.房號 equals c.房號 join d in entity.訂房 on b.身份證號 equals d.身份證號 where d.訂單號 = txtBookNo.Text sel

35、ect new c.房號,c.種類,c.價格,c.客房狀態(tài), b.身份證號,b.客戶名 ,b.性別 ,b.預(yù)定時間 ,b.到期時間 ,b.電話號碼 , d.訂單號 ,d.備注 ,d.押金 ).FirstOrDefault(); if (info!=null ) this.txtCustomerName.Text = info.客戶名; this.txtRoomID.Text = info.房號; this.txtRoomType.Text = info.種類; this.txtCustomerID.Text = info.身份證號; this.txtMoney.Text = info.押金.T

36、oString(); this.dateTimePicker1.Text = info.預(yù)定時間.ToString(); this.dateTimePicker2.Text = info.到期時間.ToString(); this.richTextBox1.Text = info.備注; else MessageBox.Show("無此訂單號,請確定后重新輸入!", "退房管理", MessageBoxButtons.OK, MessageBoxIcon.Error ); private void button1_Click(object sender,

37、 EventArgs e) var info = (from b in entity.客戶 join c in entity.客房 on b.房號 equals c.房號 join d in entity.訂房 on b.身份證號 equals d.身份證號 where d.訂單號 = txtBookNo.Text select new c.房號,c.種類,c.價格,c.客房狀態(tài), b.身份證號,b.客戶名 ,b.性別 ,b.預(yù)定時間 ,b.到期時間 ,b.電話號碼 , d.訂單號 ,d.備注 ,d.押金 ).FirstOrDefault(); int money; if (info.到期時間.Value = DateTime.Now) mone

溫馨提示

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

評論

0/150

提交評論