网络知识 娱乐 数据库课程设计

数据库课程设计

 


目录

第一章 前言

1.1 背景和意义

1.2 设计目标

第2章 数据库设计 

2.1 需求分析

2.2 概念结构设计 

 2.3 逻辑结构设计

 2.4 关系模式规范化检查及处理

第3章 数据库定义与操作

3.1 数据库及数据表定义

3.2 数据查询操作

3.3 数据增删改操作 

 3.4 索引及视图应用

第4章 应用系统实现

 4.1 登录窗口

4.2 注册页面

4.3 普通用户界面窗口

 4.4 服务员界面窗口

4.5 管理员界面窗口

4.6 统计界面

第5章 总结


第一章 前言

1.1 背景和意义

        近年来,在中国市场上KTV娱乐业是当今市场化程度最高的行业之一,伴随着娱乐市场的迅速升温,各大KTV商家竞争激烈性不言而喻。在竞争的巨大压力下去了解、适应、占领和创造市场,不断丰富KTV经营内容,革新经营模式,提高服务质量,开拓新型市场,才能在激烈的市场竞争中处于不败之地。KTV管理系统不仅能解决KTV在管理和经营上的一些问题,也能更好的为消费者提供一个良好的体验环境。

1.2 设计目标

        本系统设计初衷是希望在快节奏的时代,不论是家庭,还是工作场所,亦或是学校,在业余时候,人们能找到一种释放压力疲惫的娱乐方式。顾客来到KTV一定会开包房消费,但是包房会有大小之分,不同类型的包房价格也不同。本系统希望可以按照顾客的需求进行包房分配,并且及时知道包房剩余状态,更方便服务员快捷的进行包房分配,并且服务员可以了解顾客的个人信息,可以准确地为顾客提供服务。


第2章 数据库设计 

2.1 需求分析

        需求分析也称为软件需求分析、系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表达转化为完整的需求定义,从而确定系统必须做什么的过程。

     通过实际调查,本系统需要具备:

  1. 良好的人机交互界面
  2. 方便用户预定KTV房间以及酒水消费等
  3. 如果系统使用用户多,有较好的权限管理
  4. 方便添加、删除、修改和查询数据

2.1.1 功能概述 

经分析,KTV管理系统应具备以下功能模块:

1)用户方面,功能要求如下:

  • 可以查看并修改个人信息
  • 可以查看并预定KTV房间
  • 可以查看并取消预定情况记录

2)服务员方面,功能要求如下:

  • 可以查看并修改个人信息
  • 可以查看并修改顾客预约情况
  • 可以为顾客安排房间
  • 可以查看顾客信息
  • 可以查看KTV房间预约情况
  • 可以查看顾客历史预约记录表

 3)管理员方面,功能要求如下:

  • 可以查看并修改个人信息
  • 可以对服务员信息进行维护,包括增删改查
  • 可以对KTV房间进行维护,包括增删改查
  • 可以对所有地用户进行管理,包括增删改

 主要功能模块图如下图2.1所示: 

图2.1.1 系统总功能模块图 

 2.1.2 用例图 

 图2.1.2 用例图

2.1.3 用例描述 

 表1 顾客管理用例描述表

IDA1名称顾客管理
参与者管理员,目标是能够管理顾客
优先级
触发条件管理员需要管理顾客信息
前置条件用户已登录,且身份为管理员
后置条件
正常流程

1、用户输入顾客信息,查询

2、系统判断数据库内是否存在信息相同的顾客

3、系统判断数据库内是否存在账号相同的顾客

4、系统授权增加

5、系统提示增加成功

6、系统向管理员表明增加顾客信息成功

7、用户输入顾客姓名,搜索

8、系统判断数据库内是否存在该名字的顾客

9、用户修改顾客信息

10、系统判断管理员输入信息是否合法

11、用户删除顾客信息
扩展流程

3a:存在账号相同顾客

        2a1:系统提示该顾客已存在,并给出解决方案

8a:不存在该名字的顾客

        8a1:系统提示该顾客不存在,并给出解决方案

10a:输入修改信息不合法

       10a1:系统提示输入信息不合法,并给出解决方案
特殊需求给出的提示信息应当足够清晰,提示管理员操作失败的原因,并给出解决方案。

 2 服务员管理用例描述表

IDA2名称服务员管理
参与者管理员,目标是能够管理服务员
优先级
触发条件管理员需要管理服务员信息
前置条件用户已登录,且身份为管理员
后置条件
正常流程

1、用户输入新增服务员信息,提交

2、系统判断输入信息是否合法

3、系统增加服务员信息

4、系统提示增加成功

5、用户输入修改信息

6、系统判断修改信息是否合法

7、系统向用户表明修改成功

8、用户删除服务员信息

扩展流程

2a:输入信息不合法

        2a1:系统提示输入信息不合法,并给出解决方案

5a:修改信息不合法

        5a1:系统提示修改信息不合法,并给出解决方案

特殊需求给出的提示信息应当足够清晰,提示管理员操作失败的原因,并给出解决方案。

3 KTV房间管理用例描述表

IDA3名称KTV房间管理
参与者管理员,目标是能够管理KTV房间
优先级
触发条件管理员需要管理KTV房间信息
前置条件用户已登录,且身份为管理员
后置条件
正常流程

1、用户删除KTV房间

2、系统向用户表明删除成功

3、用户输入修改信息

4、系统判断修改信息是否合法

5、系统向用户表明修改成功

6、用户输入房间号,提交

7、系统判断数据库内是否存在房间号相同的KTV房间

8、系统授权增加

9、系统提示增加成功
扩展流程

4a:修改信息不合法

        4a1:系统提示输入信息不合法,并给出解决方案

7a:存在房间号相同的房间

        7a1:系统提示该房间已存在,并给出解决方案
特殊需求给出的提示信息应当足够清晰,提示管理员操作失败的原因,并给出解决方案。

 表4 房间预约用例描述表

IDU1名称房间预约
参与者用户,目标是能够预约房间和时间
优先级
触发条件用户需要预约房间
前置条件用户已登录
后置条件
正常流程

1、用户搜索房间

2、系统判断房间是否存在

3、用户选择房间和预约时间

4、用户输入账号和姓名,确认预约

5、系统提示预约成功

6、用户查看预约信息

7、用户取消预约

8、用户查看预约记录
扩展流程

2a:搜索的房间不存在

        2a1:系统提示房间不存在
特殊需求给出的提示信息应当足够清晰,提示管理员操作失败的原因,并给出解决方案。

5 房间使用记录信息管理用例描述表 

IDW1名称房间使用记录
参与者服务员,目标是能够查看顾客情况和预约房间
优先级
触发条件服务员需要查看顾客情况和预约房间
前置条件用户已登录,且身份为服务员
后置条件
正常流程

1、用户预约房间

2、系统判断房间是否正在被使用

3、系统提示预约成功

4、用户查看预约房间情况

5、用户修改房间预约信息

6、系统判断修改信息是否合法

7、系统向用户表明修改成功

扩展流程

2a:房间正在被使用

        2a1:系统提示该房间正在被使用

6a:修改信息不合法

        6a1:系统提示输入信息不合法,并给出解决方案

特殊需求给出的提示信息应当足够清晰,提示管理员操作失败的原因,并给出解决方案。

 6 管理个人信息用例描述表

IDAWU1名称管理个人信息
参与者所有身份,目标是修改个人账号和密码
优先级
触发条件用户需要修改个人信息
前置条件用户已登录
后置条件
正常流程

1、用户输入新的账号

2、系统判断新账号是否与数据库内其余用户账号重复

3、系统提示修改成功

4、用户输入新的密码

5、系统判断新的密码与旧的密码是否一致

6、系统提示修改成功
扩展流程

2a:数据库内也已存在同名账号

        2a1:系统提示账号重复

5a:新的密码与旧的密码一致

        5a1:系统提示密码与之前一致,重新输入
特殊需求给出的提示信息应当足够清晰,提示管理员操作失败的原因,并给出解决方案。

2.2 概念结构设计 

2.2.1 实体列表 

2.2.1 实体列表

实体

描述

顾客

所有的顾客信息,由顾客账号唯一标识

服务员

所有的服务员信息,由服务员工号唯一标识

KTV房间

所有的KTV房间信息,由房间号唯一标识

预约单

所有的预约信息,由单号唯一标识

用户登录

所有的用户信息,包含顾客、服务员、管理员,由用户账号唯一标识

 2.2.2 系统E-R模型

        KTV管理系统的E-R模型,如下图所示。其中,重要关系局部E-R图如下图,全局的E-R图如下图。 

 图2. 2. 1 顾客-预约单E-R图

 图2. 2. 2 服务员-KTV房间E-R图

 图2. 2. 3 顾客-服务员E-R图 

 图2. 2. 4  顾客-KTV房间E-R图

图2. 2. 5 KTV管理系统全局E-R图 

 2.3 逻辑结构设计

本系统的关系模式如下(加粗下划线表示主码,斜体下划线表示外码):

  1. 顾客信息表(账号工号,姓名,性别,身份证号,联系电话)
  2. 服务员信息表(工号,姓名,性别,电话)
  3. KTV房间表(房间号账号工号,房间价格,推荐人数,房间状态)
  4. 房间预约单表(单号顾客账号,顾客姓名,房间号,价格)
  5. 房间使用记录表(账号房间号,开始使用时间,结束使用时间)
  6. 用户登录表(账号,密码,身份)

 将系统的E-R图转换为数据库模式如下: 

 图2. 3. 1 顾客信息表

图2. 3. 2 服务员信息表 

图2. 3. 3  KTV房间表 

 图2. 3. 4 房间预约单表

图2. 3. 5 房间使用记录表 

 图2. 3. 6 用户登录表

 2.4 关系模式规范化检查及处理

        范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。

        第一范式(1NF):在任何一个关系数据库中,第一范式是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库。如果一个关系模式R的所有属性都是不可分的基本数据项,则称该关系模式满足第一范式,记作R∈1NF。

        第二范式(2NF):第二范式是在第一范式(1NF)的基础上建立起来的,既满足第二范式必须先满足第一范式。若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF。

        第三范式(3NF):满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式要求一个数据库表中不包含已在其他表中已包含的非主关键字的信息。设关系模式R∈1NF,如果R中不存在候选码X、属性组Y以及非主属性Z(Z ⊄Y),使得X →Y(反之不可推出),Y→Z成立,则R∈3NF。

        BCNF(BC范式):关系模式R∈1NF,若X→Y且Y ⊄X时,X必含有码,则R∈BCNF。

        根据上述的要求,将本数据库的关系模式进行规范化检查,如下:

        顾客信息表(账号,姓名,性别,身份证号,联系电话)

        该表的码为:账号

        函数依赖:账号→姓名,账号→性别,账号→身份证号,账号→联系电话

        由该表函数依赖分析可知,不存在对候选码的部分依赖,满足2NF;不存在传递依赖,满足3NF,每一个决定属性因素都包含码,满足BCNF。

        服务员信息表(工号,姓名,性别,电话)

        该表的码为:工号

        函数依赖:工号→姓名,工号→性别,工号→电话

        由该表函数依赖分析可知,不存在对候选码的部分依赖,满足2NF;不存在传递依赖,满足3NF,每一个决定属性因素都包含码,满足BCNF。

        KTV房间表(房间号,房间价格,推荐人数,房间状态)

        该表的码为:房间号

        函数依赖:房间号→房间价格,房间号→推荐人数,房间号→房间状态

        由该表函数依赖分析可知,不存在对候选码的部分依赖,满足2NF;不存在传递依赖,满足3NF,每一个决定属性因素都包含码,满足BCNF。

        房间预约单表(单号,顾客账号,顾客姓名,房间号,价格)

        该表的码为:单号

        函数依赖:单号→顾客账号,单号→顾客姓名,单号→房间号,单号→价格

        由该表函数依赖分析可知,不存在对候选码的部分依赖,满足2NF;不存在传递依赖,满足3NF,每一个决定属性因素都包含码,满足BCNF。

        房间使用记录表(账号房间号,开始使用时间,结束使用时间)

        该表的码为:账号,房间号

        函数依赖:(账号,房间号)→开始使用时间,(账号,房间号)→结束使用时间

        由该表函数依赖分析可知,不存在对候选码的部分依赖,满足2NF;不存在传递依赖,满足3NF,每一个决定属性因素都包含码,满足BCNF。

        用户登录表(账号,密码,身份)

        该表的码为:账号

        函数依赖:账号→密码,账号→身份

        由该表函数依赖分析可知,不存在对候选码的部分依赖,满足2NF;不存在传递依赖,满足3NF,每一个决定属性因素都包含码,满足BCNF。


第3章 数据库定义与操作

3.1 数据库及数据表定义

数据库的创建:

  • CREATE  DATABASE    manage

数据表的创建及定义:

  • 使用查询语句SHOW  CREATE  TABLE  表名
  • 顾客信息表
CREATE TABLE `customer` (

  `customer_id` varchar(255) NOT NULL,

  `customer_name` varchar(255) NOT NULL,

  `customer_sex` varchar(255) default NULL,

  `customer_idcard` varchar(255) NOT NULL,

  `customer_phone` varchar(255) NOT NULL,

  PRIMARY KEY  (`customer_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8
  • 服务员信息表
CREATE TABLE `waiter` (

  `waiter_id` varchar(255) NOT NULL,

  `waiter_name` varchar(255) NOT NULL,

  `waiter_sex` varchar(255) NOT NULL,

  `waiter_phone` varchar(255) NOT NULL,

  PRIMARY KEY  (`waiter_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8
  • KTV房间表
CREATE TABLE `room` (
  `room_id` varchar(255) NOT NULL,
  `room_price` double(255,0) NOT NULL,
  `room_number` varchar(255) NOT NULL,
  `room_conditon` varchar(255) NOT NULL,
  PRIMARY KEY  (`room_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
  • 房间预约单表
CREATE TABLE `bill` (
  `bill_id` int(255) NOT NULL auto_increment,
  `bill_user` varchar(255) NOT NULL,
  `bill_name` varchar(255) NOT NULL,
  `bill_room` varchar(255) NOT NULL,
  `bill_price` double(255,0) NOT NULL,
  PRIMARY KEY  (`bill_id`)
) ENGINE=InnoDB AUTO_INCREMENT=61 DEFAULT CHARSET=utf8
  • 房间使用记录表
CREATE TABLE `record` (
  `record_id` varchar(255) NOT NULL,
  `record_room` varchar(255) NOT NULL,
  `record_firsttime` varchar(255) NOT NULL,
  `record_endtime` varchar(255) NOT NULL,
  PRIMARY KEY  (`record_id`,`record_room`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
  • 用户登录表
CREATE TABLE `login` (
  `user` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `identify` varchar(255) NOT NULL,
  PRIMARY KEY  (`user`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

3.2 数据查询操作

        由于表名字和属性过长,股灾写关系代数时将部分表名字和属性简写,规则如下:

表3.2.1 名称简写表

原名

简写

原名

简写

waiter

w

customer_phone

c_p

customer

c

customer_id

c_i

room

r

customer_name

c_n

record

re

customer_idcard

c_id

bill_r

b_r

record_firsttime

re_f

bill_id

b_i

record_endtime

re_e

bill_user

b_u

record_room

re_r

bill_price

b_p

room_id

r_i

room_condition

r_c

  • 查询登录账号为11对应的顾客姓名:

  • 查询登录账号为s对应的预约编号:

  • 查询预约了房间号为A003的顾客联系方式:

  • 查询登录账号为xyr预约的顾客身份证号、房间号以及价格:

  • 查询登录账号为xxx预约的房间状态、开始使用时间以及结束时间:

πr_c,re_f,re_e(σuser='xxx'(login)πb_u,b_r(bill)⋈πr_i,r_c(r)⋈πre_r,re_f,re_e(re))

3.2.2 SQL实现 

1)

SELETE customer_name FROM customer
   WHERE customer_id IN (SELETE user FROM login
	WHERE user = ‘11’)

 2)

SELECT bill_id FROM bill
   WHERE bill_user IN (SELETE user FROM login
WHERE user = ‘s’)

3)

SELECT customer_phone FROM customer
   WHERE customer_id IN (SELETE bill_user,bill_room FROM bill
   WHERE bill_room = ‘A003’)

4)

SELECT login.user ,c. c_i, c.id,bill.b_u,b_r,b_p
   FROM login,c,bill
   WHERE login.user = c.c_i AND c.c_i = bill.b_u AND login.user = bill.b_u 
AND login_user = ‘xyr’

5)

SELECT login.user,r.r_c,re.re_i,re.re_r,re.re_f,re.re_e 
FROM login,r,re
WHERE login.user = re.i AND re.re_r = r.r_id AND login.user = ‘xxx’

4)5)两部分的SQL语句比较多,所以使用了关系代数表格中的简写。

3.3 数据增删改操作 

  • 数据增加
(1)INSERT  INTO  room  VALUES(‘A010’, ‘200’, ‘6’, ‘空闲中’)
(2)INSERT INTO customer VALUES (‘1234’, ’Lily’, ‘女’, ‘330881200111011312’, ‘17816653172’)
(3)INSERT  INTO	  bill  VALUES(?, ‘1234’, ‘Daming’, ‘A004’, ‘200’)
(4)INSERT  INTO	  login  VALUES(‘login’, ‘root’, ‘顾客’)
(5)INSERT  INTO	  record  VALUES(‘123’, ‘A011’, ’12:35’, ’17:55’)
  • 数据删除
(1)DELETE	FROM	customer
	  where	customer.customer_id = 
	  (
			select  user  from  login
		)
(2)DELETE	FROM 	record
     where   record_id = 
     (
 			selste  user  from  login
	  )
(3)delete   from   room
     where   room_id = ‘A002’
(4)delete   from   login
     where   identify = ‘顾客’
(5)delete   from   login
     where   identify = ‘顾客’
  • 数据修改
(1)	update  room
        set  room_number = ‘3’
        where  room_id = ‘A001’
(2)	update  record
        set  record_room = ‘A002’, record_firsttime = ’11:05’, record_endtime = ’13:35’
        where  record_id = ‘11’
(3)	update  customer
        set  customer_name = ?, customer_sex = ?, customer_idcard = ?, customer_phone = ?
        where  customer_id =
        (
          selete  user  from
          login
        )
(4)	update  waiter
        set  waiter_name = ?, waiter_sex = ?, waiter_phone = ?
        where waiter_id = ?
(5)	update  bill
        set  bill_name = ?, bill_room = ?, bill_price = ?
        where  bill_user = ?

 3.4 索引及视图应用

        在关系数据库中,索引是一种独立的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或 若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。

        索引提供指向存储在表的指定列中的数据值的指针,然后根据指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后 顺指针找到包含该值的行。这样可以使对应于表的SQL语句执行的更快,可快速访问数据库表中的特定信息。

        当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录——取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量的数据库系统时间,并造成大量磁盘I/O操作;第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。

        基于第二种搜索信息方式的优点,选取其中一个示例测试索引的用途,操作如下图所示:

  • 在test表中插入5万~10万条数据:

 图3. 4. 1 数据总数图

  • 在未加索引的情况下直接查询某一个数据:

图3. 4. 2 未加索引的查询结果 

 图3. 4. 3 未加索引需要花费的时间

  • 对比前面2)结果可知,查询一条数据需要花费0.048秒,为了提高查询效率,可以创建一个索引,创建索引的语句为:

图3. 4. 4 建立索引语句 

  • 创建索引后,在表中就有了索引和主键自带的主键索引,如下图所示:

 图3. 4. 5 索引图

  • 创建好索引后,再次执行与2)相同的语句,结果如下图所示:

图3. 4. 6 添加索引后查询到的结果 

  • 结论:通过两次对比结果可以发现,在执行相同语句时,建立索引后的查询时间为0.001秒,而未建立索引的时间为0.048秒,提高了查询的效率。本次使用是简单的查询操作以及表的数据不算太大,所以在时间差上并不是很大,但是当实际操作复杂的业务时,会发现索引能大大的提高的效率。

3.4.2 视图的应用 

        视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

        由于有时候需要将多张表的信息结合在一起查看,表的多重连接在一定条件下比较麻烦,所以可以创建视图,将多张表的信息汇总在一张视图表中。比如服务员在查看顾客信息时不能同时查看该顾客预约的房间信息,所以可以创建视图如下:

        创建视图语句为:

图3. 4. 7 创建视图语句 

         建立视图后,想要查询相关需求就会很容易,例如:需要查询姓名为“111111”的顾客是否预约了房间号为“A006”的KTV房间,就可以简单的实现,如下图查询将结果所示:

图3. 4. 8 通过视图查询到的结果 


第4章 应用系统实现

         本系统采用Java的Swing来完成应用系统的交互功能,数据库采用MySQL来完成数据的操作。Java与MySQL的连接方式是JDBC。本系统通过MVC三层设计模型实现。用Model + View + Controller实现MVC设计模式的流程,如下图所示:

 

 图4. 1 MVC设计模式

 4.1 登录窗口

        在包com中创建类,命名为LoginWeb.java,将其作为登录界面的窗口。

4.1.1 页面设计

        登录界面:首先是创建一个窗体,设置窗体名称(setTitle)。左边创建一个JLabel,设置其Icon属性从而达到插入图片的作用。右边从上往下,首先是创建两个新的JLabel用于登录标题展现。之后创建一个JComboBox用于登录时身份的选择(顾客、服务员、管理员)、一个JTextField用于账号输入框以及一个JPasswordField用于密码输入。最下面使用到两个按钮JButton,一个是登录按钮,一个是注册按钮(用于用户注册)。实现后的效果图如下图所示:

图4. 1. 1 登录界面 

4.1.2 功能实现 

        用户在使用登录界面是,输入账号和密码 ,点击登录按钮。如输入的账号和密码都正确,则根据身份的判断进入相对应的界面,反之,如果输入的账号或密码错误,则系统提示“账号或密码错误”,需要重新输入账号和密码。注册按钮是用于未注册过的用户注册,点击注册按钮会进入注册界面。

        首先通过getSelectedItem()获取下拉框的内容以及通过getText()获取文本框和密码框的内容。然后通过建立数据库连接,打开相对应的表(login表)查找表中是否有与输入内容相同的数据记录,若有则查找成功,否则,查找失败。

4.2 注册页面

         在包zhuce中创建类,命名为Zhuce1.java和Zhuce2.java,并将其作为注册界面的窗体。

4.2.1 页面设计 

         注册界面主要是由JLabel、JTextField、JPasswordField、JRadioButton以及JButton四个控件组成。从上往下看,两个JLabel组成注册界面的标题。第一个JLabel设置Icon用于存放图片,第二个JLabel用于存放“欢迎注册”字体。后面都是一些JLabel和JTextField(或JPasswordField)结合组成注册界面行,JRadioButton主要用于性别“男/女”的选择。JButton主要有“确定”按钮和“重置”按钮。如下图实现效果图所示: 

 图4. 2. 1 注册界面

 4.2.2 功能实现

        注册功能与登录功能差不多,都是连接数据库,查找相对应的表,使用getTxt()获取文本框以及isSelected()获取JRadioButton控件选择的内容,将对应内容添加进表。

        确认按钮主要是在填写完注册内容后“确定”,当注册的账号存在时,提示“此账号已注册”。重置按钮是在点击后清空文本框JTextField以及密码框JPasswordField输入的内容。

        管理员由系统给定,不能随便注册,所以当选择身份为管理员时,点击注册按钮会提示“管理员不能注册”。同理,服务员也不能随便注册,服务员登录账号和密码由统一配置。

4.3 普通用户界面窗口

         在包customer中创建类,命名为CustomerWeb.java作为顾客登录总体界面。在CustomerWeb.java界面下包含:P1.java作为顾客预约KTV房间以及取消KTV房间预约、查看预约记录的界面;P2.java作为个人信息查看界面,包括查看个人信息、修改个人信息、修改密码。所以在P2.java中下还包含:Myself.java用作个人信息查看界面、Change.java用作修改个人信息界