ImageVerifierCode 换一换
格式:DOC , 页数:30 ,大小:4.99MB ,
资源ID:8537534      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8537534.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(电影订票系统.doc)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

电影订票系统.doc

1、 电影订票系统 组长:王润森 组员:尹佩珊、谢楚璇、吴绮玲 完成日期: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、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模拟交易

3、过程 28 4系统报告测试 28 4.1存在问题以及解决方案 28 4.2不足 30 5小组详细分工 30 1系统使用说明及软件基本功能 1.1用户 1.1.1用户注册 功能介绍: 为用户提供一个注册会员的友好界面。 使用说明: 输入注册信息,包括用户名,用户密码,昵称,性别,邮箱,手机号码,邮箱,QQ号码。输入完成后点注册按钮完成注册。如果信息填写的格式不对,则无法完成注册,并返回提示信息。 图1-1-1用户注册界面 1.1.2用户登陆 功能介绍: 为用户提供一个登录界面。 使用说明: 输入帐号、密码均正确,才登录成功,否则登录失败,若用户名或者

4、密码为空,则返回提示信息。 图1-1-2用户登录界面 1.1.3浏览电影 功能介绍: 通过一个友好的欢迎界面显示可订票的电影信息,待上映的电影信息等。 使用说明: 电影按时间先后进行排列,用户可以了解各电影的放映顺序。页面左上角显示订票入口和修改个人信息入口。 图1-1-3电影的界面 1.1.4用户资料管理 功能介绍: 为用户提供修改个人资料的界面 使用说明: 此界面提供用户个人信息(包括用户名,用户密码,昵称,性别,邮箱,手机号码,邮箱,QQ号码)的完善与修改。用户密码采用的是MD5加密算法,修改密码时会弹出密码修改对话框,用户需要输入原始密码,新密码,还要进

5、行新密码确认,若原始密码错误,则返回提示信息并无法进行密码修改。 图1-1-4用户资料管理界面 1.1.5浏览电影简介 功能介绍: 为用户提供一个电影简介的页面,用户可以选择订购该影片,购买的票数,放映时间,放映厅都会在此页面显示。 使用说明: 用户可以查看电影库中所正在上映电影的介绍(包括导演,主演,时长,语言,类型,上映时间,票价,简介),可以在线订购。当用户点击选票按钮时,用户将被转到所选电影订购页面。 图1-1-5电影简介界面 1.1.6 观看预告片 功能介绍: 为用户提供观看预告片功能。 使用说明: 点击此按钮,用户可以观看电影的预告片,以此决定是否

6、购票。 图1-1-6观看预告片 1.1.7订购电影 功能介绍: 为用户提供选择观看座位,订购电影票的界面。 使用说明: 用户可以选择灰色座位,红色座位表示不可选,黄色座位表示已选。点击确认购买时,当用户选择完之后,将被转到售票处结算,并自动扣除金额。完成支付后,用户会收到支付成功短信,可凭借短信到前台取票。用户可点击取消订座按钮取消订座,但无法取消别人所订的票。 图1-1-7电影订票界面 1.2管理员 1.2.1后台用户登录 功能介绍: 后台用户即系统管理员,系统管理员将通过专有的入口登录到该系统,对用户不可见。 使用说明: 管理员通过输入账号、密码进入系统管

7、理界面,成功登陆之后,可对电影票的信息进行操作、管理及对电影进行更新等操作。 1.2.2后台管理员主页 功能介绍: 为管理员提供一个对电影信息的综合管理平台 使用说明: 电影按时间先后进行排列,管理员可以了解各电影的放映顺序,每部电影下方均提供更新和删除入口。页面左上角显示现场购票入口、修改个人信息入口和增加电影入口。 图1-2-1管理员界面 1.2.3增加电影 功能介绍: 为管理员提供一个增加电影的界面 使用说明: 点击“增加电影”按钮进入该页面,填写电影的详细信息,上传电影海报,点击下方“增加”按钮即可成功增加一部电影。 图1-2-2管理员增加电影的界面

8、1.2.4更新电影页面 功能介绍: 为管理员提供一个可以修改电影详细信息、更新电影上映场次的界面。 使用说明: 1. 点击电影下方“更新”按钮进入该页面,可以对电影详细信息进行修改,修改完毕点击“更新”按钮即可保存。通过下方对放映厅的选择和对上映日期和开始时间(结束时间会根据电影时长自动进行更新)的填写,点击“新增”按钮及可增加该电影的上映场次。 【假如上映时间在当前时间之前,则提示管理员重新输入。】 图1-2-3管理员更新电影的界面(1) 2. 若要删除该电影的某个上映场次,点击该上映场次的“删除”按钮即可成功删除。【假如已有订座,则无法删除。】 图1-2-4管理员更新

9、电影的界面(2) 3. 若填写了新增的上映场次,没有点击“新增”按钮,却点击了“删除”按钮,则会弹出“没有更新…怎么删除…”的提醒窗口。 图1-2-5管理员更新电影的界面(3) 1.2.5删除电影 功能介绍: 为管理员提供一个删除电影的入口 使用说明: 点击待删除电影下方的“删除”按钮,在弹出的窗口中点击“是”即可成功删除该电影。【假如已有订座则无法删除,若所有排期均无订座,则可连同电影、排期一同删除。】 图1-2-6管理员删除电影的界面 1.2.6座位管理 功能介绍: 为管理员提供一个管理座位的界面 使用说明: 1. 若管理员发现某个座位是不可用的,则选中该

10、座位,点击右下角“设置为不可用”按钮,即可把该座位设置为不可用,颜色显示为红色。 图1-2-7座位管理界面(1) 2. 若需要把某个不可用的座位设置为可用,即选中该座位,点击右下角“设置为不可用”按钮,即可把该座位设置为可用,颜色显示为灰色。 图1-2-8座位管理界面(2) 1.2.7 插入预告片 功能介绍: 管理员可插入预告片供观众观看。 使用说明: 点击“插入预告片”按钮进入该页面,从本机中选中视频便可将视频文件名插入到数据库里面,并复制预告片文件到本目录下。 图1-2-9插入预告片 1.2.8现场订票 功能介绍: 为管理员提供一个替用户现场选票的页面。

11、 使用说明: 点击“购票”按钮进入该页面,选中座位,点击下方“订座”按钮成功购票,在弹出的窗口中点击“确定”按钮即可。该座位颜色改为黄色,意为该座位以被选中。 图1-2-10 现场订票界面 1.3功能结构图 图1-3-1用户功能结构 图1-3-2管理员功能结构 2数据库设计 2.1数据字典 2.1.1数据项 客户信息表(customers) 字段 类型 允许为空 是否为主键 描述 c_id varchar(20) 否 主键 客户账号 c_passward varchar(20) 否 否 客户密码 c_name varchar(2

12、0) 否 否 客户名字 sex varchar(2) 是 否 客户性别 phone varchar(30) 否 否 客户电话 email varchar(40) 是 否 客户邮箱 qq varchar(20) 是 否 客户qq号 电影信息表(films) 字段 类型 允许为空 是否为主键 描述 f_id int 否 主键 电影编号 f_name varchar(50) 否 否 电影名 star varchar(100) 是 否 主演 director varchar(30) 是 否 导演 d

13、uration varchar(10) 是 否 片长 languages varchar(20) 是 否 语言 f_type varchar(50) 是 否 类型 descriptions varchar(1000) 是 否 简介 price int 是 否 价格 poster image 是 否 电影海报 startdate date 是 否 上映日期 prevue_path varchar(500) 是 否 预告片 排期信息表(schedules) 字段 类型 允许为空 是否为主键 描述 sch

14、id int 否 主键 排期编号 f_id int 是 外键 电影编号 h_id int 否 否 放映厅号 dates date 否 否 放映日期 start_hr varchar(2) 否 否 放映开始的小时 start_min varchar(2) 否 否 放映开始的分钟 end_hr varchar(2) 否 否 放映结束的小时 end_min varchar(2) 否 否 放映结束的分钟 座位信息表(seats) 字段 类型 允许为空 是否为主键 描述 s_id int 否 主键

15、座位编号 sch_id int 否 外键 排期编号 row int 是 否 第i排 col int 是 否 第i列 isActive bit 是 否 是否已订 订单信息表(orders) 字段 类型 允许为空 是否为主键 描述 o_id int 否 主键 订单编号 c_id varchar(20) 否 外键 客户账号 sch_id Int 否 外键 排期编号 s_id Int 否 外键 座位编号 way_of_payment varchar(40) 否 否 支付方式 dates dat

16、e 否 否 订单日期 2.1.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、poster、startdate、prevue_path schedules sch_id、f_id、h_id、dates、start_hr、start_min、end_hr、end_min seats s_id、sch_id、row、col、isA

17、ctive orders o_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、poster、startdate、prevue_path) schedules(sch_id、f_id、h_id、d

18、ates、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 [CinemaBookingSys

19、tem] 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 N

20、ULL, [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] [varc

21、har](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 OF

22、F 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)

23、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 [PR

24、IMARY] ) 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]

25、[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, S

26、TATISTICS_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

27、 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_D

28、UP_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]

29、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_N

30、ORECOMPUTE = 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

31、[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__173876EA] Script Date: 12/07/201

32、3 14:37:50 ******/ ALTER TABLE [dbo].[schedules] WITH CHECK ADD CONSTRAINT [CK__schedules__end_h__173876EA] CHECK (([end_hr]>=(0) AND [end_hr]<(24))) GO ALTER TABLE [dbo].[schedules] CHECK CONSTRAINT [CK__schedules__end_h__173876EA] GO /****** Object: Check [CK__schedules__end_m__182C9B23]

33、 Script Date: 12/07/2013 14:37:50 ******/ ALTER TABLE [dbo].[schedules] WITH CHECK ADD CONSTRAINT [CK__schedules__end_m__182C9B23] CHECK (([end_min]>=(0) AND [end_min]<(60))) GO ALTER TABLE [dbo].[schedules] CHECK CONSTRAINT [CK__schedules__end_m__182C9B23] GO /****** Object: Check [CK__s

34、chedules__start__15502E78] Script Date: 12/07/2013 14:37:50 ******/ ALTER TABLE [dbo].[schedules] WITH CHECK ADD CONSTRAINT [CK__schedules__start__15502E78] CHECK (([start_hr]>=(0) AND [start_hr]<(24))) GO ALTER TABLE [dbo].[schedules] CHECK CONSTRAINT [CK__schedules__start__15502E78] GO

35、/****** Object: Check [CK__schedules__start__164452B1] Script Date: 12/07/2013 14:37:50 ******/ ALTER TABLE [dbo].[schedules] WITH CHECK ADD CONSTRAINT [CK__schedules__start__164452B1] CHECK (([start_min]>=(0) AND [start_min]<(60))) GO ALTER TABLE [dbo].[schedules] CHECK CONSTRAINT [CK__sc

36、hedules__start__164452B1] GO /****** Object: ForeignKey [FK__orders__c_id__6383C8BA] Script Date: 12/07/2013 14:37:50 ******/ ALTER TABLE [dbo].[orders] WITH CHECK ADD CONSTRAINT [FK__orders__c_id__6383C8BA] FOREIGN KEY([c_id]) REFERENCES [dbo].[customers] ([c_id]) ON DELETE CASCADE GO

37、ALTER TABLE [dbo].[orders] CHECK CONSTRAINT [FK__orders__c_id__6383C8BA] GO /****** Object: ForeignKey [FK__orders__s_id__656C112C] Script Date: 12/07/2013 14:37:50 ******/ ALTER TABLE [dbo].[orders] WITH CHECK ADD CONSTRAINT [FK__orders__s_id__656C112C] FOREIGN KEY([s_id]) REFERENCES [dbo

38、].[seats] ([s_id]) ON DELETE CASCADE GO ALTER TABLE [dbo].[orders] CHECK CONSTRAINT [FK__orders__s_id__656C112C] GO /****** Object: ForeignKey [FK__orders__sch_id__6477ECF3] Script Date: 12/07/2013 14:37:50 ******/ ALTER TABLE [dbo].[orders] WITH CHECK ADD CONSTRAINT [FK__orders__sch_id_

39、6477ECF3] FOREIGN KEY([sch_id]) REFERENCES [dbo].[schedules] ([sch_id]) ON DELETE CASCADE GO ALTER TABLE [dbo].[orders] CHECK CONSTRAINT [FK__orders__sch_id__6477ECF3] GO /****** Object: ForeignKey [FK__schedules__f_id__1920BF5C] Script Date: 12/07/2013 14:37:50 ******/ ALTER TABLE [dbo]

40、[schedules] WITH CHECK ADD CONSTRAINT [FK__schedules__f_id__1920BF5C] FOREIGN KEY([f_id]) REFERENCES [dbo].[films] ([f_id]) ON DELETE CASCADE GO ALTER TABLE [dbo].[schedules] CHECK CONSTRAINT [FK__schedules__f_id__1920BF5C] GO /****** Object: ForeignKey [FK_seats_schedules] Script Date:

41、 12/07/2013 14:37:50 ******/ ALTER TABLE [dbo].[seats] WITH CHECK ADD CONSTRAINT [FK_seats_schedules] FOREIGN KEY([sch_id]) REFERENCES [dbo].[schedules] ([sch_id]) GO ALTER TABLE [dbo].[seats] CHECK CONSTRAINT [FK_seats_schedules] GO 3关键代码描述 3.1动态生成上映电影信息 先将所有电影加载到DataTable里面,再使用foreach从Da

42、taTable里面取出电影信息,每取得一条电影信息,则new一个放置电影海报的PictureBox和Text为电影名的Button(若身份为管理员,则还有更新和删除按钮)。手动设置控件的各种属性和事件,使用条件判断语句:if (xGap + x * (pb.Width + xGap) + pb.Width > panelOfGroupBox.Width)实现当电影在一行内放不下时(即大于panel的宽度),自动更改后面电影的Location,并且panel停靠在父窗口gb_Movies上,gb_Movies的Dock属性为Fill,并且窗体默认最大化且不能更改,从而实现了在不同屏幕大小的计算机

43、上运行都能有同样的效果(不会超出显示屏的宽度)。并能实现鼠标移动到图片上时放大图片效果和点击图片或按钮弹出电影详细信息窗口。 3.2选座窗口使用DataGridView控件显示座位信息 1. 由于考虑到直接将图片转化为二进制数据存进数据库作为座位的使用情况带来操作上的不方便以及空间上的浪费,本系统使用bit类型来储存座位使用的3种情况,分别是可选(Null表示)、不可选(0表示)、已选(1表示),其中“不可选”状态由管理员设定以灵活地使用座位(防止座位不存在或座位维修却被用户选中的情况的发生)。 2. 在显示座位使用情况下,本系统使用DataGridView控件,在窗体弹出后立即载入该排

44、期的详细信息(包括电影名、放映厅以及上映时间),并通过以上信息从数据库里面取出该排期的座位情况,再根据座位使用情况在DataGridView的单元格上增加图片,并根据座位的数量动态增加DataGridView的行数(1行10个座位,超出则新增一行)。 3. 当用户选了座位后,重新加载座位表更新座位信息,并在选座中加入了并发控制,一旦发现冲突,立刻回滚。 3.3控制电影排期时间,避免冲突 1. 更新或新增电影排期前,先调用CheckScheduleRepetition()函数,从数据库里面取出上映日期和放映厅都相同而且满足一下3个条件之一的数据: ①新增电影的开始时间在已存在电影的开始时

45、间和结束时间之间;(新增电影的开始时间可等于已存在电影的结束时间,但不能等于已存在电影的开始时间。) 代码:(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 datet

46、ime),cast(convert(varchar(10),@StartHour+':'+@StartMinute+':00',108) as datetime))<0) ②新增电影的结束时间在已存在电影的开始时间和结束时间之间;(新增电影的结束时间可等于已存在电影的开始时间,但不能等于已存在电影的结束时间。) 代码:(datediff(mi,cast(convert(varchar(10),end_hr+':'+end_min+':00',108) as datetime),cast(convert(varchar(10),@EndHour+':'+@EndMinute+':00',10

47、8) as datetime))<=0 and datediff(mi,cast(convert(varchar(10),Start_hr+':'+Start_min+':00',108) as datetime),cast(convert(varchar(10),@EndHour+':'+@EndMinute+':00',108) as datetime))>0) ③新增电影的开始时间在已存在电影的开始时间之前而且新增电影的结束时间在已存在电影的结束时间之后。 代码:(datediff(mi,cast(convert(varchar(10),end_hr+':'+end_min+':00

48、',108) as datetime),cast(convert(varchar(10),@EndHour+':'+@EndMinute+':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) 若取出来的count大于0,则电影排期存在冲突,弹出对话框提示管理员

49、只能由管理员添加电影排期。) 2. 由于数据库的开始小时和分钟采用字符串类型,因此需要使用函数cast(convert(varchar(10),Hour+':'+Minute+':00',108) as datetime)来将字符串转化为datetime类型,再用datediff函数进行比较。 3.4模拟交易过程 1. 为了模拟交易的过程,用户在确定了订单信息并确认支付后,本系统新开一个线程弹出一个窗口显示“正在支付…”并让系统睡眠1.5秒,然后更改Label信息为“正在发送短信…”并再次睡眠1.5秒,然后再将订单信息增加进数据库,并弹出“支付成功,你的订单号是XXX,可凭借短信到前

50、台取票”信息。 2. 假如登录者是管理员admin,则不执行该线程,直接弹出对话框“现场选座成功,你的订单号是XXX”信息。 4系统报告测试 4.1存在问题以及解决方案 1. 注册和更新同时判断用户是否存在 解决方案:将判断用户是否存在的函数BLL.Register.userRepetition(string account)从BLL层分离出来,单独加在注册中。 2. 电影排期时间冲突 解决方案:调用CheckScheduleRepetition()函数,从数据库里面取出上映日期和放映厅都相同而且满足一下3个条件之一的数据: ①新增电影的开始时间在已存在电影的开始时间和结束时间

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服