Web课程设计 酒店管理系统精选文档.docx
《Web课程设计 酒店管理系统精选文档.docx》由会员分享,可在线阅读,更多相关《Web课程设计 酒店管理系统精选文档.docx(31页珍藏版)》请在冰豆网上搜索。
Web课程设计酒店管理系统精选文档
洛阳理工学院
课程设计报告
课程名称Web程序设计课程设计
设计题目酒店管理系统
专业计算机科学与技术
班级
学号
姓名
完成日期
课程设计任务书
设计题目:
酒店管理系统
_________________________________________________________
设计内容与要求:
(1)数据库设计要符合范式要求。
(2)能对客户入住资料进行添加、删除、修改操作。
(3)提供订单查询功能,输入订单号,能查找出订单的相关信息。
能对订单进行添加、删除、修改操作。
(4)用户权限控制,服务员能对订单和客户资料进行修改,管理员用户修改登录密码.
指导教师:
年月日
课程设计评语
成绩:
指导教师:
年月日
目 录
第1章需求分析
1.1需求分析
酒店管理系统是我们常说的MIS(ManagementInformationSystem管理信息系统)的一种,在强调管理,强调信息的现代社会中它越来越得到普及,酒店管理系统的主要目标是实现对酒店内部各种管理的电子化合自动化,提高酒店的办公效率,为高质量的酒店管理提供服务,提供保证。
在酒店业竞争越来越激烈的今天,努力在市场竞争中脱颖而出,已经成为每位酒店经营者所追求的的目标.酒店如何才能提高服务质量,其管理力显得越来越重要.由于使用了先进的数据管理技术,酒店管理系统对提高酒店的管理能力将会起到比较重大的作用。
整个系统的基本设计目标是实现系统界面友好美观、简单易用、功能全面并有较高的安全性.
本系统需要实现酒店常用的房间预订、入住记录查询、房间管理等功能,并帮助酒店建立客户数据库和入住记录数据库,能够方便的进行查询,并在系统的易用性和安全性两方面进行相应的完善。
该系统有以下特点:
功能强大:
该软件以中小型酒店为应用对象,结合中小型酒店客房当前和未来发展的管理需求提供实用先进的客房管理模式,提高酒店客房管理的效益。
用户界面操作简洁:
系统的每个功能充分考虑到使用人员计算机知识较少的特点,软件系统由各种具体的功能模块组成,全部使用业务人员最熟悉的业务流程、提示用语和操作方式,即使不熟悉此软件的人也能熟练使用本软件完成业务处理。
系统性能稳定:
严格按照规范的软件工程管理,充分利用面向对象技术,采用sql为后台数据库.从技术上和应用广泛性上保证了系统的稳定性、广泛性和先进性。
1.2可行性分析
1.2.1经济可行性分析
模拟酒店管理系统的开发从长远的角度来看,投资可以完全收回,并可以节省管理费用,避免了人工填单操作所带来的一系列不必要的麻烦,节省了用户和相关工作人员的时间,能够很好地提高工作效率,改进决策质量。
同时也对酒店的灵活管理有了很大的提升,有利于提高酒店的运营和服务效率,其开发前景良好并能产生很好的经济和社会效益。
1。
2。
1技术可行性分析
本系统采用ASP.NET开发技术及SQLSERVER2008开发平台,该系统是数据库应用程序,数据项之间的关系虽然很复杂,但是都可以很清楚的用关系数据库模式表示出来,采用数据库的操作没有难度。
就规模来说,酒店管理系统应属于小型数据库应用程序,在课程设计期间可以完成从系统需求分析到系统测试的所有工作,不存在开发时间限制的问题。
由于酒店管理系统不属于大的数据库系统并且没有严格的实时性要求,只要普通系统配置就可运行。
对于酒店管理系统的开发就没有特殊的要求。
第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
NOTNULL
3
性别
nchar
2
NOTNULL
4
证件
nchar
20
NOTNULL
表2—2房间表
序号
列名
数据类型
长度
备注说明
1
房间号
nchar
10
主键
2
房间类别
nchar
10
NOTNULL
3
房间位置
nchar
50
4
房间描述
nchar
100
5
备注
nchar
50
表2-3入住记录表表
序号
列名
数据类型
长度
备注说明
1
入主流水号
nchar
10
主键
2
房间号
nchar
10
NOTNULL
3
客户标识
nchar
10
外键
4
入住人姓名
nchar
20
NOTNULL
5
入住人证件
nchar
20
NOTNULL
6
入住时间
Datetime
NOTNULL
7
退房时间
Datetime
8
消费
nchar
10
9
押金
nchar
10
表2-4管理员表
序号
列名
数据类型
长度
备注说明
1
姓名
Char
9
主键
2
性别
Varchar
10
NOTNULL
3
工号
Varchar
16
NOTNULL
4
密码
Varchar
100
表2-5服务员表
序号
列名
数据类型
长度
备注说明
1
姓名
Char
9
主键
2
性别
Varchar
10
NOTNULL
3
工号
Varchar
16
NOTNULL
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模式的客户端只须安装一个提供友好界面的通用浏览器,如InternetExplorer等,不需要对客户进行额外培训;
(2)B/S结构具有可伸缩性,在网络环境允许的条件下,可以尽可能多地增加浏览器和服务器,不受原有网络资源的影响;(3)易于开发、安装和维护,B/S结构只需对服务器端的应用平台进行开发和集成,减少了开发、安装和维护费用.
以目前的技术看,局域网建立B/S结构的网络应用,并通过工Internet/Intranet模式下数据库应用,相对易于把握,成本也是较低的.它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
本系统采用ASP.NET构造程序框架,数据库采用SQLServer2008为数据库
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系统流程图
关键后台代码:
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringsf=DropDownList1。
SelectedValue。
ToString();
stringstrcon,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()+"'”;
SqlConnectioncon=newSqlConnection(strcon);
DataTabledt=newDataTable();//创建一个数据表dt
SqlDataAdapterCmd=newSqlDataAdapter(strsql,con);
msg="yes";
try
{
Cmd.Fill(dt);//执行命令
}
catch(Exceptionex)
{//如果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”,”
}
protectedvoidButtoncancel_Click(objectsender,EventArgse)
{
TextBox1.Text="";
TextBox2。
Text="”;
TextBox3.Text=””;
TextBox4.Text="”;
TextBox5.Text="”;
TextBox6.Text="";
TextBox7.Text="”;
}
4。
4订单查询界面
订单查询界面使用了一个GridView控件使用数据绑定的方式实现输入订单号来查询订单,并在使用设置控件的CommandField类型来实现服务员对订单的修改和删除操作。
订单查询界面如图4-4所示:
图4-4订单查询界面
关键后台代码:
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
Page.IsPostBack)bindgrid();
Label1。
Text=Session[”service"]。
ToString();
}
voidbindgrid()
{//刷新gridview的数据
stringstrcon,strsql,msg;
DataTabledt=newDataTable();
strcon=ConfigurationManager。
ConnectionStrings["HotelConnectionString”].ConnectionString;
strsql="select*from订单orderby订单号";
SqlConnectioncon=newSqlConnection(strcon);//定义新的数据连接控件并初始化
SqlDataAdaptercmd=newSqlDataAdapter(strsql,con);
msg=”成功”;
try
{
con.Open();//打开连接
cmd。
Fill(dt);//填充数据集
}
catch(Exceptionex)
{//如果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+"’);
}
protectedvoidTextBox1_TextChanged(objectsender,EventArgse)
{
}
protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse)
{
GridView1。
PageIndex=e.NewPageIndex;
bindgrid();
}
protectedvoidGridView1_RowCancelingEdit(objectsender,GridViewCancelEditEventArgse)
{
GridView1。
EditIndex=—1;
bindgrid();
}
protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse)
{
stringstrcon,strsql,msg;
strcon=ConfigurationManager.ConnectionStrings["HotelConnectionString"].ConnectionString;
strsql="deletefrom订单where订单号='”+GridView1。
DataKeys[e。
RowIndex].Value。
ToString()+"’”;
SqlConnectioncon=newSqlConnection(strcon);//定义新的数据连接控件并初始化
SqlCommandcom=newSqlCommand(strsql,con);
msg=”删除成功”;
try
{
con。
Open();//打开连接
com。
ExecuteNonQuery();//执行命令
}
catch(Exceptionex)
{//如果try出错,则捕获错误
msg="删除失败";//+ex。
Message。
ToString().Trim();
}
finally
{
con.Close();
}
if(msg==”删除成功”)
{
bindgrid();
}
else
ScriptManager。
RegisterStartupScript(this,this.GetType(),”click",”〈script>alert(’”+msg+”’);",false);
}
protectedvoidGridView1_RowEditing(objectsender,GridViewEditEventArgse)
{
GridView1。
EditIndex=e.NewEditIndex;//EditIndex:
获取或设置要编辑的行的索引.
bindgrid();
}
protectedvoidGridView1_RowUpdating(objectsender,GridViewUpdateEventArgse)
{
stringsqlconnstr
=ConfigurationManager。
ConnectionStrings[”HotelConnectionString”]。
ConnectionString;
stringmsg;
SqlConnectionsqlconn=newSqlConnection(sqlconnstr);
//提交行修改
try
{
sqlconn。
Open();
SqlCommandComm=newSqlCommand();
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.RowIn