1、 电影院售票管理系统 72 2020年4月19日 文档仅供参考 package util; import java.io.FileOutputStream; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.x
2、ml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; im
3、port org.xml.sax.SAXException; public class DomUtil { public static Document getDocument(String fileAddress){ Document doc=null; try { DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); DocumentBuilder db=dbf.newDocumentBuilder(); doc=db.parse(fileAddress);
4、 } catch (Exception e) { e.printStackTrace(); } if(doc!=null) return doc; else return null; } public static void saveDocument(Document doc,String fileAddress){ //保存 try{ TransformerFactory tf=TransformerFactory.newInstance(); Transformer t=tf.newTransformer(
5、); DOMSource doms=new DOMSource(doc);//获得数据源 //设置字符编码类型 t.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); StreamResult result =new StreamResult(new FileOutputStream(fileAddress)); t.transform(doms, result); } catch (Exception e) { e.printStackTrace(); } } } packag
6、e test; import service.impl.Login; public class Start { public static void main(String[] args) { new Login().start(); } } package service; public interface UserService { public void menu(); //查看全部电影 public void getAll(); //经过电影名称查询电影 public void getByName(); //经过放映时间查询电
7、影 public void getByItem(); //购买普通票 public void byTicket(); //购买学生折扣票 public void byDiscount(); //购买免费票 优惠券 public void byFree(); } package service; public interface AdminService { //菜单 public void menu(); //查看所有 public void getAll(); //添加电影 public void addFilm(); /
8、/删除电影 public void delFilm(); //更新电影 public void upFilm(); //售票查询 public void getTicket(); } package service.impl; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import dao.impl.FilmDaoImpl; import entity.Film; import entity.Seat; import service.
9、UserService;
public class UserLogin implements UserService {
Scanner input=new Scanner(System.in);
List
10、询;3:按播放时间查询;" + "4:购票;5:返回上一层;6:退出;"); int chose=input.nextInt(); switch(chose){ case 1:getAll() ;break; case 2:getByName();break; case 3:getByItem();break; case 4:byTicket();break; case 5:break; case 6:System.exit(0);break; default :break; } } public void ge
11、tAll() { System.out.println("序号"+"\t"+"电影名称"+"\t"+"英文名称"+"\t"+"导演"+"\t"+"演员" +"\t"+"影片类型"+"\t"+"票价"+"\t"+"播放时间"); listFilm=fdi.getAll(); for(Film film:listFilm){ System.out.println(film.getId()+"\t"+film.getName()+"\t" +film.getPoster()+"\t"+film.getDirector()+"\t" +film.
12、getAcotr()+"\t"+film.getType()+"\t" +film.getPrice()+"\t"+film.getItem()); } listFilm.clear(); menu(); } public void getByName() { System.out.println("请输入要查询到电影:"); String name=input.next(); listFilm=fdi.getByName(name); if (listFilm != null) { System.out.println
13、"序号"+"\t"+"电影名称"+"\t"+"英文名称"+"\t"+"导演"+"\t"+"演员" +"\t"+"影片类型"+"\t"+"票价"+"\t"+"播放时间"); for (Film film : listFilm) { System.out.println(film.getId() + "\t" + film.getName() + "\t" + film.getPoster() + "\t" + film.getDirector() + "\t" + film.getAcotr() + "\t" + film.getTyp
14、e() + "\t" + film.getPrice() + "\t" + film.getItem()); } listFilm.clear(); menu(); } else{ System.out.println("不存在该电影"); this.getByName(); } } public void getByItem() { System.out.println("请输入时间段:"); String Item=input.next(); //listFilm=fdi.getByI
15、tem("15:00"); listFilm=fdi.getByItem(Item); if (listFilm != null) { System.out.println("序号"+"\t"+"电影名称"+"\t"+"英文名称"+"\t"+"导演"+"\t"+"演员" +"\t"+"影片类型"+"\t"+"票价"+"\t"+"播放时间"); for (Film film : listFilm) { System.out.println(film.getId() + "\t" + film.getName() + "\t" + f
16、ilm.getPoster() + "\t" + film.getDirector() + "\t" + film.getAcotr() + "\t" + film.getType() + "\t" + film.getPrice() + "\t" + film.getItem()); } listFilm.clear(); } else{ System.out.println("该时间段没有电影"); } menu(); } public void byTicket() { System.out
17、println("请输入电影名:"); String name=input.next(); System.out.println("请输入播放时间:"); String item=input.next(); // 返回该电影的座位信息 //Seat seat = fdi.getSeates("中国功夫", "15:00"); Film film=new Film(name, item); Seat seat = fdi.getSeates(film); if (seat != null) { String ticketType =
18、 null; boolean flagTicketType=true; while(flagTicketType){ System.out.println("请选择票的种类:1:普通票;2:学生票;3:免费票;"); int chose = input.nextInt(); switch (chose) { case 1: ticketType = "普通票"; flagTicketType=false; break; case 2: ticketType = "学生票";
19、 flagTicketType=false; break; case 3: ticketType = "免费票"; flagTicketType=false; break; default: System.out.println("输入错误选项!!!"); break; } } printSeat(seat);//输出座位信息 boolean flagIndex=true; String index=null; while(fla
20、gIndex){ System.out.println("请选择座位:"); index = input.next(); if(seat.isSold(index)){//该座位已经卖出 System.out.println("该座位已经卖出!!!"); } else{ flagIndex=false; } } fdi.buyTicket(film, index, ticketType); System.out.println("购票成功!!!"); menu();
21、} else{ System.out.println("该电影不存在,或该电影没有此播放时间!!!"); this.byTicket(); } } @Override public void byDiscount() { // TODO Auto-generated method stub } @Override public void byFree() { // TODO Auto-generated method stub } //座位信息 public void printSeat(Seat
22、 seat){ System.out.println("************************屏幕************************"); for(int i=0;i<7;i++){ for(int j=0;j<7;j++){ System.out.print(seat.getSeats()[i][j]+"\t"); } System.out.println(); } } } package service.impl; import java.util.Scanner; im
23、port service.AdminService; import entity.AdminUser; public class Login { Scanner input =new Scanner(System.in); public void start(){ System.out.println("请选择登陆方式:1:管理员登录;2:普通用户登录;3:退出;"); int chose=input.nextInt(); switch(chose){ case 1: /*AdminUser admin=new AdminUser();
24、 System.out.println("请输入用户名:"); String name=input.next(); System.out.println("请输入密码:"); String pwd=input.next(); if(name.equals(admin.getUserName())&&pwd.equals(admin.getUesrPassword()))*/ new AdminLogin().menu(); //else System.out.println("用户名和密码不匹配!!!"); br
25、eak; case 2: new UserLogin().menu(); break; case 3:System.exit(0);break; default : System.out.println("输入错误的选择方式!!!"); this.start(); break; } this.start(); } } package service.impl; import java.util.ArrayList; import java.util.List; import java.uti
26、l.Scanner;
import dao.impl.FilmDaoImpl;
import entity.Film;
import entity.Seat;
import service.AdminService;
public class AdminLogin implements AdminService{
Scanner input=new Scanner(System.in);
List
27、ic void menu() { System.out.println("选择你的操作:1:查看;2:添加;3:删除电影;" + "4:修改电影;5:售票查询;6:返回上一层;7:退出;"); int chose=input.nextInt(); switch(chose){ case 1:getAll() ;break; case 2:addFilm();break; case 3:delFilm();break; case 4:upFilm();break; case 5:getTicket();break; case 6:b
28、reak; case 7:System.exit(0);break; default : System.out.println("输入错误的选择方式!!!"); this.menu(); break; } } public void getAll() { int num=0; System.out.println("序号"+"\t"+"电影名称"+"\t"+"英文名称"+"\t"+"导演"+"\t"+"演员" +"\t"+"影片类型"+"\t"+"票价"+"\t"+"播放时间"); list=fdi.getAl
29、l(); //System.out.println(list.size()); for(Film film:list){ num++; System.out.println(film.getId()+"\t"+film.getName()+"\t" +film.getPoster()+"\t"+film.getDirector()+"\t" +film.getAcotr()+"\t"+film.getType()+"\t" +film.getPrice()+"\t"+film.getItem()); } list.cl
30、ear(); menu(); } public void addFilm() { System.out.println("请输入电影名称:"); String name=input.next(); System.out.println("请输入英文名称:"); String poster=input.next(); System.out.println("请输入导演:"); String director=input.next(); System.out.println("请输入演员:"); String acotr=input
31、next(); System.out.println("请输入影片类型:"); String type=input.next(); System.out.println("请输入票价:"); String price=input.next(); System.out.println("请输入播放时间:"); String item=input.next(); Film film=new Film(name, poster, director, acotr, type, price, item); //Film film=new Film("东成
32、西就", "e-w", "刘镇伟", "郑伊健", "喜剧", "150", "15:50"); fdi.addFilm(film); System.out.println("添加成功!!!"); menu(); } public void delFilm() { System.out.println("请输入删除的电影名称:"); String name=input.next(); System.out.println("请输入播放时间(输入all,则全部删除):"); String item=input.next(); Film
33、film=new Film(name, item); boolean exist=fdi.delateFilm(film); //boolean exist=fdi.delateFilm("非常完美",time); if(exist){ System.out.println("删除成功!!!"); menu(); } else{ System.out.println("该电影不存在,或该电影没有此播放时间!!!"); this.delFilm(); } } public void upFilm() {
34、 System.out.println("请输入要修改的电影名称:"); String name=input.next(); System.out.println("请输入要修改的放映时间:"); String item=input.next(); System.out.println("请输入要修改的列表名称:"); String property=input.next(); System.out.println("请输入该列表修改后的值:"); String value=input.next(); //fdi.updateFilm("蜘
35、蛛侠","14:00","播放时间","15:00"); //fdi.updateFilm("蜘蛛侠","14:00","影片类型","搞笑"); Film film=new Film(name, item); int message=fdi.updateFilm(film,property,value); switch(message){ case 0:System.out.println("更新成功!!!");menu();break; case 1:System.out.println("不存在该电影;");this.upFilm();break;
36、 case 2:System.out.println("不存在此电影的该播放时间;");this.upFilm();break; case 3:System.out.println("不存在该属性列表;");this.upFilm();break; } } public void getTicket(){ System.out.println("请输入电影名称:"); String name=input.next(); System.out.println("请输入电影播放时间:"); String item=input.next()
37、 //Film film=new Film("中国功夫", "15:00"); Film film=new Film(name,item); Seat seat=fdi.getTicket(film); if (seat != null) { printSeat(seat); System.out.println("普通票:" + seat.getTicket().getOrdinaryNum()); System.out.println("学生票:" + seat.getTicket().getStudentNum()); Syste
38、m.out.println("免费票:" + seat.getTicket().getFreeNum()); menu(); } else{ System.out.println("该电影不存在,或该电影没有此播放时间!!!"); this.getTicket(); } } //座位信息 public void printSeat(Seat seat){ System.out.println("***************屏幕*****************"); for(int i=0;i<7;i++){ f
39、or(int j=0;j<7;j++){ System.out.print(seat.getSeats()[i][j]+"\t"); } System.out.println(); } } } package entity; public class Ticket { private String type; private int ordinaryNum=0; private int studentNum=0; private int freeNum=0; public String getType() {
40、 return type; } public void setType(String type) { this.type = type; switch(type){ case "普通票": ordinaryNum++; break; case "学生票": studentNum++; break; case "免费票": freeNum++; break; default:break; } } public int getOrdinaryNum() { return ordin
41、aryNum; } public void setOrdinaryNum(int ordinaryNum) { this.ordinaryNum = ordinaryNum; } public int getStudentNum() { return studentNum; } public void setStudentNum(int studentNum) { this.studentNum = studentNum; } public int getFreeNum() { return freeNum; } public v
42、oid setFreeNum(int freeNum) { this.freeNum = freeNum; } } package entity; public class Seat { private String index; private Ticket ticket; private Film film; private String[][] seats=new String [7][7]; public Seat(String index, Ticket ticket, Film film) { this.ind
43、ex = index; this.ticket = ticket; this.film = film; } public Seat(){ for(int i=0;i<7;i++){ for(int j=0;j<7;j++){ seats[i][j]=(i+1)+"-"+(j+1); } } } public String getIndex() { return index; } public void setIndex(String index) { String[] str=
44、index.split("-"); setSeats(Integer.parseInt(str[0]),Integer.parseInt(str[1])); } public Ticket getTicket() { return ticket; } public void setTicket(Ticket ticket) { this.ticket = ticket; } public Film getFilm() { return film; } public void setFilm(Film film) { this.f
45、ilm = film; } private void setSeats(int x, int y) { seats[x-1][y-1]="已售"; } public String[][] getSeats() { return seats; } public boolean isSold(String index){ String[] str=index.split("-"); int a=Integer.parseInt(str[0]); int b=Integer.parseInt(str[1]); if(!se
46、ats[a-1][b-1].equals(index)){ return true; } else return false; } } package entity; public class Film { private int id; //序号 private String Name; //电影名称 private String Poster; //英文名 private String Director; //导演 private String Acotr; //演员 private String T
47、ype; //电影类型 private String Price; //电影价格 //private String Schedule; //时刻表 private String Item; //放映时间 public Film(){ } public Film(String name,String item){ Name = name; Item = item; } public Film(int id, String name, String poster, String director, Stri
48、ng acotr, String type, String price, String item) { this.id = id; Name = name; Poster = poster; Director = director; Acotr = acotr; Type = type; Price = price; Item = item; } public Film(String name, String poster, String director, String acotr, String type, String
49、 price, String item) { Name = name; Poster = poster; Director = director; Acotr = acotr; Type = type; Price = price; Item = item; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return Name; } pub
50、lic void setName(String name) { Name = name; } public String getPoster() { return Poster; } public void setPoster(String poster) { Poster = poster; } public String getDirector() { return Director; } public void setDirector(String director) { Director = director; }
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818