首页 电影院售票管理系统

电影院售票管理系统

举报
开通vip

电影院售票管理系统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.xml.transform.Outpu...

电影院售票管理系统
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.xml.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; import 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); } 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(); 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(); } } } package 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(); //通过放映时间查询电影 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(); //删除电影 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.UserService; public class UserLogin implements UserService { Scanner input=new Scanner(System.in); List listFilm=new ArrayList(); List listSeat=new ArrayList(); FilmDaoImpl fdi=new FilmDaoImpl(); public void menu() { System.out.println("选择你的操作:1:查看所有电影;2:按电影名查询;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 getAll() { 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.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("序号"+"\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.getType() + "\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.getByItem("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" + film.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.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 = 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 = "学生票"; flagTicketType=false; break; case 3: ticketType = "免费票"; flagTicketType=false; break; default: System.out.println("输入错误选项!!!"); break; } } printSeat(seat);//输出座位信息 boolean flagIndex=true; String index=null; while(flagIndex){ 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(); } 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 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; import 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(); 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("用户名和密码不匹配!!!"); break; 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.util.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 list=new ArrayList(); FilmDaoImpl fdi=new FilmDaoImpl(); public 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:break; 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.getAll(); //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.clear(); 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.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("东成西就", "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 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() { 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("蜘蛛侠","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; 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(); //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()); System.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++){ for(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() { 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 ordinaryNum; } 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 void 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.index = 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=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.film = 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(!seats[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 Type; //电影类型 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, String 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 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; } public 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; } public String getAcotr() { return Acotr; } public void setAcotr(String acotr) { Acotr = acotr; } public String getType() { return Type; } public void setType(String type) { Type = type; } public String getPrice() { return Price; } public void setPrice(String price) { Price = price; } public String getItem() { return Item; public void setItem(String item) { Item = item; } } package entity; public class AdminUser { private String userName; private String uesrPassword; public AdminUser(){ this.userName="admin"; this.uesrPassword="admin"; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUesrPassword() { return uesrPassword; } public void setUesrPassword(String uesrPassword) { this.uesrPassword = uesrPassword; } } package dao; import java.util.List; import entity.Film; import entity.Seat; public interface FilmDao { public List getAll(); * 用户操作 */ public List getByName(String name); public List getByItem(String time); public void buyTicket(Film film,String index,String ticketType); public Seat getSeates(Film film); /* * 管理员操作 */ public void addFilm(Film film); public boolean delateFilm(Film film); public int updateFilm(Film film,String property,String value); public List selectFilm(); public Seat getTicket(Film film); } package dao.impl; import java.util.ArrayList; import java.util.List; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import util.DomUtil; import dao.FilmDao; import entity.Film; import entity.Seat; import entity.Ticket; public class FilmDaoImpl implements FilmDao{ List listFilm=new ArrayList(); List listSeat=new ArrayList(); String filmsAddress="src/films.xml"; String ticketsAddress="src/tickets.xml"; Document docFilms=DomUtil.getDocument(filmsAddress); NodeList list=docFilms.getElementsByTagName("Movie"); Document docTickets=DomUtil.getDocument(ticketsAddress); NodeList listTickets=docTickets.getElementsByTagName("Name"); public List getAll() { int id=0; for(int i=0;i getByName(String name) { boolean exist=false; int id=0; for(int i=0;i getByItem(String time){ boolean exist=false; int id=0; for(int i=0;i selectFilm() { return null; } public boolean isExist(Film film){ for (int i = 0; i < list.getLength(); i++) { // 遍历Movie节点 NodeList nameList = ((Element) list.item(i)).getElementsByTagName("Name"); Node nameNode = nameList.item(0); String moveName = nameNode.getTextContent(); if (film.getName().equals(moveName)) { // 找到匹配的电影名称 boolean existItem = false; NodeList itemList = ((Element) list.item(i)).getElementsByTagName("Item"); for (int j = 0; j < itemList.getLength(); j++) { // 遍历该电影的每个Item节点 if (itemList.item(j) instanceof Element) { String textItem = itemList.item(j).getTextContent(); if (textItem.equals(film.getItem())) { // 找到该场次 existItem = true; } } } if (!existItem) {// 没找到该电影播放时间 return false; } return true;// 因为有唯一值,所以找到该电影后,不再往下寻找,直接返回true即可 } } return false;// 没有找到该电影 } } 让子弹飞 fly 姜文 葛优 喜剧 100 00:00 13:00 非常完美 Sophies 金依萌 范冰冰 喜剧 75 10:00 13:00 集结号 horn 冯小刚 张涵予 战争 90 09:30 蜘蛛侠 Spider 山姆 托比 科幻 120 11:02 15:00 中国功夫 KungFu 周星驰 周星驰 动作 150 15:00 19:00 21:25 东成西就 e-w 刘镇伟 郑伊健 喜剧 150 15:50 11 11 11 11 11 11 11
本文档为【电影院售票管理系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_594905
暂无简介~
格式:doc
大小:131KB
软件:Word
页数:72
分类:互联网
上传时间:2019-01-22
浏览量:23