JAVA课程设计-电影院售票系统

功能介绍

  1.  用户、商家注册功能        
    1. 用户通过输入账号、姓名、性别、手机号码、账户密码、存储金额 进行注册
    2. 商家通过输入账号、姓名、性别、手机号码、账户密码、存储金额、店名、地铺地址 进行注册

      2、  用户、商家登录功能

               1、用户输入账号、密码进行登录 ,登录后可进行

                2、商家输入账号、密码进行登录

      3、用户登录成功后,显示用户界面,界面功能有购票(能够判断用户账户的余额是否大于所购买影片合计的价格,不够可进行充值余额)、评分、展示当前放映的全部影片信息、根据电影名查询电影信息。

       4、商家登录成功后,显示商家界面,界面功能有展示自己电影院的目前上映的影片信息、上架影片、下架影片、修改电影信息。

代码演示

        这部分就不操作了,需要的可以复制代码,在自己的编译器上演示。

系统代码

package moviesShop;

import java.util.*;

public class Test {
    public  static List<Customer>  CUSTOMERS = new ArrayList<>();//存放客户
    public  static Map<Business,List<Movies>> BUSINESSMAP = new HashMap<>(); //存放商家和电影
    public static  final Scanner SCANNER = new Scanner(System.in);

    static {
        Customer c1 = new Customer();
        c1.setName("刘德华");
        c1.setAccount("123");
        c1.setPassword("123");
        c1.setPhone("13599693243");
        c1.setSex("男");
        c1.setMoney(10000);

        Customer c2 = new Customer();
        c2.setName("周星驰");
        c2.setAccount("456");
        c2.setPassword("456");
        c2.setPhone("13599693243");
        c2.setSex("男");
        c2.setMoney(5000);

        Collections.addAll(CUSTOMERS,c1,c2);

        Business b1 = new Business();
        b1.setShopName("黑马电影院");
        b1.setAddress("北京");
        b1.setAccount("123");
        b1.setPassword("123");
        b1.setName("张伟");
        b1.setSex("男");

        Business b2 = new Business();
        b2.setShopName("远光电影院");
        b2.setAddress("丽江");
        b2.setAccount("456");
        b2.setPassword("456");
        b2.setName("小仙");
        b2.setSex("女");

        Movies m1 = new Movies("肖申克的救赎","蒂姆·罗宾斯",9.8,"2021-11-23 10:10:10",
                45,200);
        Movies m2 = new Movies("权力的游戏","罗根",8.6,"2021-1-21 10:10:10",
                45,200);
        Movies m3 = new Movies("摩登家族","史蒂芬",7.8,"2021-11-23 15:10:10",
                45,200);
        Movies m4 = new Movies("触摸未来","罗丝",5.8,"2021-11-23 15:10:10",
                45,200);
        List<Movies> l1 = new ArrayList<>();
        List<Movies> l2 = new ArrayList<>();
        Collections.addAll(l1,m1,m3);
        Collections.addAll(l2,m2,m4);
        BUSINESSMAP.put(b1,l1);
        BUSINESSMAP.put(b2,l2);
    }

    public static void main(String[] args) {
        boolean loginFlag = true;
        while (loginFlag){
            System.out.println("--------登录界面-----------");
            System.out.println("1、登录商家/客户------------1");
            System.out.println("2、注册商家/客户------------2");
            System.out.println("3、退出--------------------3");
            System.out.println("==========================");
            System.out.println("输入要执行选项的数字:");
            String select = SCANNER.nextLine();
            switch (select ){
                case "1" :   login(); ;break;
                case "2" :  register();  ;break;
                case "3" :  loginFlag = false  ;break;
                default:
                    System.out.println("输入错误,请输入正确的数字");
            }




        }
    }
//注册界面
    public static void  register(){
        boolean registerFlag = true;
        while (registerFlag){
            System.out.println("--------注册界面--------");
            System.out.println("1、注册客户------------1");
            System.out.println("2、注册商家------------2");
            System.out.println("3、退出---------------3");
            System.out.println("======================");
            System.out.println("输入要执行选项的数字:");
            try {
                int select = Integer.parseInt( SCANNER.nextLine());
                switch (select ){
                    case 1 :  registerCustomer();  ;break;
                    case 2 :  registerBusiness();  ;break;
                    case 3 :  registerFlag = false  ;break;
                    default:
                        System.out.println("输入错误,请输入正确的数字");
                }
            } catch (NumberFormatException e) {
                e.printStackTrace();
            }
        }
    }
//注册客户
    public static void  registerCustomer(){
        Customer c = new Customer();
        System.out.println("输入账号:");
        c.setAccount(SCANNER.nextLine());
        System.out.println("输入姓名:");
        c.setName(SCANNER.nextLine());
        System.out.println("输入性别:");
        c.setSex(SCANNER.nextLine());
        System.out.println("输入手机号:");
        c.setPhone(SCANNER.nextLine());
        System.out.println("输入密码:");
        c.setPassword(SCANNER.nextLine());
        try {
            System.out.println("输入金额:");
            c.setMoney(Double.parseDouble(SCANNER.nextLine()));
        } catch (NumberFormatException e) {
            c.setMoney(1000);
            e.printStackTrace();
        }
        CUSTOMERS.add(c);
    }
//注册商家
    public static void  registerBusiness(){
        Business b  = new Business();
        List<Movies> m = new ArrayList<>();
        System.out.println("输入账号:");
        b.setAccount(SCANNER.nextLine());
        System.out.println("输入姓名:");
        b.setName(SCANNER.nextLine());
        System.out.println("输入性别:");
        b.setSex(SCANNER.nextLine());
        System.out.println("输入手机号:");
        b.setPhone(SCANNER.nextLine());
        System.out.println("输入密码:");
        b.setPassword(SCANNER.nextLine());
        try {
            System.out.println("输入金额:");
            b.setMoney(Double.parseDouble(SCANNER.nextLine()));
        } catch (NumberFormatException e) {
            b.setMoney(1000);
            e.printStackTrace();
        }

        System.out.println("输入店铺名:");
        b.setShopName(SCANNER.nextLine());
        System.out.println("输入店铺地址:");
        b.setAddress(SCANNER.nextLine());
        BUSINESSMAP.put(b,m);
    }
//登录界面
    public static void  login(){
        boolean loginFlag = true;
        while ( loginFlag){
            System.out.println("--------登录界面--------");
            System.out.println("1、登录客户------------1");
            System.out.println("2、登录商家------------2");
            System.out.println("3、退出---------------3");
            System.out.println("======================");
            System.out.println("输入要执行选项的数字:");
            try {
                int select = Integer.parseInt(SCANNER.nextLine());
                switch (select ){
                    case 1 :  loginCustomer();  ;break;
                    case 2 :  loginBusiness();  ;break;
                    case 3 :   loginFlag = false  ;break;
                    default:
                        System.out.println("输入错误,请输入正确的数字");
                }
            } catch (NumberFormatException e) {
                e.printStackTrace();
            }
        }
    }
//商家登录
    public static void  loginBusiness(){
        System.out.println("输入账号:");
        String tempAccount = SCANNER.nextLine();
        if(tempAccount != null){
            BUSINESSMAP.forEach((k,v) -> {
                if(k.getAccount().equals(tempAccount)){
                    System.out.println("请输入密码:");
                    String tempPassword = SCANNER.nextLine();
                    if(k.getPassword().equals(tempPassword)){
                        System.out.println("登录成功!!");
                        showBusiness(k);
                    }else{
                        System.out.println("密码错误");
                    }
                }
            });
        }

    }
//客户登录
    public static void  loginCustomer(){
        System.out.println("输入账号:");
        String tempAccount = SCANNER.nextLine();
        boolean flag = true;
        if(tempAccount != null){
            for (Customer customer : CUSTOMERS) {
                if(customer.getAccount().equals(tempAccount)){
                    System.out.println("请输入密码:");
                    String tempPassword = SCANNER.nextLine();
                    if(customer.getPassword().equals(tempPassword)){
                        System.out.println("登录成功!!");
                        showCustmoer(customer);
                    }else{
                        System.out.println("密码错误");
                    }
                    flag = true;
                    break;
                }else{
                    flag = false;
                }
            }
            if(flag == false){
                System.out.println("该用户不存在");
            }
        }

    }

//客户界面
    public static void showCustmoer(Customer customer){
        System.out.println("-------客户界面--------");
        boolean showCustmoerFlag = true;
        while (showCustmoerFlag){
            System.out.println("1、展示全部影片信息---------1");
            System.out.println("2、根据电影名查询电影信息----2");
            System.out.println("3、评分功能---------------3");
            System.out.println("4、购票功能---------------4");
            System.out.println("5、退出------------------5");
            System.out.println("=========================");
            System.out.println("输入要执行选项的数字:");
            try {
                int select = Integer.parseInt(SCANNER.nextLine());
                switch (select){
                    case 1 :  showAllMovies();           ;break;
                    case 2 :  queryMovies();             ;break;
                    case 3 :  setScore();                ;break;
                    case 4 :  purchaseTicket(customer);  ;break;
                    case 5 :  showCustmoerFlag = false   ;break;
                    default: System.out.println("输入错误,请输入正确的数字");
                }
            } catch (NumberFormatException e) {
                e.printStackTrace();
            }
        }
    }
//展示全部影片信息
    public static void showAllMovies(){
        BUSINESSMAP.forEach( (k,v) -> {
            System.out.println("********************************");
            System.out.println(k.getShopName()+"店铺上映的电影:");
            for (Movies movies : v) {
                System.out.println("电影名称: "+movies.getName());
                System.out.println("主演: "+movies.getMainRole());
                System.out.println("价格: "+movies.getPrice());
                System.out.println("分数: "+movies.getScore());
                System.out.println("余票: "+movies.getTicket());
                System.out.println("放映时间: "+movies.getTime());
            }
            System.out.println("********************************");
        });
    }
//根据电影名查询电影信息
    public static void queryMovies(){
        System.out.println("输入电影名:");
        String movieName = SCANNER.nextLine();
        BUSINESSMAP.forEach((k,v) -> {
            for (Movies movies : v) {
                if(movieName.equals(movies.getName())){
                    System.out.println(k.getShopName()+"店铺上映的电影:");
                    System.out.println("电影名称: "+movies.getName());
                    System.out.println("主演: "+movies.getMainRole());
                    System.out.println("价格: "+movies.getPrice());
                    System.out.println("分数: "+movies.getScore());
                    System.out.println("余票: "+movies.getTicket());
                    System.out.println("放映时间: "+movies.getTime());
                    break;
                }
            }
        });
    }
//评分功能
    public static void setScore(){
        System.out.println("输入要进行评分的电影名:");
        String movieName = SCANNER.nextLine();
        BUSINESSMAP.forEach((k,v) -> {
            for (Movies movies : v) {
                if(movieName.equals(movies.getName())){
                    System.out.println("电影当前的分数: "+movies.getScore());
                    System.out.println("输入分数:");
                    Double score = SCANNER.nextDouble();
                    movies.setScore((score+movies.getScore())/2);
                    System.out.println("评分成功,该影片当前分数为"+movies.getScore());
                    break;
                }
            }
        });
    }
//购票功能
    public static void purchaseTicket(Customer customer){
        System.out.println("输入要购买的电影名:");
        String movieName = SCANNER.nextLine();
        BUSINESSMAP.forEach((k,v) -> {
            for (Movies movies : v) {
                if(movieName.equals(movies.getName())){
                    System.out.println("该影片在"+k.getShopName()+"放映");
                    System.out.println("放映时间:"+movies.getTime());
                    System.out.println("是/否购票(购票输入1,否则输入0): ");
                    int select = SCANNER.nextInt();
                    while (select == 1){
                        System.out.println("输入购买票数量:");
                        int amcount = SCANNER.nextInt();
                        if(customer.getMoney() >= (amcount * movies.getPrice())){
                            customer.setMoney(customer.getMoney() -(amcount * movies.getPrice()) );
                            System.out.println("购买成功");
                        }
                        else{
                            System.out.println("您的余额不足!请充值后再进行购买");
                            System.out.println("是否充值:(充值输入1,否则输入0)");
                            int select1 = SCANNER.nextInt();
                            if(select1 == 1){
                                System.out.println("输入充值金额:");
                                double money = SCANNER.nextDouble();
                                customer.setMoney(customer.getMoney()+money);
                                System.out.println("充值成功");
                            }
                        }
                        System.out.println("是否继续购票(购票输入1,否则输入0)");
                        select = SCANNER.nextInt();
                    }
                }
            }
        });
    }
//商家界面
    public static void showBusiness(Business business){
        System.out.println("-------客户界面--------");
        boolean showCustmoerFlag = true;
        while (showCustmoerFlag){
            System.out.println("1、展示详情---------------1");
            System.out.println("2、上架电影---------------2");
            System.out.println("3、下架电影---------------4");
            System.out.println("4、修改电影---------------5");
            System.out.println("5、退出------------------6");
            System.out.println("=========================");
            System.out.println("输入要执行选项的数字:");
            try {
                int select = Integer.parseInt(SCANNER.nextLine());
                switch (select ){
                    case 1 :     showMovies(business);        break;
                    case 2 :     addMovies(business);         break;
                    case 3 :     removeMovies(business);      break;
                    case 4 :     alterMovies(business);       break;
                    case 5 :     showCustmoerFlag = false;    break;
                    default:
                        System.out.println("输入错误,请输入正确的数字");
                }
            } catch (NumberFormatException e) {
                e.printStackTrace();
            }


        }
    }

//展示详情
    public static void  showMovies(Business business){
        for (Movies movies : BUSINESSMAP.get(business)) {
            System.out.println("电影名称: "+movies.getName());
            System.out.println("主演: "+movies.getMainRole());
            System.out.println("价格: "+movies.getPrice());
            System.out.println("分数: "+movies.getScore());
            System.out.println("余票: "+movies.getTicket());
            System.out.println("放映时间: "+movies.getTime());
        }
    }
//上架电影
    public static void  addMovies(Business business){
        Movies m = new Movies();
        System.out.println("输入电影名称:");
        m.setName(SCANNER.nextLine());
        System.out.println("输入电影主演:");
        m.setMainRole(SCANNER.nextLine());
        try {
            System.out.println("输入电影价格:");
            m.setPrice(Double.parseDouble(SCANNER.nextLine()));
        }catch (Exception e){
            m.setPrice(99);
            e.printStackTrace();
        }
        System.out.println("输入电影上映时间:");
        m.setTime(SCANNER.nextLine());
        try {
            System.out.println("输入电影分数:");
            m.setPrice(SCANNER.nextDouble());
        }catch (Exception e){
            m.setScore(9.9);
            e.printStackTrace();
        }

        BUSINESSMAP.get(business).add(m);


        boolean flag =  true;
        if(BUSINESSMAP.get(business).contains(m)){
            flag =  true;
        }else {
            flag =  false;
        }
        if (flag){
            System.out.println("上架成功");
        }else {
            System.out.println("上架失败");
        }
    }
//下架电影
    public static void  removeMovies(Business business){
        System.out.println("输入要下架的电影名称");
        String moviseName = SCANNER.nextLine();
        for (Movies movies : BUSINESSMAP.get(business)) {
            if(moviseName.equals(movies.getName())){
                BUSINESSMAP.get(business).remove(movies);
            }
        }
        boolean flag =  true;
        for (Movies movies : BUSINESSMAP.get(business)) {
            if(moviseName.equals(movies.getName()) ){
                flag = false;
            }
        }
        if (flag){
            System.out.println("下架成功");
        }else {
            System.out.println("下架失败");
        }
    }
//修改电影
    public static void alterMovies(Business business){
        System.out.println("输入要修改的电影名称:");
        String moviesName = SCANNER.nextLine();
        for (Movies movies : BUSINESSMAP.get(business)) {
            if(movies.getName().equals(moviesName)){
                System.out.println("输入修改后的电影名称:");
                movies.setName(SCANNER.nextLine());
                System.out.println("输入修改后的电影主演:");
                movies.setMainRole(SCANNER.nextLine());
                try {
                    System.out.println("输入修改后的电影价格:");
                    movies.setPrice(Double.parseDouble(SCANNER.nextLine()));
                }catch (Exception e){
                    movies.setPrice(99);
                    e.printStackTrace();
                }
                System.out.println("输入修改后的电影上映时间:");
                movies.setTime(SCANNER.nextLine());
                try {
                    System.out.println("输入修改后的电影分数:");
                    movies.setScore(Double.parseDouble(SCANNER.nextLine()));
                }catch (Exception e){
                    movies.setPrice(9.9);
                    e.printStackTrace();
                }
                break;
            }
        }
    }
}


版权声明:本文为ll6677_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。