最后创建一个Test类来运行 Test.java代码:/** * 程序的应用端 * @author Admin * */ public class Test { /** * * @param args */ public static void main(String[] args) { Cinema cinema = new Cinema(); //加载电影信息 cinema.getSchedule().loadItems(); //加载座位 cinema.initialSeat(); Scanner sca = new Scanner(System.in); //提示 System.out.println("====================欢迎进入售票系统==========================="); System.out.println("请输入:\n 1.重新购票\n 2.继续购票"); int num = sca.nextInt(); if(num==2){ //发生的业务 //对对象进行反序列化 cinema.load(); } //其他情况的业务 //显示电影信息 while(true){ cinema.printMoiveInfo(); //显示座位信息 cinema.printSeat(); //输出控制台上选择菜单 System.out.println("1.售票"); System.out.println("2.退出"); System.out.println("3.显示所售票"); System.out.println("请选择您需要的办理的业务:"); //获取控制台用户的选择 num = sca.nextInt(); if(num==1){//售票 System.out.println("请选择电影:"); //接收用户的选择,查找电影,并且判断是否有这一场电影 String moiveName = sca.next(); System.out.println("请选择电影场次:"); String time = sca.next(); //根据电影名和场次去查找电影信息 ScheduleItem item = cinema.getSchedule().searchMovie(moiveName, time); //不正确就循环重新选择 while(item==null){ System.out.println("电影信息不正确,请重新选择:"); System.out.println("请选择电影:"); //接收用户的选择,查找电影,并且判断是否有这一场电影 moiveName = sca.next(); System.out.println("请选择电影场次:"); time = sca.next(); item = cinema.getSchedule().searchMovie(moiveName, time); } //正确的话就选择座位 Seat seat = null; boolean bool = false; do{ System.out.println("请选择座位:"); String seatNum = sca.next();//获取用户输入的座位 seat = cinema.getSeat(seatNum);//获取座位 /** * 来判断该场次的座位是否是否已经售出 */ bool = cinema.getTicket(seat, item); //能找到信息就是true if(bool){ System.out.println("这一场电影的这个座位已经售出,请重新选择:"); } }while(bool); System.out.println("请选择类型:1.普通票 2.学生票 "); System.out.println("请选择:"); num = sca.nextInt(); int dis = 10;//折扣 String name = "";//赠送者的姓名 if(num==2){ System.out.println("请输入折扣:"); dis = sca.nextInt(); } //调用静态工厂方法,创建出电影票对象 Ticket ticket = TicketFactory.createrTicket( num, dis, name, item.getMovie().getPrice(), seat, item); //保存卖出去的电影票 cinema.getTickes().add(ticket);//保存卖出去的电影票 //打印电影票 ticket.print(); System.out.println("电影票售出成功"); }else{//退出 //把卖出去的电影票的信息保存,便于下一次继续购票。 cinema.save(); System.out.println("谢谢使用"); break; } } } }