影院售票系统详细分析
影院售票系统
拿到要求后,能够分析系统功能并合理提取对象和类,会使用属性和方法
构建类,从最简单的类开始。 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 《注意:在此处用泛型HashMap集合,用座位号作为键值,用来查找座位中的座位状态(是否可售)和座位号》 而你每次选一个电影的放映时间,就有一场电影上映,这场电影就有20个座位。因此可以这样获取20个座位。 Public final int seatall=20; 获取20个座位需要初始化。 Public void init(){ movie=new Movie();《movie需要初始化new》 seats=new HashMap for(int i=1;i 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 在类中有集合或者有类的对象时,一定要在构造方法中new 此时没在构造方法中new,在init()中new过后,可以把init()方法放在构造方法中 public Schedule(){ init(); } 之后要初始化影院的电影。初始化电影的场次 public void init(){ items=new HashMap 初始化影院的电影,比如: feng = new Movie(\"风声 \陈国富\周迅、李冰冰、张涵予\ 初始化电影的场次 比如:(用的有参的构造方法) s1 = new ScheduleItem(\"10:00\ 创建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 一定在构造方法中new public Cinema() { schedule = new Schedule(); solds=new ArrayList } 在此类中写Start()方法显示影院的初始欢迎菜单 在此类中写 showmenu()方法显示影院的操作列表菜单 因篇幅问题不能全部显示,请点此查看更多更全内容