第3章 系统分析
系统分析是软件开发的关键。但在实际工作中却往往容易被人们忽视或误解。其实需求分析在软件开发过程中起着重要作用,它不仅为软件产品提供了一个基本框架和基础结构,而且还能够提高软件开发效率及质量。大多数软件的故障都是由于需求分析错误造成的,因为需求分析可以分析用户的业务,并根据用户的需求进行定制分析[8]。
3.1 系统概述
该系统由管理员、用户两部分组成。其中:每个人的权限不同所以功能也就不同;管理员则是根据不同需求设置了不同功能,可以通过后台管理接口管理系统所有信息[9]。
3.2 需求分析
需求分析,也称为软件需求分析、系统需求分析或需求分析工程,是指开发用户经过充分的研究和分析,准确地理解用户和项目在功能、性能、可靠性等方面的具体需求,并将用户的非正式需求表述转化为确定系统必须执行的需求的完整定义的过程[10]。
功能需求分析是系统设计的前提,它要求开发者和用户定义开发什么样的体系和系统需要什么样的功能。本文主要介绍了一种基于windows平台实现的天津旅游通网站。该系统为用户找到天津旅游通信息提供了更安全、更高效、更便捷的途径。
3.3 可行性分析
可行性分析是指通过比较项目的主要内容和支撑条件,如市场需求、资源供应、环境影响、资金筹措情况、盈利能力等,预测项目建成后可能产生的资金、经济效益、社会和环境影响,为项目决策提供依据的综合性系统分析方法。可行性研究报告编制的质量直接影响着投资决策的成,而可行性研究报告编制程序又决定了可行性研究报告能否得到有效执行。因此,必须重视可行性研究工作,提高其编制水平。可行性分析应当具有预见性、公正性、可靠性和科学性[11]。
3.3.1 技术可行性分析
本系统是为了为用户寻找天津旅游通信息提供更加安全、高效、便捷的方式,本系统需要运用到java、MySQL和B/S结构等技术,这些技术在国内外已经非常成熟,在大学期间也有所涉及,相关的知识和工具在网络上也可以查到,再加上老师的指导,在技术上的难题可以得到解决[12]。
3.3.2 经济可行性分析
该系统的主题是天津旅游通网站的设计与实现。开发所需的软件资源是Eclipse。我们可以在它的网站上安装一个免费的版本,这对我们的开发和使用是足够好的。数据库就是MySQL数据库。是开源是免费的,服务器使用Tomcat服务器,浏览器使用日常IE浏览器,java技术是开源的。经过可行性评估,软件资源支出符合经济可行性。硬件方面,配备齐全的笔记本电脑作为工具在经济上是可行的。
3.3.3运行可行性
运行可行性也可以说是系统可用性的体现,天津旅游通网站本身具有运行可行性的特点,其界面的设计清晰、功能权限分配合理、操作方便。本论文设计的是天津旅游通网站,通过技术的结合提出一套切实可行的解决方案。不同的用户接入之后不需要经过特殊的训练就可以运行到对应功能模块中[13]。
用例图的作用也是十分重要的,因为它设计方法较为简单,所以它是十分重要的交流工具。在系统开发设计的时候,可以直观明了的看到每个功能模块之间的联系和相互作用,在做出任何变动的时候,都能有很明确的思维导向。它就像一座大桥一样,串联了整个系统。
本次系统的用例图做出了十分明确的功能划分,在设计时可以有很好的设计思路进行设计和延展。
管理员用例图如图3-1所示。
图3-1管理员用例图
普通用户用例图如图3-2所示。
图3-2普通用户用例图
3.5 系统流程分析
3.5.1 登录流程图
登录流程是该系统的第一个流程,登录的第一步是输入账号、密码登录,系统会验证账号与密码是否正确,正确时系统会判断账号类型再进入不同的后台;不正确时,会返回到登录的第一步,输入用户重新执行登录流程。该流程如图3-3所示。
图3-3登录流程图
3.5.2 添加新用户流程图
添加新用户的流程是先查询新用户名是否已存在,如已有该用户名,需重拟用户名并同时输入新用户的其它信息,添加新用户到数据库时会先验证数据是否完整,信息都正确且完整时,返回并刷新用户列表;信息不正确时,会返回输入信息的那一步。该流程如图3-4所示。
图3-4添加新用户流程图
天津旅游通网站从技术、经济、运行功能等方面分析了系统的功能需求,可以满足用户的天津旅游通管理需求,帮助用户安全、高效地找到合适的天津旅游通信息,因此有必要对其进行课题研究。
第4章 系统设计
系统设计是将被设计对象划分为单个模块进行构建,各个模块相互支持,相互制约,它们的组合是一个完整的系统。通过系统设计,可以最大限度地满足系统的预期目标,明确软件开发的目的。
4.1 系统基本结构设计
本次系统采用springboot框架进行开发,springboot框架是一款企业界主流的软件开发技术,其简化了开发流程,大大缩减了软件开发所需的时间提高了软件的响应速度。系统总体结构图如图4-1所示。
4.2 数据库设计
数据库结构设计的好坏直接影响到天津旅游通网站的效率和实现的效果。本系统的数据库采用MySQL数据库,MySQL是一种开放源代码的关系型数据库管理系统,使用最常见的数据库管理语言SQL进行数据库管理。
4.2.1 数据库E-R图设计
E-R图也可称为实体-联系图,其可以清楚的显示实体与实体之间的关系,是描述概念模型的有效方式,通过各实体间的关系方便数据库结构的设计。以下是本系统主要的实体属性图如下所示。
普通用户信息E-R图如图4-2所示。
图4-2普通用户信息E-R图
机票信息E-R图如图4-3所示。
图4-3机票信息E-R图
酒店信息E-R图如图4-4所示。
图4-4酒店信息E-R图
景点预订E-R图如图4-5所示。
图4-5景点预订E-R图
天津旅游通网站总体E-R图如图4-6所示。
图4-6天津旅游通网站总体E-R图
4.2.2 数据库表设计
数据表是用来保存多种数据的表,它是所有数据库的核心对象,且对于软件开发有着不可替代的作用。其相关数据表如下:
表4-1:(景点信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | attraction_information_id | int | 10 | 0 | N | Y | 景点信息ID | |
2 | attraction_name | varchar | 64 | 0 | Y | N | 景点名称 | |
3 | scenic_spot_pictures | varchar | 255 | 0 | Y | N | 景点图片 | |
4 | types_of_attractions | varchar | 64 | 0 | Y | N | 景点类型 | |
5 | opening_hours | varchar | 64 | 0 | Y | N | 开放时间 | |
6 | attraction_address | varchar | 64 | 0 | Y | N | 景点地址 | |
7 | admission_price | int | 10 | 0 | Y | N | 0 | 门票价格 |
8 | scenic_spot_culture | text | 65535 | 0 | Y | N | 景点文化 | |
9 | scenic_spot_details | text | 65535 | 0 | Y | N | 景点详情 | |
10 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
11 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表4-2: (收藏)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表4-3: (评论)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表4-4: (机票预订)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | flight_booking_id | int | 10 | 0 | N | Y | 机票预订ID | |
2 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | user_phone_number | varchar | 64 | 0 | Y | N | 用户电话 | |
5 | airlines | varchar | 64 | 0 | Y | N | 航空公司 | |
6 | flight_name | varchar | 64 | 0 | Y | N | 航班名称 | |
7 | air_ticket_prices | int | 10 | 0 | Y | N | 0 | 机票价格 |
8 | booking_date | date | 10 | 0 | Y | N | 预订日期 | |
9 | booking_quantity | int | 10 | 0 | Y | N | 0 | 预订数量 |
10 | booking_amount | varchar | 64 | 0 | Y | N | 预订金额 | |
11 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
12 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
13 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表4-5: (民俗风情)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | folk_customs_and_traditions_id | int | 10 | 0 | N | Y | 民俗风情ID | |
2 | city_name | varchar | 64 | 0 | Y | N | 城市名称 | |
3 | city_image | varchar | 255 | 0 | Y | N | 城市图片 | |
4 | city_address | varchar | 64 | 0 | Y | N | 城市地址 | |
5 | urban_culture | text | 65535 | 0 | Y | N | 城市文化 | |
6 | urban_customs | text | 65535 | 0 | Y | N | 城市习俗 | |
7 | city_details | text | 65535 | 0 | Y | N | 城市详情 | |
8 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表4-6: (美食信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | food_information_id | int | 10 | 0 | N | Y | 美食信息ID | |
2 | food_name | varchar | 64 | 0 | Y | N | 美食名称 | |
3 | food_types | varchar | 64 | 0 | Y | N | 美食类型 | |
4 | food_pictures | varchar | 255 | 0 | Y | N | 美食图片 | |
5 | food_prices | int | 10 | 0 | Y | N | 0 | 美食价格 |
6 | food_address | varchar | 64 | 0 | Y | N | 美食地址 | |
7 | food_details | text | 65535 | 0 | Y | N | 美食详情 | |
8 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
10 | location_address | varchar | 64 | 0 | Y | N | 当前位置 | |
11 | location_lng | varchar | 64 | 0 | Y | N | 当前位置经度 | |
12 | location_lat | varchar | 64 | 0 | Y | N | 当前位置纬度 | |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表4-7: (美食类型)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | food_types_id | int | 10 | 0 | N | Y | 美食类型ID | |
2 | food_types | varchar | 64 | 0 | Y | N | 美食类型 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表4-8:(论坛)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | forum_id | mediumint | 8 | 0 | N | Y | 论坛id | |
2 | display | smallint | 5 | 0 | N | N | 100 | 排序 |
3 | user_id | mediumint | 8 | 0 | N | N | 0 | 用户ID |
4 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
5 | praise_len | int | 10 | 0 | Y | N | 0 | 点赞数 |
6 | hits | int | 10 | 0 | N | N | 0 | 访问数 |
7 | title | varchar | 125 | 0 | N | N | 标题 | |
8 | keywords | varchar | 125 | 0 | Y | N | 关键词 | |
9 | description | varchar | 255 | 0 | Y | N | 描述 | |
10 | url | varchar | 255 | 0 | Y | N | 来源地址 | |
11 | tag | varchar | 255 | 0 | Y | N | 标签 | |
12 | img | text | 65535 | 0 | Y | N | 封面图 | |
13 | content | longtext | 2147483647 | 0 | Y | N | 正文 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
16 | avatar | varchar | 255 | 0 | Y | N | 发帖人头像: | |
17 | type | varchar | 64 | 0 | N | N | 0 | 论坛分类:[0,1000]用来搜索指定类型的论坛帖 |
表4-9: (论坛分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
3 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
4 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
5 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
6 | icon | varchar | 255 | 0 | Y | N | 分类图标: | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表4-:10 (酒店信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hotel_information_id | int | 10 | 0 | N | Y | 酒店信息ID | |
2 | hotel_name | varchar | 64 | 0 | Y | N | 酒店名称 | |
3 | hotel_pictures | varchar | 255 | 0 | Y | N | 酒店图片 | |
4 | hotel_star_rating | varchar | 64 | 0 | Y | N | 酒店星级 | |
5 | room_type | varchar | 64 | 0 | Y | N | 房间类型 | |
6 | room_unit_price | int | 10 | 0 | Y | N | 0 | 房间单价 |
7 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
8 | hotel_address | varchar | 64 | 0 | Y | N | 酒店地址 | |
9 | hotel_details | text | 65535 | 0 | Y | N | 酒店详情 | |
10 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
11 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
12 | location_address | varchar | 64 | 0 | Y | N | 当前位置 | |
13 | location_lng | varchar | 64 | 0 | Y | N | 当前位置经度 | |
14 | location_lat | varchar | 64 | 0 | Y | N | 当前位置纬度 | |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表4-11: (酒店预订)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hotel_reservation_id | int | 10 | 0 | N | Y | 酒店预订ID | |
2 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | user_phone_number | varchar | 64 | 0 | Y | N | 用户电话 | |
5 | hotel_name | varchar | 64 | 0 | Y | N | 酒店名称 | |
6 | room_unit_price | int | 10 | 0 | Y | N | 0 | 房间单价 |
7 | booking_time | datetime | 19 | 0 | Y | N | 预订时间 | |
8 | booking_quantity | int | 10 | 0 | Y | N | 0 | 预订数量 |
9 | booking_amount | varchar | 64 | 0 | Y | N | 预订金额 | |
10 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
11 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
12 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表4-12:(点赞)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
表4-13: (普通用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_phone_number | varchar | 16 | 0 | Y | N | 用户电话 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表4-14: (房间类型)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | room_type_id | int | 10 | 0 | N | Y | 房间类型ID | |
2 | room_type | varchar | 64 | 0 | Y | N | 房间类型 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表4-15: (轮播图)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表4-16:(门票预订)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | ticket_booking_id | int | 10 | 0 | N | Y | 门票预订ID | |
2 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | user_phone_number | varchar | 64 | 0 | Y | N | 用户电话 | |
5 | attraction_name | varchar | 64 | 0 | Y | N | 景点名称 | |
6 | attraction_address | varchar | 64 | 0 | Y | N | 景点地址 | |
7 | admission_price | int | 10 | 0 | Y | N | 0 | 门票价格 |
8 | booking_time | date | 10 | 0 | Y | N | 预订时间 | |
9 | booking_quantity | int | 10 | 0 | Y | N | 0 | 预订数量 |
10 | booking_amount | varchar | 64 | 0 | Y | N | 预订金额 | |
11 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
12 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
13 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表4-17: (机票信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | ticket_information_id | int | 10 | 0 | N | Y | 机票信息ID | |
2 | airlines | varchar | 64 | 0 | Y | N | 航空公司 | |
3 | flight_information | varchar | 64 | 0 | Y | N | 航班信息 | |
4 | flight_images | varchar | 255 | 0 | Y | N | 航班图片 | |
5 | departure_city | varchar | 64 | 0 | Y | N | 出发城市 | |
6 | arriving_at_the_city | varchar | 64 | 0 | Y | N | 到达城市 | |
7 | air_ticket_prices | int | 10 | 0 | Y | N | 0 | 机票价格 |
8 | flight_details | text | 65535 | 0 | Y | N | 航班详情 | |
9 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表4-18: (旅游线路)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | tourist_routes_id | int | 10 | 0 | N | Y | 旅游线路ID | |
2 | attraction_name | varchar | 64 | 0 | Y | N | 景点名称 | |
3 | types_of_attractions | varchar | 64 | 0 | Y | N | 景点类型 | |
4 | scenic_spot_pictures | varchar | 255 | 0 | Y | N | 景点图片 | |
5 | departure_location | varchar | 64 | 0 | Y | N | 出发地点 | |
6 | destination | varchar | 64 | 0 | Y | N | 到达地点 | |
7 | transportation_mode | varchar | 64 | 0 | Y | N | 交通方式 | |
8 | travel_days | int | 10 | 0 | Y | N | 0 | 行程天数 |
9 | travel_route | text | 65535 | 0 | Y | N | 行程路线 | |
10 | route_details | text | 65535 | 0 | Y | N | 路线详情 | |
11 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
12 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表4-19: (旅行方案)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | travel_plan_id | int | 10 | 0 | N | Y | 旅行方案ID | |
2 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | user_phone_number | varchar | 64 | 0 | Y | N | 用户电话 | |
5 | attraction_name | varchar | 64 | 0 | Y | N | 景点名称 | |
6 | attraction_address | varchar | 64 | 0 | Y | N | 景点地址 | |
7 | departure_city | varchar | 64 | 0 | Y | N | 出发城市 | |
8 | transportation_mode | varchar | 64 | 0 | Y | N | 交通方式 | |
9 | travel_plan | text | 65535 | 0 | Y | N | 旅行方案 | |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表4-20: (景点类型)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | types_of_attractions_id | int | 10 | 0 | N | Y | 景点类型ID | |
2 | types_of_attractions | varchar | 64 | 0 | Y | N | 景点类型 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
4.3 本章小结
通过本章针对天津旅游通网站功能的总体结构、E-R属性图和数据表的大概介绍,对在开发系统时所要涉及到的数据库进行简单设计,为下一章系统的实现做好铺垫。
第5章 系统实现
系统实现章节的主要内容主要是将系统分析和系统设计方案进行实现,按照各个系统角色进行功能介绍,系统实现就是一个真正开始编写的阶段,将前面的分析结果以及设计方案进行实现,最终做出一个符合用户需求的软件系统。
5.1前台普通用户功能模块实现
当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到天津旅游通网站的导航条显示首页、交流论坛、旅游资讯、天气预报、景点信息、酒店信息、机票信息、旅游线路、美食信息、民俗风情、我拉帐户、个人中心等,如图5-1所示。
图5-1前台功能界面图
在注册流程中,普通用户在Vue前端填写必要信息(如帐号、密码等)并提交。前端将这些信息通过HTTP请求发送到Java后端。后端处理这些信息,检查用户名是否唯一,并将新用户数据存入MySQL数据库。完成后,后端向前端发送注册成功的确认,前端随后通知普通用户完成注册。这个过程实现了新用户的数据收集、验证和存储。如图5-2所示。
.
图5-2普通用户注册界面图
在登录流程中,普通用户首先在Vue前端界面输入用户名和密码。这些信息通过HTTP请求发送到Java后端。后端接收请求,通过与MySQL数据库交互验证用户凭证。如果认证成功,后端会返回给前端,允许普通用户访问系统。这个过程涵盖了从普通用户输入到系统验证和响应的全过程。如图5-3所示。
图5-3普通用户登录界面图
普通用户点击景点信息,在景点信息页面的搜索栏输入景点名称、景点类型,进行查询,然后可以查看景点名称、景点类型、景点图片、开放时间、景点地址、门票价格、点赞数、景点文化、景点详情等信息,如有需要可以进行预订、点赞、收藏或者评论等操作;如图5-4所示。
图5-4景点信息界面图
普通用户点击酒店信息,在酒店信息页面的搜索栏输入酒店名称、酒店星级、房间类型,进行查询,然后可以查看酒店名称、酒店星级、房间类型、房间单价、联系电话、酒店地址、点赞数、酒店详情等信息;如有需要可以进行预订、点赞、收藏或者评论等操作;如图5-5所示。
图5-5酒店信息界面图
普通用户点击机票信息,在机票信息页面的搜索栏输入航空公司、航班信息、出发城市、到达城市,进行查询,然后可以查看航空公司、航班信息、出发城市、到达城市、机票价格、点赞数、航班详情等信息;如有需要可以进行预订、点赞、收藏或者评论等操作;如图5-6所示。
图5-6机票信息界面图
普通用户点击个人中心,在个人中心页面可以对门票预订、酒店预订、机票预订、旅行方案、论坛列表、收藏进行详细操作;如图5-7所示。
图5-7个人中心界面图
5.2后台管理员功能模块实现
管理员登录,在登录页面选择需要登录的角色,在正确输入帐号和密码后,点击登录操作;如图5-8所示。
图5-8管理员登录界面
管理员进入主页面,主要功能包括后台首页、系统用户、景点类型管理、景点信息管理、门票预订管理、房间类型管理、酒店信息管理、酒店预订管理、机票信息管理、机票预订管理、旅游线路管理、美食类型管理、美食信息管理、民俗风情管理、旅游方案管理、系统管理、资源管理等进行操作。管理员主页面如图5-9所示:
图5-9管理员功能主界面
普通用户信息功能在视图层(view层)进行交互,比如点击“添加”按钮或填写普通用户信息表单。这些用户信息动作被视图层捕获并作为请求发送给相应的控制器层(control1er层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如搜索、添加、更新或删除普通用户信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便普通用户信息功能可以看到最新的信息或相应的操作反馈。在普通用户页面的输入栏中输入用户姓名进行搜索,可以查看到普通用户详细信息,并根据需要进行修改或者删除等操作;如图5-10所示。
图5-10用户界面图
景点类型功能在视图层(view层)进行交互,比如点击“添加”按钮或填写景点类型表单。这些景点类型动作被视图层捕获并作为请求发送给相应的控制器层(control1er层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如搜索、添加、更新或删除景点类型,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便景点类型功能可以看到最新的信息或相应的操作反馈。在景点类型页面的输入栏中输入景点类型进行搜索,可以查看到景点类型详细信息,并根据需要进行修改或者删除等操作;如图5-11所示。
图5-11景点类型界面图
管理员点击景点信息;在景点信息页面通过对景点名称、景点类型、景点图片、开放时间、景点地址、门票价格等信息,进行查询或添加、修改详情、查看评论或删除景点信息等操作;如图5-12所示。
图5-12景点信息界面图
管理员点击酒店信息管理;在酒店信息管理页面通过对酒店名称、酒店星级、房间类型、房间单价、联系电话、酒店地址等信息,进行查询、添加、修改详情、查看评论或删除酒店信息等操作;如图5-13所示。
图5-13酒店信息管理界面图
管理员点击旅游线路管理;在旅游线路管理页面通过对景点名称、景点类型、景点图片、出发地点、到达地点、交通方式等信息,进行查询、添加、修改详情、查看评论或删除旅游线路等操作;如图5-14所示。
图5-14旅游线路管理界面图
管理员点击美食信息管理;在美食信息管理页面通过对美食名称、美食类型、美食图片、美食价格、美食地址、美食详情等信息,进行查询、添加、修改详情、查看评论或删除美食信息等操作;如图5-15所示。
图5-15美食信息管理界面图
管理员点击系统管理;在系统管理页面对在轮播图管理模块信息,进行查询添加、修改详情或删除等操作;如图5-16所示。
图5-16系统管理界面图
5.5 本章小结
第五章主要内容是系统实现,分别实现了对管理员功能的管理,对用户的管理,完成了系统全部功能设计。
第6章 系统测试
系统测试是检验软件产品是否满足预期需求,确保产品无缺陷的重要手段。系统测试侧重于评估系统是否满足指定的要求,并帮助检查整个系统的功能性需求。通过对系统功能和非功能两个方面的测试用例进行分析与比较可以发现软件存在的问题以及需要改进之处。软件可靠性设计是一项系统性工程,涉及到多个学科领域,因此其难度较大。测试将侧重于功能测试,这是黑盒测试的一部分,黑盒测试的重点是用户提供的要求,而不是系统的实际代码[14]。
6.1 系统测试的目的
系统测试(System Testing)是为了向使用者提供有关被测试产品或服务的质量信息而进行的检查。系统测试还可以提供客观和独立的系统评估,以使运营者能够了解和系统实施所面临的潜在问题。系统测试涉及软件组件或系统组件的执行,以评估一个或多个系统属性。通常这些属性表明被测组件或系统满足系统预期开发需求,在各种预期的时间内,正确响应各种系统输入,在可接受的时间内执行其功能,足够可用,同时可以满足分析设计时要求的程度。在预期的环境中运行,并达到用户期望的总体结果。经过一系列严格功能测试,以发现系统功能方面潜在的问题,保证系统的正常运行[15]。
6.2 系统功能测试
在系统的功能性测试中,开发用户需要按照操作要求使天津旅游通网站软件的各项功能,并准确记录测试期间的每个功能的运行数据,判定软件系统开发的功能是否符合预期的结果,主要是对MySQL数据库里的数据进行增删改查。对该功能的测试操作如表6-1所示:
测试项 | 测试用例 | 测试特性 | 用例描述 | 系统反应 | 测试结果 | ||||||
角色管理 | 权限名称:xx,权限字符:admin 菜单权限:系统管理 | 功能测试 | 添加一个新角色,基础信息与已有角色完全一致 | 添加失败,提示“该角色已存在” | 通过 | ||||||
角色管理 | 权限名称:xx权限字符:admin 菜单权限:系统管理 | 功能测试 | 按关键词搜索角色信息 | 查找成功 | 通过 | ||||||
角色管理 | 权限名称:xx,权限字符:admin 菜单权限:系统管理 | 功能测试 | 删除系统中角色 | 删除成功 | 通过 | ||||||
角色管理 | 权限名称:aa,权限字符:boss 菜单权限:系统管理 | 功能测试 | 添加一个新角色,基础信息与已有角色均有所不同 | 添加成功 | 通过 | ||||||
6. 3 性能测试
性能测试主要是为了模拟系统在多人使用的运行环境中测试系统的性能最大的承受压力。对关键的技术指标表示支持系统的运行速度,网络顺畅和并发的数量。当多个人使用时,系统不会崩溃。
(1)运行的速度:测试在不同计算机上运行时没有出现死机的情况。
(2)响应的时间:对最快,平均和最大的响应时间。经过测试,局域网应答时限参数能满足用户的需求,属于正常承受范围。
(3)支持并发节点数:系统在并发节点上达到45个时,网络运营的速度波动较大,时间延迟十秒之间,符合客户需求。
6.4 本章小结
本章所做的主要工作是对系统进行功能性测试和性能测试。天津旅游通网站的正确性是网站的不可或缺的因素,系统的功能性测试是其中必不可少的步骤,也是占有很大比重的部分,这个过程中遇到的最多的问题是当界面跳转的时候系统终止运行。使用Eclipse中的Log Cat功能能够实现对程序每一个步骤进行跟踪,且定位出错误的位置十分方便。通过对各功能模块的测试结果和预期结果的比较,发现系统功能满足项目要求。
番禺网站建设天津网页制作网站建设系统北京公司网站制作网站建设 广州东台网站建设低价网站建设永州网站建设影视网站建设网站制作公司网站金华网站建设公司崇左网站建设日照网站建设济南网站建设找凌峰广州网页制作公司温州网站建设网站设计论坛网站制做网站网站设计秦皇岛建网站开发软件外包网站案例广州企业网站建设永州网站建设晋江网站建设移动端网站制作北京网站设计制作西安网站设计网页网站设计公司苏州网站建设制作免费网站建设