在第二阶段的结果演示中,我们关注的是"青鸟影院"的影院售票系统(MyCinema),该系统采用多种技术实现功能并解决特定需求。以下是关键知识点的详细说明:
1. **XML与TreeView展示**:
- 系统利用XML(可扩展标记语言)来存储影院放映列表,如示例中的`<ShowList>`标签下包含了电影的信息,如电影名、海报、导演、演员类型、票价以及放映时间。这些数据通过TreeView控件展示给用户,以便于查找和选择电影。
2. **泛型集合与继承关系**:
- 为了管理有继承关系的电影票对象,系统采用了泛型集合,允许父类(如普通票)实例化其子类,如不同类型(如普通票、赠票或学生票)的电影票。
3. **简单工厂模式**:
- 电影票的创建采用简单工厂模式,可以根据用户的需求(如类型)动态创建相应的电影票对象,提高了代码的灵活性和可扩展性。
4. **多态与价格计算**:
- 不同类型的电影票通过多态实现价格计算,意味着每种票种有自己的价格计算逻辑,但统一由相同的接口调用,保持了代码的简洁和复用。
5. **接口实现打印**:
- 电影票的打印功能是通过接口来完成的,这确保了所有类型的电影票都能按照统一的格式输出,包括电影名、时间、座位号和价格等信息。
6. **序列化与反序列化**:
- 销售情况被序列化存储,便于数据持久化,用户关闭系统后,销售记录可以被安全地保存下来。同时,系统还能通过反序列化功能读取这些数据,恢复之前的销售状态。
7. **类关系与窗口设计**:
- 主窗口 MainForm 负责整个系统的交互,它与背后的类如 Cinema 类(可能包含座位管理、放映日程等功能)、座位集合、已售票集合等紧密关联。放映日程类负责维护具体的放映信息。
8. **难点与复杂性**:
- 难点在于处理多种类型的电影票,包括赠票和学生票,它们在票价和某些属性上可能有所不同。同时,考虑到打印格式的多样性和销售情况的管理,系统的设计需要考虑灵活性和性能优化。
这个第二阶段的结果演示展示了如何运用XML、泛型、工厂模式、多态等技术构建一个功能齐全的影院售票系统,包括用户界面的交互、数据的存储和管理以及不同类型的票种处理。通过这种方式,系统能够满足影院的基本运营需求,并具备良好的扩展性和可维护性。