# CinemaTicketingSystem **Repository Path**: ZhuZhu2106/CinemaTicketingSystem ## Basic Information - **Project Name**: CinemaTicketingSystem - **Description**: 电影院售票系统 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 29 - **Forks**: 5 - **Created**: 2020-09-05 - **Last Updated**: 2024-09-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: JavaScript, HTML, Spring-MVC, Spring ## README # CinemaTicketingSystem(电影院售票系统) ## 一、主要功能 * 用户登录注册 * 影院影片查看 * 影院影片搜索 * 电影采购 * 订单查询 * 后台管理 ## 二、功能设计 (1)用户注册: 用户在注册页面填写注册相关信息,如果填写正确则检查是否为新用户,如果为新用户则转发到注册成功页面;如果填写注册相关信息错误或不是新用户则进行再次填写。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/liu/11.png) (2)用户登录:用户在登录页面填写个人账户信息,若信息正确并且存在该用户信息则返回到系统首页;若信息不正确或未注册该账户则进行再次填写。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/liu/2.png) (3)密码修改:用户在修改密码页面填写相关信息,如果信息正确并且存在该用户则跳转到修改成功页面;如果信息不合法或者不存在此用户信息,则进行重新输入。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/liu/10.png) (4)订购影票:若用户没有进行登录则不可以进行影票的订购;若用户登录了账户信息则先进行选择影片影院以及场次的选择,选择完成之后进行影票的支付。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/liu/1.png) (5)影票查询:若用户登录账户并且订购了相应的影票,则在订单页面可查询所有订单信息;若用户未登录则不可查询订单;若用户没有订购影票则查询不到订单。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/liu/4.png) (6)退订影票:若用户登录账户并且在影片有效期30分钟内则可以进行退票操作;若用户未登录或已经过了影片的有效期则不可以进行退票。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/liu/7.png) (7)添加影片:此功能模块提供给管理员使用,若登录用户为管理员并且输入的影片信息合法则影片信息添加成功;若影片信息输入不合法则添加失败。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/liu/9.png) (8)影片查询:此功能模块提供给管理员使用,若登录用户为管理员则可以选择对应筛选条件对影片进行筛选。若不是管理员用户则不可以进入查询页面。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/liu/6.png) (9)添加场次:此功能模块提供给管理员使用,若登录用户为管理员并且输入的场次信息合法则场次信息添加成功;若场次信息输入不合法则添加失败。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/liu/8.png) (10)删除场次:此功能模块提供给管理员使用,若登录用户为管理员则可以选择需删除的场次进行删除,若满足删除条件则删除成功;若不满足条件则删除失败。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/liu/5.png) (11)场次查询:此功能模块提供给管理员使用,若登录用户为管理员则可以选择对应筛选条件对场次进行筛选。若不是管理员用户则不可以进入查询页面。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/liu/3.png) ## 三、数据库设计 ### 3.1 电影院售票系统的E-R图设计 ​ E-R图是联系现实世界中的客观对象和信息存储结构的过渡方法。根据系统分析与设计可以得出此系统涉及到的实体有:影片、影院、用户、订单、场次。其中同一个影片可以归属于多个影院,一个影院有多个影片,每个影院的同一部影片有多个场次;用户可以购买多个场次的电影,同一场次的电影可以由多个用户购买。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/er/1.png) 其中每个实体都有各自的属性,各实体的属性如下: (1)影片实体的属性有ID号、中文名、英文名、海报图片、简介、片长、上映日期、评分、来源、演员、导演、类型。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/er/2.png) (2)影院实体的属性有:ID号、影院名、地址、城市、电话。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/er/3.png) (3)场次实体的属性有:ID号、影片ID号、影院ID号、放映室、语言、价格、放映日期、放映时间、已购座位号。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/er/4.png) (4)用户实体的属性有:ID号、用户名、密码、手机号、类型。图3-17为用户实体图。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/er/5.png) (5)订单实体的属性有:ID号、场次ID号、用户ID号、座位号。图3-18为订单实体图。 ![img](http://zhuzhu2106.gitee.io/cinematicketingsystem/er/6.png) ### 3.2 电影院售票系统的数据表设计 根据E-R图的分析与设计可以将相应的实体与联系转换成数据表进行存储。本系统的数据表包含影片表、影院表、场次表、用户表、订单表。 (1)影片表主要是用来记录影片信息的,存储信息包括影片ID号、影片中文名、影片英文名、海报图片、简介、片长、上映日期、评分、来源、演员、导演、类型等。详细说明如表3-1所示。 ​ 表 3-1 影片表(movie) | 序号 | 表字段 | 类型 | 详细说明 | | ---- | ------------ | ------------- | -------------- | | 1 | mid | Int(11) | 影片ID号,主键 | | 2 | chinese_name | Varchar(255) | 影片中文名 | | 3 | english_name | Varchar(255) | 影片英文名 | | 4 | img_url | Varchar(255) | 影片海报 | | 5 | type | Varchar(2) | 影片的类型 | | 6 | length | Varchar(255) | 影片的播放时长 | | 7 | release_date | date | 影片的上映时间 | | 8 | introduction | Varchar(1000) | 影片的简介 | | 9 | rating | Varchar(45) | 影片的评分 | | 10 | country | Varchar(45) | 影片拍摄的国家 | | 11 | actors | Varchar(45) | 影片的演员 | | 12 | director | Varchar(45) | 影片的导演 | (2)影院表主要是用来记录各城市的影院信息的,主要包括影院ID、影院名、地址、电话、城市。详细说明如3-2所示。 ​ 表3-2 影院表(cinema) | 序号 | 表字段 | 类型 | 详细说明 | | ---- | ------- | ------------- | -------------- | | 1 | cid | Int(11) | 影院ID,主键 | | 2 | name | Varchar(255) | 影院名称 | | 3 | address | Varchar(1000) | 影院的地址 | | 4 | phone | Varchar(45) | 影院的电话 | | 5 | city | Varchar(45) | 影院的所在城市 | (3)场次表是由影片表和影院表的多对多联系产生的,另外它还具有包括了其他信息。其他信息主要有放映室、语言、价格、放映日期、放映时间、已购座位号。详细说明如表3-3所示。 ​ 表 3-3 场次表(screen) | 序号 | 表字段 | 类型 | 详细说明 | | ---- | --------- | ------------ | ------------------------------------------------------------ | | 1 | sid | Int(11) | 场次ID号,主键 | | 2 | cid | Int(11) | 影院的ID号,外键 | | 3 | mid | Int(11) | 影片的ID号,外键 | | 4 | language | Varchar(255) | 场次播放的影片语言 | | 5 | price | float | 场次的价格 | | 6 | room | Varchar(255) | 场次的房间号 | | 7 | show_date | date | 播放日期 | | 8 | show_time | Varchar(255) | 播放时间 | | 9 | seat | Varchar(255) | 已购买的座位号 每个座位号用0和1表示 0:没有被购买 1:已经被购买 | (4)用户表是用来记录用户的基本信息的,主要有用户名、密码、手机号。另外还记录了用户的类型是普通用户还是管理员。详细说明如表3-4所示。 ​ 表 3-4 用户表(user) | 序号 | 表字段 | 类型 | 详细说明 | | ---- | -------- | ------------ | --------------------------------- | | 1 | uid | Int(11) | 用户ID号,主键 | | 2 | username | Varchar(255) | 用户名称 | | 3 | phone | Varchar(255) | 用户的手机号码 | | 4 | password | Varchar(255) | 用户的密码 | | 5 | type | Varchar(2) | 用户的类型 0:普通用户 1:管理员 | (5)订单表是由场次表和用户名的多对多联系产生的。由此产生的另外的信息还有座位号。详细说明如表3-5所示。 ​ 表3-5 订单表(flim_order) | 序号 | 表字段 | 类型 | 详细说明 | | ---- | ------ | ------------ | ------------------------------------------------------------ | | 1 | fid | Int(11) | 订单ID号,主键 | | 2 | sid | Int(11) | 场次ID号,外键 | | 3 | uid | Int(11) | 用户ID号,外键 | | 4 | seat | Varchar(255) | 购买的座位号 座位号用0和1对应 0:没有购买 1:购买了对应座位号 | ## 四、效果图预览 1
系统登录界面
1
系统首页
1
影片页面
1
影院页面
1
后台管理首页
1
场次管理界面
1
影片管理页面
1
影院管理页面
1
选票页面
1
订单页面