《客房管理系統(tǒng)》_第1頁
《客房管理系統(tǒng)》_第2頁
《客房管理系統(tǒng)》_第3頁
《客房管理系統(tǒng)》_第4頁
《客房管理系統(tǒng)》_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計(jì)課程名稱: SQL數(shù)據(jù)庫開發(fā) 課題名稱:客房管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)院 系: 計(jì)算機(jī)科學(xué)與工程學(xué)院 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班級(jí): 計(jì)科141 學(xué) 號(hào): 姓 名: 指導(dǎo)教師: 王劍 開課時(shí)間: 2016 至 2017 學(xué)年第 1 學(xué)期常熟理工學(xué)院計(jì)算機(jī)科學(xué)與工程學(xué)院 制學(xué)生姓名 考核成績 評(píng)語: 指導(dǎo)教師(簽名) 年 月 日說明:指導(dǎo)教師評(píng)分后,實(shí)訓(xùn)報(bào)告交院辦公室保存。目錄1. 課題簡介.12. 開發(fā)環(huán)境與技術(shù).13. 系統(tǒng)分析與設(shè)計(jì).13.1 功能模塊劃分.13.2 業(yè)務(wù)流程分析.23.3 數(shù)據(jù)庫設(shè)計(jì).64. 系統(tǒng)實(shí)現(xiàn).95. 總結(jié).34實(shí)訓(xùn)報(bào)告要求與排版字號(hào):1實(shí)訓(xùn)報(bào)告排版打印統(tǒng)一

2、用A4(21 X 29.7cm)格式。2標(biāo)題用小二號(hào)黑體加粗,正文用四號(hào)宋體。行距為固定值20磅。3頁面上邊距2.54cm,下邊距2.54 cm,左邊距3cm,右邊距2.2cm;4實(shí)訓(xùn)報(bào)告頁碼從正文頁面起計(jì)算。頁碼字號(hào),選用小四號(hào)粗黑體并居中。1. 課程簡介客房管理系統(tǒng)是一個(gè)基于ADO.NET技術(shù),面向小型酒店用來進(jìn)行客房日常管理的系統(tǒng)。該系統(tǒng)能夠?yàn)榫频旯芾碚邔?duì)酒店進(jìn)行較為簡單便捷的管理,能夠?qū)崿F(xiàn)顧客進(jìn)行客房的預(yù)訂等基本操作,對(duì)酒店各部門提供管理功能。為顧客提供一個(gè)良好的管理環(huán)境,為酒店贏得更多的利益。2. 開發(fā)環(huán)境與技術(shù)2.1 開發(fā)環(huán)境2.1.1 Microsoft Visual Studi

3、o 2015 Microsoft Visual Studio 2015是美國微軟公司的開發(fā)工具包系列產(chǎn)品。它是一個(gè)基于完整的開發(fā)工具集,包括了整個(gè)軟件生命周期中所需要的大部分工具,如UML工具、代碼管控工具、集成開發(fā)環(huán)境等。所寫的目標(biāo)代碼適用于微軟支持的所有平臺(tái)。2.1.2 SQL Server 2008相對(duì)于MySQL、Oracle、Sybase、DB2等關(guān)系數(shù)據(jù)庫,SQL Server性價(jià)比較高,能夠很好的和.NET集成,非常適合作為Windows應(yīng)用的后臺(tái)數(shù)據(jù)庫。且SQL Server 2008安全性強(qiáng)、操作方便、管理和開發(fā)易入手。融合了.NET框架主機(jī)、XML技術(shù)、通告服務(wù)、Web服務(wù)

4、等十個(gè)有關(guān)開發(fā)的重要特性。2.2 ADO.NET技術(shù)ADO.NET是一個(gè)COM組件庫,用于以往的Microsoft技術(shù)中的訪問數(shù)據(jù)。ADO.NET可讓開發(fā)人員以一致的方式存取資料來源,以及透過OLE DB和ODBC所公開的資料來源。資料公用的消費(fèi)者應(yīng)用稱程序可使用ADO.NET來連接這些資料來源,并且獲取、處理及更新其中所含的資料。3. 系統(tǒng)分析與設(shè)計(jì)3.1 功能模塊劃分圖1 功能模塊劃分3.2 業(yè)務(wù)流程分析圖2添加客房類型活動(dòng)圖圖3 修改客房類型活動(dòng)圖圖4 刪除客房類型活動(dòng)圖圖5 添加新客房活動(dòng)圖圖6 修改客房信息活動(dòng)圖圖7 刪除客房活動(dòng)圖圖8 訂房活動(dòng)圖圖9 退房活動(dòng)圖圖10 顯示全部經(jīng)營

5、記錄活動(dòng)圖圖11 根據(jù)類型和狀態(tài)查詢經(jīng)營記錄活動(dòng)圖圖12 顯示所有客戶信息活動(dòng)圖圖13 根據(jù)日期查詢客戶信息活動(dòng)圖圖14 根據(jù)客戶姓名或客房號(hào)查詢客戶信息活動(dòng)圖3.3 數(shù)據(jù)庫設(shè)計(jì)3.3.1 數(shù)據(jù)關(guān)系圖圖15 數(shù)據(jù)關(guān)系圖3.3.2 數(shù)據(jù)字典字段含義數(shù)據(jù)類型是否允許為空備注CidentityId客戶身份證號(hào)nvarchar(50)否主鍵Cname客戶名nvarchar(50)是Cphone客戶聯(lián)系方式varchar(50)是Caddress客戶聯(lián)系地址nvarchar(50)是表1 CustomersInfo字段含義數(shù)據(jù)類型是否允許為空備注BeginTime訂房時(shí)間datetime否主鍵EndTi

6、me退房時(shí)間datetime否RoomId客房編號(hào)int否主鍵TotalPrice總消費(fèi)money是CidentityId客戶身份證號(hào)nvarchar(50)否主鍵表2 History字段含義數(shù)據(jù)類型是否允許為空備注RcategoryId類型編號(hào)int否主鍵Name類型名稱nvarchar(50)否Area面積Float否Bednum床位數(shù)Int否Price單價(jià)Money否Aircondition空調(diào)Int否TV電視機(jī)Int否表3 RoomCategory字段含義數(shù)據(jù)類型是否允許為空備注RoomId客房編號(hào)Int否主鍵BeginTime訂房時(shí)間datetime否主鍵CidentityId客戶身

7、份證號(hào)nvarchar(50)否主鍵Remarks評(píng)論nvarchar(200)是表4 RoomOperation字段含義數(shù)據(jù)類型是否允許為空備注RoomId客房編號(hào)Int否主鍵RcategoryId類型編號(hào)Int否Rposition位置nvarchar(50)否Description描述nvarchar(50)是表5 RoomsInfo字段含義數(shù)據(jù)類型是否允許為空備注RoomId客房編號(hào)int否主鍵Status狀態(tài)Int是表6 RoomStatus字段含義數(shù)據(jù)類型是否允許為空備注UserId管理員編號(hào)int否主鍵Name管理員姓名nvarchar(50)否Password登錄密碼varcha

8、r(50)是Email郵箱nvarchar(50)是Address聯(lián)系地址nvarchar(50)是Telephone聯(lián)系方式varchar(50)是表7 UserInfo4. 系統(tǒng)實(shí)現(xiàn)4.1 管理員登錄圖16 管理員登錄界面登錄頁面的主要功能是查詢數(shù)據(jù)庫UserInfo表中是否存在正確的用戶名及密碼,若存存在則登錄成功并跳轉(zhuǎn)至管理主界面。關(guān)鍵代碼如下:/建立連接對(duì)象 SqlConnection myConn = new SqlConnection(); string cnString = ConfigurationManager.ConnectionStrings"RoomMana

9、geConnection".ToString(); myConn.ConnectionString = cnString; /建立命令對(duì)象 SqlCommand cmd = new SqlCommand(); cmd.Connection = myConn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "ValidateUser" /使用parameter對(duì)象處理存儲(chǔ)過程中所有參數(shù) SqlParameter p_uID = new SqlParameter("name&

10、quot;, SqlDbType.NVarChar, 50); SqlParameter p_num = new SqlParameter("pwd", SqlDbType.NVarChar, 50); SqlParameter p_flag = new SqlParameter("IsValid", SqlDbType.Int); cmd.Parameters.Add(p_uID); cmd.Parameters.Add(p_num); cmd.Parameters.Add(p_flag); p_uID.Value = TextBox1.Text; p

11、_num.Value = TextBox2.Text; p_flag.Direction = ParameterDirection.Output; /執(zhí)行存儲(chǔ)過程完成登錄 myConn.Open(); cmd.ExecuteNonQuery(); myConn.Close(); int r = Convert.ToInt32(cmd.Parameters"IsValid".Value); if (r = 1) Session"username" = TextBox1.Text; Response.Redirect("Welcome.aspx&q

12、uot;); else Response.Write("登錄失敗!"); 4.2 管理主界面圖17 管理主界面管理主界面的主要功能以四個(gè)超鏈接實(shí)現(xiàn)各個(gè)功能頁面的跳轉(zhuǎn)4.3 客房類型管理圖18 客房類型管理界面客房管理界面主要是實(shí)現(xiàn)對(duì)客房類型的增、刪、改、查功能,實(shí)現(xiàn)過程是對(duì)GridView進(jìn)行SqlDataSource的綁定并讓其自動(dòng)生成修改和刪除語句。前臺(tái)數(shù)據(jù)源關(guān)鍵代碼如下:<Columns> <asp:BoundField DataField="RcategoryId" HeaderText="客房編號(hào)" Rea

13、dOnly="True" SortExpression="RcategoryId" /> <asp:BoundField DataField="Name" HeaderText="客房名稱" SortExpression="Name" /> <asp:BoundField DataField="Area" HeaderText="面積" SortExpression="Area" /> <asp:Bo

14、undField DataField="Bednum" HeaderText="床位數(shù)" SortExpression="Bednum" /> <asp:BoundField DataField="Price" HeaderText="單價(jià)" SortExpression="Price" /> <asp:BoundField DataField="Aircondition" HeaderText="空調(diào)" Sor

15、tExpression="Aircondition" /> <asp:BoundField DataField="TV" HeaderText="電視機(jī)" SortExpression="TV" /> <asp:CommandField HeaderText="操作" ShowDeleteButton="True" ShowEditButton="True" /> </Columns><DeleteParam

16、eters> <asp:Parameter Name="original_RcategoryId" Type="Int32" /> <asp:Parameter Name="original_Name" Type="String" /> <asp:Parameter Name="original_Area" Type="Double" /> <asp:Parameter Name="original_Bednum&qu

17、ot; Type="Int32" /> <asp:Parameter Name="original_Price" Type="Decimal" /> <asp:Parameter Name="original_Aircondition" Type="Int32" /> <asp:Parameter Name="original_TV" Type="Int32" /> </DeleteParameters>

18、; <InsertParameters> <asp:Parameter Name="RcategoryId" Type="Int32" /> <asp:Parameter Name="Name" Type="String" /> <asp:Parameter Name="Area" Type="Double" /> <asp:Parameter Name="Bednum" Type="Int3

19、2" /> <asp:Parameter Name="Price" Type="Decimal" /> <asp:Parameter Name="Aircondition" Type="Int32" /> <asp:Parameter Name="TV" Type="Int32" /> </InsertParameters> <UpdateParameters> <asp:Parameter N

20、ame="Name" Type="String" /> <asp:Parameter Name="Area" Type="Double" /> <asp:Parameter Name="Bednum" Type="Int32" /> <asp:Parameter Name="Price" Type="Decimal" /> <asp:Parameter Name="Aircond

21、ition" Type="Int32" /> <asp:Parameter Name="TV" Type="Int32" /> <asp:Parameter Name="original_RcategoryId" Type="Int32" /> <asp:Parameter Name="original_Name" Type="String" /> <asp:Parameter Name="

22、;original_Area" Type="Double" /> <asp:Parameter Name="original_Bednum" Type="Int32" /> <asp:Parameter Name="original_Price" Type="Decimal" /> <asp:Parameter Name="original_Aircondition" Type="Int32" /> &l

23、t;asp:Parameter Name="original_TV" Type="Int32" /></UpdateParameters>添加客房類型關(guān)鍵代碼如下:/建立連接對(duì)象 SqlConnection myConn = new SqlConnection(); string cnString = ConfigurationManager.ConnectionStrings"RoomManageConnection".ToString(); myConn.ConnectionString = cnString;

24、/建立命令對(duì)象 SqlCommand cmd = new SqlCommand(); cmd.Connection = myConn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "InsertRoomCategory" /使用parameter對(duì)象處理存儲(chǔ)過程中所有參數(shù) SqlParameter p_num = new SqlParameter("Num", SqlDbType.Int); SqlParameter p_name = new SqlParameter(

25、"Name", SqlDbType.VarChar, 50); SqlParameter p_area = new SqlParameter("Area", SqlDbType.Float); SqlParameter p_bednum = new SqlParameter("BedNum", SqlDbType.Int); SqlParameter p_price = new SqlParameter("Price", SqlDbType.Money); SqlParameter p_aircondition =

26、 new SqlParameter("AirCondition", SqlDbType.Int); SqlParameter p_tv = new SqlParameter("TV", SqlDbType.Int); cmd.Parameters.Add(p_num); cmd.Parameters.Add(p_name); cmd.Parameters.Add(p_area); cmd.Parameters.Add(p_bednum); cmd.Parameters.Add(p_price); cmd.Parameters.Add(p_aircondi

27、tion); cmd.Parameters.Add(p_tv); p_num.Value = int.Parse(TextBox1.Text); p_name.Value = TextBox2.Text; p_area.Value = TextBox3.Text; p_bednum.Value = int.Parse(TextBox4.Text); p_price.Value = TextBox5.Text; p_aircondition.Value = int.Parse(TextBox6.Text); p_tv.Value = int.Parse(TextBox7.Text); /執(zhí)行存儲(chǔ)

28、過程完成添加類型 myConn.Open(); cmd.ExecuteNonQuery(); myConn.Close();4.4 客房信息管理圖19 客房信息管理界面客房管理界面主要是實(shí)現(xiàn)對(duì)客房信息的增、刪、改、查功能,實(shí)現(xiàn)過程是對(duì)GridView進(jìn)行SqlDataSource的綁定并讓其自動(dòng)生成修改和刪除語句。前臺(tái)數(shù)據(jù)源關(guān)鍵代碼如下:<Columns> <asp:BoundField DataField="RoomId" HeaderText="客房編號(hào)" ReadOnly="True" SortExpressi

29、on="RoomId" /> <asp:BoundField DataField="RcategoryId" HeaderText="類型編號(hào)" SortExpression="RcategoryId" /> <asp:BoundField DataField="Rposition" HeaderText="客房位置" SortExpression="Rposition" /> <asp:BoundField DataF

30、ield="Description" HeaderText="描述" SortExpression="Description" /> <asp:CommandField HeaderText="操作" ShowDeleteButton="True" ShowEditButton="True" /></Columns><DeleteParameters> <asp:Parameter Name="original_Roo

31、mId" Type="Int32" /> <asp:Parameter Name="original_RcategoryId" Type="Int32" /> <asp:Parameter Name="original_Rposition" Type="String" /> <asp:Parameter Name="original_Description" Type="String" /> </D

32、eleteParameters> <InsertParameters> <asp:Parameter Name="RoomId" Type="Int32" /> <asp:Parameter Name="RcategoryId" Type="Int32" /> <asp:Parameter Name="Rposition" Type="String" /> <asp:Parameter Name="Desc

33、ription" Type="String" /> </InsertParameters> <UpdateParameters> <asp:Parameter Name="RcategoryId" Type="Int32" /> <asp:Parameter Name="Rposition" Type="String" /> <asp:Parameter Name="Description" Type=&q

34、uot;String" /> <asp:Parameter Name="original_RoomId" Type="Int32" /> <asp:Parameter Name="original_RcategoryId" Type="Int32" /> <asp:Parameter Name="original_Rposition" Type="String" /> <asp:Parameter Name="

35、;original_Description" Type="String" /> </UpdateParameters>添加新客房關(guān)鍵代碼如下:/建立連接對(duì)象 SqlConnection myConn = new SqlConnection(); string cnString = ConfigurationManager.ConnectionStrings"RoomManageConnection".ToString(); myConn.ConnectionString = cnString; /建立命令對(duì)象 SqlComma

36、nd cmd = new SqlCommand(); cmd.Connection = myConn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "InsertRoom" /使用parameter對(duì)象處理存儲(chǔ)過程中所有參數(shù) SqlParameter p_rid = new SqlParameter("RoomId", SqlDbType.Int); SqlParameter p_rcid = new SqlParameter("RCategoryId&quo

37、t;, SqlDbType.Int); SqlParameter p_rp = new SqlParameter("RPosition", SqlDbType.NVarChar,50); SqlParameter p_des = new SqlParameter("Description", SqlDbType.NVarChar,50); cmd.Parameters.Add(p_rid); cmd.Parameters.Add(p_rcid); cmd.Parameters.Add(p_rp); cmd.Parameters.Add(p_des); p

38、_rid.Value = int.Parse(TextBox1.Text); p_rcid.Value = int.Parse(TextBox2.Text); p_rp.Value = TextBox3.Text; p_des.Value = TextBox4.Text; /執(zhí)行存儲(chǔ)過程完成添加新客房 myConn.Open(); cmd.ExecuteNonQuery(); myConn.Close();4.5 客房經(jīng)營管理圖20 客房經(jīng)營管理界面客房經(jīng)營管理界面主要實(shí)現(xiàn)的客戶訂房和退房以及按照房間類型和房間狀態(tài)對(duì)經(jīng)營記錄進(jìn)行查詢的功能。功能本質(zhì)是實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的查詢和修改。查詢的關(guān)鍵代碼如下

39、:string sqlcon = ConfigurationManager.ConnectionStrings"RoomManageConnection".ToString(); protected void Page_Load(object sender, EventArgs e) SqlConnection conn = new SqlConnection(); conn.ConnectionString = sqlcon; SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandType

40、 = CommandType.StoredProcedure; cmd.CommandText = "ShowRoomsInfo" SqlDataAdapter myAdapter = new SqlDataAdapter(); myAdapter.SelectCommand = cmd; conn.Open(); DataSet ds = new DataSet(); myAdapter.Fill(ds); conn.Close(); GridView1.DataSource = ds; GridView1.DataBind(); for (int i = 0; i &l

41、t; GridView1.Rows.Count; i+) if (GridView1.Rowsi.Cells6.Text = "1") GridView1.Rowsi.Cells6.Text = "可訂" else if (GridView1.Rowsi.Cells6.Text = "2") GridView1.Rowsi.Cells6.Text = "不可訂" if (!IsPostBack) SqlConnection mycon1 = new SqlConnection(); mycon1.Connectio

42、nString = sqlcon; SqlCommand cmd1 = new SqlCommand(); cmd1.Connection = mycon1; cmd1.CommandText = "select * from RoomCategory" SqlDataAdapter myAdapter1 = new SqlDataAdapter(); myAdapter1.SelectCommand = cmd1; mycon1.Open(); DataSet ds1 = new DataSet(); myAdapter1.Fill(ds1); mycon1.Close(

43、); DataRow foundRows1 = ds1.Tables0.Select(); int i = 0; foreach(DataRow foundRow in foundRows1) DropDownList1.Items.Add(foundRow1.ToString(); DropDownList1.Itemsi.Value = foundRow0.ToString(); i+; SqlConnection mycon2 = new SqlConnection(); mycon2.ConnectionString = sqlcon; SqlCommand cmd2 = new Sq

44、lCommand(); SqlDataAdapter myAdapter2 = new SqlDataAdapter(); cmd2.Connection = mycon2; cmd2.CommandText = "select distinct Status from RoomStatus" myAdapter2.SelectCommand = cmd2; mycon2.Open(); DataSet ds2 = new DataSet(); myAdapter2.Fill(ds2); mycon2.Close(); DataRow foundRows2 = ds2.Ta

45、bles0.Select(); foreach(DataRow foundRow in foundRows2) DropDownList2.Items.Add(foundRow0.ToString(); protected void Button1_Click(object sender, EventArgs e) SqlConnection myconn = new SqlConnection(); myconn.ConnectionString = sqlcon; SqlCommand cmd = new SqlCommand(); cmd.Connection = myconn; cmd

46、.CommandType = CommandType.StoredProcedure; cmd.CommandText = "ShowRoomByCatgAndStatus" SqlParameter p_RId = new SqlParameter("RCategoryId", SqlDbType.Int); SqlParameter p_sta = new SqlParameter("Status", SqlDbType.Int); cmd.Parameters.Add(p_RId); cmd.Parameters.Add(p_s

47、ta); p_RId.Value = int.Parse(DropDownList1.SelectedItem.Value); p_sta.Value = int.Parse(DropDownList2.SelectedItem.Value); SqlDataAdapter myAdapter = new SqlDataAdapter(); myAdapter.SelectCommand = cmd; myconn.Open(); DataSet ds = new DataSet(); myAdapter.Fill(ds); myconn.Close(); GridView1.DataSour

48、ce = ds; GridView1.DataBind(); for(int i = 0; i < GridView1.Rows.Count; i+) if (GridView1.Rowsi.Cells6.Text= "1") GridView1.Rowsi.Cells6.Text= "可訂" else if(GridView1.Rowsi.Cells6.Text= "2") GridView1.Rowsi.Cells6.Text = "不可訂" protected void GridView1_Select

49、edIndexChanged(object sender, EventArgs e) protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) Response.Redirect("RoomCheckOut.aspx?test=" + int.Parse(GridView1.Rowse.RowIndex.Cells0.Text.Trim(); protected void GridView1_RowCancelingEdit(object sender, GridViewCa

50、ncelEditEventArgs e) GridView1.EditIndex = -1; Bind(); protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) GridView1.EditIndex = e.NewEditIndex; Bind(); protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) SqlConnection mycon = new SqlConnection(); mycon.ConnectionString = sqlcon; SqlParameter p_RId = new SqlParameter("RoomId", SqlDbType.Int); string sqlstr = string.

溫馨提示

  • 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)論