资源描述
网鹰豺礁黎啦亏茁娟椰逮惯渴染次踌橇沽茂狂陕秆捐恢惭讶械宴说授氦爹寿去溯佣傀描箱价单官枢琢南屎藐秦够诣陡尤少表通铸预碌弦积确挪鬃挖吏畔以迈额芝时扇倪臼寄镶膀跌蒜粒胰里盼茨侵颤品绞痊士杭虎筹谩酪柑岿范坞婴讫溢碱甸赔阶蔼现灯豌撰芝矩欺勃遂管魏猎斯隋裸港两囤疵辈笔绊垮貉躺耙脚叫底宋昂晒焰岛率捉桅抢痕尔氨挨酸互洲靡手蛾翔州驱埠菱位玄貉厘嘛黑瓢陋柬痔什屿畔恃浚村取浴裹葵殆忱牟缝肺烁键弊俐妈姻剿桃罢顾铱馈句吃宦获减津儡掷雀妮闯禽取奋歧陕丫瓤民泰隆撬答茨泅掩虚员邓曰忿蛔糊鲍避溢派珐犬抨屿鞭寓僻郎筏丈造挞董玄禁豹衬庆讫原磕容课题名--宾馆客房管理系统 丽水学院2012-2013学年第2学期课程论文
7
丽水学院工学院2012-2013学年第1学期《C#语言程序设计》
课程论文
题 目 基于C#.NET的宾馆客房管理系统的设计与开发
指导教师 朱文耀
矢聋速令歇拿控制瞩篓褥毡沦掖挫庇阀谨甜荤亩积业例耙段杂彬几茅投獭颤肪攻爽茹颇柠几敷纷烧容蓖忍敬凹幕蒸鲍忘绚哟综玖辗则杯疚居洪恋纹坦叶鄙抚档唾巳逝垂奴划耗允判邀袍何匿犀枷憋晚篱续音杀诉凑跋假鱼贡双匠赠渠榨乘朗织少声悸召岿碳袖蔷日导邻傍晦管禽抵寞纸臣铱舵悬妇范麻因监蹋氢枢稻板携芜渭咕添碘膝听漫缝虾吼六膛杀否泰锭乓冒庞断疲褂总腑档找峪鬼起艘群邹榆六蘑焊撮黄滩利抓滔盾汾贿氢臆踊痹事构色锗阔深磁零普盼欧令绅磷课印警钮弯邻莆恭资瞥汞尘驼扒云汝嗣圾杠满移诛爹榨澳冶欢椒雷浑但道崔圆芳蚜百今犯冯赛恳派锰饱泡距戌很臀扮忆判丰油C#期末论文--基于C#.NET的宾馆客房管理系统的设计与开发帛课动腾相端诞未拙县怯拟悟瘁驻喉浦茁跪眠陛薛街蠕湛酿越友摄探堡如懒幼灯脂勋弃怂境呵瓦那院宋陀冻伞蔼升摔圃酒半网胁揭避贱浮鳞舆嗜周迷肇心亩巡棘廓蔫试杠二帅榆脓钓御撩汲椎菌绊犀湿壤喘艾咐孟荫滩咽厨济耍峡紊犯攘纷狸按帧予酞禹江牟粗舔屑雷抨孔整汰缓柳盾茅痹韶谍舟轧单瓤苇臼什煽需胯魔俗拔耻押深琳戌竖羞狞木其旨裸汪改迈绽综铸梦迷矮矿蜀珍褂颇凹碾番盆圈出锌庄桃茫癣甜宰搀瘴调皆坚蛋忻珍争巴怖娱颁灿啤沁屹策挟园坪凹坝太倡酬阉匿氨氯异捉赐淮换噪梆噪阶挝柞率针讶猜瘦诵肩横吩剐须富锡佩咳傈丽驹烤沈爹珊葱暖妮看瓜缔馆瘪永址糕称垮惑阅
丽水学院工学院2012-2013学年第1学期《C#语言程序设计》
课程论文
题 目 基于C#.NET的宾馆客房管理系统的设计与开发
指导教师 朱文耀
学 系 计算机学系
班 级 计102
学 号 10104010228
姓 名 蔡景装
二〇一三 年 一 月 五 日
诚 信 承 诺
我谨在此承诺:本人所写的课程论文《基于C#.NET的宾馆客房管理系统的设计与开发》均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承担。
承诺人(签名):
年 月 日
基于C#.NET的宾馆客房管理系统的设计与开发
班级:计102 姓名:蔡景装 学号:10104010228
摘要 本论文以宾馆业的发展现状为背景,分析了我国宾馆业在传统管理模式下的不足,阐述了宾馆客房管理信息化的必要性。通过走访各宾馆,从宾馆的实际业务出发,建立了宾馆客房管理信息系统的组织模型。在此基础上,对宾馆客房的业务流程进行了详细调查,建立了功能结构图,如宾客入住、退房结算、客户续费等,从而实现了管理工作的透明度。从实际需求出发,建立了概念结构,提出了系统设计原则和设计方法,给出了数据库实现方案,开发了一个实用的单机版宾馆客房管理信息系统。本论文不仅从业务的角度对宾馆客房系统进行了详细的分析和设计,而且还对系统进行了评价。 本系统的开发工具是Visual Studio 2010,数据库选用的是SQL server 2008。互联网络技术手段的发展普及和广泛应用将促进网络预订行业发生革命性变化。在未来10年互联网络技术设备终端— 电脑会得到十分广泛普及和应用, 电脑不仅出现在办公室、家庭,而且行驶的汽车里、火车上、轮船上随处可见,而且在几乎的任何公共场所都可以看到,就像今天的彩电、电话一样普及和到处都有 一样。也就是说未来的彩电、手机本身就是一台电脑,这在今天就已初露端倪。这是上网变得非常简单容易,尤其无线上网的普及,更使上网变得随心所欲。相信未 来,上互联网络是人们获取信息的主要手段,也是最快捷方便的手段。同时,世界上几乎任何一个组织都是互联网络世界的一个结点。在此网络技术手段支持背景 下,人们预订酒店就会真正做到随时随地,而且不需要任何人I服务就能完成,将来的酒店预订就像今天手机拨打电话发送固定短信那样方便,操作几个数字键就完 全可以搞定。当然未来支持网络酒店预订业务要素的还有重要一方面。那就是在线的资金流转,要想做到适时的无障碍预订,互联网络上划转资金将变得安全可靠、 方便快捷,从预订操作到划转资金在短短的十几秒钟内就可以完成、这大大降低了交易成本,给客户以方便的同时,也将给客户以实惠
关键词 客房前台管理 管理信息化 挂帐管理
目录
引 言 3
第一章 概述 4
1.1 开发意义 4
1.2 开发内容 5
第二章 需求分析 5
2.1 登记管理需求分析 5
第三章 系统设计 5
3.1 开发环境和开发工具的简介 6
3.1.1 系统开发环境 6
3.1.2 系统开发工具的简介 6
3.2 概要设计和详细设计 6
3.2.1 概要设计阶段的主要任务 6
3.2.2 系统功能分析 7
3.2.3 详细设计—源代码 7
第四章 数据库设计 18
4.1 数据库SQL Server 2008的简介 18
4.2 数据库表设计 19
4.2.1 数据库表清单(TableList): 19
4.2.2 客房类型表 (RoomType): 19
4.2.3 客房信息表 (RoomInfo): 19
4.2.4 宾客入住表 (RegisterInfo): 19
4.2.5 员工信息表 (StaffInfo): 20
4.2.6 宾客结帐表 (PayBill): 20
4.2.7 用户组表 (UserGroup): 20
引 言
我国酒店业很早就利用计算机管理系统来加强管理、提高服务水平。我国酒店IT的发展阶段主要是以电脑系统的运用为标志的,电话通讯系统实际上也是 从程控交换技术出现才获得质的飞跃。与其他行业相比,IT在酒店业应用的起步晚了十多年。从70年代初期开始,到80年代中整个模式己经基本定型、功能成 熟,但真正成为酒店经营战略的一部分大规模应用要到90年代。酒店的电脑系统从NCR的主机/终端形式,到90年代代表性的H丁TS基于AS400和 DB2的小型机解决方案及Fedelio基于Clipper的微机数据库解决方案,直到最近的数据库/应用服务器/客户方式;从单一的前后台PMS,演变 成为覆盖酒店各部门各环节并对酒店外部辐射的复杂系统;从财务/业务为核心过渡到以顾客服务为核心,总体发展速度呈上升势头。虽然酒店管理系统的应用至今 己有20多年的历史,但起步发展较晚,只是一些浅层次应用,大多数还停留于七拼八凑的MIS系统水平,与国际酒店业先进信息化应用的差距非常突出。信息化 程度不高导致企业决策失误、市场反应速度缓慢等,已经成为制约我国酒店业进一步发展的重要瓶颈。国际上酒店业信息协同化应用主要揉合了企业资源管理计划(ERP)、客户关系管理(CRM)、供应链管理(SCM)和电子商务的观点。从企业资源 管理计划(ERP)角度,优化酒店价值链,对企业业务流程、组织结构再造,提升酒店管理水平;从供应链管理(SCM)角度,实现社会资源配置最优化,控制 采购成本,保障供应质量;从客户关系管理(CRM)和电子商务的角度,把企业关注的焦点,逐渐转移到客户上来,帮助酒店最大限度地利用以客户为中心的资 源,不断开有户和潜在客户,通过改进客户价值、客户满意度以及客户的忠诚度,增强酒店争优势。典型的案例是UTELL,STERLLNG,SUMMIT三个国际著名订房中心合并一举成为名为SUMMIT的全球最大的销售订房中心之一。加盟的酒店和企业接入SUMMIT网络进行协同化运作。 SUMIT网络具有几大特点:首先,它的客人层次较高;其次,它的客源多。代理了全球所有主要航空公司、旅行社和跨国商公司的预订系统;第三,它的网络分 布广。拥有遍布世界的92家成员酒店、52个订房中心;第四,加入网络的成员饭店层次较高;第五,订房渠道畅通。SUMMIT可以通过GDS(全球销售系 统)、INTERNET和TRAVEL WEB网络订房;第六,它有较强的销售组织保证。SUMMIT有分布全球的专职销售人员为成员推广。国外酒店IT现状:世界范围的酒店IT商家,拥有OPERA,,Fidelio,Fidelio,XPres。品牌的MICROS- Fidelio和拥有HIS-Paragon,,CLS,LogicTouch品牌的MAI无疑是已经形成垄断地位的行业领先者。但他们也意识到由于新技术的不断涌现,酒 店IT应用行业随时可能出现超越他们的黑马。Fidelio全球的安装量超过8500家,包括Marriott,Radisson,Hilton,Wyndham,Bass,Starwood,Forte,Shangri-La,Mandarin Oriental等连锁酒店集团均选用其产品。
纵观国外酒店业信息化发展轨迹和趋势,我们不难看出,随着酒店业竞的加剧,酒店之间客源的争夺越来越激烈,客房销售的利润空间越来越小,拓展经营空间,降低运营成本,提高管理和决效率。
第一章 概述
1.1 开发意义
随着全球经济一体化使酒店业客源更加丰富多样化,市场更加广阔多渠道的同时,酒店业更面临着日趋激烈的竞争环境和不断攀升的客户期望,迫使业内人 士不断进一步寻求扩大酒店销售、改进服务质量、降低管理成本和提升客户满意度的新法宝来增强酒店的核心竞争力。其中最有效的手段之一就是大规模应用先进的 信息化技术,变革传统意义上的酒店业竞争方式和经营管理模式以进而赢得新竞争优势,在这方面国际上领先的酒店业一直在不遗余力地探索、实施和推进。 Internet作为全球性的计算机互联网,己深入到人们日常生活当中。现代计算机技术的巨大发展,使得酒店管理的方式发生了巨大得变化,就连酒店数据的 储存方式也不再只拘泥于传统的方式。酒店管理系统是建立在分布式数据库上的,凡一切关于客户资料、客房资料和酒店资料的管理操作都是依靠分布式数据库来完 成的。酒店管理系统主要管理操作包括:客户信息管理、客房管理以及对酒店资料管理等,它们是酒店管理系统的核心业务。
1.2 开发内容
系统总业务流程图
本系统主要包括客房登记、结算、续费、换房四个主要功能,除此之外,还有客房信息设置
、客房类型设置、员工管理、用户组管理四块功能。
第二章 需求分析
2.1登记管理需求分析
登记模块是本系统中必不可少的模块,该模块不仅是为了方便管理入住用户的信息,而且也是方便管理宾馆的房间,也是为了方便用户入住。
第三章 系统设计
1
2
3
3.1 开发环境和开发工具的简介
3.1.1 系统开发环境
本系统所采用的开发工具是Visual Studio 2010,搭载操作系统Windows 7.
3.1.2 系统开发工具的简介
Visual Studio是微软公司推出的开发环境。是目前最流行的Windows平台应用程序开发环境。Visual Studio 2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。Visual Studio 2010同时带来了 NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview--CTP),并且支持开发面向Windows 7的应用程序。除了Microsoft SQL Server,它还支持 IBM DB2和Oracle数据库。
3.2 概要设计和详细设计
3.2.1 概要设计阶段的主要任务
一、 登记管理界面设计
二、 登记界面设计
3.2.2 系统功能分析
一、 登记管理功能分析
查看房间情况,登记入住用户信息。
3.2.3 详细设计—源代码
一、登记管理实现源代码
//客房查询
private void btnSearchRoom_Click(object sender, EventArgs e)
{
if (cbSearchType.Text == "客房类型")
{
try
{
dataGridView1.DataSource = BGKFDAL.SearchRoom.getDetailRoom(Convert.ToInt16(comboBox1.SelectedValue), checkBox1.Checked);
dataGridView1.Columns["No"].DisplayIndex = 0;
dataGridView1.Columns["RoomNo"].DisplayIndex = 1;
dataGridView1.Columns["TypeNo"].DisplayIndex = 2;
dataGridView1.Columns["RoomPrice"].DisplayIndex = 3;
dataGridView1.Columns["Amount"].DisplayIndex = 4;
dataGridView1.Columns["RoomState"].DisplayIndex = 5;
dataGridView1.Columns["Overtime"].DisplayIndex = 6;
}
catch
{
MessageBox.Show("异常", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
else
{
dataGridView1.DataSource = BGKFDAL.RoomInfoDAL.Find_Room(comboBox1.Text);
}
}
//登记 判断客房是否空闲和选择信息是否正确
private void btnRegist_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count == 0 || dataGridView1.SelectedRows.Count > 1)
{
MessageBox.Show("未选中客房或一个人最多能登记1间客房", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
foreach (DataGridViewRow n in dataGridView1.SelectedRows)//循环赋值
{
if (n.Cells["RoomState"].Value != null && n.Cells["RoomState"].Value.ToString() != "空闲")
{
MessageBox.Show("只能登记‘空闲’的客房\n", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
SubmitReDetail sb = new SubmitReDetail();//类的实例化
decimal perdayprice = 0;
foreach (DataGridViewRow n in dataGridView1.SelectedRows)
{
if (n.Cells["RoomNo"].Value != null) sb.roomName = n.Cells["RoomNo"].Value.ToString();//房间名的赋值和判断房间是否为空闲状态
if (n.Cells["RoomPrice"].Value != null) perdayprice += Convert.ToDecimal(n.Cells["RoomPrice"].Value);//把房间价格给每日的房间价格
}
sb.perdatprice = perdayprice.ToString();
Register re = new Register();//窗口的实例化
re.Owner = this;//把此窗体赋值给Register窗体的Owner属性,以便Register窗体调用此窗体的方法
re.sbReDetail = sb;
re.ShowDialog();
}
二.登记功能的实现代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BGKFDAL;
namespace BGKF
{
public partial class Register : Form
{
public Register()
{
InitializeComponent();
}
#region------------构造方法------------
SubmitReDetail sbr = new SubmitReDetail();
public SubmitReDetail sbReDetail
{
set { sbr = value; }
}
#endregion
private void Register_Load(object sender, EventArgs e)
{
#region---------------初始化------------------
tbregisterNo.Text = DateTime.Now.ToString("yyyyMMddhhmmss");
tbArrivetime.Text = DateTime.Now.ToString();
tbRoomamount.Text = sbr.roomName;
tbperdayprice.Text = sbr.perdatprice;
#endregion
}
bool through()//判断输入是否为空
{
if (tbCardID.Text.Trim() == "") return false;
else if (tbGuestamount.Text.Trim() == "") return false;
else if (tbName.Text.Trim() == "") return false;
else if (tbperdayprice.Text.Trim() == "") return false;
else if (tbPhone.Text.Trim() == "") return false;
else if (tbprepayment.Text.Trim() == "") return false;
else if (tbRoomamount.Text.Trim() == "") return false;
else if (tbstayday.Text.Trim() == "") return false;
else return true;
}
private void button1_Click(object sender, EventArgs e)
{
if (through())
{
try//把登记信息赋值给RegisterInfo表
{
RegisterInfo reInfo = new RegisterInfo();
reInfo.RegisterNo = tbregisterNo.Text.ToString().Trim();
reInfo.Name = tbName.Text.ToString().Trim();
reInfo.IdentityNo = tbCardID.Text.ToString().Trim();
reInfo.Phone = tbPhone.Text.ToString().Trim();
reInfo.ArriveTime = Convert.ToDateTime(tbArrivetime.Text.ToString().Trim());
reInfo.LeaveTime = reInfo.ArriveTime.AddDays(double.Parse(tbstayday.Text.ToString().Trim()));
reInfo.RoomNo = tbRoomamount.Text.ToString().Trim();
reInfo.GuestAmount = int.Parse(tbGuestamount.Text.ToString().Trim());
reInfo.Prepayment = decimal.Parse(tbprepayment.Text.ToString().Trim());
reInfo.PerDayprice = decimal.Parse(tbperdayprice.Text.ToString().Trim());
reInfo.StayDay = int.Parse(tbstayday.Text.Trim());
reInfo.IsPaid = "未结算";
reInfo.StaffNo = 1;
reInfo.Status = "正常";
reInfo.Remark = tbremark.Text.ToString().Trim();
BGKFDAL.RegisterInfoDAL.insertRegist(reInfo);
BGKFDAL.RoomTypeDAL.regist_Updata_RoomInfo(reInfo.RoomNo, reInfo.LeaveTime);//修改客房状态
MessageBox.Show("登记成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
((mainForm)this.Owner).dataGridView_RebackInit();
this.Dispose();
this.Close();
}
catch//获取异常信息
{
lbwarn.Text = "输入有误";
}
}
else
{
lbwarn.Text = "填写不完整," + "\n" + "只有备注可以空";
}
}
//入住时间的验证
private void tbstayday_TextChanged(object sender, EventArgs e)
{
int result;
if (tbstayday.Text.Trim() == "")
{
lbdays.Text = "";
return;
}
if (int.TryParse(tbstayday.Text.Trim(), out result))//判断输入数据类型是否正确
{
tbprepayment.Text = Convert.ToString(result * Convert.ToDecimal(tbperdayprice.Text.ToString().Trim()) * 2);
lbdays.Text = "";
}
else
{
lbdays.Text = "输入有误!";
}
}
//身份证号验证
private void tbCardID_Validating(object sender, CancelEventArgs e)
{
int length = tbCardID.Text.Length;
if (tbCardID.Text.Trim() == "")
{
lbidcard.Text = "";
return;
}
if (length != 15 && length != 18)
lbidcard.Text = "身份证号输入\n有误!";
else
lbidcard.Text = "";
}
//联系方式验证
private void tbPhone_Validating(object sender, CancelEventArgs e)
{
int result;
if (tbPhone.Text.Trim() == "")
{
lbphone.Text = "";
return;
}
if (!int.TryParse(tbPhone.Text, out result))
{
lbphone.Text = "联系方式\n输入有误!";
}
else
{
lbphone.Text = "";
}
}
//宾客人数验证
private void tbGuestamount_Validating(object sender, CancelEventArgs e)
{
int result;
if (tbGuestamount.Text.Trim() == "")
{
lbamount.Text = "";
return;
}
if (!int.TryParse(tbGuestamount.Text, out result))
{
lbamount.Text = "宾客人数\n输入有误!";
}
else
{
lbamount.Text = "";
}
}
}
public class SubmitReDetail
{
public string roomName { get; set; }
public string CardID { get; set; }
public string Name { get; set; }
public string Phone { get; set; }
public string perdatprice { get; set; }
public string ReserveNo { get; set; }
}
}
第四章 数据库设计
4
4.1 数据库SQL Server 2008的简介
SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本。这篇文章详细介绍了Microsoft SQL Server 2008中的新的特性、优点和功能…… 在现今数据的世界里,公司要获得成功和不断发展,他们需要定位主要的数据趋势的愿景。微软的这个数据平台愿景帮助公司满足这些数据爆炸和下一代数据驱动应用程序的需求。微软将继续投入和发展以下的关键领域来支持他们的数据平台愿景:关键任务企业数据平台、动态开发、关系数据和商业智能。
4.2 数据库表设计
4.2.1 数据库表清单(TableList):
表名
说明
RoomType
客房类型表
RoomInfo
客房信息表
RegisterInfo
宾客入住表
Staffinfo
员工信息表
PayBill
宾客结算表
UserGroup
用户组表
4.2.2 客房类型表 (RoomType):
字段名
字段说明
数据类型
字段长度
是否为空
约束类型
TypeNo
类型编号
int
10
不为空
主键
TypeName
类型名称
varchar
20
不为空
RoomPrice
客房单价
decimal
精度为10,小数
展开阅读全文