




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
组长:王润森组长:王润森 组员:尹佩珊、谢楚璇、吴绮玲组员:尹佩珊、谢楚璇、吴绮玲 完成日期:完成日期:2013 年年 12 月月 10 日星期二日星期二 电影订票系统 目录目录 1 系统使用说明及软件基本功能系统使用说明及软件基本功能 .3 1.1 用户.3 1.1.1 用户注册.3 1.1.2 用户登陆.4 1.1.3 浏览电影.4 1.1.4 用户资料管理.5 1.1.5 浏览电影简介.6 1.1.6 观看预告片.7 1.1.7订购电影.8 1.2 管理员.9 1.2.1 后台用户登录.9 1.2.2 后台管理员主页.9 1.2.3增加电影.10 1.2.4更新电影页面.11 1.2.5删除电影.13 1.2.6座位管理.14 1.2.7现场订票.15 1.2.8插入预告片.16 1.3 功能结构图.17 2 数据库设计数据库设计 .18 2.1 数据字典.18 2.1.1数据项.18 2.1.2数据结构.20 2.2 结构设计.20 2.2.1概念结构设计.20 2.2.2逻辑结构设计.21 2.2.3物理结构设计.21 3 关键代码描述关键代码描述.26 3.1 动态生成上映电影信息.26 3.2 选座窗口使用 DATAGRIDVIEW控件显示座位信息 .26 3.3 控制电影排期时间,避免冲突.26 3.4 模拟交易过程.28 4 系统报告测试系统报告测试.28 4.1 存在问题以及解决方案.28 4.2 不足.30 5 小组详细分工小组详细分工.30 1 系统使用说明系统使用说明及软件基本功能及软件基本功能 1.1 用户用户 1.1.11.1.1 用户注册用户注册 功能介绍功能介绍: 为用户提供一个注册会员的友好界面。 使用说明:使用说明: 输入注册信息,包括用户名,用户密码,昵称,性别,邮箱,手机号码,邮箱,QQ 号码。输入完成后点注册按钮完成注册。如果信息填写的格式不对,则无法完成注册,并 返回提示信息。 图 1-1-1 用户注册界面 1.1.21.1.2 用户登陆用户登陆 功能介绍:功能介绍: 为用户提供一个登录界面。 使用说明:使用说明: 输入帐号、密码均正确,才登录成功,否则登录失败,若用户名或者密码为空,则返 回提示信息。 图 1-1-2 用户登录界面 1.1.31.1.3 浏览电影浏览电影 功能介绍功能介绍: 通过一个友好的欢迎界面显示可订票的电影信息,待上映的电影信息等。 使用说明使用说明: 电影按时间先后进行排列,用户可以了解各电影的放映顺序。页面左上角显示订票入 口和修改个人信息入口。 图 1-1-3 电影的界面 1.1.41.1.4 用户资料管理用户资料管理 功能介绍功能介绍: 为用户提供修改个人资料的界面 使用说明使用说明: 此界面提供用户个人信息(包括用户名,用户密码,昵称,性别,邮箱,手机号码, 邮箱,QQ 号码)的完善与修改。用户密码采用的是 MD5 加密算法,修改密码时会弹出密 码修改对话框,用户需要输入原始密码,新密码,还要进行新密码确认,若原始密码错误, 则返回提示信息并无法进行密码修改。 图 1-1-4 用户资料管理界面 1.1.51.1.5 浏览电影简介浏览电影简介 功能介绍功能介绍: 为用户提供一个电影简介的页面,用户可以选择订购该影片,购买的票数,放映时间, 放映厅都会在此页面显示。 使用说明使用说明: 用户可以查看电影库中所正在上映电影的介绍(包括导演,主演,时长,语言,类型, 上映时间,票价,简介) ,可以在线订购。当用户点击选票按钮时,用户将被转到所选电影 订购页面。 图 1-1-5 电影简介界面 1.1.6 观看预告片观看预告片 功能介绍功能介绍: 为用户提供观看预告片功能。 使用说明使用说明: 点击此按钮,用户可以观看电影的预告片,以此决定是否购票。 图 1-1-6 观看预告片 1.1.7 订购电影订购电影 功能介绍功能介绍: 为用户提供选择观看座位,订购电影票的界面。 使用说明使用说明: 用户可以选择灰色座位,红色座位表示不可选,黄色座位表示已选。点击确认购买时, 当用户选择完之后,将被转到售票处结算,并自动扣除金额。完成支付后,用户会收到支 付成功短信,可凭借短信到前台取票。用户可点击取消订座按钮取消订座,但无法取消别 人所订的票。 图 1-1-7 电影订票界面 1.2 管理员管理员 1.2.11.2.1 后台用户登录后台用户登录 功能介绍功能介绍: 后台用户即系统管理员,系统管理员将通过专有的入口登录到该系统,对用户不可见。 使用说明:使用说明: 管理员通过输入账号、密码进入系统管理界面,成功登陆之后,可对电影票的信息进 行操作、管理及对电影进行更新等操作。 1.2.21.2.2 后台管理员主页后台管理员主页 功能介绍功能介绍: 为管理员提供一个对电影信息的综合管理平台 使用说明使用说明: 电影按时间先后进行排列,管理员可以了解各电影的放映顺序,每部电影下方均提供 更新和删除入口。页面左上角显示现场购票入口、修改个人信息入口和增加电影入口。 图 1-2-1 管理员界面 1.2.3 增加电影增加电影 功能介绍:功能介绍: 为管理员提供一个增加电影的界面 使用说明:使用说明: 点击“增加电影”按钮进入该页面,填写电影的详细信息,上传电影海报,点击下方 “增加”按钮即可成功增加一部电影。 图 1-2-2 管理员增加电影的界面 1.2.4 更新电影页面更新电影页面 功能介绍:功能介绍: 为管理员提供一个可以修改电影详细信息、更新电影上映场次的界面。 使用说明:使用说明: 1. 点击电影下方“更新”按钮进入该页面,可以对电影详细信息进行修改,修改完毕 点击“更新”按钮即可保存。通过下方对放映厅的选择和对上映日期和开始时间(结束时 间会根据电影时长自动进行更新)的填写,点击“新增”按钮及可增加该电影的上映场次。 【假如上映时间在当前时间之前,则提示管理员重新输入。 】 图 1-2-3 管理员更新电影的界面(1) 2. 若要删除该电影的某个上映场次,点击该上映场次的“删除”按钮即可成功删除。 【假如已有订座,则无法删除。 】 图 1-2-4 管理员更新电影的界面(2) 3. 若填写了新增的上映场次,没有点击“新增”按钮,却点击了“删除”按钮,则会 弹出“没有更新怎么删除”的提醒窗口。 图 1-2-5 管理员更新电影的界面(3) 1.2.5 删除电影删除电影 功能介绍:功能介绍: 为管理员提供一个删除电影的入口 使用说明:使用说明: 点击待删除电影下方的“删除”按钮,在弹出的窗口中点击“是”即可成功删除该电 影。 【假如已有订座则无法删除,若所有排期均无订座,则可连同电影、排期一同 删除。 】 图 1-2-6 管理员删除电影的界面 1.2.6 座位管理座位管理 功能介绍:功能介绍: 为管理员提供一个管理座位的界面 使用说明:使用说明: 1. 若管理员发现某个座位是不可用的,则选中该座位,点击右下角“设置为不可用” 按钮,即可把该座位设置为不可用,颜色显示为红色。 图 1-2-7 座位管理界面(1) 2. 若需要把某个不可用的座位设置为可用,即选中该座位,点击右下角“设置为不可 用”按钮,即可把该座位设置为可用,颜色显示为灰色。 图 1-2-8 座位管理界面(2) 1.2.7 插入预告片插入预告片 功能介绍:功能介绍: 管理员可插入预告片供观众观看。 使用说明:使用说明: 点击“插入预告片”按钮进入该页面,从本机中选中视频便可将视频文件名插入到数 据库里面,并复制预告片文件到本目录下。 图 1-2-9 插入预告片 1.2.8 现场订票现场订票 功能介绍:功能介绍: 为管理员提供一个替用户现场选票的页面。 使用说明:使用说明: 点击“购票”按钮进入该页面,选中座位,点击下方“订座”按钮成功购票,在弹出 的窗口中点击“确定”按钮即可。该座位颜色改为黄色,意为该座位以被选中。 图 1-2-10 现场订票界面 1.3 功能结构图功能结构图 图 1-3-1 用户功能结构 图 1-3-2 管理员功能结构 2 数据库设计数据库设计 2.1 数据字典数据字典 2.1.1 数据项数据项 客户信息表(customers) 字段类型允许为空是否为主键描述 c_idvarchar(20)否主键客户账号 c_passwardvarchar(20)否否客户密码 c_namevarchar(20)否否客户名字 sexvarchar(2)是否客户性别 phonevarchar(30)否否客户电话 emailvarchar(40)是否客户邮箱 qqvarchar(20)是否客户 qq 号 电影信息表(films) 字段类型允许为空是否为主键描述 f_idint否主键电影编号 f_namevarchar(50)否否电影名 starvarchar(100)是否主演 directorvarchar(30)是否导演 durationvarchar(10)是否片长 languagesvarchar(20)是否语言 f_typevarchar(50)是否类型 descriptionsvarchar(1000)是否简介 priceint是否价格 posterimage是否电影海报 startdatedate是否上映日期 prevue_pathvarchar(500)是否预告片 排期信息表(schedules) 字段类型允许为空是否为主键描述 sch_idint否主键排期编号 f_idint是外键电影编号 h_idint否否放映厅号 datesdate否否放映日期 start_hrvarchar(2)否否放映开始的小时 start_minvarchar(2)否否放映开始的分钟 end_hrvarchar(2)否否放映结束的小时 end_minvarchar(2)否否放映结束的分钟 座位信息表(seats) 字段类型允许为空是否为主键描述 s_idint否主键座位编号 sch_idint否外键排期编号 rowint是否第 i 排 colint是否第 i 列 isActivebit是否是否已订 订单信息表(orders) 字段类型允许为空是否为主键描述 o_idint否主键订单编号 c_idvarchar(20)否外键客户账号 sch_idInt否外键排期编号 s_idInt否外键座位编号 way_of_paymen t varchar(40)否否支付方式 datesdate否否订单日期 2.1.2 数据结构数据结构 数据结构名组成 customersc_id、c_password、c_name、sex、phone、email、qq filmsf_id、f_name、star、director、duration、languages、f_type、descripti ons、price、poster、startdate、prevue_path schedulessch_id、f_id、h_id、dates、start_hr、start_min、end_hr、end_min seatss_id、sch_id、row、col、isActive orderso_id、c_id、sch_id、s_id、way_of_payment、dates 2.2 结构设计结构设计 2.2.1 概念结构设计概念结构设计 E-R 图图 2.2.2 逻辑结构设计逻辑结构设计 关系模式关系模式 customers(c_id、c_password、c_name、sex、phone、email、qq) films(f_id、f_name、star、director、duration、languages、f_type、descriptions、price、p oster、startdate、prevue_path) schedules(sch_id、f_id、h_id、dates、start_hr、start_min、end_hr、end_min) seats(s_id、sch_id、h_id、row、col、isActive) orders(o_id、c_id、sch_id、s_id、way_of_payment、dates) 2.2.3 物理结构设计物理结构设计 建表代码建表代码 USE master GO /* Object: Database CinemaBookingSystem Script Date: 12/07/2013 14:40:28 */ CREATE DATABASE CinemaBookingSystem GO USE CinemaBookingSystem GO /* Object: Table dbo.films Script Date: 12/07/2013 14:37:50 */ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE dbo.films( f_id int IDENTITY(1,1) NOT NULL, f_name varchar(50) NOT NULL, star varchar(100) NULL, director varchar(30) NULL, duration varchar(10) NULL, languages varchar(20) NULL, f_type varchar(50) NULL, descriptions varchar(1000) NULL, price int NULL, poster image NULL, startdate date NULL, prevue_path varchar(500) NULL, CONSTRAINT PK_films_2911CBED03317E3D PRIMARY KEY CLUSTERED ( f_id ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY ) ON PRIMARY TEXTIMAGE_ON PRIMARY GO SET ANSI_PADDING OFF GO /* Object: Table dbo.customers Script Date: 12/07/2013 14:37:50 */ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE dbo.customers( c_id varchar(20) NOT NULL, c_password varchar(20) NOT NULL, c_name varchar(20) NOT NULL, sex varchar(2) NULL, phone varchar(30) NOT NULL, email varchar(40) NULL, qq varchar(20) NULL, PRIMARY KEY CLUSTERED ( c_id ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY ) ON PRIMARY GO SET ANSI_PADDING OFF GO /* Object: Table dbo.schedules Script Date: 12/07/2013 14:37:50 */ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE dbo.schedules( sch_id int IDENTITY(1,1) NOT NULL, f_id int NOT NULL, h_id int NULL, dates date NULL, start_hr varchar(2) NULL, start_min varchar(2) NULL, end_hr varchar(2) NULL, end_min varchar(2) NULL, CONSTRAINT PK_schedule_9A5C8C7C1367E606 PRIMARY KEY CLUSTERED ( sch_id ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY ) ON PRIMARY GO SET ANSI_PADDING OFF GO /* Object: Table dbo.seats Script Date: 12/07/2013 14:37:50 */ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE dbo.seats( sch_id int NOT NULL, s_id int IDENTITY(1,1) NOT NULL, row int NULL, col int NULL, isActive bit NULL, CONSTRAINT PK_seats_2F3684F40EA330E9 PRIMARY KEY CLUSTERED ( s_id ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY ) ON PRIMARY GO /* Object: Table dbo.orders Script Date: 12/07/2013 14:37:50 */ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE dbo.orders( o_id int IDENTITY(1,1) NOT NULL, c_id varchar(20) NOT NULL, way_of_payment varchar(40) NOT NULL, dates date NOT NULL, sch_id int NOT NULL, s_id int NOT NULL, CONSTRAINT PK_orders_904BC20E619B8048 PRIMARY KEY CLUSTERED ( o_id ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY ) ON PRIMARY GO SET ANSI_PADDING OFF GO /* Object: Check CK_customers_sex_1DB06A4F Script Date: 12/07/2013 14:37:50 */ ALTER TABLE dbo.customers WITH CHECK ADD CHECK (sex=男? OR sex=女) GO /* Object: Check CK_customers_sex_2F10007B Script Date: 12/07/2013 14:37:50 */ ALTER TABLE dbo.customers WITH CHECK ADD CHECK (sex= 男? OR sex=女) GO /* Object: Check CK_schedules_end_h_EA Script Date: 12/07/2013 14:37:50 */ ALTER TABLE dbo.schedules WITH CHECK ADD CONSTRAINT CK_schedules_end_h_EA CHECK (end_hr=(0) AND end_hr=(0) AND end_min=(0) AND start_hr=(0) AND start_min panelOfGroupBox.Width)实现当 电影在一行内放不下时(即大于panel的宽度) ,自动更改后面电影的Location,并且panel停 靠在父窗口gb_Movies上,gb_Movies的Dock属性为Fill,并且窗体默认最大化且不能更改, 从而实现了在不同屏幕大小的计算机上运行都能有同样的效果(不会超出显示屏的宽度) 。 并能实现鼠标移动到图片上时放大图片效果和点击图片或按钮弹出电影详细信息窗口。 3.2 选座窗口使用选座窗口使用 DataGridView 控件显示座位信息控件显示座位信息 1. 由于考虑到直接将图片转化为二进制数据存进数据库作为座位的使用情况带来操作上的 不方便以及空间上的浪费,本系统使用bit类型来储存座位使用的3种情况,分别是可选 (Null表示) 、不可选(0表示) 、已选(1表示) ,其中“不可选”状态由管理员设定以灵活 地使用座位(防止座位不存在或座位维修却被用户选中的情况的发生) 。 2. 在显示座位使用情况下,本系统使用DataGridView控件,在窗体弹出后立即载入该排期 的详细信息(包括电影名、放映厅以及上映时间) ,并通过以上信息从数据库里面取出该排 期的座位情况,再根据座位使用情况在DataGridView的单元格上增加图片,并根据座位的 数量动态增加DataGridView的行数(1行10个座位,超出则新增一行) 。 3. 当用户选了座位后,重新加载座位表更新座位信息,并在选座中加入了并发控制,一旦 发现冲突,立刻回滚。 3.3 控制电影排期时间,避免冲突控制电影排期时间,避免冲突 1. 更新或新增电影排期前,先调用CheckScheduleRepetition()函数,从数据库里面取出上映 日期和放映厅都相同而且满足一下3个条件之一的数据: 新增电影的开始时间在已存在电影的开始时间和结束时间之间;(新增电影的开始 时间可等于已存在电影的结束时间,但不能等于已存在电影的开始时间。 ) 代码:(datediff(mi,cast(convert(varchar(10),start_hr+:+start_min+:00,108) as datetime),cast(convert(varchar(10),StartHour+:+StartMinute+:00,108) as datetime)=0 and datediff(mi,cast(convert(varchar(10),End_hr+:+End_min+:00,108) as datetime),cast(convert(varchar(10),StartHour+:+StartMinute+:00,108) as datetime)0 and datediff(mi,cast(convert(varchar(10),Start_hr+:+Start_min+:00,108) as datetime),cast(convert(varchar(10),StartHour+:+StartMinute+:00,108) as datetime)=0 and datediff(mi,cast(convert(varchar(10),End_hr+:+End_min+:00,108) as datetime),cast(convert(varchar(10),StartHour+:+StartMinute+:00,108) as datetime)0 and datediff(mi,cast(convert(varchar(10),Start_hr+:+Start_min+:00
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三品人员岗位知识培训课件
- 2025年春期末测试-五年级数学试卷质量分析
- 盘锦公务员面试题目及答案精 编
- 平江地理面试全攻略:面试技巧与题目
- 职场必 备:荆州招商面试模拟题及答案集锦精 编版
- 小儿静脉留置针宣教课件
- 小儿重症监护室护士课件
- 小儿超声心动图课件
- 三体系新标培训课件
- 大班美术教案及教学反思《相框》
- 共青团中央所属事业单位2024年度社会公开招聘笔试备考题库参考答案详解
- 大学生创新创业基础(创新创业课程)完整全套教学课件
- 楼板下加钢梁加固施工方案
- 费森CRRT设备操作流程-CVVH
- (完整)医疗器械设计和开发一般过程-配全套表格模板
- 智能渔业养殖系统开发合同
- 组织行为学复习纲要冬课件
- TGDMDMA 0026-2023 牙科种植用导板
- 医院发生火灾的应急预案及处理流程
- LY/T 1828-2009黄连木栽培技术规程
- X射线衍射课件(XRD)
评论
0/150
提交评论