數(shù)據(jù)庫課程設(shè)計-賓館客房管理系統(tǒng)C#_第1頁
數(shù)據(jù)庫課程設(shè)計-賓館客房管理系統(tǒng)C#_第2頁
數(shù)據(jù)庫課程設(shè)計-賓館客房管理系統(tǒng)C#_第3頁
數(shù)據(jù)庫課程設(shè)計-賓館客房管理系統(tǒng)C#_第4頁
數(shù)據(jù)庫課程設(shè)計-賓館客房管理系統(tǒng)C#_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

淮海工學院計算機工程學院課程設(shè)計報告設(shè)計名稱:數(shù)據(jù)庫原理及應(yīng)用課程設(shè)計姓名:薛思雨學號:511020825專業(yè)班級:D軟件101系院):東港學院設(shè)計時間:2012.12.23——2013.1.4設(shè)計地點:東港學院D2-308指導(dǎo)教師評語:簽名:年月日<<數(shù)據(jù)庫原理及應(yīng)用>>課程設(shè)計報告第26頁,共28頁課程設(shè)計題目:賓館客房管理系統(tǒng)1概述1.1課題背景隨著經(jīng)濟的發(fā)展,工作人士出差,節(jié)假日人們外出旅游,免不了要住賓館的,因此,各種星級的賓館都應(yīng)運而生。直至現(xiàn)在,賓館行業(yè)競爭越來越劇烈,賓館之間客源的爭奪也越來越激烈,所以,賓館使用有效的客房管理手段是尤為重要的,這樣能夠為酒店管理人員提供一個快速安全可靠的管理平臺??头繕I(yè)務(wù)涉及的各個工作環(huán)節(jié)已不再僅僅是傳統(tǒng)的住宿,結(jié)算業(yè)務(wù),而是更廣更全面的服務(wù)性行業(yè)的代表。賓館作為一個服務(wù)性行業(yè),從客人預(yù)定房間開始,到入住登記直至最后退房結(jié)賬,整個過程應(yīng)該是能體現(xiàn)以客人為中心,提高快捷方便的服務(wù),給客人感受一種顧客之上的享受,提高酒店的管理水平,簡化各種復(fù)雜操作,在最合理最短時間內(nèi)完成客房業(yè)務(wù)規(guī)范操作,這才能令客人方便快捷,增加客人回頭率。本系統(tǒng)要實現(xiàn)一個簡單快捷的賓館客房管理,主要是對客房的信息,客人的信息,客人訂房入住信息,以及收銀結(jié)賬的管理。為管理者提供迅速,高效的服務(wù),減免手工處理的繁瑣與誤差,及時準確地反映的工作經(jīng)營情況。1.2開發(fā)平臺系統(tǒng):Windows7開發(fā)工具:MicrosoftVisualStudio2008數(shù)據(jù)庫:MicrosoftSQLServer20052需求分析2.1功能模塊根據(jù)課題的具體要求,可以將賓館客房管理系統(tǒng)大體結(jié)構(gòu)圖示為如下(如圖1所示):圖圖SEQ圖\*ARABIC1功能模塊整個系統(tǒng)分4個模塊:通過不同角色登入系統(tǒng):經(jīng)理有以下模塊:客房類型管理:錄入房間類型,修改房間類型,刪除房間類型??头啃畔⒐芾恚轰浫敕块g信息,修改房間信息,查詢房間信息,刪除房間信息。員工管理:增加員工,查詢員工,修改員工信息,刪除員工。前臺有以下模塊:客房經(jīng)營管理:客房使用情況,客戶入住,退房結(jié)算??蛻粜畔⒉樵儯盒略鰰T,客戶入住記錄。2.2數(shù)據(jù)流圖頂層數(shù)據(jù)流圖:經(jīng)理經(jīng)理賓館客房管理系統(tǒng)前臺登錄返回信息登錄返回信息訂房退房登記信息結(jié)賬,歸還房卡圖圖SEQ圖\*ARABIC2頂層數(shù)據(jù)流圖核心數(shù)據(jù)流圖:圖圖SEQ圖\*ARABIC3核心數(shù)據(jù)流圖經(jīng)理管理數(shù)據(jù)流圖:圖圖SEQ圖\*ARABIC4經(jīng)理管理數(shù)據(jù)流圖數(shù)據(jù)字典根據(jù)系統(tǒng)功能模塊結(jié)構(gòu)圖及典型旅店客房管理系統(tǒng)的需求,總結(jié)出來如下的數(shù)據(jù)字典:數(shù)據(jù)項說明UseInfo(用戶信息表):記錄登入系統(tǒng)的用戶的身份,姓名和密碼。如下表所示。表SEQ表\*ARABIC1UserInfo表數(shù)據(jù)項名稱含義說明類型長度主鍵允許Nullrole登入系統(tǒng)的身份varchar10name用戶名char10pwd密碼varchar20RoomType(客房類型表):記錄客房類型。如下表所示。表SEQ表\*ARABIC2RoomType表數(shù)據(jù)項名稱含義說明類型長度主鍵允許NullRoomTypeName客房類型名稱varchar20√Area面積smallint2BedNum床位smallint2Price價格money8Phone電話bit1Television電視bit1Net寬帶bit1AirCondition空調(diào)bit1WashRoom淋浴間bit1Toilet衛(wèi)生間bit1Room(房間信息表):記錄房間信息。如下表所示。表SEQ表\*ARABIC3Room表數(shù)據(jù)項名稱含義說明類型長度主鍵允許NullRoomID房間編號char4√RoomTypeName客房類型名稱varchar20√RoomPosition房間位置varchar20√PeopleNum額定人數(shù)smallint2√BedNum床位smallint2√FactPeopleNum實際入住人數(shù)smallint2√Remark備注varchar50√Client(客人信息表):記錄客人的信息。如下表所示。表SEQ表\*ARABIC4Client表數(shù)據(jù)項名稱含義說明類型長度主鍵允許NullClientID客人ID號碼char9√ClientName客人姓名varchar10sex客人性別char2tel客人聯(lián)系方式char11SID客人身份證號char18ClientRecord(客人入住記錄表):記錄客人的入住記錄。如下表所示。表SEQ表\*ARABIC5ClientRecord表數(shù)據(jù)項名稱含義說明類型長度主鍵允許NullClientID客人ID號碼char9√ClientName客人姓名varchar10RoomID客房編號char4InDate客人入住時間datetime8CheckDate客人退房時間datetime8√TotalMoney客人結(jié)算金額money8√Remark備注varchar50√Employee(員工信息表):記錄員工信息。如下表所示。表SEQ表\*ARABIC6Employee表數(shù)據(jù)項名稱含義說明類型長度主鍵允許NullEmployeeName員工姓名varchar10√sex員工性別char2tel員工聯(lián)系方式char11addr員工住址varchar50Post員工職位varchar20SID員工身份證號char18數(shù)據(jù)流說明數(shù)據(jù)流說明如下表所示。表SEQ表\*ARABIC7數(shù)據(jù)流說明數(shù)據(jù)流名稱含義來源去向組成登陸用戶進入系統(tǒng)操作客房管理系統(tǒng)經(jīng)理端/前臺端用戶名+密碼查詢客人查詢客人資料客人信息表統(tǒng)計界面客人信息表查詢房號查詢房間信息客房信息表統(tǒng)計界面客房信息表查詢空房查詢住房狀態(tài)客房信息表統(tǒng)計界面客房信息表查詢?nèi)胱∮涗洸樵內(nèi)胱∮涗浛腿诵畔⒈斫y(tǒng)計界面客人信息表+客房信息表計算計算金額客房管理系統(tǒng)前臺端客房管理系統(tǒng)變更客房類型修改/刪除客房類型經(jīng)理端客房管理系統(tǒng)系統(tǒng)數(shù)據(jù)庫變更房間信息修改/刪除房間信息經(jīng)理端客房管理系統(tǒng)系統(tǒng)數(shù)據(jù)庫查詢員工查詢員工信息經(jīng)理端統(tǒng)計界面員工信息表變更員工修改/刪除員工信息經(jīng)理端客房管理系統(tǒng)系統(tǒng)數(shù)據(jù)庫統(tǒng)計統(tǒng)計住房信息系統(tǒng)數(shù)據(jù)庫統(tǒng)計界面系統(tǒng)數(shù)據(jù)庫數(shù)據(jù)存儲說明數(shù)據(jù)存儲說明如下表所示。表SEQ表\*ARABIC8數(shù)據(jù)存儲說明數(shù)據(jù)存儲名稱含義說明組成結(jié)構(gòu)客房類型表存放客房類型信息類型名稱+額定人數(shù)客房信息表存放客房當前狀態(tài)客房編號+實際人數(shù)客人信息表存放客人信息客人信息入住記錄表存放客房歷史的有關(guān)信息客人ID+房間ID+入住時間+結(jié)算時間+金額管理人員表存放管理員驗證信息用戶名+密碼員工信息表存放員工信息員工信息3系統(tǒng)設(shè)計3.1概要設(shè)計—E-R圖依據(jù)客房管理系統(tǒng)的實際情況,考慮了多方面的因素以后,確定系統(tǒng)的E-R圖,如圖所示:用戶實體屬性圖(如下圖所示)圖SEQ圖\*ARABIC5用戶實體屬性圖客戶實體屬性圖(如下圖所示)圖SEQ圖\*ARABIC6客戶實體屬性圖客房類型實體屬性圖(如下圖所示)圖SEQ圖\*ARABIC7客房類型實體屬性圖房間實體屬性圖(如下圖所示)圖SEQ圖\*ARABIC8房間實體屬性圖客人入住記錄實體屬性圖(如下圖所示)圖SEQ圖\*ARABIC9客人入住記錄實體屬性圖員工實體屬性圖(如下圖所示)圖SEQ圖\*ARABIC10員工實體屬性圖整體E-R圖(如下圖所示)圖SEQ圖\*ARABIC11整體E-R圖3.2邏輯設(shè)計—E-R圖實體轉(zhuǎn)換表/聯(lián)系轉(zhuǎn)換表用戶(身份,姓名,密碼)客房類型(類型名稱,面積,床位,價格,電話,電視,寬帶,空調(diào),衛(wèi)生間,淋浴間)房間信息(客房編號,客房類型,位置,額定人數(shù),床位,實際人數(shù),備注)客人信息(客人ID,姓名,性別,聯(lián)系方式,身份證號)入住記錄(客人ID,客人姓名,房間編號,入住時間,退房時間,金額,備注)員工信息(員工姓名,性別,聯(lián)系方式,住址,職位,身份證號)3.3將關(guān)系模型轉(zhuǎn)換成SQL中的表(1)用戶信息表圖SEQ圖\*ARABIC12用戶信息表(2)客房類型表圖SEQ圖\*ARABIC13客房類型表(3)房間信息表圖SEQ圖\*ARABIC14房間信息表(4)客人信息表圖SEQ圖\*ARABIC15客人信息表(5)入住記錄表圖SEQ圖\*ARABIC16入住記錄表(6)員工信息表圖SEQ圖\*ARABIC17員工信息表4系統(tǒng)實現(xiàn)關(guān)鍵代碼添加/修改功能:privatevoidbutton5_Click(objectsender,EventArgse){SqlConnectionmyconn=newSqlConnection(Connection.ConnString);if(textBox1.Text!=""&&textBox2.Text!=""&&textBox3.Text!=""&&textBox4.Text!=""){try{Regexregex1=newRegex("^\\d{1,4}$",RegexOptions.None);if((!regex1.IsMatch(textBox2.Text))||(!regex1.IsMatch(textBox3.Text))||(!regex1.IsMatch(textBox3.Text))){MessageBox.Show("輸入?yún)?shù)的格式有誤!","提示");panel1.Enabled=false;return;}myconn.Open();stringroomtypename=textBox1.Text;intarea=Int32.Parse(textBox2.Text);intbednum=Int32.Parse(textBox3.Text);floatprice=Convert.ToSingle(textBox4.Text);intno1=Convert.ToInt32(checkBox1.Checked);intno2=Convert.ToInt32(checkBox2.Checked);intno3=Convert.ToInt32(checkBox3.Checked);intno4=Convert.ToInt32(checkBox4.Checked);intno5=Convert.ToInt32(checkBox5.Checked);intno6=Convert.ToInt32(checkBox6.Checked);if(create==true){stringmysql0="select*fromRoomTypewhereRoomTypeName='"+roomtypename+"'";SqlCommandmycmd0=newSqlCommand(mysql0,myconn);SqlDataReadermyreader=mycmd0.ExecuteReader();if(myreader.Read()){MessageBox.Show("房間類型已經(jīng)存在!","提示");panel1.Enabled=false;myconn.Close();return;}myreader.Close();stringmysql="insertintoRoomTypevalues('"+roomtypename+"',"+area+","+bednum+","+price+","+no1+","+no2+","+no3+","+no4+","+no5+","+no6+")";SqlCommandmycmd=newSqlCommand(mysql,myconn);mycmd.ExecuteNonQuery();MessageBox.Show("添加成功!","提示");}else{stringmysql="updateRoomTypesetRoomTypeName='"+roomtypename+"',Area="+area+",BedNum="+bednum+",Price="+price+",Phone="+no1+",Television="+no2+",Net="+no3+",AirCondition="+no4+",WashRoom="+no5+",Toilet="+no6+"whereRoomTypeName='"+selroomtype+"'";SqlCommandmycmd=newSqlCommand(mysql,myconn);mycmd.ExecuteNonQuery();MessageBox.Show("修改成功!","提示");}UpdateListView();}catch(Exceptionmyex){MessageBox.Show(myex.ToString());}finally{myconn.Close();}}else{MessageBox.Show("請將信息填寫完整!","提示");}panel1.Enabled=false;}刪除功能:privatevoidbutton3_Click(objectsender,EventArgse){for(inti=0;i<listView1.Items.Count;i++){if(listView1.Items[i].Selected==true){SqlConnectionmyconn=newSqlConnection(Connection.ConnString);try{myconn.Open();stringmysql="deletefromRoomTypewhereRoomTypeName='"+listView1.Items[i].SubItems[0].Text+"'";SqlCommandmycmd=newSqlCommand(mysql,myconn);mycmd.ExecuteNonQuery();}catch(Exceptionmyex){MessageBox.Show(myex.ToString());}finally{myconn.Close();}}}MessageBox.Show("刪除成功!","提示");UpdateListView();}查詢功能(精確查詢和條件查詢)publicpartialclassRoomSearch:Form{publicRoomSearch(){InitializeComponent();}privatevoidUpdateListView(stringmysql){boolempty=true;listView1.Items.Clear();SqlConnectionmyconn=newSqlConnection(Connection.ConnString);myconn.Open();SqlCommandmycmd=newSqlCommand(mysql,myconn);SqlDataReadermyreader=mycmd.ExecuteReader(CommandBehavior.CloseConnection);try{while(myreader.Read()){empty=false;ListViewItemli=newListViewItem();li.SubItems.Clear();li.SubItems[0].Text=myreader["RoomID"].ToString();li.SubItems.Add(myreader["RoomTypeName"].ToString());li.SubItems.Add(myreader["RoomPosition"].ToString());li.SubItems.Add(myreader["PeopleNum"].ToString());li.SubItems.Add(myreader["FactPeopleNum"].ToString());li.SubItems.Add(myreader["Remark"].ToString());listView1.Items.Add(li);}if(empty){MessageBox.Show("沒有找到符合條件的房間!","提示");return;}}catch(Exceptionmyex){MessageBox.Show(myex.ToString());}finally{myreader.Close();}}privatevoidbutton6_Click(objectsender,EventArgse){this.Close();}privatevoidRoomSearch_FormClosed(objectsender,FormClosedEventArgse){listView1.Items.Clear();Forminitial=newInitialForm();initial.MdiParent=this.MdiParent;initial.WindowState=FormWindowState.Maximized;initial.Show();}privatevoidRoomSearch_Load(objectsender,EventArgse){SqlConnectionmyconn=newSqlConnection(Connection.ConnString);try{myconn.Open();stringmysql="selectRoomTypeNamefromRoomType";SqlCommandmycmd=newSqlCommand(mysql,myconn);SqlDataReadermyreader=mycmd.ExecuteReader();while(myreader.Read()){comboBox1.Items.Add(myreader["RoomTypeName"].ToString());}}catch(Exceptionmyex){MessageBox.Show(myex.ToString());}finally{myconn.Close();}}privatevoidbutton1_Click(objectsender,EventArgse){if(textBox1.Text==""&&comboBox1.Text==""&&comboBox2.Text==""&&comboBox3.Text==""&&comboBox4.Text==""&&textBox2.Text==""){MessageBox.Show("請至少添寫一項內(nèi)容!","提示");return;}boolfirst=false;stringmysql="select*fromRoomwhere";if(textBox1.Text!=""){mysql+="RoomID='"+textBox1.Text+"'";first=true;}else{if(comboBox1.Text!=""){if(first==false){mysql+="RoomTypeName='"+comboBox1.Text+"'";}else{mysql+="andRoomTypeName='"+comboBox1.Text+"'";}first=true;}if(comboBox2.Text!=""){if(first==false){mysql+="RoomPosition='"+comboBox2.Text+"'";}else{mysql+="andRoomPosition='"+comboBox2.Text+"'";}first=true;}if(comboBox3.Text!=""){if(first==false){mysql+="PeopleNum="+comboBox3.Text;}else{mysql+="andPeopleNum="+comboBox3.Text;}first=true;}if(comboBox4.Text!=""){if(first==false){mysql+="FactPeopleNum='"+comboBox4.Text+"'";}else{mysql+="andFactPeopleNum='"+comboBox4.Text+"'";}first=true;}if(textBox2.Text!=""){if(first==false){mysql+="Remark='"+textBox2.Text+"'";}else{mysql+="andRemark='"+textBox2.Text+"'";}first=true;}}UpdateListView(mysql);}privatevoidbutton2_Click(objectsender,EventArgse){stringmysql="select*fromRoomwhereFactPeopleNum=0";UpdateListView(mysql);}privatevoidbutton3_Click(objectsender,EventArgse){stringmysql="select*fromRoomwherePeopleNum>FactPeopleNum";UpdateListView(mysql);}privatevoidbutton4_Click(objectsender,EventArgse){textBox1.Clear();textBox2.Clear();comboBox1.Text="";comboBox2.Text="";comboBox3.Text="";comboBox4.Text="";listView1.Items.Clear();}privatevoidbutton5_Click(objectsender,EventArgse){stringroomid=null;boolisselected=false;if(listView1.Items.Count==0){MessageBox.Show("沒有記錄存在!","沒有記錄",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}for(inti=0;i<listView1.Items.Count;i++){if(listView1.Items[i].Selected==true){isselected=true;if(listView1.Items[i].SubItems[3].Text==listView1.Items[i].SubItems[4].Text){MessageBox.Show("房間已滿","無法入住");return;}roomid=listView1.Items[i].SubItems[0].Text;break;}}if(isselected==false){MessageBox.Show("請選擇一項","未選擇");return;}ClientBookInnewbook=newClientBookIn(roomid);newbook.ShowDialog();}}系統(tǒng)測試及用戶手冊5.1數(shù)據(jù)庫連接步驟(1)首先,在SQLServer2005中建好數(shù)據(jù)庫。(2)在VS2008中,【服務(wù)資源管理器】-【數(shù)據(jù)連接】-【添加連接】,如下圖所示。圖SEQ圖\*ARABIC18添加連接(3)選擇“MicrosoftSQLServer數(shù)據(jù)庫文件”,點擊【確定】,如下圖所示。圖SEQ圖\*ARABIC19數(shù)據(jù)源(4)點擊【瀏覽】,選擇建好的數(shù)據(jù)庫文件,如下圖所示。圖SEQ圖\*ARABIC20選擇數(shù)據(jù)庫文件(5)點擊,彈出消息框“測試連接成功”,如下圖所示。圖SEQ圖\*ARABIC21測試連接成功(6)點擊,查看數(shù)據(jù)庫文件的屬性,如下圖所示。圖SEQ圖\*ARABIC22高級屬性(7)在此項目中【添加新項】,選擇“C#代碼文件”,命名為“Connection.cs”,添加上圖圈出的語句,代碼如下??梢员徽麄€程序調(diào)用,方便使用。classConnection{publicstaticstringConnString{get{return"DataSource=.\\SQLEXPRESS;AttachDbFilename=E:\\sql\\data\\HotelManage1.mdf;IntegratedSecurity=True;ConnectTimeout=30;UserInstance=True";}}}5.2主要功能模塊和主界面的相關(guān)截圖(1)登陸界面,如下圖所示。圖SEQ圖\*ARABIC23登陸界面(2)選擇身份,輸入用戶名和對應(yīng)的密碼,登錄系統(tǒng)。前臺身份的主界面,如下圖所示。圖SEQ圖\*ARABIC24前臺身份登入的主界面(3)選擇“客房查詢”或者“客戶入住”,如下圖所示。圖SEQ圖\*ARABIC25客房查詢/客戶入?。?)輸入查詢條件,至少填寫一個查詢條件,如下圖所示。圖SEQ圖\*ARABIC26條件查詢房間信息(5)點擊【空房】/【未滿】,如下圖所示。圖SEQ圖\*ARABIC27查詢空房(6)選中某個房間,點擊【入住】,彈出“客戶入住”消息框,填入

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論