网络编程 实验三.docx

上传人:b****6 文档编号:4703818 上传时间:2022-12-07 格式:DOCX 页数:17 大小:19.16KB
下载 相关 举报
网络编程 实验三.docx_第1页
第1页 / 共17页
网络编程 实验三.docx_第2页
第2页 / 共17页
网络编程 实验三.docx_第3页
第3页 / 共17页
网络编程 实验三.docx_第4页
第4页 / 共17页
网络编程 实验三.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

网络编程 实验三.docx

《网络编程 实验三.docx》由会员分享,可在线阅读,更多相关《网络编程 实验三.docx(17页珍藏版)》请在冰豆网上搜索。

网络编程 实验三.docx

网络编程实验三

武汉工程大学

计算机科学与工程学院

《网络编程》实验报告[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=-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);

}

publicvoidctv_rid_SercerValidate(objectsource,System.Web.UI.WebControls.ServerValidateEventArgsargs)

{

stringstrconn=ConfigurationSettings.AppSettings["dsn"];

OleDbConnectioncn=newOleDbConnection(strconn);

cn.Open();

stringmyaccess="select*fromGuestRoomwhererid='"+tbx_rid.Text+"'";

OleDbCommandcm=newOleDbCommand(myaccess,cn);

OleDbDataReaderdr=cm.ExecuteReader();

if(dr.Read())

{

args.IsValid=false;

}

else

{

args.IsValid=true;

}

cn.Close();

}

}

(4)客房信息修改页面实现:

客房信息修改页面的后台支持类为:

roommodify.aspx.cs,它负责对页面的事件进行处理,核心代码如下所示:

publicpartialclassRoomModify:

System.Web.UI.Page

{

protectedvoidPage_Load(objectsender,EventArgse)

{

if(!

IsPostBack)

{

stringstrconn=ConfigurationSettings.AppSettings["dsn"];

OleDbConnectioncn0=newOleDbConnection(strconn);

cn0.Open();

stringmyaccess="select*fromRoomType";

OleDbCommandcm0=newOleDbCommand(myaccess,cn0);

OleDbDataReaderdr0=cm0.ExecuteReader();

while(dr0.Read())

{

ddl_rtype.Items.Add(newListItem(dr0["tname"].ToString(),dr0["tid"].ToString()));

}

cn0.Close();

OleDbConnectioncn=newOleDbConnection(strconn);

cn.Open();

OleDbCommandcm=newOleDbCommand("guestroomdetail",cn);

cm.CommandType=CommandType.StoredProcedure;

cm.Parameters.Add("@RID",OleDbType.VarChar);

cm.Parameters["@RID"].Value=Request.QueryString["rid"].ToString();

OleDbDataReaderdr=cm.ExecuteReader();

if(dr.Read())

{

lbl_rid.Text=dr["rid"].ToString();

tbx_rposition.Text=dr["rposition"].ToString();

tbx_rdescribe.Text=dr["rdescribe"].ToString();

ddl_rtype.Items.FindByValue(dr["rtype"].ToString()).Selected=true;

}

else

{

Response.Write("对不起,没有该房间信息");

Response.End();

}

}

}

protectedvoidbtn_modify_Click(objectsender,EventArgse)

{

if(Page.IsValid)

{

stringstrconn=ConfigurationSettings.AppSettings["dsn"];

OleDbConnectioncn=newOleDbConnection(strconn);

cn.Open();

OleDbCommandcm=newOleDbCommand("guestroommodify",cn);

cm.CommandType=CommandType.StoredProcedure;

cm.Parameters.Add("@RID",OleDbType.VarChar);

cm.Parameters.Add("@RType",OleDbType.VarChar);

cm.Parameters.Add("@RPosition",OleDbType.VarChar);

cm.Parameters.Add("@RDescribe",OleDbType.VarChar);

cm.Parameters["@RID"].Value=lbl_rid.Text.ToString();

cm.Parameters["@RType"].Value=Convert.ToInt32(ddl_rtype.SelectedItem.Value.ToString());

cm.Parameters["@RPosition"].Value=tbx_rposition.Text.ToString();

cm.Parameters["@RDescribe"].Value=tbx_rdescribe.Text.ToString();

cm.ExecuteNonQuery();

cn.Close();

Response.Redirect("roommanage.aspx");

}

}

protectedvoidbtn_delete_Click(objectsender,EventArgse)

{

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=lbl_rid.Text.ToString();

cm.ExecuteNonQuery();

cn.Close();

cn.Open();

OleDbCommandcm0=newOleDbCommand("rooomstatedelete",cn);

cm0.CommandType=CommandType.StoredProcedure;

cm0.Parameters.Add("@SRID",OleDbType.VarChar);

cm0.Parameters["@SRID"].Value=lbl_rid.Text.ToString();

cm0.ExecuteNonQuery();

cn.Close();

Response.Redirect("roommanage.aspx");

}

}

(5)客房经营管理页面实现:

客房经营管理页面的后台支持类为:

roomlist.aspx.cs,它负责对页面的事件进行处理,核心代码如下所示:

publicpartialclassRoomList:

System.Web.UI.Page

{

protectedvoidPage_Load(objectsender,EventArgse)

{

BindList();

}

publicvoidBindList()

{

stringstrconn=ConfigurationSettings.AppSettings["dsn"];

OleDbConnectioncn=newOleDbConnection(strconn);

OleDbDataAdapterda1=newOleDbDataAdapter("guestroomstate",cn);

DataSetds1=newDataSet();

da1.Fill(ds1);

dlt_roomlist.DataSource=ds1;

dlt_roomlist.DataBind();

cn.Close();

}

}

(6)订房操作页面实现:

订房操作页面的后台支持类为:

roomorder.aspx.cs,它负责对页面的事件进行处理,核心代码如下所示:

publicpartialclassRoomLeftList:

System.Web.UI.Page

{

protected

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1