影院售票系统详细分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

影院售票系统

拿到要求后,能够分析系统功能并合理提取对象和类,会使用属性和方法构建类,从最简单的类开始。

entity实体包内

Movie 类(电影类)

包括属性:

private String movieName; // 电影名称

private String director; // 导演名

private String actor; //主演

private int price; // 电影定价

构造有参无参的构造方法。构造set,get方法。

此类无方法。

Seat类(座位类)

包括属性:

private String seatNum;//座位号

private int status;//座位状态(为int 类型,可用0,1代表)

构造有参无参的构造方法。构造set,get方法。

此类无方法。

ScheduleItem类(放映的场次类)

private String time;//放映的时间

private Movie movie;//播放的电影

private Map seats;//本场电影的所有座位

《注意:在此处用泛型HashMap集合,用座位号作为键值,用来查找座位中的座位状态(是否可售)和座位号》

而你每次选一个电影的放映时间,就有一场电影上映,这场电影就有20个座位。因此可以这样获取20个座位。

Public final int seatall=20;

获取20个座位需要初始化。

Public void init(){

movie=new Movie();《movie需要初始化new》

seats=new HashMap();《在类中有集合或者有类的对象时,一定要在构造方法中new》此时没在构造方法中new,在init()中new过后,可以把init()方法放在构造方法中

for(int i=1;i

Seat s=new Seat(i+””,1);seat类中添加20张票的对象每个有一个号i;又有状态1,表示可售。

seats.put(s.getSeatNum(), s);创建HashMap集合的对象

}

构造有参无参的构造方法(都调用init()方法,因为不知道用哪个构造方法)。构造set,get方法。

Schedule类(放映列表类)

要想列出反放映列表,必须有电影名称,导演,主演,价格。(这些都在Moviel类中),而最重要的是每一场电影要播放的时间即场次(时间是唯一的,其他可能重复)。因此需要运用Hashmap集合运用时间来找其他的场次和电影(在ScheduleItem中)。

// 本影院的电影Movie feng, fei, qie, wu;(说明电影有重复的)

// 场次ScheduleItem s1, s2, s3, s4, s5, s6, s7, s8;

public Map items;

在类中有集合或者有类的对象时,一定要在构造方法中new

此时没在构造方法中new,在init()中new过后,可以把init()方法放在构造方法中

public Schedule(){

init();

}

之后要初始化影院的电影。初始化电影的场次

public void init(){

items=new HashMap();

初始化影院的电影,比如:

feng = new Movie("风声", "陈国富", "周迅、李冰冰、张涵予", 60);初始化电影的场次

比如:(用的有参的构造方法)

s1 = new ScheduleItem("10:00", fei);

创建items集合的对象。形成播放列表;

items.put(s1.getTime(), s1);

Ticket类(票类)父类

private double price; //该场电影的价格

private ScheduleItem sitem; //该场电影的场次private Seat seat; / /该场电影的座位

构造有参无参的构造方法。构造set,get方法。

StudentTicket类(学生票类)子类(extends Ticket implements CalculTicketPrice)private double discount; //学生票所打的折扣

构造有参无参的构造方法。构造set,get方法。继承接口中的方法calculPrice();算出价格。

this.setPrice(this.getPrice*discount);

FreeTicket类(赠票类)子类

Private String name;//赠票者姓名

构造有参无参的构造方法。构造set,get方法。继承接口中的方法calculPrice();算出价格。

this.setPrice(0);

Inter包中(接口)

public interface CalculTicketPrice {

public void calculPrice();

}

在接口中创建了一个抽象方法。子类分别去继承并实现这个方法biz包中(业务逻辑包)

Cinema类(电影院管理类)

Schedule schedule; //放映日程(Schedule)

List solds; //已售票集合

一定在构造方法中new

public Cinema() {

schedule = new Schedule();

solds=new ArrayList();

}

在此类中写Start()方法显示影院的初始欢迎菜单

在此类中写showmenu()方法显示影院的操作列表菜单

相关文档
最新文档