版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、分类号 编 号 华北水利水电学院 North China Institute of Water Conservancy and Hydroelectric Power 实 验 报 告课程 数据库课程设计 题目 宾馆管理信息系统 院 系 信息工程学院 专 业 计算机科学与技术(2011级) 小组成员1 杨小平 (201114018) 小组成员2 杨继波 (201114019) 指 导 教 师 白 娟 2014年 7 月 2 日华北水利水电学院 数据库课程设计 实验报告20132014学年 第 二 学期 2011 级 计算机科学与技术 专业小组成员1: 杨小平(201114018)分工:编码以及数
2、据库的建立 小组成员2: 杨继波(201114019)分工: 需求分析 一、 实验内容:题目:宾馆管理信息系统任务:入住或预订客房时,用户要对客户管理模块或预订管理模块进行核对审查,并进行登记;客户换房时,要对换房信息进行查询和更新;客户退房时,要进行结算,并对更新客房信息。 主要功能模块:(1)登录模块:对用户身份进行验证,只有合法用户才能进入系统;(2)系统管理模块:对系统用户进行管理,更改用户名、密码等;(3)客房管理模块:对客房信息的添加、修改和删除等;(4)入住管理模块:对客户入住信息的登记、查询等功能(5)订房管理模块:对客户订房信息的登记、查询等。(6)换房管理模块:对客户换房信
3、息的登记、查询等(7)宾馆结算模块:对已入住宾馆的顾客进行结算及对订房客户已交的押金进行结算。ER图:数据流字典:数据流名称来源去向说明用户登录用户输入的用户名与用户密码验证正确后,进入系统界面检索信息用户输入的欲查找信息系统的数据库,包括客户信息,客房信息等把数据库相关部分包括对房间信息的查找,客户信息的查找系统信息用户输入的本系统的信息数据库系统用户信息存储部分用户登录密码等信息内容客户信息用户输入的酒店客户信息数据库客户信息存储部分包括客户的身份信息,客户登记信息,客户类型信息,客户消费信息,客户账单等与客户有关的信息数据客房(房间)信息酒店住房的相关信息数据库酒店房间信息存储部分包括系
4、统最初设置的房间的基本信息,如使用状态,清洁状态,类型,房号,床位数等,以及客户提出的对客房的一些要求客户要求客户提出的对于酒店住房的相关要求信息用户由用户录入系统中查询结果显示界面,用户显示界面,用户经查询后得到的符合条件的结果数据,系统数据库包括用户数据库,客户数据库以及房间信息数据库显示结果系统数据库系统显示界面退房信息客户用户入住信息客户用户预订房信息客户用户结算方式客户用户客户结账的方式,可以现金结算,银行卡结算等客房预定时间核查信息酒店房间信息数据库用户对预订房间客人入住前的房间的预订入住时间是否到期的核对,包括已过期与为过期两种结果数据 数据流图:数据库用户设置修改信息删除信息录
5、入信息信息查询结算金额预订住房分配房间客户用户客户二、 设计说明:设计的主要内容:主要的内容有用户登陆界面,用户管理界面,宾馆信息数据库,订房,客房查询及管理界面等。系统软硬件环境:我们组用的都是windows7 64位的操作系统,使用的数据库是SQL Server2008,使用的编程软件是MicroSoft Visual Studio 2010,使用的语言是C#,使用的做流程图的工具是直接在Word里面画图。系统功能:系统的功能主要实现了实验要求的功能,包括用户登陆界面,客房管理,客房查询,订房管理以及客户住房金额的计算。模块划分:主要分为了三个模块,一个是管理员(即用户的登陆),一个是客房
6、的管理,包括查房,订房,还有一个就是客户,包括客户的入住,客户结算等。具体可见下图:客房客房号价格种类客房状态订单订单号客户编号结算金额押金到期时间手机号客户姓名身份证号客房号预定时间用户用户名密码详细设计:1、首先建立一个宾馆管理信息系统数据库,数据库要设计好各表之间的关系,并且通过优化,使其满足第三范式了。具体的有用户表,客房表,客户表以及订房表。2、设计用户(即宾馆的管理员)登陆的界面,要能够对其身份进行验证,我们需要在数据库中添加上用户表,表中含有用户名、用户密码,在登陆界面中需要有一个用户名和密码的textbox,只有输入合法的用户名和密码才能够进入系统,否则报错。3、设计了管理界面
7、,主要是menutrip,其实际意义就是将各form结合在一起,可以在该界面的点击跳转到相对应的界面。主要是通过触发事件,实现相应页面的跳转。4、客房查询界面,通过单击查询按钮,可直接将客房的信息显示在datagridview里面,可很直观的看见客房的具体信息。实现主要是通过entityframework将数据库的数据加载进来,并通过调用宾馆信息管理系统Entities,实现对数据的选择,并通过虚拟的数据库dataset,将数据在datagridview中显示相关的信息。5、订房信息,主要是实现对数据库的更新,通过直接调用数据库,打开数据库,对数据库进行连接。然后,将订单号,押金,房号,客户编
8、号,客户姓名,住房天数这些信息,通过向textbox中写入内容,添加的数据库,并对数据库进行相关的更新。6、房间信息,主要也是datagridview的使用,通过点击显示触发相应的事件,在textbox中输入空、订或者住可查看这些房间的情况。7、客房结算,这个是将房号,种类,天数,押金,客户名,客户编号等,直接将这些textbox属性设为readonly,作为显示具体信息的一个空格。通过在输入订单编号textbox中,查找数据库中相应的订单编号,并将上面对应的相关信息,通过数据库中表的连接,通过宾馆信息管理系统entities,将相关的客房,客户及订单的具体信息显示出来,并进行住房的结算。8、
9、各种查询的操作,包括模糊查询和精确查询。三、 源程序主要代码:主界面:namespace 宾馆管理信息系统 private void Main_Load(object sender, EventArgs e) 宾馆管理信息系统Entities2 entity = new 宾馆管理信息系统Entities2(); var dj = from d in entity.客房 where d.种类 = "单间" select new 房号=d.房号 ,客房状态=d.客房状态 ,价格=d.价格 ; dataGridViewDJ.DataSource = dj; var bj = fr
10、om d in entity.客房 where d.种类 = "标准" select new 房号 = d.房号, 客房状态 = d.客房状态, 价格 = d.价格 ; dataGridViewBJ.DataSource = bj; var sr = from d in entity.客房 where d.种类 = "三人" select new 房号 = d.房号, 客房状态 = d.客房状态, 价格 = d.价格 ; dataGridViewSR.DataSource = sr; var hh = from d in entity.客房 where
11、d.种类 = "豪华" select new 房号 = d.房号, 客房状态 = d.客房状态, 价格 = d.价格 ; dataGridViewHF.DataSource = hh; var zt = from d in entity.客房 where d.种类 = "总统" select new 房号 = d.房号, 客房状态 = d.客房状态, 价格 = d.价格 ; dataGridViewZT.DataSource = zt; 客户登记:namespace 宾馆管理信息系统 宾馆管理信息系统Entities2 entity = new 宾馆管理
12、信息系统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.客房状态 = "空").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.预定时间 = 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("预定时间不能大于到期时间,请重新输入!", "时间错误", MessageBoxButtons.OK, MessageBoxIcon.Error); e
20、lse MessageBox.Show("输入错误!手机号为1开头11位数字,请重新输入!", "手机号错误", 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.客房状态 = "订" 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 宾馆管理信息系统 宾馆管理信息系统Entities2 entity = new 宾馆管理信息系统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.客房状态 = "空&quo
25、t; entity.SaveChanges(); 客房 New = entity.客房.Where(c => c.房号 = cobNewRoomID.Text).Select(c => c).FirstOrDefault(); New.客房状态 = "订" 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.客房状态 = "订").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.客房状态 = "空").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; 预定查询:宾馆管理信息系统Entities2 entity = new 宾馆管理信息系统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 = "" 退房:宾馆管理信息系统Entities2 entity = new 宾馆管理信息系统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.客房状态, b.身份证号,b.客户名 ,b.性别 ,b.预定时间 ,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.预定时间.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.客房状态, b.身份证号,b.客户名 ,b.性别 ,b.预定时间 ,b.到期时间 ,b.电话号码 , d.订单号 ,d.备注 ,d.押金 ).FirstOrDefault(); int money; if (info.到期时间.Value = DateTime.Now) mone
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 实习生月度考核评分表模版
- 《中外名人故事》阅读测试
- 安全文明施工现场管理经验交流
- 初中生情绪调节心理活动课2025
- 新冠病毒疫情防控总结、企业复工复产方案
- 脑梗死患者的护理教育方法
- 设备维修合同与服务协议模板范例
- 本章复习与测试说课稿2025学年高中数学人教A版必修2-人教A版2007
- 家政服务合同范本及操作规范
- 手机软件测试用例设计规范
- 黑龙江省控制性详细规划编制规范
- 饮用水水质PH值安全控制检测标准
- 2026中考英语时文热点:跨学科融合阅读 练习(含解析)
- 骨科护理常规与护士专业素养提升
- 物业电工安全操作培训课件
- 机房精密空调更换施工方案
- (2025年)吉林事业单位考试真题附答案
- 2025年长春市轨道交通集团有限公司校园招聘笔试历年题库(693人)附答案解析
- 公安预审学课件
- 2025年江华县事业单位联考招聘考试历年真题附答案
- 风险评估与管理矩阵表全面分析版
评论
0/150
提交评论