CH15-项目:影院售票系统
CH15-项目:影院售票系统
本章目标
- 完成影院售票系统
本章内容
项目技能训练点:
- 能够分析系统功能并合理提取对象和类
- 会使用类图理解类关系
- 会使用属性和方法构建类
- 会使用继承、多态实现良好复用和扩展性
- 会使用泛型集合
- 会使用枚举
- 会读取XML文件
- 会使用文件保存和恢复信息
任务描述:
- “广创影院”开始营业,需要一个售票系统
- 影院每天更新放映列表,系统支持实时查看:电影放映场次时间、电影概况
- 影院提供3类影票:普通票、赠票和学生票(赠票免费、学生票有不同折扣)
- 允许用户查看某场次座位售出情况
- 支持购票,并允许用户选座
- 用户可以选择场次、影票类型以及空闲座位进行购票,并打印电影票
- 系统可以保存销售情况,并允许对其进行恢复
- “广创影院”开始营业,需要一个售票系统
整体开发思路
系统开发步骤
难点分析:
业务理解
- 系统如何获得最新的放映列表?
- 如何实现?如何进行售票?流程是什么?
- 如何动态显示放映厅座位?如何控制颜色的变化体现座位“卖出”和“待卖”状态?
类关系(抽象出类)
- 电影类:Movie
- 放映日程类:Schedule
- 放映场次类:ScheduleItem
- 电影院类:Cinema
- 座位类:Seat
- 电影票父类:Ticket
- 学生票子类:StudentTicket
- 赠票子类:FreeTicket
- 工具类:TicketUtil
重要类分析
开发步骤
查看新放映列表
需求说明:
获取新放映列表
选择“获取新放映列表”
读取放映列表XML文件并将电影名称和放映时间显示在TreeView中
思路分析
- 编写相关类
- 电影类、放映日程类、放映场次类、电影院类
- 编写方法解析XML文件
- 编写方法初始化TreeView控件
- 编写窗体Load事件,初始化控件
- 编写相关类
查看电影介绍
需求说明
查看电影介绍
选择电影场次,“详情”面板显示电影详细信息
查看影票票价
需求说明
查看不同类型影票票价
选择“学生票”,“赠送者”不可用,“详情”面板中显示默认7折优惠价,选择不同的折扣,重新计算优惠价
选择“赠票”,“学生折扣”不可用,“详情”面板中显示优惠价为“0”
查看放映厅座位
需求说明
查看放映厅座位
窗体加载时,显示放映厅座位(5排7列)
购票
需求说明
- 购票选择电影场次、购票类型,点击放映厅某座位进行购票
思路分析
- 编写Ticket类及其子类
- 编写座位标签的Click事件响应lblSeat_Click
- 座位标签绑定lblSeat_Click事件
提示:
StudentTicket类和FreeTicket类继承Ticket类
子类重写父类实际票价的计算方法
TicketUtil工具类创建不同类型的影票对象
打印电影票
需求说明
打印影票
购票完毕,自动打印电影票,并标识所选座位为红色“已售出”状态
继续售票
需求说明
- 保存当前销售情况
- 选择“继续售票”,加载之前销售状况,可以查看座位售出情况
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 广创科技教育-Blog!
评论