软件工程最新截图版.docx
- 文档编号:18133672
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:75
- 大小:1.59MB
软件工程最新截图版.docx
《软件工程最新截图版.docx》由会员分享,可在线阅读,更多相关《软件工程最新截图版.docx(75页珍藏版)》请在冰点文库上搜索。
软件工程最新截图版
滨州学院
软件工程课程设计
(2011——2012年度第一学期)
题目
酒店客房管理系统
专业
计算机科学与技术
班级
2009级计本1班
小组成员
陈潇男、张世友、韩吉荣
学号
2009010886、2009010875、2009010882
指导教师
闫晓薇
设计时间
2011-11-3——2011-12-4
二〇一一年十二月五日
《软件工程》课程设计
成绩评定
成绩
学号
姓名
成绩
备注
2009010886
陈潇男
2009010875
张世友
2009010882
韩吉荣
指导教师:
摘要:
面对信息时代的机遇和挑战,采用全新的计算机网络和酒店信息管理系统,已成为提高酒店管理效率、改善服务水准的重要手段之一,在某种意义上,酒店管理的信息化已成为现代化酒店的重要标志。
客房管理是酒店管理的核心任务,为此,我们结合目前客房管理的现状,经过充分的调研和综合分析,开发了酒店客房信息管理系统。
关键字:
网络酒店管理系统
一、课程设计的目的与要求
通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。
具体如下:
1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;
2.熟悉自动化的软件开发工具RationalRose2003,并将其运用于软件开发的全过程;
3.进一步加强和提高软件工程文档的编写能力;
4.培养协作能力和团队精神。
二、设计正文
1.概述
1.1课题题目:
酒店客房管理系统
1.2系统的主要目标:
实现酒店客房管理系统的基本功能,主要有客房标准管理提供客房标准的添加、修改和删除,客房信息管理,客户信息管理,入住管理功能,预订管理功能,查询功能,结算功能等。
1.3系统的开发环境及运行环境:
操作系统:
WindowsXP
数据库系统:
Access20003
开发工具:
VisualStudio2008
2.系统需求分析
经过综合分析,确定了该系统应该包括如下功能:
(1)客房标准管理:
提供有关客房标准的添加、修改、和删除。
(2)客房信息管理:
管理各个客房的具体信息,如类型、位置、状态等。
(3)查询功能:
包括客户信息查询、客房信息查询、住宿记录查询结算信息查询等。
(4)入住管理功能:
登记入住信息、分配房间等。
(5)结算功能:
客户退房收款以及注销房间等
2.1E-R图
1.客房信息E-R图:
2.客房标准E-R图:
3.预订信息E-R图:
4.入住信息:
5.结账信息:
2.2数据流图
\
3.系统总体设计
3.1功能模块
酒店客房管理系统主要实现对客房的信息化管理,准确、高效、便捷,总体分七个模块:
住宿管理,客房管理,挂账管理,查询统计,结算管理,系统设置,管理系统。
(1)总体设计图
(2)模块功能表
表3-1酒店客房管理系统模块功能表
模块
功能
住宿管理
是客房管理系统的核心部分,它的主要功能是存储订房信息,包括登记姓名,证件号,客房标准,押金,入住时间等,这些直接关系到后面的结算信息管理。
客房管理
包括客房的编号,类型,面积,最多可住人数,价格,是否有电视等问题。
当添加新的客房时,就添加相应的标准信息,也可以查看客房的标准信息,同时可以进行修改。
查询统计
主要是为客户和操作员提供客房信息查询、客房标准查询、客户信息查询入住情况查询等等。
结算管理
结合订房信息自动化结帐,并存储结算信息。
结算完毕,就可以退房。
系统设置
主要是管理员添加用户、用户权限设置、以及用户密码的修改等等。
退出系统
用户登录,密码修改,关闭并退出系统。
3.2数据库系统
(1)数据库表
表3-2数据库表
序号
数据库表
功能
1
RoomType
存储客房类型、价格
2
Room
存储客房编号,状态信息
3
HotelUser
存储管理员信息
(2)数据库表结构
表3-3RoomType客房类型表
序号
字段名
字段类型
说明
备注
1
TypeId
INT
类型编号
Primarykey
2
TypeName
CHAR(10)
类型名称
3
TypePrice
INT
价格
4
IsAddBed
CHAR(10)
添加床位
5
AddBedPrice
INT
添加床位价格
6
Remark
CHAR(10)
评论
表3-4Room客房状态信息表
序号
字段名
字段类型
说明
备注
1
RoomId
INT
序号
2
Numbers
INT
客房号
Primarykey
3
BedNumber
INT
床位数
4
Description
CHAR(10)
描述
5
State
CHAR(10)
状态
6
GuessNumber
INT
客人数
7
TypeID
INT
类型编号
表3-4HotelUser管理员信息表
序号
字段名
字段类型
说明
备注
1
UserID
INT
用户编号
Primarykey
2
AccountID
CHAR(10)
用户名
3
Pwd
CHAR(20)
密码
3.3设计人机交互子系统
(1)用户
管理员用户
(2)用户描述
管理员用户在整个系统中起到管理和维护的作用,对酒店客房和宾客的信息进行管理和维护等职责。
(3)设计命令层次
①系统的人机交互子系统的内容和准则:
本酒店客房管理系统为了保证酒店内部信息不被泄露和修改,普通宾客用户不能访问使用,所以人机交互子系统只对管理员用户开放使用。
②通过采用树形结构,细化命令的组织方式:
3.4功能流程图
4.系统实现
本系统采用了三层架构来实现,即分为用户界面层(UI)、业务逻辑层(BLL)和数据访问层(DAL),用户界面层是展示给用户的界面,方便用户与系统进行交互;业务逻辑层是对系统业务实体的封装,完成系统业务功能;数据访问层直接与数据库打交道,为业务逻辑层提供底层的数据库操作。
4.1Database类主要是与数据库连接,提供数据库操作功能,代码如下:
namespaceAccessDAL
{
publicclassAccessHotelUserService:
IHotelUser
{
#regionIHotelUser成员
privateAccessRoomTypeOperatorServiceroomTypeOp=newAccessRoomTypeOperatorService();//操作房间类型的数据访问层类
privateconststringPARM_ACCOUNT_ID="@accountID";//声明一个参数
privateconststringPARM_PAW="@paw";
///
///按用户名得到用户密码(验证登录用户的合法性)
///
///
///
publicstringGetUserPasswordByUserName(stringuserName)
{
StringBuildersql=newStringBuilder();
stringstr=string.Empty;
sql.Append("selectPawfromHotelUserwhereAccountID='"+userName+"'");
try
{
stringtemp=AccessHelper.ExecuteScalar(AccessHelper.AccessConnString,CommandType.Text,sql.ToString(),null);
if(!
string.IsNullOrEmpty(temp))
str=temp;
}
catch(Exceptionex)
{
throwex;
}
returnstr;
}
///
///添加新用户
///
///
///
publicboolAddUser(HotelUseruser)
{
StringBuilderadd=newStringBuilder();
add.Append("insertintoHotelUser(AccountID,Paw)values(");
add.Append(PARM_ACCOUNT_ID+",");
add.Append(PARM_PAW+")");
intline=0;
try
{
OleDbParameter[]parms=newOleDbParameter[2];
parms[0]=newOleDbParameter(PARM_ACCOUNT_ID,OleDbType.VarChar);
parms[1]=newOleDbParameter(PARM_PAW,OleDbType.VarChar);
parms[0].Value=user.UserName;
parms[1].Value=user.PassWord;
line=AccessHelper.ExecuteNonQuery(AccessHelper.AccessConnString,add.ToString(),CommandType.Text,parms);
}
catch(Exceptionex)
{
throwex;
}
if(line>0)
returntrue;
else
returnfalse;
}
///
///获得所有的用户信息
///
///
publicIList
{
StringBuildersel=newStringBuilder();
sel.Append("selectAccountID,PawfromHotelUser");
IList
try
{
OleDbDataReaderrdr=AccessHelper.ExecuteReader(AccessHelper.AccessConnString,CommandType.Text,sel.ToString(),null);
while(rdr.Read())
{
HotelUseruser=newHotelUser();
user.UserName=rdr.GetString(0);
user.PassWord=rdr.GetString
(1);
lists.Add(user);
}
rdr.Close();
}
catch(OleDbExceptionex)
{
lists=null;
thrownewException(ex.Message+ex.StackTrace);
}
returnlists;
}
#endregion
}
}
namespaceAccessDAL
{
publicclassAccessRoomOperatorService:
IRoom
{
#regionIOperator成员
privateOleDbConnection_con=null;//连接对象
privateOleDbDataAdapter_adapter=null;//数据适配器,用来填充DataSet
privateOleDbCommand_cmd=null;//命令对象
privateAccessRoomTypeOperatorServiceroomTypeOp=newAccessRoomTypeOperatorService();//操作房间类型的数据访问层类
//Parameters初始化参数常量
privateconststringINSERT_INTO_ROOM="insertintoRoom(Numbers,BedNumber,Description,State,GuessNumber,TypeID)values(";
privateconststringPARM_ROOM_ID="@roomId";
privateconststringPARM_ROOM_NUMBER="@number";
privateconststringPARM_BED_NUMBER="@bedNumber";
privateconststringPARM_DESCRIPTION="@description";
privateconststringPARM_STATE="@state";
privateconststringPARM_GUESS_NUMBER="@guessNumber";
privateconststringPARM_TYPE_ID="@typeID";
///
///查询所有的房间信息
///
///
publicIList
{
//实例化连接对象
this._con=newOleDbConnection(AccessHelper.AccessConnString);
stringsql="selectRoomId,Numbers,BedNumber,DescriptionasShortDescription,State,GuessNumber,TypeIDfromRoomorderbyNumbers";
//泛型集合
IList
if(this._con!
=null)
{
try
{
this._con.Open();
_adapter=newOleDbDataAdapter(sql,_con);//实例化数据适配器
DataSetds=newDataSet();//实例化数据集对象
_adapter.Fill(ds,"Room");//使用数据适配器填充数据集
//遍历数据集中的行并添加到泛型集合中
for(inti=0;i { Roomtemp=newRoom(); temp.Roomid=Convert.ToInt32(ds.Tables["Room"].Rows[i][0]); temp.Roomnumber=ds.Tables["Room"].Rows[i][1].ToString(); temp.Bednumber=Convert.ToInt32(ds.Tables["Room"].Rows[i][2]); temp.Description=ds.Tables["Room"].Rows[i][3].ToString(); temp.State=ds.Tables["Room"].Rows[i][4].ToString(); temp.Guessnumber=Convert.ToInt32(ds.Tables["Room"].Rows[i][5]); temp.TypeId=roomTypeOp.SelectRoomTypeByID(int.Parse(ds.Tables["Room"].Rows[i][6].ToString())); list.Add(temp); } } catch { list=null; throw; } finally { this._con.Close(); } } returnlist; } /// ///按房间编号查询房间信息 /// /// /// publicRoomSelectRoomByID(intid) { this._con=newOleDbConnection(AccessHelper.AccessConnString); stringsql="select*fromRoomwhereRoomId="+PARM_ROOM_ID; Roomroom=null; if(this._con! =null) { try { this._con.Open();//打开连接 this._cmd=_con.CreateCommand();//使用连接对象的方法创建命令对象 this._cmd.CommandText=sql;//指定命令的T-SQL语句 this._cmd.Connection=_con;//指定命令的连接对象 this._cmd.Parameters.Add(PARM_ROOM_ID,OleDbType.Integer).Value=id;//添加命令中的参数 OleDbDataReaderdr=this._cmd.ExecuteReader();//指定命令并返回SqlDataReader只进只读的对象 if(dr.Read())//如果可以读取 { room=newRoom(); room.Roomid=dr.GetInt32(0); room.Roomnumber=dr.GetString (1); room.Bednumber=dr.GetInt32 (2); room.Description=dr.GetString(3); room.State=dr.GetString(4); room.Guessnumber=dr.GetInt32(5); room.TypeId=roomTypeOp.SelectRoomTypeByID(dr.GetInt32(6)); dr.Close(); } } catch(OleDbExceptionex) { room=null; throwex; } finally { this._con.Close(); } } returnroom; } /// ///按房间号查询房间信息(模糊查询) /// /// publicIList { //实例化连接对象 this._con=newOleDbConnection(AccessHelper.AccessConnString); stringsql="selectRoomId,Numbers,BedNumber,DescriptionasShortDescription,State,GuessNumber,TypeIDfromRoomwhereNumberslike"+number; //泛型集合 IList if(this._con! =null) { try { this._con.Open(); _adapter=newOleDbDataAdapter(sql,_con);//实例化数据适配器 DataSetds=newDataSet();//实例化数据集对象 _adapter.Fill(ds,"Room");//使用数据适配器填充数据集 //遍历数据集中的行并添加到泛型集合中 for(inti=0;i { Roomtemp=newRoom(); temp.Roomid=Convert.ToInt32(ds.Tables["Room"].Rows[i][0]); temp.Roomnumber=ds.Tables["Room"].Rows[i][1].ToString(); temp.Bednumber=Convert.ToInt32(ds.Tables["Room"].Rows[i][2]); temp.Description=ds.Tables["Room"].Rows[i][3].ToString(); temp.State=ds.Tables["Room"].Rows[i][4].ToString(); temp.Guessnumber=Convert.ToInt32(ds.Tables["Room"].Rows[i][5]); temp.TypeId=roomTypeOp.SelectRoomTypeByID(int.Parse(ds.Tables["Room"].Rows[i][6].ToString())); list.Add(temp); } } catch { list=null; throw; } finally { this._con.Close(); } } returnlist; } publicIList { //实例化连接对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 最新截图版 最新 截图