C#酒店管理系统课程设计设计论文.doc
江西工业贸易职业技术学院软件专业毕业设计(论 文)设计题目: 基于C#的酒店管理系统 指导教师: 班 级: 10级计科二班 学生姓名: 肖二辉 2013年6月 5 日郑州科技学院毕业论文课程设计开题报告学生姓名:肖二辉 10年级、专业:计算机可续与技术 指导教师:王玉萍论文题目:基于C#酒店管理系统的设计选题研究的意义:随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。传统的酒店管理方法,查询速度慢,管理困难,容易丢失数据,占用了大量的人员和物资,已经不适合现在的要求。为克服酒店管理的困难和查询的不便。采用计算机来管理酒店和住客的信息,大大提高了查询的速度,节约了人力和物力资源,达到了预期的要求。这样既不方便又容易发生错误,用计算机来管理可以非常容易的实现这些要求。因此开发一套简单、实用的中小型酒店客房管理信息系统是十分有必要的。虽然计算机管理并不是酒店管理走向成功的关键元素,但它可以最大限度地发挥准确、快捷、高效等作用,对酒店的服务管理提供强有力的支持。因此,采用全新的计算机网络和酒店管理系统,已成为提高酒店的管理效率、改善服务水准的手段之一。在某种意义上,酒店客房管理方面的信息化已成为现代化酒店的重要标志。论文的基本内容、拟解决的主要问题及创新点:基本内容:1. 用户登录模块2. 经理登陆模块(1) 用户管理模块(2) 财务管理模块3. 客房管理模块4. 餐饮管理模块5. 财务管理模块6. 修改密码模块拟解决的主要问题:1怎样使系统满足一般酒店在客房管理中所包括的各项功能?2怎样使系统能够轻松容易上手? 3. 从软件的角度怎样才能既很好的实现这个系统的功能又具有美观的软件界面?创新点:促进管理体质的改革和改进管理手段,加快信息的查询速度和准确性。进度安排:课程设计设计选题5月5月末;设计9月初;课程设计制作5月末六月初;主要参考文献(论文:作者题目刊名卷(期)页码;著作:作者书名出版社年份):1 陈明. 软件工程M.中央广播电视大学出版社,2012.年.2 瞿彭志 网络营销(第三版). 高等教育出版社,20011年. 4 王小科:Visual C# 2005 程序设计 自学手册,人民邮电出版社,2011年。 5 郑宇军:C#语言程序设计基础,清华大学出版社,2012年。 5 王利. 数据库基础与应用M. 中央广播电视大学出版社, 2011年指导教师意见:指导教师签名: 年 月 日 教研室主任签名: 年 月 日目录内容摘要1一前言1二系统的开发原理21基于C#技术的系统结构模型财务管理22访问数据库原理23本系统的数据库设计及结构34本系统访问数据库的原理5三系统的功能设计51系统的功能结构52系统的功能特点6四系统的详细设计81用户登录模块82经理登陆界面10(1) 单击用户管理弹出如下界面10(2) 单击客房收入统计弹出如下界面20(3) 单击订餐收入统计弹出如下接面253 服务员登陆界面26(1) 单击客房管理下拉菜单“客房登记”弹出如下界面27(2) 单击下拉菜单”退客房“弹出如下界面27 (3) 单击下拉菜单”餐饮预订“弹出如下界面29 (4) 单击下拉菜单”订餐查询“弹出如下界面31(5) 财务管理菜单与经理中的是一个模块。33(6) 修改密码与用户管理模块一样。33(7) 刷新更新房间信息。33(8) 退出。33五总结:33参考文献:33致谢34内容摘要本文论述到的酒店管理系统开发的背景、目标、意义和方法、并重点介绍了系统分析、数据库设计、系统概要设计、程序设计的全过程。本文所设计的系统是由Visual Studio2010和Microsoft公司的Access 2003数据库开发而成的。该系统较完整的完成了酒店管理的各种功能,它包括前台服务和后台管理两大功能模块。在实现了不同权限用户登陆,用户的注册、查询,客房信息的维护,客房类型的设置及个人密码的修改,酒店房务的管理,收费等基本功能的同时,还对酒店的营业状况进行有条件的查询,为酒店高层决策提供数据支持。酒店管理者只需略懂电脑知识就可以建议的操作该酒店管理系统。使用酒店管理系统进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、储蓄量大、寿命长、成本低等。关键词:Visual Studio2010 酒店 管理 Access 2003一前言在信息高度发达的今天,酒店业务涉及的各个工作环节已不再仅仅是传统的住宿、结算业务,而是更广、更全面的服务性行业代表。酒店宾馆作为一个服务性行业,从客房的营销即客人的预定开始,到入住登记直到最后退房结账,整个过程应该能够体现以宾客为中心,提供快捷方便服务,给宾客感受一种顾客至上的享受,提高管理水平,简化各种复杂操作,在最短时间内完成酒店业务规范操作,这样才能令旅客舒适难忘。因此,采用全新的计算机管理系统,将成为提高酒店的管理效率,改善服务水准的手段之一。系统从满足客户的需求角度出发,实现了酒店管理的基本流程。系统的主要功能包括宾客结帐、客房预订、营业查询、客户管理、系统设置等等。用户入住酒店的时候所要等待的时间就会大大的减少,操作员能够很方便的对用户信息的登记和对房间状态的的管理,从而实现了酒店管理系统高效、准确的特点现代化的酒店,提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理。酒店管理系统正是为此而设计的。优秀的酒店客房管理系统操作方便,灵活性好,系统安全性高,运行稳定。提供快捷方便服务,给宾客感受一种顾客至上的享受,提高管理水平,简化各种复杂操作,在最短时间内完成酒店业务操作,这样才能令旅客舒适难忘。二系统的开发原理1基于C#技术的系统结构模型财务管理经理功能模块客房管理模块服务员功能模块登录财务管理模块和户和jia用户管理模块修改密码模块财务管理模块餐饮管理模块 餐饮收入统计餐饮收入统计增、删、查、改客房收入统计餐饮收入统计餐饮预订订餐查询客房登记和退客房2访问数据库原理(1).ADO.NET访问数据库的原理与数据库相连,ADO.NET提供了如下3种方式:通过ODBC相连;通过OLEDB相连;直接与Access 2003相连。3种方式由于应用层次的差异,使得效率由低到高,独立性由高到低。对于相连数据库的数据处理,也有2种方式,即一种是通过DataSet来隔离异构的数据源,另一种是以流方式从数据源读取(DataReader方式)。传统的应用程序是通过先建立到数据库的连接,在程序的整个运行过程中维护连接的方式来设计的。ASP.NET采取了断开连接方式的数据结构。当浏览器向Web服务器请求网页时,服务器处理这个请求,并将所请求的网页发送给浏览器,然后连接就被断开,直到浏览器发出下一个请求。ADO.NET的另一个创新是引入了数据集(Dataset)。一个数据集是内存中提供数据关系图的高速缓冲区。数据集对数据源一无所知,它们可以由程序或通过从数据仓库中调入数据而被生成、填充。不论数据从何处获取,数据集都是通过使用同样的程序模板而被操作的,并且它使用相同的潜在的数据缓冲区。(2).数据库的分类 数据库按其储存数据的大小分为:大型数据库有:Oracle、Sybase、DB2、SQL Server;小型的数据库有:Access、MySQL、BD2等。在众多的数据库中,SQL Server是大数据库,也属于中型数据库,应用于中小型企业。SQL Server的分布式、复制、全文检索、DTS都可以满足中型的应用。SQL Server的数据储存在它本身的文件内,在安装目录下的DATA目录下,有和数据库同名的数据文件和日志文件组成。一般,在WINDOWS体系下,中小型的应用都使用SQL Servers。 此外,SQL Server支持存储、触发器、自定义函数等操作;安全性、并发控制能力、数据挖掘、联机操作等方面都是其他数据库无法超越的。因此面对这么多酒店信息及用户信息的管理,本系统采用的是Access 2003数据库访问3本系统的数据库设计及结构本数据库的名称:db2.mdf,共含6张表,结构如下:表名: kefangzhuangtai字段名字段类型说明Fangjianhao文本不允许为空leixing文本允许为空kefangweizhi文本允许为空chuangwei文本允许为空zhuangtai文本允许为空jiage文本不允许为空表名kefangleixing字段名字段类型说明leixing文本不允许为空chuangwei文本允许为空mianji文本允许为空jiawei文本允许为空表名kefangdengji字段名字段类型说明 表名: yingyeqingkuang字段名字段类型说明表名userinfo字段名字段类型说明4本系统访问数据库的原理把数据库的访问方式封装到一个类accesshelp类中,然后通过调用该类中访问数据库的方法accesshelp.conn访问数据库。在该类命名空间中添加using System.Data.Oledb;class accesshelp public static OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Directory.GetCurrentDirectory() + "datadb2.mdb"); 三系统的功能设计1系统的功能结构该酒店管理系统可以在Windows xp操作系统平台上运行,数据库服务器为Access 2003,开发工具采用的Microsoft Visual Studio C#程序设计。其工作流程为:用户登录通过权限判断,服务员只能查询客房、订房、退房及查询客户订房历史,经理进入管理模块进行员工录入、修改和删除的等操作。2系统的功能特点(1)操作简单、界面友好:完全控件式的板块布局,使得酒店管理工作更简便;许多选项包括酒店类别、来源部门等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。(2)即时可见:对酒店的处理(包括录入、修改、删除)将立即在经理页面的对应模块显示出来,达到"即时刷新、即时见效"的功能。用户管理酒店管理系统经理登入经理模块总流程图:酒店系统登入界面对员工的查询,修改用户信息,增加和删除人员,还有对密码的修改客房管理模块服务员模块 客房登记退房餐饮预订查询订餐餐饮管理模块客房收入统计财务管理模块餐饮收入统计修改密码模块 图2 系统功能总流程图酒店管理系统的数据流图: 经理 服务员 对员工信息增、删、查、改 预订,登记 酒店管理 订餐,收入统计 查看营业 情况,实体联系图:服务员 酒店管理酒店 经理管理经营 ID姓名身份类型 密码客户姓名省份证号入住日期所交押金房间号入住 服务(3)功能完善:包括常见酒店管理的各个方面:员工录入、查询、删除、修改、检索等各个方面,完整地实现了酒店更新的管理要求。(4)方便移植:针对不同的企业,只需要稍作修改就可以开发出适合本企业特点的酒店管理系统! 四系统的详细设计在整个系统中我主要是负责数据库、登入模块、用户管理模块等。系统的主要功能是通过几个功能模块来实现的。具体的设计过程如下:1用户登录模块主要用于用户的登录。用户权限分为经理和服务员。当用户输入用户名和密码并经过确认为正确后,才能进入酒店客房管理信息系统,并使其拥有相应的权限。如果不是用户,拒绝进入本系统。 private void button1_Click(object sender, EventArgs e) try string constr; constr = "select * from userinfo where userid='" + textBox1.Text + "'and userpsw='" + textBox2.Text + "'and usertype='" + comboBox1.Text + "'" OleDbDataAdapter adp = new OleDbDataAdapter(constr, accesshelp.conn); DataSet ds = new DataSet(); adp.Fill(ds, "userinfo"); if (ds.Tables"userinfo".Rows.Count > 0) Userinfo.userid = textBox1.Text; Userinfo.userpsw = textBox2.Text; Userinfo.username = ds.Tables"userinfo".Rows0.ItemArray1.ToString(); Userinfo.usertype = comboBox1.Text; /this.Hide(); /this.Visible = false; if (comboBox1 .Text ="管理员"|comboBox1 .Text ="经理") 经理 mf = new 经理(); ; mf.Show(); this.Hide(); else if(comboBox1 .Text ="服务员") 员工登陆 mmf = new 员工登陆(); mmf.Show(); this.Hide(); else MessageBox.Show("用户不存在,请重新输入"); textBox1.Text = null; textBox2.Clear(); textBox1.Focus(); catch (Exception ex) MessageBox.Show(ex.Message); private void button2_Click(object sender, EventArgs e) this.Close(); 2经理登陆界面经理登陆界面,经理负责管理用户模块,查看财务信息,以及营业额统计。(1) 单击用户管理弹出如下界面 1下面就是修改按钮弹出的模块和实现功能所使用的代码点击用户修改按钮之后,进入修改用户界面。在修改用户模块直接输入需要修改后的资料,再点击修改即可完成1、首先输入用户名、员工姓名和员工类型,三者有一个是空的则会弹出信息框“请正确填写”。2、用户名和员工姓名信息框必须和数据库的信息有一项是相同的,否则也是弹出信息框“请正确填写”。3、如果正确填写你再按确定就会弹出一个消息框用户“信息修改成功”。4、可以进行查询全部(刷新)!可以看用户管理模块数据信息里看到XX用户信息修改了!5、下面是修改用户界面的部分代码namespace 实训酒店管理 public partial class Modyfrom : Form public Modyfrom() InitializeComponent(); OleDbConnection conn = new OleDbConnection(accesshelp.Conn); OleDbCommand cmd; private void Modyfrom_Load(object sender, EventArgs e) listBox1.Items.Add(Userinfo.userid); listBox1.Items.Add(Userinfo.username ); listBox1.Items.Add(Userinfo.usertype); string typename = "经理", "服务员" ; for (int i = 0; i < typename.Length;i+ ) comboBox1.Items.Add(typenamei); comboBox1.SelectedIndex = 0; private void button1_Click(object sender, EventArgs e) DialogResult dr = MessageBox.Show("是否要修改此用户!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation); if (dr = DialogResult.Yes) try if (this.textBox1.Text = "" | this.textBox2.Text = "" | boBox1.Text = "")/若没有填满三行信息 MessageBox.Show("请正确输入信息"); else string modystr = "update userinfo set userid='" + textBox1.Text + "',username='" + textBox2.Text + "',usertype='" + comboBox1.SelectedItem.ToString() + "'where userid='" + Userinfo.userid + "'" cmd = new OleDbCommand(); cmd.CommandText = modystr; cmd.Connection = accesshelp.conn; accesshelp.conn.Open(); int count = cmd.ExecuteNonQuery(); if (count > 0) MessageBox.Show("修改成功!"); this.Close(); else MessageBox.Show("修改失败"); catch (Exception exx) MessageBox.Show(exx.Message); finally accesshelp.conn.Close(); else if (dr = DialogResult.No) /listBox1.Text = "" textBox1.Text = "" textBox2.Text = "" comboBox1.Text = "" textBox1.Focus(); 以上,用户修改模块的全部内容2下面就是添加按钮弹出的模块和实现功能所使用的代码这是点击添加后进去的添加用户的页面1、首先输入用户名、员工姓名和员工类型,三者有一个是空的则会弹出信息框“请正确填写”。2、按确定就会弹出一个消息框用户“XX已添加成功”。3、按确定以后用户“XX已添加成功”,可以进行查询全部(刷新)!可以看用户管理模块数据信息里看到XX用户出现了!4、以下是做添加用户用到的Button事件代码 private void button1_Click(object sender, EventArgs e) DialogResult dr = MessageBox.Show("是否添加此用户", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation); if (dr = DialogResult.Yes) try if (this.textBox1.Text = "" | this.textBox2.Text = "" | boBox1.Text = "")/若没有填满三行信息 MessageBox.Show("请正确输入信息"); else string modystr = "insert into userinfo(userid,userpsw,username,usertype)values(userid,userpsw,username,usertype)" cmd = new OleDbCommand(); cmd.CommandText = modystr; OleDbParameter par = new OleDbParameter4; par0 = new OleDbParameter("userid", textBox1.Text); par1 = new OleDbParameter("userpsw", textBox2.Text); par2 = new OleDbParameter("username", textBox3.Text); par3 = new OleDbParameter("usertype", comboBox1.Text); cmd.Parameters.Add(par0); cmd.Parameters.Add(par1); cmd.Parameters.Add(par2); cmd.Parameters.Add(par3); cmd.Connection = accesshelp.conn; accesshelp.conn.Open(); /dr = cmd.ExecuteReader(); int count = cmd.ExecuteNonQuery(); if (count > 0) MessageBox.Show("修改成功!"); / dr.Close(); this.Close(); else MessageBox.Show("修改失败"); catch (Exception exx) MessageBox.Show(exx.Message); finally accesshelp.conn.Close(); else if (dr = DialogResult.No) textBox1.Text = "" textBox2.Text = "" textBox3.Text = "" comboBox1.Text = "" textBox1.Focus(); 3下面就是删除按钮实现功能所使用的代码1、点击用户删除按钮之后就会弹出一个消息框。之后就会提示你“是否删除此用户”!2、按确定就会弹出一个消息框用户“XX已成功删除”。3、按确定以后用户“XX已成功删除”,可以进行查询全部(刷新)!可以看用户管理模块数据信息里看到XX用户已经没有了!4、需要用到的代码是: private void button4_Click(object sender, EventArgs e) try string deluser = dataGridView1.SelectedRows0.Cells0.Value.ToString(); DialogResult dr1 = MessageBox.Show("是否删除此用户!" + deluser, "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation); if (dr1 = DialogResult.Yes) String delstr = "delete from userinfo where userid='" + deluser + "'" cmd = new OleDbCommand(); cmd.CommandText = delstr; cmd.Connection = accesshelp.conn; accesshelp.conn.Open(); int count = cmd.ExecuteNonQuery(); if (count > 0) MessageBox.Show("删除成功!"); ds.Clear(); string constr = "select userid,username,usertype from userinfo " adp = new OleDbDataAdapter(constr, accesshelp.conn); adp.Fill(ds, "001"); dataGri