为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

影院票务系统

2013-09-09 27页 doc 336KB 540阅读

用户头像

is_441183

暂无简介

举报
影院票务系统 XXX学院 软件设计与开发 设计题目: 电影院售票系统 专 业:   班  级: 系 别: 学 号: 姓 名: 学 号: 姓 名: 学 号: 姓 名: ...
影院票务系统
XXX学院 软件设计与开发 设计题目: 电影院售票系统 专 业:   班  级: 系 别: 学 号: 姓 名: 学 号: 姓 名: 学 号: 姓 名: 学 号: 姓 名: 科 目: 指导教师: 2 一、影院票务系统开发的需要分析 2 1.1影院票务系统开发的前景 2 1.2影院票务系统开发的必要性 2 1.3需求分析 3 1.3.1调查用户需求 5 1.3.2系统需求分析 5 1.4网上订票系统的优越性和实际应用价值 6 二、影院票务系统UML类图 6 2.1系统类图 7 2.2 系统概念模型 8 三、影院票务系统开发设计 8 3.1影院票务系统数据库分析 9 3.2.影院票务体统数据库设计 11 3.3影院票务系统数据库代码 14 四、影院票务系统具体分析设计 15 (1)系统总体的功能需求 15 (2)用户接口模块 15 (3)管理员接口模块 15 (4)数据服务模块 16 五、相关技术及知识点 16 5.1 用例建模 16 5.2 用例的定义 16 5.3构造用例图的步骤 17 5.3.1、管理员用例图 17 5.3.2、购票者用例图 17 5.4 RUP的核心工作流 18 5.5概念模型 18 5.6概念模型作用 18 5.7类图 18 5.8类的三个层次 19 5.9如何建立关联 19 5.10系统行为 19 5.11图 19 5.11协作图 19 5.11.1管理员协作图 20 5.11.2购票者协作图 20 5.12三层结构的优势 20 六、影院票务系统代码 20 6.1用户注册代码 21 6.2放映列表XML文件 21 6.3使用简单工厂创建不同的电影类别 22 6.4动态加载座位标签 24 6.5管理已卖出座位 27 七、参考文献 一、影院票务系统开发的需要分析 1.1影院票务系统开发的前景 当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。 管理信息系统是进行信息的采集、存储、加工、维护和使用的系统,它是随着管理科学和技术科学的发展而形成的。影院售票管理系统是一个经济社会不可缺少的部分,它的内容对于企业管理的决策者和管理者来说都至关重要,所以影院售票管理系统应该能够为用户提供充足的信息和快捷的查询手段,对用户来说可以轻松的查阅自己消费信息等。但是一直以来人们都是靠传统人工的方式管理影院售票,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对影院售票管理进行管理,有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高影院售票管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样的一套影院售票管理系统成为很有必要的事情。 影院售票管理系统提供了强大的管理功能,方便系统用户使用。 1.2影院票务系统开发的必要性 在21世纪的科技时代,科学技术突飞猛进,计算机已经不仅是在科技上应用,而且在生活中也是同样得到了广泛在应用。随着时间的变化,影院规模的扩大,有关售票管理工作和所涉及到的数据量越来越大越来越多,大多数影院不得不靠增加人力、物力、财力来进行售票管理。但是人工售票管理具有效率低、查找麻烦、可靠性不高、保密性低等因素。因此开发出一个适用于相当规模的影院售票管理系统是必要的。 开发一个影院售票管理系统,采用计算机对影院售票进行管理,进一步提高了影院的效益和现代化水平。为广大影院提高工作效率,实现影院售票工作流程的系统化、规范化和自动化。现在我国的很多影院的管理水平普遍都不是很高,有的还停留在全用纸介质基础上,这种管理方式已不能适应时代的发展,社会的需求,因为它浪费了大量的人力物力,也存在着许多不足的因素。在今天信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替。一个高效的影院售票管理系统可以存储很多影院售票档案,不需要大量的人力, 只需要几名专门录入员即可操作系统,节省大量人力,可以迅速查到所需信息、高效、安全。 1.3需求分析 具体而言,影院售票系统需要实现以下的需求: (1) 能够对播放电影,工作人员,售票事宜,检票事宜,无用数据进行处理。 (2) 售票管理自然有专人负责,要处理各电影的电影票销售问题。当然包括退票问题,还有就是预订电影票其实也就相当于买票。两者可以当一回事处理。 (3) 检票管理事宜要完成观众进场时检票的事宜。其中包括了电影票的真假问题。 (4) 数据管理要处理电影的播放的次序,工作人员的管理,以及过期电影票的处理问题。 1.3.1调查用户需求 ① 观众订票查询需求 订票功能:观众可以在浏览电影信息后根据自己的需要实现订票功能。 退订功能:如有需要遇突发情况,观众可以根据自己的需求来实现退订。 打印功能:观众可通过自己的打印机,打印出影票。 ② 影院管理需求 添加功能:各大影院管理这能够通过及时上传最新影片信息。 修改功能:通过修改功能,能及时更新影片信息及影院入座率情况。 删除功能:删除已经放映过的或者票已售完的影片信息。 ③ 票务查询需求 时间查询功能:观众可以按照自己用空的时间断,通过时间来选择自己空余时间所能观看的影片信息。 类别查询功能:观众可以按照影片类别,选择自己喜好类别的影片进行选择。 地点查询功能:观众可以根据自己所在地,选择就进影院进行影片的选择。 影片名查询功能:观众可以直接根据自己所喜好的电影,输入影片名称即可查询。 ④ 用户管理需求 注册用户功能:普通注册用户可执行,网络查询,网络预定等功能。 管理用户功能:为影院管理者专门设置用户,方便影院管理者及时更新影片信息。 密码找回动能:方便用户在遗忘了密码以后能够及时找回。 密码修改功能:方便用户修改账户密码,增强账户安全性。 ⑵ 分析用户需求 在详细调查了用户需求之后,就要开始分析用户需求。在此,我们采用自顶向下的结构化分析方法。首先,定义全局概念结构的框架,如图2所示。 图2影院票务管理系统总框架图 图3影院管理子系统的细化 图4用户管理子系统的细化 图5票务查询子系统的细化 图6票务预订子系统的细化 1.3.2系统需求分析 ☆提供系统人员基本信息的设置,包括添加、修改、删除、影片; ☆提供放映厅基本信息的设置,包括添加,修改、删除、以及座位的查询; ☆提供影片的的基本信息的设置,包括添加、修改、删除‘ ☆提供放映信息基本信息的设置,包括添加、修改、删除; ☆提供放映厅和影片广告的展示; ☆提供各种票务信息的组合查询,包括放映信息、订单、座位; ☆顾客可以预定影票,取消影票的预定; ☆顾客可以对预定影票进行付款,付款后不允许退票; ☆工作人员对订单的统计,并生成报表; ☆对影片进行评分和放映日期统计,展示给顾客看; ☆顾客可以对影片进行打分、评论。并将评分前十名的影片展示出来; 1.4网上订票系统的优越性和实际应用价值 建立基于WEB技术的网上订票系统把票券信息流(提供给用户的各种票券的信息,如机票、船票、公共汽车票的各种信息等)、商务流(由票券交易中伴随的购、销活动以及票券所有权的变化等一系列活动构成,商务流实现了实物所有权的交换)、以及资金流(在电子商务活动中,资金包括现金、支票甚至有价证券等等,是资金流的主要处理对象,它和付款、转帐等一系列处理过程真正构成了一个完整资金流。资金流实现了“资金”所有权的交换。)三种电子商务模型有机地结合起来,它具有传统的人工订票系统所不可比拟的优越性: ☆首先,它利用互联网的便利性,使人们可以实时地在线选购自己需要的旅游票券。这样避免了传统购票方式给人们带来的长途奔波、长时间排队的疲劳。 ☆其次,网上订票系统将人们实际的购票模式通过网络形象地模拟出来,人们在网上订票时如身临其境,并且能在任何时间选择自己所需的电影票券,这包括影片的类型、场次、座位等,并且可以获得一定的优惠票券,例如客户预定团体票时,都有可能享受优惠。 ☆再次,网上订票系统可以大大降低实际购票交易时间,提高工作效率。 ☆最后,售票系统可以及时地将数据信息完全共享给用户,用户无需再通过电话查询便可得到想要的具体票务信息,这样不仅提高了企业的服务质量,且更实际地解决了售票处/代售点电话咨询、场次表查询、订票等业务受理、投诉与建议等问题,从而提高用户对服务的满意度。 二、影院票务系统UML类图 2.1系统类图 2.2 系统概念模型 三、影院票务系统开发设计 3.1影院票务系统数据库分析 根据系统的功能分析结果,影院售票管理系统将会使用My SQL 5.0作为后台的数据库管理系统。本管理系统是应用于电影院中,而且需要和数据库之间进行频繁数据交换,所以采用My SQL 5.0作为后台的数据库管理系统。 在本管理系统中,需要掌握影库充实信息,职工管理信息,票务管理信息,此外,由于要进行职工管理,还需要掌握使用本系统的职工 3.2.影院票务体统数据库设计 电影信息表 Table_Movie 字段 数据类型 长度 是否主键 是否为空 描述 Movie_ID int 10 是 否 电影编号 Movie_Name varchar 20 否 电影名称 Movie_MainActores varchar 100 否 主要演员 Movie_Description varchar 2000 否 电影简介 Movie_Director varchar 20 否 导演 Movie _PlayDate date 20 否 上映日期 Movie_Producer varchar 20 否 制片厂 Movie_Type varchar 20 否 影片类型 Movie_Language int 4 否 影片语言 Movie_Model int 4 否 影片模式 订单信息表 Table_OrderHead 字段名称 数据类型 长度 是否主键 是否为空 描述 OrderHead_ID int 10 是 否 订单编号 OrderHead_BuyDate date 10 否 订单日期 OrderHead_Number int 2 否 订单数 Customer_ID int 10 否 顾客编号 OrderHead_TotalPrice int 8 否 订单总额 顾客信息表 Table_Customer 字段名称 数据类型 长度 是否主键 是否为空 描述 Coustmer_ID int 10 是 否 顾客编号 Coustmer_Name varchar 20 否 顾客姓名 座位表 Table_Seats 字段名称 数据类型 长度 是否主键 是否为空 描述 Seat_ID int 10 是 否 座位号 Price float 8 否 价格 SoldOrNot int 10 否 是否售出 电影票信息表 Table_Tickets 字段名称 数据类型 长度 是否主键 是否为空 描述 Ticket_ID int 10 是 否 电影票号 Seat_ID int 10 否 座位号 Movie_ID int 10 否 电影编号 Movie_Name varchar 20 否 电影名称 Movie_PlayDate date 10 否 上映时间 Price float 8 否 价格 Identifying_Code int 10 否 验证码 职工表 Table_Staff 字段名称 数据类型 长度 是否主键 是否为空 描述 Staff_ID int 10 是 否 职工编号 Password int 10 否 密码 3.3影院票务系统数据库代码 使用数据库连接的代码: package com.movie.tool; import java.sql.*; public class JDBConnection { private String dbDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; // 数据库的驱动 Private String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_shopping"; // URL地址 public Connection connection = null; public JDBConnection() { try { Class.forName(dbDriver).newInstance(); // 加载数据库驱动 connection = DriverManager.getConnection(url, "root", "root"); // 加载数据库 } catch (Exception ex) { System.out.println("数据库加载失败"); } } } 对管理员的操作 查询、修改、删除: package com.movie.dao; import java.sql.*; import java.util.*; import com.moviedomain.ManagerForm; import com.movietool.JDBConnection; //对管理员的操作 public class ManagerDao { private Connection connection = null; //定义连接的对象 private PreparedStatement ps = null; //定义预准备的对象 private JDBConnection jdbc = null; //定义数据库连接对象 public ManagerDao() { jdbc = new JDBConnection(); connection = jdbc.connection; //利用构造方法取得数据库连接 } //对管理员表的查询方法 public void insertManager(ManagerForm form) { try { ps = connection.prepareStatement("insert into tb_manager values (?,?,?,?)"); ps.setString(1, form.getAccount()); ps.setString(2, form.getPassword()); ps.setString(3, form.getName()); ps.setInt(4, 0); ps.executeUpdate(); ps.close(); } catch (SQLException ex) { } } //修改管理员密码的方法 public void updateManagerPassword(ManagerForm form) { try { ps = connection.prepareStatement("update tb_manager set password=? where account=?"); ps.setString(1, form.getPassword()); ps.setString(2,form.getAccount()); ps.executeUpdate(); ps.close(); } catch (SQLException ex) { } } //删除管理员的操作 public void deleteManager(Integer id) { try { ps = connection.prepareStatement("delete from tb_manager where id=?"); ps.setInt(1, id.intValue()); ps.executeUpdate(); ps.close(); } catch (SQLException ex) { } } //查询全部管理员的信息 public List selectManager() { List list = new ArrayList(); ManagerForm manager = null; try { ps = connection.prepareStatement("select * from tb_manager order by id DESC"); ResultSet rs = ps.executeQuery(); while (rs.next()) { manager = new ManagerForm(); manager.setId(Integer.valueOf(rs.getString(1))); manager.setAccount(rs.getString(2)); manager.setPassword(rs.getString(3)); manager.setName(rs.getString(4)); manager.setSigh(Integer.valueOf(rs.getString(5))); list.add(manager); } } catch (SQLException ex) { } return list; } //以管理员账号为条件查询管理员信息 public ManagerForm selectOne(String account) { ManagerForm manager = null; try { ps = connection.prepareStatement("select * from tb_manager where account=?"); ps.setString(1, account); ResultSet rs = ps.executeQuery(); while (rs.next()) { manager = new ManagerForm(); manager.setId(Integer.valueOf(rs.getString(1))); manager.setAccount(rs.getString(2)); manager.setPassword(rs.getString(3)); manager.setName(rs.getString(4)); manager.setSigh(Integer.valueOf(rs.getString(5))); } } catch (SQLException ex) { } return manager; } 创建数据库代码: create database `Movie theatre`character set utf8 ; 电影信息表: create table `Movie theatre`.`Table_Movie` ( `Movie_ID` int (10 ) NOT NULL , `Movie_Name` varchar (20) NOT NULL , `Movie_MainActores` varchar (100) NOT NULL , `Movie_Description` varchar (2000) NOT NULL , `Movie_Director` varchar (20) NOT NULL , `Movie_PlayDate` date NOT NULL , `Movie_Producer` varchar (20) NOT NULL , `Movie_Type` varchar (20) NOT NULL , `Movie_Language` int (4) NOT NULL , `Movie_Model` int (4) NOT NULL , PRIMARY KEY (`Movie_ID`)) 订单信息表: create table `Movie theatre`.` Table_OrderHead` ( `OrderHead_ID` int (10) NOT NULL , `OrderHead_Buy` date NOT NULL , `OrderHead_Number` int (2) NOT NULL , `OrderHead_TotalPrice` int (8) NOT NULL , `Customer` int (10) NOT NULL , PRIMARY KEY (`OrderHead_ID`)) 顾客信息表: create table `Movie theatre`.`Table_Customer` ( `Customer_ID` int (10) NOT NULL , `Customer_Name` varchar (20) NOT NULL , PRIMARY KEY (`Coustmer_ID`)) 座位表: create table `Movie theatre`.`Table_Seats` ( `Seat_ID` int (10) NOT NULL , `Price` float (8) NOT NULL , `SoldOrNot` int (10) NOT NULL , PRIMARY KEY (`Seat_ID`)) 电影票信息表: create table `Movie theatre`.`Table_Tickets` ( `Ticket_ID` int (10) NOT NULL , `Seat_ID` int (10) NOT NULL , `Movie_ID` int (10) NOT NULL , `Movie_Name` varchar (20) NOT NULL , `Movie_PlayDate` date NOT NULL , `Price` float (10) NOT NULL , `Identifying_Code` int (10) NOT NULL , PRIMARY KEY (`Ticket_ID`)) 职工表: create table `Movie theatre`.`Table_Staff` ( `Staff_ID` int (10) NOT NULL , `Password` int (10) NOT NULL , PRIMARY KEY (`Staff_ID`)); } 四、影院票务系统具体分析设计 售票管理系统是一个基于电影院工作人员的系统,不同类型的用户在系统中有不同的权限。主要有两种用户: 购票者:可以查询电影的上映时间,场次,并选择自己所需要的电影票,向售票员购买电影票。 管理员:主要负责将电影信息增加,修改,删除,并导入数据库。 (1)系统总体的功能需求 影院售票系统是一个复杂的电子商务系统,它必须提供用户的接口以供用户登录并选择影票;同时还必须提供系统的管理接口以供管理员和一般的网站工作人员处理客户订单并维护网站正常运作。 图3-3-1 系统总体功能需求框图 (2)用户接口模块 用户接口是网站用户使用影院售票系统服务的入口,所有的在线用户都通过浏览登录网站,并进行一系列的查询,订购操作。用户接口模块包括了用户信息维护、商品查询、订购商品和订单维护4个部分。用户登录系统后,用户ID将会被保存在服务器的缓存中,用户在系统中所做的操作,包括查询、订购等都将被系统存储在数据库中,以供系统那个进行销售情况以及销售走势分析。 (3)管理员接口模块 这是系统提供给网站维护和管理人员的接口。管理员接口模块包括商品信息维护、内部员工信息维护、订单处理、销售情况查询、报表维护5个部分。网站的一般工作人员通常只具有订单处理的权限,他们获得用户提交的订单,并根据库存情况来决定发货或者推迟发货。网站的管理员具有所有的管理权限,可以处理客户的订单,可以阅览网站商品的销售情况、销售走势,以便根据不同的情况及时的调整经营战略,将库存成本和资金占有用率降到最低的限度。 (4)数据服务模块 数据服务器模块是系统正常运行的基础,包括客户的查询,定单的保存;网站工作人员的定单处理;网站管理员的销售情况查询与分析。 五、相关技术及知识点 5.1 用例建模 用例建模是需求工程的一种形式,是抽取和文档化需求的补充方法 相对于“传统”SRS方法 用例是Jacobson在面向对象的软件工程中提出的,但它实际上是独立于面向对象的。 典型用例建模方法:1)找出系统边界。2)找出参与者。3)找出用例(包括说明用例,创建场景) 5.2 用例的定义 定义:由系统执行的一个动作序列,并能产生可观测的结果值给特定的角色。如: 从ATM机提取现金; 定购一个商品; 从学校选课系统注册选课; 从文本编辑器中检查一个文档的拼写错误; 用例命名:(状语+)动词+(定语+)宾语 5.3构造用例图的步骤 1.确定系统的上下文: 1.1 确定参与者与它们的责任; 1.2 确定用例,即确定带有某种目的或产生特定结果的系统行为。 2.对参与者和用例进行权衡,以便精化模型,例如拆分和合并定义。 3.衡量用例以找出包含关系。 4.衡量用例以找出扩展关系。 5.对参与者和用例进行研究,查找是否存在泛化关系。 5.3.1、管理员用例图 5.3.2、购票者用例图 5.4 RUP的核心工作流 (1)6个核心工程工作流: 需求工作流分析和设计工作流 实现工作流 测试工作流 分发工作流 (2)3个核心支持工作流: 项目管理工作流 配置和变更控制工作流 环境工作流 5.5概念模型 概念模型:展现了问题域中有意义的概念,是OOA中要得到的最重要的制品。 是真实世界中各个事物的代表,而不是软件中各个构件的代表。 概念模型包括: 1、一组概念; 2、概念之间的关联; 3、概念的属性; 5.6概念模型作用 概念模型的作用:将问题域空间分解成小的单元(概念);帮助澄清领域中的术语和词汇(有哪些重要术语、以及术语之间的关系如何)。 5.7类图 类图描述了系统中的类及其相互之间的各种关系。 类之间的关系表示了对象之间的通信能力。 类之间有三种关系: -关联(包括聚合和组合) -继承 -依赖 5.8类的三个层次 -Conceptual:概念层。描述问题域中的概念,不考虑或很少考虑实现上的细节-No Software。只考虑属性,在分析阶段使用。 -Specification:说明层。Looking into Software,but only interface of the software, not the implementation. Only type, not class。增加操作定义,在设计阶段使用。 -Implementation: 实现层。只有当使用某一具体技术进行设计时使用。在设计阶段使用。 5.9如何建立关联 添加关联应细到什么程度 1、在建立概念模型时主要时间花费在识别问题域概念上,而不是识别关联上。 2、关联太多不仅不能有效展示概念模型,反而会使模型混乱。 3、概念模型概念间的关联是从纯分析角度声明有意义的概念间的联系,不需要考虑如何实现关联。 4、分析阶段得到的关联可能在设计阶段发现是无用的;设计阶段有可能发现分析阶段遗漏了有些概念间的关联。 5.10系统行为 在进行系统逻辑设计之前,必须先调查系统的行为,即将系统看作一个黑盒子,描述系统要“做什么”,而不是“怎么做”。 定义系统行为的两种手段:系统顺序图和契约。 5.11图 展示了一个特殊的用例场景中外部参与者发起的事件以及事件的顺序。在顺序图中,所有的系统都被当成黑盒子对待,顺序图的重点是参与者发起的跨越系统边界的事件。 建立系统顺序图要依赖于前面已经建立起来的用例描述。 5.11协作图 1、每一个系统操作建立一张协作图,其中每个系统操作作为这张单独的图的起始消息。 2、若所绘出的图太复杂,那么可以将这个大图分成若干小图。 3、使用操作契约和契约的后置条件以及用例描述文档作为起点来设计系统。识别对象、给对象分配职责、利用GRASP和系统模式来优化设计。 5.11.1管理员协作图 5.11.2购票者协作图 5.12三层结构的优势 便于统一安装和维护,客户端几乎零维护。 2.表示层、应用逻辑层、存储层比较独立,可以 分别进行修改和升级。3.便于组件共享和升级。4.方便对应用逻辑单独进行升级和修改。5.可以采用中间件技术,实现负载平衡。6.在复杂情况下具有很高的运行效率和稳定性。7.完整的事物处理能力和简单的编程接口。8.简化应用逻辑的编程,不关心存储的细节。 六、影院票务系统代码 6.1用户注册代码 Conn ds1=new Conn(); //调用数据访问类 ds1.DBopen(); string name=userName.Text.Trim(); //用户名 string pass=System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(passWord.Text.Trim(), "MD5") ; //用户密码 //通过HashPasswordForStoringInConfigFile()方法实现MD5加密解密算法 string strSql="select * from Table_Customer where Customer_Name='"+name+"'"; ds1.DBopen(); OleDbDataReader rd=ds1.ExecuteOleDbDataReader(strSql); if (rd.Read()==true) //读取DataReader中下一条记录时有相同记录 { ds1.alert("已存在此用户名,请用其它","reg.jsp"); rd.Close(); } else { rd.Close(); int result=ds1.ExecuteSql("insert into Lb_Staff(Customer_Name,Customer_Password)values('"+name+"','"+password+"')"); if(result>0) //添加数据成功 { ds1.alert("注册成功,请登陆","index.jsp"); } else { ds1.alert("注册失败","reg.jsp"); } } ds1.DBclose(); 6.2放映列表XML文件 功夫 gongfu.jpeg 周星驰 周星驰 Action 60 8-00 9-45 10-00 11-45 //省略其它电影... 6.3使用简单工厂创建不同的电影类别 public static Ticket CreateTicket(ScheduleItem scheduleItem, Seat seat, int discount,string customerName, string type) { Ticket newTicket = null; switch (type) { case "student": newTicket = new StudentTicket(scheduleItem, seat, discount); 6.4动态加载座位标签 for (int i = 0; i < seatRow; i++) { for (int j = 0; j < seatLine; j++) { label = new Label(); //设置Label的各种属性 省略 ,参考示例代码 label.Name = "lbl" + (j + 1).ToString() + "_" + (i + 1).ToString(); label.Size = new System.Drawing.Size(50, 25); label.Text = (j + 1).ToString() + "-" + (i + 1).ToString(); label.TextAlign = ContentAlignment.MiddleCenter; label.Location = new Point(60 + (i * 90), 60 + (j * 60)); label.Click += new System.EventHandler(lblSeat_Click); tb.Controls.Add(label); labels.Add(label.Text, label); seat = new Seat((j + 1).ToString() + "-" + (i + 1).ToString(), Color.Yellow); cinema.Seats.Add(seat.SeatNum, seat); } } break; case "free": newTicket = new FreeTicket(scheduleItem, seat, customerName); break; case "": newTicket = new Ticket(scheduleItem, seat); break; } return newTicket; } 6.5管理已卖出座位 /// /// 清空座位 /// private void ClearSeat() { foreach (Seat seat in cinema.Seats.Values) { seat.Color = Color.Yellow; } } //遍历该场电影的座位销售情况 foreach (Ticket ticket in cinema.SoldTickets) { foreach (Seat seat in cinema.Seats.Values) { if ((ticket.ScheduleItem.Time == key) &&(ticket.Seat.SeatNum == seat.SeatNum)) { seat.Color = Color.Red; } } } /// /// 更新座位状态 /// private void UpdateSeat() { foreach (string key in cinema.Seats.Keys) { labels[key].BackColor = cinema.Seats[key].Color; } } 座位记录的主题程序: 七、参考文献 [1] 国刚,周峰,孙更新,《UML与Rational Rose 2003》,电子工业出版社,2007年4月 [2]杨水清:《Java Script动态网页开发详解》[M],电子工业出版 [3]肖慎勇:《SQL Server 数据库管理与开发》[M],清华大学出版 [4]唐学忠:《SQL Server 2000 数据库教程》[M],电子工业出版 [5]朱少林:《电子商务概论》[M],清华大学出版 [6]朱印宏、熊利荣:《Dreamweaver 8 完美网页设计—ASP动态网页设计篇》[M],中国电力出版 2、查询订单消息 1、验证购票者身份 6、售票 7、更新电影信息 4、出售电影票 3、找到订单消息 Inerst Title 售票窗口 出售电影票 Reservation 5、订票 6、更新座位信息 1、登录订票 系统 3、处理订票信息 4、检查已有座位是否减少 2、查看已有电影票信息 购票者 intermediate title 订票口 Buy Tickets 查询已有电影信息 0
/
本文档为【影院票务系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索
    座位号:
    (*不能在此修改座位号,如要修改则需要删除后再添加)
    顾客姓名:
    数量: