asp酒店房间预约系统的设计与实现

本酒店房间预约系统按照用户部分和管理员部分划分了两块,它们所实现的功能如下。

1. 用户部分  l 预约房间:预约某个时间的某一房间。 l 用户登陆:通过用户名和密码核实登陆用户身份。 l用户注册:检测用户提供的信息并注册用户。  l 查询房间信息:按照用户提出的条件列出查询结果。 l 取消房间预约:取消某一到期且未付款的有效预约。 l查询预约信息:查询该用户的预约信息。  l 阅览用户留言:调用用户留言并显示。 l 注销用户:结束用户会话,保证安全。 2. 管理员部分 l给站长留言:检查用户留言的正确性并保存。  l 删除房间:根据用户提交的信息删除指定的房间。 l 添加房间:添加新的房间,注册详细信息。 l删除无用留言:删除需要处理的留言。  l 删除无用或错误的预约信息。 l 确认已付款用户的预约:当用户付款后对指定预约进行标记。 l修改房间信息:对于存在的某房间信息进行修改更新。   安全注销。l房间预约统计和用户统计。

酒店预约基本都是需要通过电话或客户直接到酒店进行,由于预约记录多是人为完成,容易造成失误和遗漏,管理效率比较低,特别是顾客比较多的季节,传统的预约方式已经基本不能满足要求。

    远程预约系统是一种全新的网络预约方式,通过互联网突破了时间和空间限制实现了便捷快速的预约与管理功能。本系统具有房间信息查询、预约房间和取消预约等功能。

    本酒店房间预约系统按照用户部分和管理员部分划分了两块,它们所实现的功能如下。

  1. 用户部分
    1. 用户注册:检测用户提供的信息并注册用户。
    2. 用户登陆:通过用户名和密码核实登陆用户身份。
    3. 预约房间:预约某个时间的某一房间。
    4. 查询预约信息:查询该用户的预约信息。
    5. 取消房间预约:取消某一到期且未付款的有效预约。
    6. 查询房间信息:按照用户提出的条件列出查询结果。
    7. 给站长留言:检查用户留言的正确性并保存。
    8. 注销用户:结束用户会话,保证安全。

  1. 管理员部分
  1. 阅览用户留言:调用用户留言并显示。
  2.   删除无用留言:删除需要处理的留言。
  3. 添加房间:添加新的房间,注册详细信息。
  4. 删除房间:根据用户提交的信息删除指定的房间。
  5. 修改房间信息:对于存在的某房间信息进行修改更新。
  6. 确认已付款用户的预约:当用户付款后对指定预约进行标记。
  7. 删除无用或错误的预约信息。
  8. 房间预约统计和用户统计。
  9. 安全注销。

系统模块结构设计

系统设计主要包括功能模块的划分和系统流程的分析。根据客户的需求总结系统主要完成的功能,以及将来拓展需要完成的功能,然后根据设计好的功能划分出系统的功能模块,这样方便程序员管理和维护,最后设计出系统的流程。接下来,就详细介绍系统设计的前期准备。

4.1.1  功能模块划分

酒店房间预约系统应该具有用户注册登录、查看预约房间、留言、管理员综合管理等功能。根据对该系统的功能需求分析可以画出系统功能模块图。本系统将功能划分为用户和管理员两部分,图1所示是用户部分的功能模块图。

asp酒店房间预约系统的设计与实现_第1张图片

  • 用户模块包括注册、登录和注销3个功能子模块,注册模块提供用户注册成为酒店房间预约系统的会员,拥有预约房间的功能,而只有登录的用户方可以进行房间的预约,因此登录模块提供会员登录功能。为了防止其他用户私自修改用户信息,同时又设计了注销功能模块。
  • 房间模块包括查看房间、查询房间、查看预约、预约房间和取消预约等功能。通过查看或者输入条件查询房间,可以获得房间的具体信息,如果为登录用户,此时可以进行房间的预约操作,用户觉得不满意,可以通过取消预约模块取消预约,同时用户可以通过查看预约模块查看用户所有的预约信息。
  • 留言模块为用户提供一个发表自己看法的场所,如果遇到什么困难或者不满意的地方。可以通过该模块发表。

管理端部分的功能如图2所示。

asp酒店房间预约系统的设计与实现_第2张图片

  • 管理员登录模块提供管理员登录的入口,只有成功登录后,才可以执行管理员操作。
  • 添加房间功能模块为管理员提供添加新的房间的功能,此时,管理员可以输入详细的房间信息。
  • 如果房间出现问题或者该房间已经不存在,管理员可以通过删除房间模块把该房间删除。
  • 当房间信息发生改变时,管理员可以通过修改房间信息模块对房间的信息进行修改。
  • 管理员可以通过阅读留言模块查看用户发表的留言,并可以进行回复和删除等操作。
  • 用户的预约只有等管理员确认后方可生效,管理员就是通过预约管理模块对用户的预约信息进行管理的,包括确定预约和删除预约等。
  • 管理员操作结束时需要通过注销登录模块注销登录,防止系统信息被篡改。

4.2 数据库设计

  数据库结构设计的好坏直接影响到信息管理系统的效率和实现的效果。合理地设计数据库结构可以提高数据库存储的效率,保证数据的完整和统一。数据库设计一般包括如下几个步骤:

  1. 数据库需求分析
  2. 数据库概念结构设计
  3. 数据库逻辑结构分析

4.2.1数据库需求分析

酒店房间预约系统的数据库功能主要体现在对各种信息的提供、保存、查询和更新操作上,包括用户信息、管理员信息、房间信息、预约信息和留言信息,各个部分的数据有着内在的联系。

通过前面对系统功能模块的分析,总结出该数据库需要满足以下信息需求:

  • 用户和管理员具有不同的身份。
  • 用户信息记录用户的资料。
  • 房间信息包括房间类型和费用等。
  • 预约信息包括预约时间、预约用户等信息。
  • 留言包括标题、内容等信息。

综合上面对酒店房间预约的数据库的需求分析,考虑到未来功能上的扩展,设计如下的数据项和数据结构。

  • 管理员信息包括的数据项:管理员名和密码。
  • 用户信息包括的数据项:用户名、密码等。
  • 房间信息包括的数据项:房间ID、房间名称、类型等。
  • 预约信息包括的数据项:预约ID、预约用户名、房间ID等。
  • 留言信息包括的数据项:留言用户名、留言标题、内容等。

4.2.2数据库概念结构设计

      得到上述的数据项和数据结构以后,就可以设计出满足客户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计做好铺垫。

该系统的实体有管理员信息实体、用户信息实体、房间信息实体、预约信息实体、预约信息实体和留言信息实体,它们之间的关系如图3所示。

asp酒店房间预约系统的设计与实现_第3张图片 

asp酒店房间预约系统的设计与实现_第4张图片 

asp酒店房间预约系统的设计与实现_第5张图片 

asp酒店房间预约系统的设计与实现_第6张图片 

 数据库逻辑结构设计

数据库的概念结构设计之后,就可以将上面的数据库概念转化为某种数据库系统所支持的实际数据模型,也就是数据库的逻辑结构

本系统采用的数据库软件是Microsoft Access.首先打开Microsoft Access,新建一个新空的数据库,命名为golfers.mdb。然后通过表设计器创建本系统的几个表。下面分别介绍各个表的内容。

1.管理员信息表

管理员信息包括管理员帐号和管理员密码,其属性如表1所示。设置管理员帐号Admin-name为主键。

列  名

数据类型

字段大小

必填字段

默认值

备注

Admin-name

文本

12

主键,管理员帐号

Admin-pwd

文本

16

密码

管理员信息表(Admin)

2.用户信息表

用户信息表记录了用户的详细信息,包括用户名、密码、和有关的个人信息,设置用户名为该表主键,如表2所示。

 

用户信息表(user-reg)

列   名

数 据 类 型

字 段 大 小

必 填 字 段

默 认 值

备   注

User-name

文本

12

主键,用户名

Pas

文本

16

密码

Sex

文本

2

性别

Age

数字

1

年龄

Email

文本

50

电子邮件

Tel

文本

15

电话

Byear

数字

2

出生年

Bmonth

数字

1

出生月

Bday

数字

1

出生日

3.房间信息表

房间信息表记录了房间的编号、房间名称、房间类型和费用等信息,设置房间编号为该表主键,如表3所示。

房间信息表(room)

列   名

数 据 类 型

字 段 大 小

必 填 字 段

默 认 值

备   注

Room-id

自动编号

2

主键,房间编号

Name

文本

30

房间名称

Type

文本

12

房间类型

Cost

货币

2

费用

4.预约信息表

预约信息表记录了用户预约房间的详细信息,包括预约帐号、预约编号、预约时间、房间编号、使用费用、是否付款和何时使用等信息,如表4所示。

预约信息表(preengage)

列  名

数 据 类 型

字 段 大 小

必 填 字 段

默 认 值

备  注

Preengage-id

自动编号

2

主键,预约编号

User-name

文本

12

用户名

Room-id

文本

2

房间编号

Datetime

日期/时间

8

预约时间

Cost

货币

2

费用

Pyear

数字

2

开始年

Pmonth

数字

1

开始月

Pday

数字

1

开始日

Beginhour

数字

1

开始时间

Paid

数字

1

是否付款

5.留言信息表

留言信息表记录了留言的标题、留言编号、留言内容、留言用户等信息,如表5所示。设置留言编号为该表主键。

留言信息表(word)

列  名

数 据 类 型

字 段 大 小

必 填 字 段

默 认 值

备  注

Word-id

自动编号

2

主键,留言编号

User-name

文本

12

用户名

Title

文本

50

标题

Word

文本

250

内容

Datetime

日期/时间

8

时间

4.4 数据库的实现

    酒店房间预约系统使用ASP+Access的工作模式,为了是系统正常工作,需要建立与数据库系统的连接来读取和写入数据。

    使用数据库文件的语法为:〈!--#include file=”../Include/conndb.asp”--〉.使用过程中,file后面的路径应该根据实际文件的位置稍微调整。该文件代码的实现参见程序清单1

程序清单1   数据库连接代码  hotel.asp

  <%

Dim hotel_conn

db = "database/hotel.mdb"     

connstr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(db)

Set hotel_conn  =  Server.CreateObject("ADODB.Connection")

if err Then

       err.clear

end if

hotel_conn.Open connstr

'关闭数据库连接,在每页中调用此函数,将连接放入连接池

sub CloseConn()

       hotel_conn.Close()

       Set hotel_conn  =  Nothing

end sub

'替换单引号

function RealString(strSrc)

       RealString  =  Replace(Trim(strSrc), "'", "''")

end function

%>

第五章、编写公共模块文件

公共模块主要包括以下几个部分:

  • 页面头文件。
  • 页面尾文件。
  • 管理员登陆判断代码。
  • 用户登录判断模块。
  • 注销模块。
  • 用户名判断函数。
  • 电子邮件地址判断函数。
  • 错误提示页面。

1. 页面头文件

本系统的每个可显示的页面都有固定的页面头和页面尾,页面头包括图片和导航菜单,页面尾文件包括版权信息和联系方式。为了减少代码的重复编写,将它们分别单独作为一个文件来操作,使用时使用include命令来调用它们。程序清单2为页面头文件的实现代码。

                   程序清单 2  页面头文件实现代码 include/head.asp

        

                  

        

        

        

        

   

   

   

    该头文件指定了页面头部图片,并在图片上设置了“热点”,即用鼠标单击图片某一区域后进入相应的网页。

2.页面尾文件

程序清单3是页面文件的实现代码。使用该代码采用〈!--#include file=”../Include/foot.asp”--〉语句。

程序清单3 页面尾文件实现代码 Include/foot.asp

      

             

      

      

             

             

             

             

             

      

      

             

      

天空酒店管理系统  ©2005
E-mail:
电话:
010-12345678

3.管理员登录判断代码

为了防止非管理员用户任意修改系统数据,在页面中需要加入管理员登录判断,其实现代码见程序清单4

                        程序清单4 管理员登录判断代码 include/is-admin.asp

<%

'判断管理员登陆------------------

if isempty(session("admin_name")) then

       response.Redirect("error.asp")

       response.End()

end if

%>

    1. 用户登录判断代码

酒店房间预约系统是一个多用户系统,某些页面只有用户登录后方可开通,如留言等。为了防止非注册用户直接调用页面的这些功能,需要在页面中加入用户登陆判断代码。程序清单5是用户登录判断代码,和管理员登录判断代码类似。

                 程序清单5 用户登录判断代码 include/is-user.asp

<%

if isempty(session("user_name")) then

response.Redirect("error.asp")

response.End()

end if

%>

    1. 注销模块

当用户或者管理员完成操作后,为保证系统安全,系统提供了安全注销功能,它是通过程序清单6所示的代码实现的。

                  程序清单6  安全注销 logout.asp

<%

session("user_name")=empty

session("admin_name")=empty

response.Redirect("index.asp")

%>

  安全注销代码的使用,首先把用户名清空,进入首页。当用户再次进入该系统时通过用户判断或者管理员判断代码进行安全确认。这样就实现了安全注销功能。

6. 用户名判断函数

   注册某些网站用户的时候,会得到这样的提示“您的用户名出现非法字符”。在本系统中,规定用户名只能使用字母、数字和下划线,其实现过程见程序清单7

                  程序清单7 判断合法用户名 include/is-name.asp

<%

'用户名规则判定函数------------------

function is_name(name)

       dim i, c

       is_name = true

       for i = 1 to len(name)

              c = Lcase(Mid(name, i, 1))

              if InStr("abcdefghijklmnopqrstuvwxyz_", c) <= 0 and not IsNumeric(c) then

                     is_name = false

                     exit function

              end if

       next

end function

%>

7. 电子邮件地址判断函数

与用户名类似,电子邮件地址也需要判断合法性。程序清单8就是电子邮件地址合法性判断函数。

             程序清单8 电子邮件合法性判断函数 include/is-email.asp

<%

'判断管理员登陆------------------

if isempty(session("admin_name")) then

       response.Redirect("error.asp")

       response.End()

end if

%>

未完待续。。。。。

 

你可能感兴趣的:(数据库)