西安搬家公司价目表_seo优化方向_软装设计理念_网页制作 收集资料
3 在线购票影城总体设计 在线购票影城整体的功能模块包括管理员+注册用户两个模块,其总体设计模块图如图3-1所示。
图3-1 在线购票影城功能模块图
下面是整个在线购票影城中主要的数据库表总E-R实体关系图。
图3-2 在线购票影城总E-R关系图
通过上一节中在线购票影城中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
表book_tickets_online (在线订票)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | book_tickets_online_id | int | 10 | 0 | N | Y | | 在线订票ID |
2 | order_number | varchar | 64 | 0 | Y | N | | 订单号 |
3 | movie_title | varchar | 64 | 0 | Y | N | | 电影名称 |
4 | film_duration | varchar | 64 | 0 | Y | N | | 电影时长 |
5 | session_no | varchar | 64 | 0 | Y | N | | 场次编号 |
6 | start_time | datetime | 19 | 0 | Y | N | | 开始时间 |
7 | end_time | datetime | 19 | 0 | Y | N | | 结束时间 |
8 | ticket_price | varchar | 64 | 0 | Y | N | | 票价 |
9 | purchase_quantity | int | 10 | 0 | Y | N | 0 | 购买数量 |
10 | total_price | varchar | 64 | 0 | Y | N | | 总价格 |
11 | user | int | 10 | 0 | Y | N | 0 | 用户 |
12 | contact_number | varchar | 64 | 0 | Y | N | | 联系电话 |
13 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
14 | pay_type | varchar | 16 | 0 | Y | N | | 支付类型: |
15 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
16 | seat | varchar | 64 | 0 | N | N | | 座位号 |
17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表city_information (城市信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | city_information_id | int | 10 | 0 | N | Y | | 城市信息ID |
2 | city | varchar | 64 | 0 | Y | N | | 城市 |
3 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
4 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表collect (收藏)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
表comment (评论)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
表film_classification (电影分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | film_classification_id | int | 10 | 0 | N | Y | | 电影分类ID |
2 | film_type | varchar | 64 | 0 | Y | N | | 电影类型 |
3 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
4 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表film_sessions (电影场次)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | film_sessions_id | int | 10 | 0 | N | Y | | 电影场次ID |
2 | movie_title | varchar | 64 | 0 | Y | N | | 电影名称 |
3 | film_duration | varchar | 64 | 0 | Y | N | | 电影时长 |
4 | session_no | varchar | 64 | 0 | Y | N | | 场次编号 |
5 | start_time | datetime | 19 | 0 | Y | N | | 开始时间 |
6 | end_time | datetime | 19 | 0 | Y | N | | 结束时间 |
7 | city | varchar | 64 | 0 | Y | N | | 城市 |
8 | theater_name | varchar | 64 | 0 | Y | N | | 影院名称 |
9 | ticket_price | int | 10 | 0 | Y | N | 0 | 票价 |
10 | remaining_votes | int | 10 | 0 | Y | N | 0 | 剩余票数 |
11 | session_remarks | text | 65535 | 0 | Y | N | | 场次备注 |
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 | 更新时间 |
表hits (用户点击)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_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: |
表hot_film (热映电影)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hot_film_id | int | 10 | 0 | N | Y | | 热映电影ID |
2 | movie_title | varchar | 64 | 0 | Y | N | | 电影名称 |
3 | film_type | varchar | 64 | 0 | Y | N | | 电影类型 |
4 | movie_poster | varchar | 255 | 0 | Y | N | | 电影海报 |
5 | film_director | varchar | 64 | 0 | Y | N | | 电影导演 |
6 | film_star | varchar | 64 | 0 | Y | N | | 电影主演 |
7 | film_duration | varchar | 64 | 0 | Y | N | | 电影时长 |
8 | trailer | varchar | 255 | 0 | Y | N | | 预告片 |
9 | release_date | date | 10 | 0 | Y | N | | 上映日期 |
10 | film_introduction | longtext | 2147483647 | 0 | Y | N | | 电影介绍 |
11 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
12 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
13 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表notice (公告)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | | 公告id: |
2 | title | varchar | 125 | 0 | N | N | | 标题: |
3 | content | longtext | 2147483647 | 0 | Y | N | | 正文: |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | registered_users_id | int | 10 | 0 | N | Y | | 注册用户ID |
2 | gender | varchar | 64 | 0 | Y | N | | 性别 |
3 | age | int | 10 | 0 | Y | N | 0 | 年龄 |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表slides (轮播图)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
表theater_information (影院信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | theater_information_id | int | 10 | 0 | N | Y | | 影院信息ID |
2 | theater_name | varchar | 64 | 0 | Y | N | | 影院名称 |
3 | city | varchar | 64 | 0 | Y | N | | 城市 |
4 | address | varchar | 64 | 0 | Y | N | | 地址 |
5 | photo | varchar | 255 | 0 | Y | N | | 照片 |
6 | business_hours | varchar | 64 | 0 | Y | N | | 营业时间 |
7 | customer_service_hotline | varchar | 64 | 0 | Y | N | | 客服热线 |
8 | cinema_introduction | longtext | 2147483647 | 0 | Y | N | | 影院介绍 |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
10 | recommend | 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 | 更新时间 |
表upload (文件上传)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | | 上传ID |
2 | name | varchar | 64 | 0 | Y | N | | 文件名 |
3 | path | varchar | 255 | 0 | Y | N | | 访问路径 |
4 | file | varchar | 255 | 0 | Y | N | | 文件路径 |
5 | display | varchar | 255 | 0 | Y | N | | 显示顺序 |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | | 文件夹 |
8 | type | varchar | 32 | 0 | Y | N | | 文件类型 |
在线购票影城的详细设计与实现主要是根据前面的在线购票影城 的需求分析和在线购票影城 的总体设计来设计页面并实现业务逻辑,开发工具采用ecplice,数据库在MYSQL中存储,运用了当下比较主流的SSM框架。
4.1.1 前台首页界面
当进入在线购票影城的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,再往下是电影资讯信息,其主界面展示如下图4-1所示。
图4-1 前台首页界面图
4.1.2 用户注册界面
在线购票影城 的用户可以进行注册登录,当用户左上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号,选择身份,然后填写身份信息后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可注册成功。其用注册界面展示如下图4-2所示。
图4-2注册界面图
注册关键代码如下所示。
/**
* 注册
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(HttpServletRequest request) throws IOException {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = service.readBody(request.getReader());
query.put("username",String.valueOf(map.get("username")));
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
public Map<String,Object> readBody(BufferedReader reader){
BufferedReader br = null;
StringBuilder sb = new StringBuilder("");
try{
br = reader;
String str;
while ((str = br.readLine()) != null){
sb.append(str);
}
br.close();
String json = sb.toString();
return JSONObject.parseObject(json, Map.class);
}catch (IOException e){
e.printStackTrace();
}finally{
if (null != br){
try{
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return null;
}
public void insert(Map<String,Object> body){
E entity = JSON.parseObject(JSON.toJSONString(body),eClass);
baseMapper.insert(entity);
log.info("[{}] - 插入操作:{}",entity);
}
4.1.3 用户登录界面
在线购票影城 中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当会员输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到在线购票影城的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。
图4-3用户登录界面图
登录关键代码如下所示。
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
QueryWrapper wrapper = new QueryWrapper<User>();
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
public String select(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer("select ");
sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
}
if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
}
if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
}
log.info("[{}] - 查询操作,sql: {}",table,sql);
return sql.toString();
}
public List selectBaseList(String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList<>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
所有的用户都可以通过网页进入到在线购票影城中对信息进行查看,但是要实现点赞、收藏、评论的话,就不是所有人都能操作的,必须成为在线购票影城的用户,注册登录的流程图如下图4-4所示。
图4-4注册登录流程图
4.1.4电影场次详情界面
用户可以查看电影场次,在查询到自己想要了解的电影场次的时候,可以进入查看详细的介绍,点击“购票”这一按钮以后会跳转到购票信息填写的界面,根据提示填写好购票的信息,点击“提交”以后购票就完成了,在电影场次详情这个界面,同时支持用户对喜欢的电影场次进行收藏、点赞的功能,电影场次详情展示页面如图4-4所示。
图4-5电影场次详情界面图
4.1.5电影资讯界面
当访客点击在线购票影城中导航栏上的“电影资讯”后将会进入到该“电影资讯”列表的界面,然后选择想要看的电影资讯信息,点击进入到详细界面,在详细界面可以收藏+点赞+评论等操作,电影资讯界面如下图4-6所示。
图4-6电影资讯界面图
4.1.6影院信息详情界面
用户可以查看影院信息,在查询到自己想要了解的影院信息的时候,可以进入查看详细的介绍,支持用户对喜欢的影院信息进行收藏、点赞的功能。影院信息详情界面如下图4-7所示。
图4-7 影院信息详情界面图
4.1.7密码修改界面
用户使用该在线购票影城注册完成后,用户对登录密码有修改需求时,系统也可以提供用户修改密码权限。系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败,下面的图片展示的就是该板块对应的工作面。
密码修改流程图如下所示。
图4.8 密码修改流程图
密码修改界面如图所示。
图4-8密码修改界面图
4.2.1登录界面
管理员在登录界面输入账号+密码,点击“登录”按钮,系统在用户数据库表中会对管理员,注册用户的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,如果管理人员忘记密码的话,点击“忘记密码”根据提示可以找回密码,然后再进行登录其主界面展示如下图4-9所示。
图4-9登录界面图
4.2.2人员管理界面
在线购票影城中的管理员在“人员管理”这一菜单是中可以对注册的用户以及管理员人员进行管控。界面如下图4-10所示。
图4-10人员管理界面图
人员管理关键代码如下所示。
public List selectBaseList(String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList<>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
4.2.3网站管理界面
网站管理模块是对网站公告和轮播图的设置,只有管理员权限才能进行更新维护。界面如下图4-11所示。
图4-11网站管理界面图
4.2.4电影资讯管理界面
点击“电影资讯”按钮会显示自己添加的电影资讯,如果想要添加新的电影资讯,点击“添加”按钮根据提示输入电影资讯,点击“提交”后在电影资讯管理界面就可以显示了,如果信息有错可以对电影资讯进行更新维护,也可以直接删除某一电影资讯,还可以管理评论信息,界面如下图4-12所示。
图4-12电影资讯管理界面图
4.2.5模块管理界面
在线购票影城中的管理人员在“模块管理”这一菜单下是可以对在线购票影城内的电影分类、城市信息、影院信息、热映电影、电影场次、在线订票进行管控的,其管理界面如下图4-13所示。
图4-13模块管理界面图
模块管理关键代码如下所示。
@RequestMapping("/get_obj")
public Map<String, Object> obj(HttpServletRequest request) {
List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));
if (resultList.size() > 0) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("obj",resultList.get(0));
return success(jsonObject);
} else {
return success(null);
}
}
在系统的前台、后台、数据库设计完成以后,在线购票影城才算是完成了一半,系统的最后一个阶段就是对系统的功能、性能进行测试,测试对一个系统来说是非常重要的,有的时候开发完一个系统,如果测试不合格的话,这个系统是没有办法进行投入使用的,所有我们要用测试对系统的功能、性能等方面进行检验,把不完善的功能尽量完善,把出现的bug及时解决掉,然后给用户呈现出一个完美的系统。
5.2 系统测试用例
在对在线购票影城的测试的时候,我主要是对用户登录功能测试、影院信息添加功能、查询热映电影、请假功能测试这六个方面进行展示的,如表5-1、5-2、5-3、5-4、所示:
用户登录功能测试:
表5.1 用户登录功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
用户登录模块测试 | 用户登录成功的情况 | 点击前登录界面输入账号和密码分别输入admin和admin后点击“登录”按钮。 | 登录成功并调整到用户界面 | 正确 |
影院信息添加功能测试:
表5.2 影院信息添加功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
影院信息添加模块测试 | 影院信息添加成功的情况 | 在影院信息的页面中将点击添加,输入影院相关信息,输入正确的信息后然后点击“提交”按钮。 | 提示添加成功 | 正确 |
影院信息添加模块测试 | 影院信息添加失败的情况 | 在影院信息页面中不填写的影院名称,其他信息正常输入“提交”按钮。 | 提示“添加失败,信息不能为空” | 正确 |
查询热映电影功能模块测试:
表5.3 查询热映电影功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
查询热映电影功能测试 | 查询成功的情况 | 在热映电影界面输入电影名称或者电影类型进行查询 | 查询成功 | 正确 |
电影场次添加功能测试:
表5.4 电影场次添加功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
电影场次添加模块测试 | 电影场次添加成功的情况 | 在电影场次的页面中将点击添加,输入电影相关信息,输入正确的信息后然后点击“提交”按钮。 | 提示添加成功 | 正确 |
电影场次添加模块测试 | 电影场次添加失败的情况 | 在电影场次页面中不填写的电影名称或者电影时长,其他信息正常输入“提交”按钮。 | 提示“添加失败,信息不能为空” | 正确 |
5.3 系统测试结果
通过编写在线购票影城的测试用例,已经检测完毕用户的登录模块、影院信息添加模块、查询热映电影模块、电影场次添加模块的功能测试,在对以上功能得测试过程中,发现了系统中的很多漏送并进行了完善,经过多人在线进行测试,系统完全可以正常运行,当然在后期的维护中系统将不断完善。
结论
本文描述了在线购票影城设计与实现的原理和开发过程,该系统是通过Spring+SpringMVC+MyBatis框架来搭建后台,中间件使用的是Tomcat服务器,数据库管理平台采用开源的Mysql数据库,前台使用的是JQuery框架,同时使用Validate校验框架,这样就可以减少前端代码的输入量,而且基于JQuery框架的Validat框架使用简单,是流行的前端使用框架,前端使用的主要是Java页面展示技术。
在开发这个在线购票影城之前做了许多的准备,比如到学校进行调研,了解现在大学生对在线购票影城所要实现的功能,同时在在线购票影城的设计和开发过程中去图书馆以及网上查阅和学习了许多相关的文献资料,与此同时从开发这个在线购票影城的过程当中我也收获了许许多多宝贵的实践方法以及设计的思路,对系统的开发也起到了很重要的作用,在线购票影城的开发技术选用的都是自己比较熟悉的,比如Web、SSM、MYSQL等,这些技术都在平时的课程当中学到,而且平时都能够熟练运用,在开发在线购票影城的过程当中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,开发在线购票影城对于我来说工作量还是比较大的,毕竟是一个完整的系统,正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。
当然在开发该在线购票影城的过程当中也是离不开导师以及同学们的帮助的,在遇到自己搞不定的问题的时候,我首先会和同学们探讨,找出解决方法,实在解决不了的时候,我会请教我的导师,在开发在线购票影城 的过程中正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在线购票影城还有很多需要改进的地方,但是由于专业知识的浅薄,开发的系统并不是十全十美,希望以后有机会可以对其进行完善,让其真正的投入到使用之中。
到此,整个在线购票影城就算完成了,虽然过程十分艰难,但是等到都完成的时候,我感觉无比的自豪,虽然设计的系统还存在许多的纰漏,但是我已经拼劲全力,给自己的大学四年画上了一个圆满的句号。
在这里我首先要感谢的就是大学四年来所有教导我的老师,是他们教会了我许多的专业知识以及做人的道理,从一进校门对对开发系统一窍不通到现在能自主开发一个管理系统,里面包含了前台框架、后台框架、业务流程、数据结构、操作系统等各种知识,只有把他们统一运用好,才能够完成整个系统,这都是老师的功劳;其次我要感谢我的指导老师,在开发这个系统的时候,我遇到了无数的问题,经常通过线上、线下的方式去请教导师,每次去请教导师,他从来没有不耐烦,都是细心的引导,告诉我怎么样实现这个功能,怎么样才能使得系统更加完善,然后通过自己查询相关资料解决问题,提高了自己自主解决问题的能力,授人以鱼不如授人以渔,指导老师的这种工作态度受益终生,我也会向老师不断靠拢,向他学习,在此我只想说一句:“老师,谢谢您,您辛苦了”!最后我还要感谢我的室友、同学,在一起学习这四年,他们不但学习上给了我很多建议,在生活上更加给了我帮助,正是有他们的帮助,我的大学生涯才如此完美。
最后,希望自己在未来的道路上能够越走越远,不辜负在大学的学习以及老师们的细致的教导,追风赶月莫停留,平荒尽处是春山。
">