收藏 分销(赏)

Web课程设计酒店管理系统.doc

上传人:a199****6536 文档编号:9833497 上传时间:2025-04-10 格式:DOC 页数:49 大小:2.16MB 下载积分:12 金币
下载 相关 举报
Web课程设计酒店管理系统.doc_第1页
第1页 / 共49页
Web课程设计酒店管理系统.doc_第2页
第2页 / 共49页


点击查看更多>>
资源描述
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。 洛 阳 理 工 学 院 课 程 设 计 报 告 课程名称 Web程序设计课程设计 设计题目 酒店管理系统 专 业 计算机科学与技术 班 级 学 号 姓 名 完成日期 课 程 设 计 任 务 书 设计题目: 酒店管理系统 _________________________________________________________ 设计内容与要求: ( 1) 数据库设计要符合范式要求。 ( 2) 能对客户入住资料进行添加、 删除、 修改操作。 ( 3) 提供订单查询功能, 输入订单号, 能查找出订单的相关信息。能对订单进行添加、 删除、 修改操作。 ( 4) 用户权限控制, 服务员能对订单和客户资料进行修改, 管理员用户修改登录密码。 指导教师: 年月 日 课 程 设 计 评 语 成绩: 指导教师: 年 月 日 目 录 第1章 需求分析 1 1.1 需求分析 1 1.2 可行性分析 1 1.2.1经济可行性分析 1 1.2.1技术可行性分析 1 第2章 数据库设计 2 2.1 数据库概念结构设计 2 2.1.1 实体关系图 2 2.1.2 系统总体E-R图 3 2.2 数据表设计 4 2.2.1 数据库表设计 4 第3章 概要设计 6 3.1 系统架构设计 6 3.2 系统功能设计 6 3.2.1 系统功能模块 6 3.2.2 系统处理流程 7 第4章 详细设计与实现 8 4.1 系统首页 8 4.2 酒店日常管理界面 10 4.3 预订房间界面 10 4.4 订单查询界面 12 4.5 大堂入住界面 16 4.6 结账退房界面 17 4.7 系统管理员登陆界面 22 第5章 总结 24 第1章 需求分析 1.1 需求分析 酒店管理系统是我们常说的MIS( Management Information System管理信息系统) 的一种, 在强调管理, 强调信息的现代社会中它越来越得到普及, 酒店管理系统的主要目标是实现对酒店内部各种管理的电子化合自动化, 提高酒店的办公效率, 为高质量的酒店管理提供服务, 提供保证。 在酒店业竞争越来越激烈的今天, 努力在市场竞争中脱颖而出, 已经成为每位酒店经营者所追求的的目标。酒店如何才能提高服务质量, 其管理力显得越来越重要。由于使用了先进的数据管理技术, 酒店管理系统对提高酒店的管理能力将会起到比较重大的作用。整个系统的基本设计目标是实现系统界面友好美观、 简单易用、 功能全面并有较高的安全性。 本系统需要实现酒店常见的房间预订、 入住记录查询、 房间管理等功能, 并帮助酒店建立客户数据库和入住记录数据库, 能够方便的进行查询, 并在系统的易用性和安全性两方面进行相应的完善。该系统有以下特点: 功能强大: 该软件以中小型酒店为应用对象, 结合中小型酒店客房当前和未来发展的管理需求提供实用先进的客房管理模式, 提高酒店客房管理的效益。 用户界面操作简洁: 系统的每个功能充分考虑到使用人员计算机知识较少的特点, 软件系统由各种具体的功能模块组成, 全部使用业务人员最熟悉的业务流程、 提示用语和操作方式, 即使不熟悉此软件的人也能熟练使用本软件完成业务处理。 系统性能稳定: 严格按照规范的软件工程管理, 充分利用面向对象技术, 采用sql为后台数据库。从技术上和应用广泛性上保证了系统的稳定性、 广泛性和先进性。 1.2 可行性分析 1.2.1经济可行性分析 模拟酒店管理系统的开发从长远的角度来看, 投资能够完全收回, 并能够节省管理费用, 避免了人工填单操作所带来的一系列不必要的麻烦, 节省了用户和相关工作人员的时间, 能够很好地提高工作效率, 改进决策质量。同时也对酒店的灵活管理有了很大的提升, 有利于提高酒店的运营和服务效率, 其开发前景良好并能产生很好的经济和社会效益。 1.2.1技术可行性分析 本系统采用ASP.NET开发技术及SQL SERVER 开发平台, 该系统是数据库应用程序, 数据项之间的关系虽然很复杂, 可是都能够很清楚的用关系数据库模式表示出来, 采用数据库的操作没有难度。就规模来说, 酒店管理系统应属于小型数据库应用程序, 在课程设计期间能够完成从系统需求分析到系统测试的所有工作, 不存在开发时间限制的问题。由于酒店管理系统不属于大的数据库系统而且没有严格的实时性要求, 只要普通系统配置就可运行。对于酒店管理系统的开发就没有特殊的要求。 第2章 数据库设计 2.1 数据库概念结构设计 2.1.1 实体关系图 经过需求分析能够得出数据库之间的实体关系图如下: 图 2-1 客户实体关系图 图 2-2 订单实体关系图 图 2-3 入住记录实体关系图 图 2-4 管理员实体关系图 图 2-5 服务员实体关系图 2.1.2 系统总体E-R图 图 2-6 系统总体E-R图 2.2 数据表设计 2.2.1 数据库表设计 表2-1 客户表 序号 列名 数据类型 长度 备注说明 1 客户标识 nchar 10 主键 2 姓名 nchar 20 NOT NULL 3 性别 nchar 2 NOT NULL 4 证件 nchar 20 NOT NULL 表2-2 房间表 序号 列名 数据类型 长度 备注说明 1 房间号 nchar 10 主键 2 房间类别 nchar 10 NOT NULL 3 房间位置 nchar 50 4 房间描述 nchar 100 5 备注 nchar 50 表2-3 入住记录表表 序号 列名 数据类型 长度 备注说明 1 入主流水号 nchar 10 主键 2 房间号 nchar 10 NOT NULL 3 客户标识 nchar 10 外键 4 入住人姓名 nchar 20 NOT NULL 5 入住人证件 nchar 20 NOT NULL 6 入住时间 Datetime NOT NULL 7 退房时间 Datetime 8 消费 nchar 10 9 押金 nchar 10 表2-4 管理员表 序号 列名 数据类型 长度 备注说明 1 姓名 Char 9 主键 2 性别 Varchar 10 NOT NULL 3 工号 Varchar 16 NOT NULL 4 密码 Varchar 100 表2-5 服务员表 序号 列名 数据类型 长度 备注说明 1 姓名 Char 9 主键 2 性别 Varchar 10 NOT NULL 3 工号 Varchar 16 NOT NULL 4 密码 Varchar 100 第3章 概要设计 3.1 系统架构设计 B/S模式(Browse/Server浏览器/服务器)模式是在C/S模式发展到一定阶段的产物, 它以Web技术为基础, 将传统C/S模式中的服务器部分细分为数据库服务器和Web服务器, 从而变成3层结构。 B/S架构是Intranet上的一个典型的分布式信息系统。B/S模式的优点主要是:(1)用户的操作使用简单, B/S模式的客户端只须安装一个提供友好界面的通用浏览器, 如Internet Explorer等, 不需要对客户进行额外培训; (2) B/S结构具有可伸缩性, 在网络环境允许的条件下, 能够尽可能多地增加浏览器和服务器, 不受原有网络资源的影响; (3)易于开发、 安装和维护, B/S结构只需对服务器端的应用平台进行开发和集成, 减少了开发、 安装和维护费用。 以当前的技术看, 局域网建立B/S结构的网络应用, 并经过工Internet/Intranet模式下数据库应用, 相对易于把握, 成本也是较低的。它是一次性到位的开发, 能实现不同的人员, 从不同的地点, 以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库; 它能有效地保护数据平台和管理访问权限, 服务器数据库也很安全。 本系统采用ASP. NET构造程序框架, 数据库采用SQL Server 为数据库 3.2 系统功能设计 3.2.1 系统功能模块 本系统包括系统管理和酒店管理两个部分, 其功能如下: ( 1) 系统管理: 修改管理员登录密码, 修改管理密码; ( 2) 酒店管理: 预订房间, 订单查询, 大堂入住, 退房。如图3-1所示: 图 3-1 系统功能结构图 3.2.2 系统处理流程 用户使用本系统时, 根据不同的身份使用不同的功能, 客户使用时无需登录, 可直接进行房间预订和订单查询, 管理人员须登录后才能使用各项管理功能。系统处理流程如图3-2所示。 图 3-2 系统流程图 第4章 详细设计与实现 4.1 系统首页 系统首页设置为登陆页,用户权限不同,操作数据库的权限也不同,管理员登陆成功后能进入到sysadmin.aspx界面进行修改密码权限, 服务员登陆后能进入到service.aspx界面, 进行酒店的日常管理。如图4-1所示: 图 4-1 系统流程图 关键后台代码: protected void Button1_Click(object sender, EventArgs e) { string sf = DropDownList1.SelectedValue.ToString(); string strcon, strsql, msg; strcon = ConfigurationManager.ConnectionStrings["HotelConnectionString"].ConnectionString; if (sf == "管理员") strsql = "select * from 管理员 where 工号 = '" + txtName.Text.Trim() + "' and 密码 = '" + txtPwd.Text.Trim() + "' "; else strsql = "select * from 服务员 where 工号 = '" + txtName.Text.Trim() + "' and 密码 = '" + txtPwd.Text.Trim() + "' "; SqlConnection con = new SqlConnection(strcon); DataTable dt = new DataTable();//创立一个数据表dt SqlDataAdapter Cmd = new SqlDataAdapter(strsql, con); msg = "yes"; try { Cmd.Fill(dt); //执行命令 } catch (Exception ex) { //如果try出错, 则捕获错误 msg = "no" +ex.Message.ToString().Trim(); } finally { con.Close(); } if (msg == "yes") { if (dt.Rows.Count > 0) { if (sf == "管理员") { Session["admin"] = txtName.Text.Trim();//将用户名记入session Session["pwd"] = txtPwd.Text.Trim(); Response.Redirect("sysadmin.aspx"); } else { Session["service"] = txtName.Text.Trim(); Session["pwd"] = txtPwd.Text.Trim(); Response.Redirect("service.aspx"); } } else { ScriptManager.RegisterStartupScript(this, this.GetType(), "click", "<script>alert('用户名或密码错误! ');</script>", false); } } else { ScriptManager.RegisterStartupScript(this, this.GetType(), "click", "<script>alert('数据库连接或访问失败! ');</script>", false); } } 4.2 酒店日常管理界面 在服务员登陆后进入到service.aspx页面, 这个页面放了4个Linkbutton连接4个界面分别对应酒店日常管理的四个基本功能: 预订房间、 订单查询、 大堂入住、 结账退房。界面如图4-2所示 图 4-2 系统流程图 4.3 预订房间界面 在service.aspx界面点击预订房间进入房间预订界面, 这个界面使用Command对象实现对数据库表dbo.订单的插入操作。预定界面如图4-3所示 图 4-3 系统流程图 关键后台代码: protected void Page_Load(object sender, EventArgs e) { Label1.Text = Session["service"].ToString(); } protected void Buttonok1_Click(object sender, EventArgs e) { string msg; string sqlconnstr = ConfigurationManager.ConnectionStrings["HotelConnectionString"].ConnectionString; SqlConnection sqlconn = new SqlConnection(sqlconnstr); //建立Command对象 SqlCommand sqlcommand = new SqlCommand(); sqlcommand.Connection = sqlconn; //把SQL语句赋给Command对象 sqlcommand.CommandText = "insert into 订单(订单号,预定时间,入住时间,房间类型,房间数,房间号,入住人,联系人,联系电话) values (@订单号,@预定时间,@入住时间,@房间类型,@房间数,@房间号,@入住人,@联系人,@联系电话)"; sqlcommand.Parameters.AddWithValue("@订单号",TextBox1.Text); sqlcommand.Parameters.AddWithValue("@预定时间",TextBox2.Text); sqlcommand.Parameters.AddWithValue("@入住时间",TextBox3.Text); sqlcommand.Parameters.AddWithValue("@房间类型",TextBox4.Text); sqlcommand.Parameters.AddWithValue("@房间数",TextBox5.Text); sqlcommand.Parameters.AddWithValue("@房间号",TextBox6.Text); sqlcommand.Parameters.AddWithValue("@入住人",TextBox7.Text); sqlcommand.Parameters.AddWithValue("@联系人",TextBox8.Text); sqlcommand.Parameters.AddWithValue("@联系电话",TextBox9.Text); try { sqlconn.Open();//打开连接 sqlcommand.ExecuteNonQuery();//执行命令 msg = "添加成功"; } catch (Exception ex) { //如果try出错, 则捕获错误 msg = "添加失败"+ex.Message.ToString().Trim(); } finally { sqlconn.Close(); } ScriptManager.RegisterStartupScript(this, this.GetType(), "click", "<script>alert('" + msg + "');</script>", false); } protected void Buttoncancel_Click(object sender, EventArgs e) { TextBox1.Text = ""; TextBox2.Text = ""; TextBox3.Text = ""; TextBox4.Text = ""; TextBox5.Text = ""; TextBox6.Text = ""; TextBox7.Text = ""; } 4.4 订单查询界面 订单查询界面使用了一个GridView控件使用数据绑定的方式实现输入订单号来查询订单, 并在使用设置控件的CommandField类型来实现服务员对订单的修改和删除操作。订单查询界面如图4-4所示: 图4-4 订单查询界面 关键后台代码: protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) bindgrid(); Label1.Text = Session["service"].ToString(); } void bindgrid() {//刷新gridview的数据 string strcon, strsql, msg; DataTable dt = new DataTable(); strcon = ConfigurationManager.ConnectionStrings["HotelConnectionString"].ConnectionString; strsql = "select * from 订单 order by 订单号 "; SqlConnection con = new SqlConnection(strcon);//定义新的数据连接控件并初始化 SqlDataAdapter cmd = new SqlDataAdapter(strsql, con); msg = "成功"; try { con.Open();//打开连接 cmd.Fill(dt); //填充数据集 } catch (Exception ex) { //如果try出错, 则捕获错误 msg = "数据访问出错";// +ex.Message.ToString().Trim(); } finally { con.Close(); } if (msg == "成功") { GridView1.DataSource = dt; GridView1.DataBind(); } else ScriptManager.RegisterStartupScript(this, this.GetType(), "click", "<script>alert('" + msg + "');</script>", false); } protected void TextBox1_TextChanged(object sender, EventArgs e) { } protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; bindgrid(); } protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; bindgrid(); } protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { string strcon, strsql, msg; strcon = ConfigurationManager.ConnectionStrings["HotelConnectionString"].ConnectionString; strsql = "delete from 订单 where 订单号='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'"; SqlConnection con = new SqlConnection(strcon);//定义新的数据连接控件并初始化 SqlCommand com = new SqlCommand(strsql, con); msg = "删除成功"; try { con.Open();//打开连接 com.ExecuteNonQuery();//执行命令 } catch (Exception ex) { //如果try出错, 则捕获错误 msg = "删除失败";// +ex.Message.ToString().Trim(); } finally { con.Close(); } if (msg == "删除成功") { bindgrid(); } else ScriptManager.RegisterStartupScript(this, this.GetType(), "click", "<script>alert('" + msg + "');</script>", false); } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex;//EditIndex:获取或设置要编辑的行的索引。 bindgrid(); } protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { string sqlconnstr = ConfigurationManager.ConnectionStrings["HotelConnectionString"].ConnectionString; string msg; SqlConnection sqlconn = new SqlConnection(sqlconnstr); //提交行修改 try { sqlconn.Open(); SqlCommand Comm = new SqlCommand(); Comm.Connection = sqlconn; Comm.CommandText = "update 订单 set 订单号=@订单号,预定时间=@预定时间,入住时间=@入住时间, 房间类型=@房间类型, 房间数=@房间数, 入住人=@入住人, 联系人=@联系人, 联系电话=@联系电话, 备注=@备注where 订单号=@订单号";﷒Comm.Parameters.AddWithValue("@订单号", GridView1.DataKeys[e.RowIndex].Value.ToString()); Comm.Parameters.AddWithValue("@预定时间", ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text); Comm.Parameters.AddWithValue("@入住时间", ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text); Comm.Parameters.AddWithValue("@房间类型", ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text); Comm.Parameters.AddWithValue("@房间数", ((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text); Comm.Parameters.AddWithValue("@房间号", ((TextBox)GridView1.Rows[e.RowIndex].Cells[5].Controls[0]).Text); Comm.Parameters.AddWithValue("@入住人", ((TextBox)GridView1.Rows[e.RowIndex].Cells[6].Controls[0]).Text); Comm.Parameters.AddWithValue("@联系人", ((TextBox)GridView1.Rows[e.RowIndex].Cells[7].Controls[0]).Text); Comm.Parameters.AddWithValue("@联系电话", ((TextBox)GridView1.Rows[e.RowIndex].Cells[8].Controls[0]).Text); Comm.Parameters.AddWithValue("@备注", ((TextBox)GridView1.Rows[e.RowIndex].Cells[9].Controls[0]).Text); Comm.ExecuteNonQuery(); msg = "退房成功"; sqlconn.Close(); sqlconn = null; Comm = null; } catch (Exception ex) { msg="数据库更新出错"; } GridView1.EditIndex = -1; bindgrid(); } protected void Button1_Click(object sender, EventArgs e) { string strcon, strsql, msg; DataSet ds = new DataSet(); strcon = ConfigurationManager.ConnectionStrings["HotelConnectionString"].ConnectionString; strsql = "select * from 订单 where 订单号 like '%" + TextBox1.Text.Trim() + "%' order by 订单号 "; SqlConnection con = new SqlConnection(strcon);//定义新的数据连接控件并初始化 SqlDataAdapter cmd = new SqlDataAdapter(strsql, con); msg = "成功"; try { con.Open();//打开连接 cmd.Fill(ds, "inorder"); //填充数据集 } catch (Exception ex) { //如果try出错, 则捕获错误 msg = "数据访问出错"; } finally { con.Close(); } if (msg == "成功") { GridView1.DataSource = ds.Tables["inorder"].DefaultView; GridView1.DataBind(); } else ScriptManager.RegisterStartupScript(this, this.GetType(), "click", "<script>alert('" + msg + "');</script>", false); } 4.5 大堂入住界面 大堂入住界面是客户没有事先预定, 直接到就酒店大堂办理入住的界面, 实现对数据库表dbo.入住记录的插入。界面如图4-5所示: 图4-5 大堂入住界面 关键后台代码: protected void Button1_Click(object sender, EventArgs e) { string strcon, strsql, msg; strcon = ConfigurationManager.ConnectionStrings["HotelConnectionString"].ConnectionString; strsql = "insert into 入住记录(入住流水号,房间号,客户标识,入住人姓名,入住人证件,入住时间,押金) values ('" +TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + TextBox4.Text + "','" + TextBox5.Text + "','" + TextBox6.Text + "','" + TextBox7.Text + "')"; SqlConnection con = new SqlConnection(strcon);//定义新的数据连接控件并初始化 SqlCommand com = new SqlCommand(strsql, con); msg = "添加成功"; try { con.Open();//打开连接 com.ExecuteNonQuery();//执行命令 } catch (Exception ex) { //如果try出错, 则捕获错误 msg = "添加失败"; } finally { con.Close(); } ScriptManager.RegisterStartupScript(this, this.GetType(), "click", "<script>alert('" + msg + "');</script>", false); } protected void Buttoncancel_Click(object sender, EventArgs e) { TextBox1.Text = ""; TextBox2.Text = ""; TextBox3.Text = ""; TextBox4.Text = ""; TextBox5.Text = ""; TextBox6.Text = ""; TextBox7.Text = ""; } 4.6 结账退房界面 结账退房界面, 实现了驶入房间号查询入住记录表, 在GridView控件中显示查询结果, 点击退房按钮更新表中数据。如图4-6所示: 图 4-6 结账退房界面 关键后台代码: protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) bindgrid(); Label1.Text = Session["service"].ToString(); } void bindgrid() {//刷新gridview的数据 string strcon, strsql, msg; DataTable dt = new DataTable(); strcon = ConfigurationManager.ConnectionStrings["HotelConnectionString"].ConnectionString; strsql = "select * from 入住记录 order by 入住流水号 "; SqlConnection con = new SqlConnection(strcon);//定义新的数据连接控件并初始化 SqlDataAdapter cmd = new SqlDataAdapter(strsql, con); msg = "成功"; try { con.Open();//打开连接 cmd.Fill(dt); //填充数据集 } catch (Exception ex) { //如果try出错, 则捕获错误 msg = "数据访问出错";// +ex.Message.ToString().Trim(); } finally { con.Close(); } if (msg == "成功") { GridView1.DataSource = dt; GridView1.DataBind(); } else ScriptManager.RegisterStartupScript(this, this.GetType(), "click", "<script>alert('" + msg + "');</script>", false); } protected void Button1_Click(object sender, EventArgs e) { string strcon, strsql, msg; DataSet ds = new DataSet(); strcon = ConfigurationManager.ConnectionStrings["H
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服