一.目的

1.构造用户父类User 及 子类商家Business和子类顾客Customer;

2.构造电影类 存取电影Movie

3.创建主程序

4.包含用户登录 注册 买票卖票 上架电影 下架电影

二.代码块

User - 重写toString代码

package bean;public class User {private String loName;private String userName;private String password;private char sex;private String phone;private double money;public User() {}public User(String loName, String userName, String password, char sex, String phone, double money) {this.loName = loName;this.userName = userName;this.password = password;this.sex = sex;this.phone = phone;this.money = money;}public String getLoName() {return loName;}public void setLoName(String loName) {this.loName = loName;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public char getSex() {return sex;}public void setSex(char sex) {this.sex = sex;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public double getMoney() {return money;}public void setMoney(double money) {this.money = money;}
}
package bean;public class Business extends User{private String shopName;private String add;public Business() {}public Business(String shopName, String add) {this.shopName = shopName;this.add = add;}public String getShopName() {return shopName;}public void setShopName(String shopName) {this.shopName = shopName;}public String getAdd() {return add;}public void setAdd(String add) {this.add = add;}}
package bean;public class Customer extends User{
}
package run;import bean.Business;
import bean.Customer;
import bean.Movie;
import bean.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;public class Moviesystem {public static List<User> All_user = new ArrayList<>();//创建用户集合存取用户public static Map<Business,List<Movie>> All_movie = new HashMap<>();//创建商家和排片信息public static final Logger LOGGER= LoggerFactory.getLogger("Moviesystem.class");public static SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd,HH:mm:ss");public static List<Movie> All_movies = new ArrayList<>();static {Customer c = new Customer();c.setLoName("Swin");c.setPassword("1000");c.setPhone("1000");c.setMoney(1000);c.setSex('男');c.setUserName("大帅哥");All_user.add(c);Business b =new Business();b.setLoName("Shwin");b.setPassword("1001");b.setPhone("1001");b.setMoney(600);b.setSex('男');b.setUserName("小帅哥");b.setAdd("泉");b.setShopName("影城");All_user.add(b);List<Movie> movies = new ArrayList<>();All_movie.put(b,movies);}public static User loginUser;static Scanner sc = new Scanner(System.in);public static void main(String[] args) {showMain();}private static void showMain() {while (true){System.out.println("=====================主界面==========================");System.out.println("1.登录");System.out.println("2.用户注册");System.out.println("3.商家注册");System.out.println("4.退出");System.out.println("请输入命令:");String c = sc.next();switch (c) {case "1":login();break;case "2":loginUser();break;case "3":loginBusiness();break;case "4":return;default:System.out.println("重新输入");}}}private static void loginBusiness() {System.out.println("输入您的的用户名");String loName = sc.next();System.out.println("输入您的真实姓名");String userName = sc.next();System.out.println("输入您的密码");String password = sc.next();System.out.println("输入您的性别");String sex1 = sc.next();char sex = sex1.charAt(0);System.out.println("输入您的电话号码");String phone = sc.next();System.out.println("输入您要存取的金额");double money = sc.nextDouble();System.out.println("输入您的店铺名");String shopname = sc.next();System.out.println("输入您的店铺地址");String add = sc.next();Business user = new Business();user.setMoney(money);user.setUserName(userName);user.setPassword(password);user.setLoName(loName);user.setSex(sex);user.setPhone(phone);user.setAdd(add);user.setShopName(shopname);All_user.add(user);}private static void loginUser() {System.out.println("输入您的真实姓名");String userName = sc.next();System.out.println("输入您的的用户名");String loName = sc.next();System.out.println("输入您的电话号码");String phone = sc.next();System.out.println("输入您的密码");String password = sc.next();System.out.println("输入您的性别");String sex1 = sc.next();char sex = sex1.charAt(0);System.out.println("输入您要存取的金额");double money = sc.nextDouble();Customer user = new Customer();user.setMoney(money);user.setUserName(userName);user.setPassword(password);user.setLoName(loName);user.setSex(sex);user.setPhone(phone);All_user.add(user);}/*** 登录*/public static void login(){while (true) {System.out.println("请输入您的手机号:");//phoneString phone = sc.next();System.out.println("请输入您的密码:");//passwordString password = sc.next();User u = loginbyphone(phone);if (u != null){if (u.getPassword().equals(password)){loginUser = u;  //记住登录成功的用户LOGGER.info(u.getLoName()+"登陆了系统。。");if (u instanceof Customer) {//当前登录人员为客户showCustomer();}else{showBusiness();}return;}else {System.out.println("密码错误!!");}}else {System.out.println("用户不存在!!!");return;}}}/*** 商家与用户的登陆界面*/private static void showBusiness() {while (true){System.out.println("=======================商家界面===========================");System.out.println(loginUser.getLoName()+(loginUser.getSex()=='男'?"先生":"女士"));System.out.println("1.展示详情");System.out.println("2.上架电影");System.out.println("3.下架电影");System.out.println("4.修改电影");System.out.println("5.退出系统");System.out.print("请输入您要选择的功能:");String c = sc.next();switch (c){case "1":showBusinessInfo();break;case "2":addmovie();break;case "3":deleteMovie();break;case "4":updateMovie();break;case "5":return;default:System.out.println("无此选项");}}}/*** 删除与修改电影*/private static void deleteMovie() {Business business = (Business) loginUser;List<Movie> movies = All_movie.get(business);if(movies.size() == 0){System.out.println("无电影");return;}System.out.println("需要下架的电影名称:");String name = sc.next();Movie movie = getMoviebyname(name);if (movie!=null){movies.remove(movie);System.out.println("<"+name+">已下架");All_movies.remove(movie);return;}else {System.out.println("无此电影!!!");return;}}public static Movie getMoviebyname(String name){Business business = (Business) loginUser;List<Movie> movies = All_movie.get(business);for (Movie movie:movies) {if (movie.getName().contains(name)) {return movie;}}return null;}private static void updateMovie() {Business business = (Business) loginUser;List<Movie> movies = All_movie.get(business);if(movies.size() == 0){System.out.println("无电影");return;}System.out.println("需要修改的电影名称:");String name1 = sc.next();Movie movie = getMoviebyname(name1);if (movie!=null){All_movies.remove(movie);System.out.println("请输入修改后电影名:");String name = sc.next();System.out.println("请输入修改后主演:");String actor = sc.next();System.out.println("请输入修改后时长:");String time = sc.next();System.out.println("请输入需改后票价:");String price = sc.next();System.out.println("请输入修改后票数:");String number = sc.next();while (true) {try {System.out.println("请输入放映时间:");String starttime = sc.next();
//                    public Movie(String name, String actor, double time, double price, int number, Date startTime) {movie.setName(name);movie.setActor(actor);movie.setTime(Double.valueOf(time));movie.setPrice(Double.valueOf(price));movie.setNumber(Integer.valueOf(number));movie.setStartTime(sdf.parse(starttime));Movie movie1 = new Movie(name,actor,Double.valueOf(time),Double.valueOf(price),Integer.valueOf(number),sdf.parse(starttime));All_movies.add(movie1);System.out.println("上映成功");showBusinessInfo();return;} catch (ParseException e) {e.printStackTrace();LOGGER.error("时间解析错误");}}}else {System.out.println("无此电影!!!");return;}}/*** 添加电影*/private static void addmovie() {Business business = (Business) loginUser;List<Movie> movies = All_movie.get(business);System.out.println("请输入电影名:");String name = sc.next();System.out.println("请输入主演:");String actor = sc.next();System.out.println("请输入时长:");String time = sc.next();System.out.println("请输入票价:");String price = sc.next();System.out.println("请输入票数:");String number = sc.next();while (true) {try {System.out.println("请输入放映时间:");String starttime = sc.next();//public Movie(String name, String actor, double time, double price, int number, Date startTime) {Movie movie = new Movie(name,actor,Double.valueOf(time),Double.valueOf(price),Integer.valueOf(number),sdf.parse(starttime));movies.add(movie);System.out.println("上映成功");All_movies.add(movie);return;} catch (ParseException e) {e.printStackTrace();LOGGER.error("时间解析错误");}}}/*** 商家详细信息*/private static void showBusinessInfo() {Business business = (Business) loginUser;System.out.println(business.getShopName()+"\t\t电话:"+business.getPhone()+"\t\t住址:"+business.getAdd());System.out.println("金额:"+business.getMoney());List<Movie> movies = All_movie.get(business);if (movies.size()>0) {for(Movie movie :movies){System.out.println(movie.toString());}} else {System.out.println("暂无电影!!!");}}/*** 用户界面*/private static void showCustomer() {while (true){System.out.println("==================用户界面==================");System.out.println(loginUser.getLoName()+(loginUser.getSex()=='男'?"先生":"女士")+"\t\t\t\t"+"金额:"+loginUser.getMoney());System.out.println("1.展示全部影片");System.out.println("2.根据电影名查询电影信息");System.out.println("3.评分");System.out.println("4.购票");System.out.println("5.退出系统");System.out.print("请输入您要选择的功能:");String c = sc.next();switch (c){case "1":showAllmovies();break;case "2":System.out.println("输入电影名称:");String moviename = sc.next();Movie movie = getmoviebyname(moviename);if (movie!=null){System.out.println(movie);}else {System.out.println("无此电影!!");}break;case "3":break;case "4":buymovie();break;case "5":return;default:System.out.println("无此选项");}}}private static Movie getmoviebyname(String name) {for (Movie movie:All_movies){if (movie.getName().contains(name)) {return movie;}}return null;}/*** 用户购票*/private static void buymovie() {showAllmovies();System.out.println("=============用户购票============");while (true) {System.out.println("请输入门店:");String shopname = sc.next();Business business =getuserbyname(shopname);if (business == null){System.out.println("无此门店" );}else {List<Movie> movies = All_movie.get(business);if (movies.size()>0){while (true) {System.out.println("请输入电影名称:");String name = sc.next();Movie movie = getMovie(business,name);if (movie != null) {System.out.println("需要购买多少张?剩余"+movie.getNumber());int num = sc.nextInt();if(movie.getNumber()>num){double money = BigDecimal.valueOf(movie.getPrice()).multiply(BigDecimal.valueOf(num)).doubleValue();if(loginUser.getMoney() >= money){System.out.println("购买成功!!");loginUser.setMoney(loginUser.getMoney()-money);business.setMoney(business.getMoney()+money);movie.setNumber(movie.getNumber()-num);return;}else {System.out.println("金额不够!");return;}}else {System.out.println("票数不足");return;}}else {System.out.println("电影名称输入错误!");}}}else{System.out.println("暂无上架电影");return;}}}}public static Movie getMovie(Business business,String name){List<Movie> movies = All_movie.get(business);for (Movie movie:movies){if (movie.getName().contains(name)) {return movie;}}return null;}public static Business getuserbyname(String name){Set<Business> businesses = All_movie.keySet();for (Business business:businesses){if (business.getShopName().equals(name)) {return business;}}return null;}/*** 展示全部电影*/private static void showAllmovies() {All_movie.forEach((business, movies) -> {System.out.println(movies.toString());});
//        System.out.println(All_movies);}/***根据电话查询对象* @param phone* @return*/public static User loginbyphone(String phone){for (User user:All_user) {if (user.getPhone().contains(phone)){return user;}}return null;}}

三.结果

评分还未做 想法是构造一个新的集合存储各个用户的评分 总评分就是遍历相加除以集合尺寸然后重新存储在电影的集合中

java maincase 电影票的售卖与购买 day10-11相关推荐

  1. Java初学者作业——编写Java程序, 实现根据用户购买商品总金额, 计算实际支付的金额及所获得的购物券金额。

    返回本章节 返回作业目录 需求说明: 编写Java程序, 实现根据用户购买商品总金额, 计算实际支付的金额及所获得的购物券金额. 购买总金额达到或超过 1000元,按 8折优惠,送 200元的购物券: ...

  2. java计算机毕业设计-图片展示及购买网站-源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计-图片展示及购买网站-源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计-图片展示及购买网站-源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目 ...

  3. java计算机毕业设计Vue网上书籍购买商城登录源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计Vue网上书籍购买商城登录源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计Vue网上书籍购买商城登录源码+mysql数据库+系统+lw文档+部署 本源码技术栈 ...

  4. java计算机毕业设计-图片展示及购买网站-源码+数据库+系统+lw文档+mybatis+运行部署

    java计算机毕业设计-图片展示及购买网站-源码+数据库+系统+lw文档+mybatis+运行部署 java计算机毕业设计-图片展示及购买网站-源码+数据库+系统+lw文档+mybatis+运行部署 ...

  5. 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book)、一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户,使用简单工厂模式模拟这一过程。

    查看本章节 查看作业目录 需求说明: 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book).一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户, ...

  6. Java学习笔记:2022年1月11日

    Java学习笔记:2022年1月11日 ​ 摘要:这篇笔记主要讲解了一些数据在计算机中的存在方式相关的知识点,并由此延伸出了数据在计算机中的操作以及一些数据结构的知识. 文章目录 Java学习笔记:2 ...

  7. 《Java编程思想》阅读笔记之第11章-持有对象

    第11章-持有对象 容器类的引入:Java需要有不同的方式来保存对象(或说是对象的引用). 如数组可以保存一组对象或一组基本类型数据,也推荐使用,但是数组必需有固定的尺寸,但在实际的情况中,可能根本不 ...

  8. java电影票选座_jQuery仿猫眼电影票在线选座购买特效

    特效描述:电影票选座 在线选座 购买特效. 代码结构 1. 引入CSS 2. 引入JS 3. HTML代码 屏幕 电影:天将雄师 时间:03月20日 22:15 座位: 票数:0 总价:¥0 var ...

  9. 【JAVA小游戏+水果售卖系统】基于GUI界面编程的水果“人生”模拟系统

    [JAVA]基于GUI界面编程的水果"人生"模拟系统 一.系统主要功能及简介 二.系统体系结构 三.系统设计技术 四.编码说明 五.效果展示 一.系统主要功能及简介 该系统以JAV ...

最新文章

  1. linux 编译内核几个常见问题解决方法
  2. 2017年 第08届 蓝桥杯 Java B组 决赛真题详解及小结
  3. go与JAVA差异_20190312_浅谈gojava差异(二)
  4. iis mysql5.7_手动配置网站环境 IIS 10+PHP 7.1+MySQL 5.7
  5. dir612路由器虚拟服务器设置,dir612虚拟服务器设置
  6. 数组取值_Python基础(五)--numpy包(数组与矩阵)
  7. linux下mongodb的安装及启动
  8. 设计模式(十一):享元模式
  9. 绘制直方图的方法大全
  10. SpringMVC_1
  11. WinRAR备份技巧 - imsoft.cnblogs
  12. 时间片轮转调度算法模拟C语言
  13. 计算机技术对审计范围的影响,计算机技术对审计过程的影响分析
  14. 实践练习二(必选):手动部署 OceanBase 三副本集群(在同一个节点)
  15. Affinity Propagation
  16. 斩获微软offer后,我总结出这10个面试必备技巧(五星干货)
  17. 511遇见易语言调用百度OCR文字在线本地识别及游戏画面时时识别
  18. 按键精灵什么是动态数组?如何使用动态数组?(新手进阶)
  19. (转)那些解释起来很蛋疼的IT工种——这里有多少人躺着中枪
  20. 物联网毕业设计项目推荐

热门文章

  1. 2021年三亚旅游行业发展现状分析:旅游总收入达747.03亿元,占GDP的89.43%[图]
  2. Python常用内置函数enumerate()详细用法介绍
  3. 转换上课周次字符串(我带着困惑我一周之久的编程题来了)
  4. Mac OS X系统下修改wifi共享的默认网段
  5. Ubuntu- packages have unmet dependencies问题及修改Ubuntu源
  6. fzu 1891 升降序列
  7. html网易云音乐图片轮播效果,Vue之网易云音乐PC版轮播图的实现
  8. 网易云短信php接口,网易云音乐简单API
  9. Eclipse正版(官网下载)安装教程及如何在win7或者win10安装配置jdk1.8
  10. 【排序】八大排序算法简介及它们各自的特点总结