首先我们先创建需要的类文件,然后在一步步把需要的功能加上
Cinema.java文件代码如下: |
/**
* 电影票类
* @author Administrator
*
*/
public class Cinema {
private Schedule schedule;//日程表对象 (单向关联关系)
private ArrayList<Seat> seats = new ArrayList<Seat>();//保存座位的集合
//用于保存卖出去的电影票信息
private ArrayList<Ticket> tickes = new ArrayList<Ticket>();
public Cinema(){
schedule = new Schedule();
}
public ArrayList<Ticket> getTickes() {
return tickes;
}
public void setTickes(ArrayList<Ticket> tickes) {
this.tickes = tickes;
}
public Schedule getSchedule() {
return schedule;
}
public void setSchedule(Schedule schedule) {
this.schedule = schedule;
} /**
* 根据座位号查找座位
*/
public Seat getSeat(String num){
}
/**
* 初始化座位,把座位添加到集合
*/
public Seat getSeat(String num){
}
/**
* 显示所有的座位信息
*/
public void printSeat(){
}
/**
* 初始化座位,把座位添加到集合中
*/
public void initialSeat(){
}
/**
* 显示所有电影场次的方法
*/
public void printMoiveInfo(){
}
}
|
CinemaName.java代码: |
/**
* 电影名称类
* @author Administrator
*
*/
public class CinemaName {
private String name;
public CinemaName(){
}
public String getName() {
return name;
}
//存入电影名字的方法
public void setName(String name){
}
}
|
ScheaduleItem.java代码 |
/**
* 电影对应的时段
* @author Administrator
*
*/
public class ScheaduleItem implements Serializable{
private static final long serialversionUID = 1L;
private String time;//时间
private Movie movie;//建立关联关系(单项关联)
public ScheaduleItem() {
movie = new Movie();//最好每次都new一把,防止空指针异常
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public Movie getMovie() {
return movie;
}
public void setMovie(Movie movie) {
this.movie = movie;
}
@Override
public String toString() {
return "ScheaduleItem [time=" + time + ", movie=" + movie + "]";
}
}
|
Schedule.java代码: |
/**
* 放映的日程类
* @author Admin
*
*/
public class Schedule implements Serializable{
private static final long serialversionUID = 1L;
/**
* 放映场次的集合,因为场次是重复的所以不直接封装成Movie对象
*/
private ArrayList<ScheaduleItem> list;
public Schedule(){
list = new ArrayList<ScheaduleItem>();
}
//创建存和取的方法
public ArrayList<ScheaduleItem> getList() {
return list;
}
public void setList(ArrayList<ScheaduleItem> list) {
this.list = list;
}
/**
* 新建一个方法用来读取xml文件中的电影信息,并封装成Movie对象
* 而且将场次信息添加到list的集合中。
*/
public void loadItems(){
}
/**
* 查找电影信息
* 根据电影和场次时间来查找,并返回电影场次
*/
}
|
Seat.java代码: |
/**
* 座位类
* @author Admin
*
*/
public class Seat implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 座位编号
*/
private String number;
public Seat() {
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
}
|
Ticket.java代码 |
/**
* 打印普通电影票的类
* @author Administrator
*
*/
public class Ticket implements Serializable{
public double price;//价格
public Seat seat;//座位
public ScheaduleItem item;//时间段
public Ticket(){
}
public Ticket(double price, Seat seat, ScheaduleItem item) {
//递归
setPrice(price);
setItem(item);
setSeat(seat);
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public Seat getSeat() {
return seat;
}
public void setSeat(Seat seat) {
this.seat = seat;
}
public ScheaduleItem getItem() {
return item;
}
public void setItem(ScheaduleItem item) {
this.item = item;
}
//打印电影票方法
public void print(){
//
}
}
|
StudentTicket.java代码: |
/**
* 打印学生票的类
* @author Administrator
*
*/
public class StudentTicket extends Ticket{
private double discount;//折扣
public StudentTicket() {
}
public StudentTicket(int dis,double price, Seat seat, ScheaduleItem item) {
super(price, seat, item);
setDiscount(dis);
//计算折扣后的价格
this.setPrice(item.getMovie().getPrice()*dis/10.0);
}
public double getDiscount() {
return discount;
}
public void setDiscount(double discount) {
this.discount = discount;
}
@Override
public void print(){
//
}
}
|
TicketFactory.java代码: |
/**
* 判断选择的是什么票
* @author Administrator
*
*/
public class TicketFactory implements Serializable{
static Ticket ticket = null;
public static Ticket createrTicket(int num,int dis,double price,Seat seat,ScheaduleItem item){
switch(num){
case 1:
ticket = new Ticket(price,seat,item);
break;
case 2:
ticket = new StudentTicket(dis, price, seat, item);
break;
}
return ticket;
}
}
|
MovieTpye.java代码: |
/**
* 枚举类型用来存放电影的类型,比如武侠
* @author Admin
*
*/
public enum MovieType {
Comedy,War,Romance,Action,Cartoon,Thrille
}
|
Movie.java代码: |
/**
* 电影基本信息类
* @author Administrator
*
*/
public class Movie implements Serializable{
private String name;//电影名
private String poster;//英文名
private String director;//导演
private String actor;//演员
private int price;//价格
private MovieType Type;//关联关系,创建枚举类型,存放影片类型
private static final long serialversionUID = 1L;
//无参构造函数
public Movie() {
}
//全参构造函数
public Movie(String name, String poster, String director, String actor,
int price, MovieType type) {
super();
this.name = name;
this.poster = poster;
this.director = director;
this.actor = actor;
this.price = price;
Type = type;
}
/**
* 下面为get,set方法,分别对对象的属性类型进行操作
*
* @return
*/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPoster() {
return poster;
}
public void setPoster(String poster) {
this.poster = poster;
}
public String getDirector() {
return director;
}
public void setDirector(String director) {
this.director = director;
}
public String getActor() {
return actor;
}
public void setActor(String actor) {
this.actor = actor;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public MovieType getType() {
return Type;
}
public void setType(MovieType type) {
Type = type;
}
@Override
public String toString() {
return "Movie [name=" + name + ", poster=" + poster + ", director="
+ director + ", actor=" + actor + ", price=" + price
+ ", Type=" + Type + "]";
}
}
|