客房管理系统的设计及实现.docx
《客房管理系统的设计及实现.docx》由会员分享,可在线阅读,更多相关《客房管理系统的设计及实现.docx(48页珍藏版)》请在冰豆网上搜索。
客房管理系统的设计及实现
XXXX学院
实验报告XXXX年XX月XX日
课程名称
信息系统综合设计
项目名称
客房管理系统的设计及实现
实验者
XXX
专业年级
XXX
学号
XXXX
内容与
要求
根据系统设计说明书的要求,选择合适的软件开发工具或计算机语言进行信息系统软件代码的实现,并对实现的模块进行调试。
过程与
结果
系统实现主要是将系统分析与设计的成果在计算机上实现,编程可执行的应用软件系统。
在实验室条件下,系统实现主要是指按系统设计说明建立系统运行的硬件环境,完成信息系统程序的编制与调试,安装信息系统并测试评价。
预订管理系统实现分为5个实验项目来完成。
(1)数据库设计实验:
主要完成数据库系统的建立与设置。
(2)输入设计实验:
主要完成信息系统数据的输入功能。
(3)输出设计实验:
主要完成信息系统数据的查询与打印等功能,实现信息的输出。
(4)信息系统处理设计实验:
主要完成信息系统数据的删除、修改、计算、统计等处理功能。
(5)辅助功能设计实验:
主要完成信息系统中一般都具备的用户管理、系统初始化、系统菜单设计、数据备份与回复、用户登录、密码修改等模块功能的设计。
具体
(1)、
(2)、(3)、(4)、(5)过程详见附件。
评分
或
评语
附件:
1.1实验1:
数据库设计实验
1使用SQLServer2008的SQLServerManagementStudio创建数据库
(1)启动SQLServerManagementStudio,如图1所示。
图1SQLServer2008登录示意图
(2)建立数据库
在“对象资源管理器”下,展开数据库节点,在数据库节点下单击右键,选择新建数据库选项,屏幕新建数据库对话框如图2所示,该对话框有三个选择页:
常规、选项和文件组。
图2新增数据库示意图
(3)创建表
在展开的数据库节中,用鼠标中自己建立的数据库,点击右键,选择“新建表”,如图3所示,输入各列的名称、数据类型、是否允许空值,并根据数据库分析设计的结果,对列标签中默认值。
图3新增数据库表示意图
(4)设置表的主键约束和CHECK约束的方法
(5)设置唯一性约束的方法
(6)设置外键约束的方法
(7)实现数据完整性
(8)建立数据库关系图
在SQL主菜单屏幕上,单击工具栏的新建查询按钮,出现SQL命令输入界面,输入SQL命令并运行即可,创建表的SQL指令如下。
/*建立预定信息表*/
CREATETABLE[dbo].[yudingtem](
[id][int]IDENTITY(1,1)NOTNULL,
[TypeName][char](10)NOTNULL,
[Shuliang][int]NULL,
CONSTRAINT[PK_yudingtem]PRIMARYKEYCLUSTERED
(
[TypeName]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
/*建立预定类型表*/
CREATETABLE[dbo].[RoomBookingType](
[BookNumber][char](20)NULL,
[id][int]IDENTITY(1,1)NOTNULL,
[GuestName][char](20)NULL,
[Roomtype][char](10)NULL,
[Fangjiangshu][int]NULL,
[Roomnumber][varchar](100)NULL,
CONSTRAINT[PK_RoomBookingType]PRIMARYKEYCLUSTERED
(
[id]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
/*建立分房表*/
CREATETABLE[dbo].[Fenfango](
[ffid][int]IDENTITY(1,1)NOTNULL,
[BookNumber][char](20)NULL,
[Roomtype][char](10)NULL,
[RoomNumber][char](10)NULL,
[GuestName][char](20)NULL,
[GuestType][char](10)NULL,
[GuestTel][char](20)NULL,
[TypePrice][numeric](18,0)NULL,
[Deposit][numeric](18,0)NULL,
[BookPrice][numeric](18,0)NULL,
[InTime][char](10)NULL,
[EndTime][char](10)NULL,
[ArriveTime][varchar](50)NULL,
[Quxiao][datetime]NULL,
CONSTRAINT[PK_Fenfango]PRIMARYKEYCLUSTERED
(
[ffid]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
2SQLServer数据库权限的设置
(1)创建WindowsXP的用户账号
(2)使用SQLServerManagementStudio添加Windows登录账户
(3)使用SQLServerManagementStudio添加SQLServer登录账户
3创建数据视图
/*建立预定信息视图*/
CREATEVIEW[dbo].[room]
ASSELECT(
[RoomId],[RoomNumber],[BedNumber],
[RoomType],[RoomTel],[RoomSate],[StatePic],[RoomDesc]
FROMHotelManager
whereroom.RoomId=ronmtype.RoomId
/*建立预定类型视图*/
CREATEVIEW[dbo].[roomtype]
ASSELECT(
[TypeId],[TypeName]L,[TypePrice],[Ifhourroom],
[Hourroomprice],[Deposit],[DiscountRate],[NowPrice],
[BookPrice],[TypeDesc],
FROMHotelManager
whereroomtype.TypeId=ronmt.TypeId
4创建存储过程
4.1预定信息存储过程(Hotel)
1.添加预定信息记录的存储过程Yding_Add
USE[HotelManager]
Ifexists(selectnamefromsysobjects
wherename='Hotel_Add'andtype='P')
dropprocedureHotel_Add;
Go
CREATEPROCEDUREYding_Add
(@IDint,
@TypeNamechar(10),
@shuliangint,
)
AS
BEGIN
INSERTINTOyuding
VALUES(@ID,@TypeName,@shuliang)
END
RETURN
GO
//调用该存储过程
USE[HotelManager]
EXECYuding_Add'1',','刘金辉','1'
Go
2.修改预定信息记录的存储过程Yuding_Update
USE[HotelManager]
Ifexists(selectnamefromsysobjects
wherename='Yuding_Update'andtype='P')
dropprocedureYuding_Update;
Go
CREATEPROCEDUREYuding_Update
(@YudingIDchar(5),
@Rnamevarchar(8),
@Classvarchar(12),
@AcademyIDchar
(2)
)
AS
BEGIN
UPDATEYuding
SETYudingID=@YudingID,
Rname=@Rname,
Class=@Class,
AcademyID=@AcademyID
WHEREYudingID=@YudingID
END
RETURN
GO
//调用该存储过程
USE[HotelManager]
EXECYuding_Update'110','12103','张丹萍','2010级','12'
GO
3.删除预定信息记录的存储过程Yuding_Update
USE[HotelManager]
Ifexists(selectnamefromsysobjects
wherename='Yuding_Delete'andtype='P')
dropprocedureYuding_Delete;
Go
CREATEPROCEDUREYuding_Delete
(@YudingIDchar(5))
AS
BEGIN
DELETEFROMHotelWHEREYudingID=@YudingID
END
RETURN
GO
//调用该存储过程
USE[HotelManager]
EXECYuding_Delete'110'
GO
4.2预定类型存储过程(Academy)
1.添加预定类型记录的存储过程Academy_Add
USE[HotelManager]
Ifexists(selectnamefromsysobjects
wherename='Academy_Add'andtype='P')
dropprocedureAcademy_Add;
Go
CREATEPROCEDUREAcademy_Add
(@AcademyIDchar
(2),
@Academynamevarchar(8)
)
AS
BEGIN
INSERTINTOAcademy
VALUES(@AcademyID,@Academyname)
END
RETURN
GO
//调用该存储过程
USE[HotelManager]
EXECAcademy_Add'05','中型
GO
1.2实验2:
输入设计实验
以需求规格说明书中要求的环境作为实验环境,如信息系统要求采用C/S模式运行,则安装有数据库服务器以及相应的开发工具软件,并提供计算机网络环境。
若为单机版,则应安装数据库管理系统及相应的软件开发工具。
在预订管理系统中,需要输入的数据包括预订信息、客房预订信息、客户信息等。
项目是VisualStudio的基本组织要素,它把一个应用程序的文件、资源、引用和其他成分组织起来。
1.新建项目
(1)启动VisualStudio2010
(2)创建项目HotelManagerSystem。
在起始页中,选择菜单文件—>新建—>项目,出现如图4所示的对话框,选择项目类型VisuanlC#下的Windows,并在模板栏选择“windows窗体应用程序”,在名称框中输入项目名称HotelManagerSystem,并按确定按钮。
图4创建项目HotelManagerSystem示意图
2.预订客房信息设置
预订客房信息设置功能主要用于设置酒店预订客房信息,如订单号号、房间数目、人数、宾客姓名、宾客类型、身份、手机等。
步骤1:
在打开的项目中,选择菜单“项目”—>添加Windows窗体,进入对话框,输入文件名YD_fenfang.aspx,单击添加,进入VisualC#窗体设计器界面。
步骤2:
在窗体界面上,从工具箱拖放1个GridView控件、2个sqlDataSource控件,并添加分页按钮,设计效果如图5、6、7所示
图5预订客房信息效果示意图
图6预订客房信息实现示意图
图7预订客房信息实现示意图
步骤3:
鼠标左键单击窗体,打开YD_fenfang.aspx.cs的代码编辑窗,在代码开头的using引用不得呢的末尾,添加3个相关命名空间的引用:
usingSystem.Collections;
usingSystem.Configuration;
usingSystem.Data;
步骤4:
在YD_fenfang.aspx.cs程序开头的公共局部类的定义publicpartialclassHoutai_Yuding_YD_fenfang:
System.Web.UI.Page中,添加数据库连接代码如下:
SqlConnectionconn=newSqlConnection(ConfigurationManager.ConnectionStrings["connString"].ConnectionString);
stringdanhao="";
stringfjlx="";
步骤5:
编写窗体初始化和窗体加载代码,具体代码如下:
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
IsPostBack)
{
xingming.ReadOnly=true;
binke_lx.ReadOnly=true;
fangjiansl_tb.ReadOnly=true;
didashijian_dd.ReadOnly=true;
ruzhu_rq.ReadOnly=true;
yulishijian_tb.ReadOnly=true;
beizhu.ReadOnly=true;
Label2.Text="当獭?
前°选?
择?
房?
间?
数簓量?
:
阰"+GetCheckBoxNum();
}
}
protectedvoidLinkButton1_OnClick(objectsender,EventArgse)
{
LinkButtonmyB=(LinkButton)sender;
intmyIndex=((GridViewRow)myB.NamingContainer).RowIndex;
Session["xuanzeshu"]=Convert.ToInt32(GridView1.Rows[myIndex].Cells[1].Text.Trim());
stringfjlx=GridView1.Rows[myIndex].Cells[0].Text.Trim();
Session["fjlx"]=fjlx;
SqlDataSource3.SelectCommand="select*fromroomwhereroomtype='"+fjlx+"'andRoomSate='空?
闲D'";
GridView2.DataBind();
}
protectedvoidLinkButton2_onclick(objectsender,EventArgse)
{
LinkButtonmyB=(LinkButton)sender;
intmyIndex=((GridViewRow)myB.NamingContainer).RowIndex;
xingming.Text=GridView3.Rows[myIndex].Cells[3].Text.Trim();
binke_lx.Text=GridView3.Rows[myIndex].Cells[4].Text.Trim();
fangjiansl_tb.Text=GridView3.Rows[myIndex].Cells[1].Text.Trim();
didashijian_dd.Text=GridView3.Rows[myIndex].Cells[13].Text.Trim();
ruzhu_rq.Text=GridView3.Rows[myIndex].Cells[11].Text.Trim();
yulishijian_tb.Text=GridView3.Rows[myIndex].Cells[12].Text.Trim();
beizhu.Text=GridView3.Rows[myIndex].Cells[18].Text;
if(beizhu.Text.Trim()==" ")
{
beizhu.Text=null;
}
danhao=GridView3.Rows[myIndex].Cells[0].Text.Trim();
Session["danhao"]=danhao;
SqlDataSource1.SelectCommand="select*fromRoomBookingTypewhereBookNumber='"+danhao+"'";
GridView1.DataBind();
Page.RegisterStartupScript("script","");
}
privateintGetCheckBoxNum()
{
intcheckNum=0;
inteditIndex=0;
for(intn=0;n{
CheckBoxchk=(CheckBox)GridView2.Rows[n].Cells[0].Controls[1];
if(chk.Checked)
{
checkNum=checkNum+1;
editIndex=n;
}
}
if(checkNum==1)
{
returncheckNum;
}
elseif(checkNum==0)
{
return0;
}
else
{
returncheckNum;
}
}
protectedvoidCheckBox1_CheckedChanged(objectsender,EventArgse)
{
if(GetCheckBoxNum(){
((CheckBox)this.GridView2.HeaderRow.FindControl("CheckBox2")).Checked=false;
}
else
{
((CheckBox)this.GridView2.HeaderRow.FindControl("CheckBox2")).Checked=true;
}
Label2.Text="当獭?
前°选?
择?
房?
间?
数簓量?
:
阰"+GetCheckBoxNum();
}
protectedvoidCheckBox2_CheckedChanged(objectsender,EventArgse)
{
for(inti=0;i{
((CheckBox)this.GridView2.Rows[i].FindControl("CheckBox1")).Checked=((CheckBox)this.GridView2.HeaderRow.FindControl("CheckBox2")).Checked;
Label2.Text="当獭?
前°选?
择?
房?
间?
数簓量?
:
阰"+GetCheckBoxNum();
}
}
protectedvoidqueding_Click(objectsender,EventArgse)
{
if(Session["danhao"]!
=null)
{
danhao=Session["danhao"].ToString();
conn.Open();
SqlCommandcomm=newSqlCommand("updateroombookingsetFenfang='已?
分?
房?
'whereBookNumber='"+danhao+"'",conn);
comm.ExecuteNonQuery();
conn.Close();
GridView1.DataBind();
GridView2.DataBind();
GridView3.DataBind();
Page.RegisterStartupScript("script","");
}
else
{
Response.Write("");
}
}
protectedvoidjixu_Click(objectsender,EventArgse)
{
Response.Redirect("Yuding.aspx",true);
}
protectedvoidadd_bt_Click(objectsender,EventArgse)
{
stringfjh="";
stringbkxm=xingming.Text.Trim();
stringbklx=binke_lx.Text;
stringrzrq=ruzhu_rq.Text.ToString();
stringylrq=yulishijian_tb.Text.ToString();
str