武汉工程大学《网络编程》实验报告武汉工程大学计算机科学与工程学院《网络编程》实验报告[3]专业班级双特01实验地点软件工程503机房学生学号0805060128指导教师胡宏银学生姓名詹秋芬实验时间第12周周二1~2节实验项目酒店管理系统(基于ASP.NET的网站设计与实现)实验类别操作性()验证性()设计性(√)综合性()其它()武汉工程大学《网络编程》实验报告实验目的及要求目的:1、掌握ASP.NET网站设计方法2、掌握如何利用所学知识编程实现网站3、了解测试网站方法与技术要求:1、设计的网站要求实现一般功能、能通过浏览器访问2、实验报告内容包括:系统设计、主要代码、测试报告3、如果要实现一个比较完善的系统,可以2-3人一组类别评分标准分值得分合计上机表现积极出勤、遵守纪律认真完成设计任务30分报告质量操作规范、功能正确填写完整、体现收获70分说明:评阅教师:日期:20年月日武汉工程大学《网络编程》实验报告一、实验内容:设计、实现、测试网站,以下题目任选一个:(1)学生信息管理系统(2)论坛系统(3)博客系统(4)个人自定:要求是web程序注:此网站设计的题目是酒店管理系统,由我自定的,下面将详细介绍本系统的具体设计、实现和测试网站过程:二、实验步骤1、设计系统(1)新建一个数据库:首先设计该系统所需的数据库表,在设计数据库表结构之前,要创建一个Access数据库,本系统使用的数据库名为HotelManageSys.mdb。(2)在数据库中新建表:在完成数据库的建立后,接下来在数据库中建立表,本系统一共使用了五个数据库表,分别是:用户信息表(Users)、客房类型信息表(RoomType)、客房基本信息表(GuestRoom)、酒店入住信息表(Occupy)和房间当前状态表(RoomState)。其中,用户信息表用来保存使用该系统的酒店员工的基本信息;客房类型信息表用来保存酒店所有客房类型基本信息;客房基本信息表用来保存酒店所有客房的基本信息;酒店入住信息表保存了酒店历来的全部入住信息;客房状态信息表用来记录酒店客房当前的状态,即是否已外租信息,帮助系统区分各客房状态。(3)设计网站的总体结构:酒店管理系统的网站结构分为两层,包括后台管理层和前台管理层。后台管理层主要面向系统权限为酒店总管理员的用户,当用户以酒店总管理员身份登录后,将被引导至该层。前台管理层则主要是面向系统权限为酒店前台服务人员的用户,登录后将被武汉工程大学《网络编程》实验报告引导至该层。(4)新建并实现页面的设计:根据以上介绍的网站结构,得出系统需要开发如下页面:酒店管理系统首页(default.aspx)、客房信息添加页面(roomadd.aspx)、客房信息修改页面(roommodify.aspx)、客房类型信息维护页面(roomtypemanage.aspx)、客房类型信息添加页面(roomtypeadd.aspx)、客房类型信息修改页面(roomtypemodify.aspx)、客房经营管理页面(roomlist.aspx)、订房操作页面(roomorder.aspx)、退房操作页面(roomcheckout.aspx)。然后,依次在所建网站“酒店管理系统”中添加如上页面,并在各个页面中添加相应的控件来实现页面的完整布局。2、实现系统界面的设计是系统实现的骨架,数据库的连接于封装构成了填写动态代码的基础。因此,摆弄些基本的功能代码的基础已经准备好了,下面就是在这些骨架中,根据数据库的连接和封装,来填写内容——动态代码了。(1)酒店管理系统首页实现:现在就为刚才所设计的首页编写后台支持类(default.aspx.cs),用于处理页面的事件,这里的主要事件是登录按钮的单击事件,以完成对用户名、密码信息的提交和验证工作。核心代码如下所示:protectedvoidbtn_login_Click(objectsender,EventArgse){stringstrconn=ConfigurationSettings.AppSettings[dsn];OleDbConnectioncn=newOleDbConnection(strconn);cn.Open();stringmyaccess=select*fromUserswhereUID='+tbx_uid.Text+'andUPassword='+tbx_upassword.Text+';OleDbCommandcm=newOleDbCommand(myaccess,cn);OleDbDataReaderdr=cm.ExecuteReader();if(dr.Read())武汉工程大学《网络编程》实验报告{lbl_message.Text=;Session[UID]=dr[UID].ToString();Session[upower].ToString();lbl_message.Text=欢迎您!+Session[UID];if(Session[UPower].TOString()==1){Response.Redirect(roommanage.aspx);}elseif(Session[UPower].ToString()==2){Response.Redirect(roomlist.aspx);}else{lbl_message.Text=对不起,您的用户名/密码不正确,请重新输入;}cn.Close();}}}(2)客房信息维护页面实现:客房信息维护页面的后台支持类为:roommanage.aspx.cs,它负责对页面的事件进行处理,核心代码如下所示://在页面的page_load()事件中,对DataGrid控件的数据绑定函数BindGrid()方法进行调用,代码如下:PrivatevoidPage_Load(objectsender,System.EventArgse){if(!IsPostBack)BindGrid();武汉工程大学《网络编程》实验报告}//下面是BindGrid()方法的实现过程:PublicvoidBindgrid(){stringstrconn=ConfigurationSettings.AppSettings[dsn];OleDbConnectioncn=newOleDbConnection(strconn);OleDbDataAdapterda=newOleDbDataAdapter(guestroomlist,cn);DataSetds=newOleDbDataSet();da.Fill(ds);dgd_roomlist.DataSource=ds;dgd_roomlist.DataBind();cn.Close();}//下面方法用于响应页面中DataGrid控件dgd_roomlist的删除事件:publicvoidDataGrid_Delete(Objectsender,DataGridCommandEventArgsE){stringstrconn=ConfigurationSettings.AppSettings[dsn];OleDbConnectioncn=newOleDbConnection(strconn);cn.Open();OleDbCommandcm=newOleDbCommand(guestroomdelete,cn);cm.CommandType=CommandType.StoredProcedure;cm.Parameters.Add(@RID,OleDbType.VarChar);cm.Parameters[@RID].Value=E.Item.Cells[0].Text.ToString();cm.ExecuteNonQuery();cn.Close();cn.Open();OleDbCommandcm0=newOleDbCommand(roomstatedelete,cn);cm0.CommandType=CommandType.StoredProcedure;cm0.Parameters.Add(@SRID,OleDbType.VarChar);cm0.Parameters[@SRID].Value=E.Item.Cells[0].Text.ToString();cm0.ExecuteNonQuery();cn.Close();Response.Redirect(roommanage.aspx);dgd_roomlist.EditIndex=-1;BindGrid();}武汉工程大学《网络编程》实验报告//下面方法用于响应页面中“开始”按钮的单击事件:protectedvoidbtn_search_Click(objectsender,EventArgse){intvarrid=0;try{varrid=Convert.ToInt32(tbx_rid.Text.ToString());}catch{Response.Write(输入房号有误,请返回!);Response.End();}Response.Redirect(roommmodify.aspx?rid=+varrid);}(3)客房信息添加页面实现:客房信息添加页面的后台支持类为:roomadd.aspx.cs,它负责对页面的事件进行处理,核心代码如下所示:publicpartialclassRoomManage:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack)BindGrid();}publicvoidBindGrid(){stringstrconn=ConfigurationSettings.AppSettings[dsn];OleDbConnectioncn=newOleDbConnection(strconn);OleDbDataAdapterda=newOleDbDataAdapter(guestroomlist,cn);DataSetds=newDataSet();da.Fill(ds);dgd_roomlist.DataSource=ds;dgd_roomlist.DataBind();武汉工程大学《网络编程》实验报告cn.Close();}publicvoidDataGrid_Delete(Objectsender,DataGridCommandEventArgsE){stringstrconn=ConfigurationSettings.AppSettings[dsn];OleDbConnectioncn=newOleDbConnection(strconn);cn.Open();OleDbCommandcm=newOleDbCommand(guestroomdelete,cn);cm.CommandType=CommandType.StoredProcedure;cm.Parameters.Add(@RID,OleDbType.VarChar);cm.Parameters[@RID].Value=E.Item.Cells[0].Text.ToString();cm.ExecuteNonQuery();cn.Close();cn.Open();OleDbCommandcm0=newOleDbCommand(roomstatedelete,cn);cm0.CommandType=CommandType.StoredProcedure;cm0.Parameters.Add(@SRID,OleDbType.VarChar);cm0.Parameters[@SRID].Value=E.Item.Cells[0].Text.ToString();cm0.ExecuteNonQuery();cn.Close();Response.Redirect(roommanage.aspx);dgd_roomlist.EditIndex=-