ASP.NET宾馆管理系统的毕业设计论文.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流ASP.NET宾馆管理系统的毕业设计论文.精品文档.毕业设计(论文)中文摘要(题目):宾馆管理系统摘要:信息管理系统也就是我们说常说的MIS(Management Information System),I 在强调信息管理的现代社会中它变的越来越普及了、宾馆管理系统是一个典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面,利用计算机软硬件资源以及数据库的人-机系统,提供信息支持企业或组织的运行、管理和决策功能。对于数据库,计算机毕业论文要求建立起数据的一致性、完整性、安全性;而对于前端应用程序则要求应用程序功能完备、界面友好和容易掌握使用等特点。经过分析,我们使用MICROSOFT公司的VISUAL STUDIO 开发工具,利用其提供的各种面向对象的开发工具,尤其是数据库这一方面,利用SQL2000能方便而简约操纵数据库的智能化对象,在短时间内建立系统应用原则,然后,对初始原型系统进行需求迭代,不断修正和改进,直至得到满意的系统。最后经过测试,系统能正常运行,功能完善,性能较高。总得来说这个系统的开发是比较成功的。关键词: 计算机技术 信息化管理 C#语言 SQL Server2000 宾馆管理系统毕业设计(论文)外文摘要Title : Management System For HotelAbstract: I Information management system is what we often say that the MIS (Management Information System), I emphasized that information management in modern society it is becoming increasingly popular, and hotel management system is a typical information management system, which mainly includes background database establishment and maintenance of two front-end application development, the use of computer software and hardware resources, and database man - machine systems, business or organization to provide information to support the operation, management and decision-making capabilities. For the database, the computer graduation requirement to establish data consistency, integrity, security; the front-end application is required for the application functions, user-friendly and easy to master and so on. After analysis, we use the VISUAL STUDIO MICROSOFT development tools, the use of its various object-oriented development tools, especially in the database in this regard, the use SQL2000 easy and simple to manipulate intelligence database objects in a short time application of the principle of establishing the system, then, the initial prototype of the system needs to constantly revise and improve, until a satisfactory system.keywords: Computer Technology Information Management C# language SQL Server 2000 Management System For Hotel1. 引言32. 相关技术简介42.1 Microsoft Visual Studio 200542.2 SQL Server 200052.3 C#语言53. 系统需求分析54. 数据库的设计64.1 数据库概念结构设计64.2 数据库逻辑结构设计74.3 数据完整性设计74.4 存储过程和视图75. “宾馆管理系统”应用程序结构设计与功能实现75.1 功能模块设计75.2 用户界面设计78.参考文献79.附录(核心代码)71. 引言近年来,随着改革开放步伐的加快和中西方文化的交流与发展,我国人民生活水平显著提高,旅游业日益繁荣发展,伴随着消费的持续增长,宾馆行业已经成为现代社会中发展最快的行业之一。根据调查发现,只有大型的宾馆才有规范、合理的管理系统,大部分中小型宾馆都还是人工服务,因此,中小型宾馆要想在激烈的市场竞争中生存,就必须在经营管理、服务质量等方面提高管理意识,即建立一套合理、高效的管理系统。 应势而出的宾馆管理系统有着很好的应用性。一直以来人们都采用传统人工的方式管理账单,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了很多的困难,同时,也加大了管理者的工作量和工作难度。本系统很好的克服了这些缺点,并且有检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等优点。这些优点能够极大地提高宾馆管理的效率,该宾馆管理系统以Microsoft SQL Server 2000作为后台数据库,C# 语言为前台开发工具,运用自顶向下逐层分解的模块化结构设计思想、面向对象的设计方法,完成了宾馆管理系统的主要模块。现如今随着经济的不断发展,旅游出国等带来的宾馆市场营业量大大增加,如果设计一款专门为宾馆管理人员和宾馆员工查询本宾馆信息,以及各种查询、入住、核账、结算等的专业软件,将会大大减少宾馆内工作人员的 工作量并提高工作效率同时提升宾馆的营业额。因此,该系统的开发不仅解决了中小型宾馆管理复杂、不规范等问题,而且优化了管理流程,实现了宾馆管理工作的无纸化办公。2. 相关技术简介2.1 Microsoft Visual Studio 2005Microsoft Visual Studio .NET和.NET框架为开发人员提供了一套完整的解决方案。Visual Studio .NET提供了一个能够基于.NET框架来创建应用程序的开发环境,该开发环境提供了一些工具,这些工具可以简化Web应用程序和XML WebService的创建、部署和升级。用.NET开发环境所创建的Web应用程序和XML Web Service具有安全性、可伸缩性以及高可用性的特点。2.2 SQL Server 2000SQL Server 2000 支持关系数据库的结构化查询语言SQL,提供了一整套丰富的图形化管理工具和实用程序,使用这些工具和程序,可以设置和管理SQL Server 进行数据库管理和备份,并保证数据的安全和一致。SQL Server 数据库可伸缩性强,可用性强。2.3 C#语言 C#又读作 C Sharp,是由C/C+进化而来的新一代编程语言。C#是微软公司发布的一种面向对象的,运行于.NET framework 之上的高级程序设计语言。从表面上看来C#与java惊人的相似,它包括单一继承和界面,并且和Java拥有几乎相同的语法。但是C#与Java有着明显的不同,它与com是直接集成的,而且它是微软公司.NET windows网络框架的主角。C#拥有的独特特点如下:1.中间代码;2.命名空间中的声明; 3.基本的数据类型 4.两个基本类;5.参数传递;6. 与com集成;3. 系统需求分析宾馆管理系统的基本需求归纳如下:(1)客房类型管理应该提供有关客房类型情况的规范,如标准间和双人间的各自设置。(2)客房信息管理用来管理各个客房的信息和状况,包括房间位置、价格、额定人数和实际人数等。(3)客房查询是在客户入住之前根据客户的要求提供给客户的客房的情况。(4)客户查询主要是根据客户的号码来显示客户的住宿记录,以便用户管理和计算。(5)客户入住就是登记客户入住信息。(6)客户结算是客户付清住宿费用并注销房间。(7)系统帮助是用来提示工作人员怎么使用该宾馆管理系统的模块(8)登录设计要求工作人员正确输入ID 和密码且查询相对应之后才能登陆系统,同时设置不同的登录身份便于对系统的管理和保密工作。4. 数据库的设计4.1 数据库概念结构设计系统框架当中包含八个子项目,分别用来实现不同的功能。框架如下图所示:图4.1.1图 4.1.2 图4.1.3 由图4.1.1可知,此系统分为四个大模块。其中在4.1.2描述的是系统管理模块所包含的四个页面,图4.1.3当中描述的是数据维护模块当中所包含的两个页面,图4.1.4当中描述的是前台操作模块所包含的两个页面。图4.1.4根据要求和各模块的功能设计出宾馆管理系统的E-R图如下所示:图4.1.5 根据上图可知,在此系统当中一共存在四个实体,客房类型和客房两个实体之间的关系是“属于”,多个客房可以属于一个客房类型即客房类型和客房之间是1:N 的关系;客户和客房之间的关系是“选择”,一个客户可以订多个客房即客户和客房之间是1:N的关系;客户和客户记录之间的关系是“入住”,一个客户入住宾馆后可能有多条入住记录即客户和客户记录之间是1:N 的关系。4.2 数据库逻辑结构设计4.2.1 数据表设计表4.2.1.1客房类型表(roomtype)字段名类型字节数空值说明roomtypenameVarchar20房间类型名称areaSmallint2面积bednumsmallint2额定床数peoplenumsmallint2额定人数priceMoney8价格televisionBit1是否有电视phone Bit1是否有电话airconditionBit1是否有空调toiletbit1是否有卫生间roomtype表的主键是roomtypename字段,用来标识房间类型名称。其内容不能为空。 表4.2.1.2 客房表(room)字段名类型字节数空值说明roomidChar4房间号码roomtypenameVarchar20类型名称roompositionVarchar20房间楼层peoplenumSmallint2额定人数bednumchar11额定床数factpeoplenumSmallint2实际人数remarkVarchar20备注客房表(Room)表的主键是房间号码(roomid)且是标识列,用来唯一标识一个房间。房间类型名称(Roomtypename)是外键,对应客房类型表(roomtype)表中的房间类型名称(roomtypename)。表4.2.1.3客户表(client)字段名类型字节数空值说明clientidchar16客户编号clientnamevarchar20姓名sexVarchar2性别nativeplaceVarchar20籍贯客户表(client)的主键是客户编号(Clientid)。此表中显示的就是当客户入住时要登记的内容表4.2.1.4 客户记录表(clientrecord)字段名类型字节数空值说明clientidchar16客户编号clientnamevarchar20客户名称roomidchar4客房号码indatedatetime8入住日期checkdatedatetime8结算日期totamoneymoney8结算钱数客户记录表(Clientrecord)中的客户编号(clientid)、客户名称(roomid)都是外键。分别对应客户表中的clientid和客房表(room)中的roomid。表4.2.41.5用户表(usermanage)字段名类型字节数空值说明useridchar6用户编号usersortvarchar20用户分类passwordvarchar100用户密码此表当中userid是主键,当工作人员输入的password是正确的时候才能进入系统进行操作。4.2.2 关系模型图4.2.2.1图4.2.2.2图4.2.2.3图4.2.2.44.3 数据完整性设计设计好表的结构后,需要根据实际应用和操作规则为表指定一系列的约束和规则,从而达到保证数据完整性原则的目的。(1)主键约束、非空值约束在五个表的设计中已经规定了每个表的主键列、非空列,这些规定都是在实际应用环境中所必须的。比如在roomtype表中定义了客房类型名称:roomtypename为主键,则在表roomtype中roomtypename必须是唯一的。也就是说在这个宾馆管理系统当中不可能出现2个相同的客房类型名称,price不能为空是因为每一个类型的客房都有自己价格,这样方便后面的操作和查询。4.4 存储过程和视图(1)存储过程client_add,功能是当客户办理房间入住手续时,把相应的客房入住人数增加1。(2)存储过程client_delete,功能是当客户办理结算手续时,把相应的客房入住人数减1。(3)存储过程roomsearch,功能是进行模糊查询,根据输入的参数将数据库当中符合查询条件的客房全部查询出来。(4)视图view_clientrecord,功能是根据多张表形成一个视图,此视图包含三张表共九个字段,供程序调用查询使用。5. “宾馆管理系统”应用程序结构设计与功能实现设计该宾馆管理系统的应用程序结构,需要从该管理系统的用户需求下手,根据系统功能和实际应用流程设计科学、合理、舒适的程序流程和操作流程。5.1 功能模块设计功能模块设计是根据系统功能的需求,合理地将各类相关的功能分解成相对独立的功能模块。划分功能模块有利于提高系统开发效率,便于设计代码的维护和更新,并且是系统更加结构化。根据系统功能的要求,把程序分为客房类型管理、客房管理、客房查询、客户查询、客户入住、客户结算、用户管理、系统帮助8个页面。(1)客房类型管理页面。客房类型管理应该提供有关客房类型情况的规范,比如现数据库中存在的一等,二等,三等各种类型的客房其各自的设置比如是否有电视,是否有空调,是否有卫生间,是否有电视等。工作人员可以新建客房类型,删除客房类型,查找符合要求的客房,可以退出该页面。(2)客房管理页面。客房管理用来管理各个客房的信息和状况,包括房间类型,房间位置、价格、额定人数和实际人数等。工作人员可以通过该界面新建客房,删除客房记录,查找客房,退出该页面。(3)客房查询页面。客房查询是在客户入住之前根据客户的要求提供给客户的客房的情况。工作人员可以根据输入的查询条件查询相关的客房,可以查找到未注满的客房,可以查找到空房的记录,可以选择一个客房后进入入住界面,可以退出该页面。(4)客户查询页面。主要是根据客户的号码来显示客户的住宿记录,以便用户管理和计算。工作人员可以通过输入客户编号查找客户的入住记录,工作人员可以查找全部的客户记录,可以查找处于“在住”状态的客户记录,可以选定某个客户记录后进行结算操作,可以退出该页面。(5)客户入住页面。客户入住就是登记客户入住信息。该页面要求能输入并保存该入住客户的编号,客户的姓名,客户的性别,客户的籍贯,客户的入住日期同时记录其它一些信息。(6)客户结算页面。客户结算是客户付清住宿费用并注销房间。对于此页面的要求是能实现打折后的结算金额。(7)系统帮助页面。系统帮助是用来提示工作人员怎么使用该宾馆管理系统的页面。(8)用户管理页面。此页面当中要求如果是宾馆管理人员则具有修改所有人密码的权利;如果只是普通工作人员则只具有修改自己密码的权限。另外,除以上八个页面外,在登录系统时有登陆界面,登陆界面要求工作人员输入自己所属的分类,并且准确输入ID和密码后才能登陆系统。在这九个页面中,我主要负责登录页面,客户入住页面和客户结算页面,在下一节里面将对这三个页面做详细的介绍。5.2 用户界面设计(1) 系统登陆时的登录窗体(图5.2.1)图5.2.1图5.2.2当用户登录时,会首先出现登录窗口如上图所示,工作人员应该首先选择用户身份填写工作人员的工号(用户号码)以及用户密码。点击“确定”按钮后查询密码与用户号码是否对应,如果对应则弹出欢迎消息框;如果发生错误会提示“输入密码有误,请重新输入”对话框;如果点击“取消”按钮则清空界面上三个控件的内容等待重新输入;如果点击“退出系统”则退出该系统。(2) 客户记录查询窗口(图5.2.3)图5.2.3如图5.2.3所示为客户记录查询界面。这个界面可以查询某个客户的入住情况,可以查询所有入住客户的情况,可以查询当前在住的客户情况,当有客户需要结算时,系统对客户记录了具体的入住情况,所以结算时当点击某个客户时,会自动弹出应交的费用,如果宾馆有折扣,员工只需选择相应的折扣,系统会自动计算出打完折扣后的价格,即客户最后需要交的客房费用。当需要查询某个客户是只需在客户号后面的方框中输入相应的客户号后,点击“查找”按钮,如果有此客户的记录,则显示在界面上如图5.2.3所示,客户的具体情况将全部显示;如果没有相关记录,说明没有要查询的此人,则显示如图5.2.4所示的提示。当单击“全部”按钮时,显示的是所有客户的住宿信息,如图5.2.6所示。当单击“在住”按钮时,界面显示的是到现在为止还没有结算的客户住宿信息如图5.2.3所示。当选中某条没有结算的记录后单击“结算”按钮,则如图5.2.7所示,会显示应收客户的金额,还有相应的折扣,点击折扣一栏的下拉菜单,可以选择相应的折扣,最后系统会自动显示打过折扣后实收的金额。操作方便,无需员工亲自去计算。如果没有选中某条要结算的记录则显示如图5.2.5所示的提示,在图5.2.7当中工作人员可以进行打折计算。 如图5.2.4 图5.2.5图5.2.6图5.2.7(3) 客户入住登记窗口(图5.2.8)在主界面中选择客户入住标签后,弹出客户入住登记对话框,在这一对话框中需要填入以下各项客户的相关信息。如房间号,根据客户选择的房间的标准来填入相应的房间号码;顾客ID号有员工填入,并且记住该ID;填入客户的姓名,性别和籍贯,在性别后面的文本框里有一个下拉菜单,可以选择男或女;在籍贯文本框后面也有一个下拉菜单,可以选择相应的籍贯,如果没有相应的籍贯,可以自行填入;对于入住时间,系统会自动给出。如有备注信息,可在信息备注后面的文本框中填入相应的备注。当全部信息填完后,并且确认无误后,可以点击“保存”按钮,会弹出如图5.2.9所示的“已添加信息”的对话框,点击“确认”按钮后会弹出如图5.2.10所示的“客户添加成功”的对话框,此时,对于客户入住登记的信息已添加完成。 图5.2.8 图5.2.9 图5.2.10总结本毕业设计是一个新一代的宾馆管理系统,通过自学C#语言并且利用C#语言、SQL Server 2000数据库开发的。这个系统已经全部完成。但同时也存在一些不足的地方,比如整个系统是否可以添加更多功能,外观上是否可以再修饰修饰,整个系统的并发性如何,以及用户资料的保密性和安全性还没有考虑和研究。经过近几个月的设计、编码与测试,毕业设计基本完成。在此期间,教师的悉心指导、同学的热心帮助,使我获益非浅。同时我学到了更多新知识,也加深巩固了以前所学知识,无论理论上还是实践操作上。同时还让我知道了团队合作的精神是非常的重要,学会了互相帮助和配合。该系统还有许多不尽如人意的地方。但是从这个系统的开发中学到了很多东西。不光技术上,还有如何跟项目组成员沟通交流上。实践出真知,这次毕业设计把我以前所学的理论知识得以充分地运用,并加以巩固。理论与实践相结合,动手能力得以很大的提高。开发一个良好的系统需要丰富的知识,由于水平有限,系统功能不够完善,需更进一步的改善。致谢此次毕业设计和论文撰写过程中,得到了老师、各位同学和朋友的关心、指导和帮助。入学以来各位老师的辛勤工作和教诲使我能顺利地度过了这难忘的三年,使我在综合素质提高、专业理论知识学习和实践工作能力等各方面受益匪浅。在此,衷心地感谢我的指导老师给予了很大的帮助,他的悉心指导,认真的工作态度,丰富的知识、全面的指导,让我有了很大的进步,对我启发颇多,收获颇丰。边老师平日里工作繁多,但在我做毕业设计的每个阶段,项目框架设计的确定和修改,中期检查,后期详细设计等整个过程中都给予了我悉心的指导。除了边老师的专业水平外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。 其次要感谢和我一起作毕业设计的高欣欣和王宝忠同学,他们在这次毕业设计中勤奋工作,克服了许多困难来完成此次毕业设计。如果没有他们的努力工作,此次设计的完成将变得非常困难。感谢学校对我的培养,感谢三年来我的所有老师,没有您的耐心指导与教育,就没有我今天的成绩。感谢三年以来众多同学和朋友的帮助,大家一起在紧张的学习之余度过了许多愉快的时光。感谢父母多年以来的关爱!养育之恩,无以回报。8.参考文献1. 微软公司,数据库程序设计-SQL Server2000 数据库程序设计,高等教育出版社,2006年11月.2. 张奇,Visual C# 2005数据库项目案例导航,清华大学出版社,2007年10月3. (美)内格尔,C#高级编程,清华大学出版社,2008年4月.4. (美)Karli Watson Christian Nagel,c#经典入门(第三版),清华大学出版社,2005年3月.5. (英)夏普,visual c# 从入门到精通,清华大学出版社,2006年6月.6. (美)麦斯科,c#设计模式开发大师系列,中国电力出版社,2005年7月7. 邹建,中文版SQL Server2000管理与开发应用实例,人民邮电出版社,2005年8 月8. 陈明,数据库系统及应用 SQL Server 2000,清华大学出版社,2007年2月9. 莱恩工作室,Microsoft SQL Server2000技术内幕,北京大学出版社,2002年12月10. 龚波,SQL Server 2000教程,北京希望电子出版社,2002年7月9.附录(核心代码)用户登录:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Data.SqlClient;using System.Windows.Forms;namespace WindowsApplication1 public partial class login : Form private string str; private SqlCommand sqlcommand1; private SqlConnection sqlconnnection1; /private mainform mainform; private DataSet ds; private SqlDataAdapter mydata; public string name; private bool IsLoginOK = false; public login() InitializeComponent(); sqlcommand1 = new SqlCommand(); sqlconnnection1 = new SqlConnection(hotelmanage.connection.connstring); sqlcommand1.Connection = this.sqlconnnection1; sqlcommand1.CommandType = CommandType.Text; /mainform = new mainform(name); private void btncancle_Click(object sender, EventArgs e) boBox1.Text = this.txtuserid.Text = this.txtuserpwd.Text = "" boBox1.Focus(); private void btnok_Click(object sender, EventArgs e) str = string.Format("select password from usermanage where userid='0'", txtuserid.Text); sqlcommand1.CommandText = this.str; this.sqlcommand1.Connection.Open(); sqlcommand1.ExecuteNonQuery(); ds = new DataSet(); try mydata = new SqlDataAdapter(str, this.sqlConnection1.ConnectionString); mydata.SelectCommand = sqlcommand1; this.mydata.Fill(ds, "usermanage"); /this.name = boBox1.Text; catch MessageBox.Show("从数据库获取信息失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; if (this.txtuserpwd.Text = this.ds.Tables"usermanage" .Rows0"password".ToString().Trim() IsLoginOK = true; MessageBox.Show("欢迎光临宾馆管理系统", "Welcome!"); this.DialogResult = DialogResult.OK; else MessageBox.Show("输入密码有错,请出新输入!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error); this.txtuserpwd.Focus(); private void button1_Click(object sender, EventArgs e) Application.Exit(); private void login_Load(object sender, EventArgs e) comboBox1.SelectedIndex = 1; private void login_FormClosing(object sender, FormClosingEventArgs e) /if (!IsLoginOK) if (!IsLoginOK && MessageBox.Show("您确定要退出系统吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) = DialogResult.No) e.Cancel = true;客户入住:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Data.SqlClient;using System.Windows.Forms;namespace WindowsApplication1 public partial class clientbookin : Form private string roomid; private string selectstr; private SqlCommand sqlcommand1; private SqlConnection sqlconnection1; public clientbookin() this.sqlcommand1 = new SqlCommand(); this.sqlconnection1 = new SqlConnection(hotelmanage.connection.connstring); this.sqlcommand1.Connection = this.sqlconnection1; this.sqlcommand1.CommandType = CommandType.Text; InitializeComponent(); public clientbookin(string roomid) this.roomid = roomid; this.sqlcommand1 = new SqlCommand(); this.sqlconnection1 = new SqlConnection(hotelmanage.connection.connstring); this.sqlcommand1.Connection = this.sqlconnection1; this.sqlcommand1.CommandType = CommandType.Text; InitializeComponent(); public bool clientbookin_add(string clientid, string clientname, string roomid, DateTime indate, DateTime checkdate, double totamoney) this.selectstr = string.Format("insert into clientrecord values('0','1','2',3,4,5)", clientid, clientname, roomid, indate, checkdate, totamoney); this.sqlcommand1.CommandText = this.selectstr; try this.sqlcommand1.Connection.Open(); this.sqlcommand1.ExecuteNonQuery(); this.roompeoplenum_add(roomid);/调用roompeoplenum_add函数把入住人数加1 return true; catch (System.Exception e) MessageBox.Show(e.ToString(); this.