基于Java、MySQL、MVC架构的JavaSE电影院管理系统

一、环境配置

JDK1.8

MySQL 8.0

二、知识点

封装

继承

多态

接口

JDBC

List

正则表达式

MVC三层架构

三、流程图

 四、代码

package com.iotek.cinema.dao;

import com.iotek.cinema.entity.Hall;

import java.util.ArrayList;

public interface HallDao {
    //保存一条数据
    public void saveHall(Hall hall);
    //根据放映厅名字查找
    public Hall selectHallByHallName(String hallname);
    //根据放映厅ID查找
    public Hall selectHallByHallID(int hallID);
    //查询所有放映厅
    public ArrayList<Hall> selectAllHall();
    //根据放映厅所属电影院查找
    public ArrayList<Hall> selectHallByBelongsTo(int hallBelongsTo);
    //查找开放的放映厅
    public ArrayList<Hall> selectHallByOpen(String hallStateOpen);
    //查找未开放的放映厅
    public ArrayList<Hall> selectHallByNotOpen(String hallStateNotOpen);
    //修改放映厅名字
    public boolean updateHallName(int hallID,String newHallName);
    //修改所属放映厅
    public boolean updateHallBelongsTo(int hallID,int newHallBelongsTo);
    //修改放映厅状态
    public boolean updateHallState(int hallID,String newHallState);
    //放映厅售票前十查询
    public ArrayList<Hall> ticketBeforeTenQueries(int ranking);
    //购票增加总票房
    public boolean updateHallSalesIncrease(int hallId,int votes);
    //购票增加总营业额
    public boolean updateHallTurnoverIncrease(int hallId,double moviePrice);
    //退票减少总票房
    public boolean updateHallBoxOfficeToReduce(int hallId,int votes);
    //退票减少总营业额
    public boolean updateHallReduceTotalTurnover(int hallId,double moviePrice);
}
//用户登录界面
    private  void loginMenu(){
        do {
            System.out.println("请输入用户名");
            String name = scanner.next();
            if (!MyUtil.math(name,"^[a-zA-Z][a-zA-Z0-9_]{4,15}$")) {
                System.out.println("用户名应以字母开头,包含字母、数字、下划线,长度为5-17位");
                return;
            }
            System.out.println("请输入密码");
            String passsword = scanner.next();
            if (!MyUtil.math(passsword,"^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$")) {
                System.out.println("密码应包含大小写字母和数字的组合,不能使用特殊字符,长度为8-10位");
                return;
            }
            System.out.println("请再次确认密码");
            String secondPassword = scanner.next();
            if (!passsword.equals(secondPassword)) {
                System.out.println("两次密码不一致请重新输入!");
                return;
            }
            User user = new User(0,name,secondPassword,0,0,"","","",0,0,"");
            int res = userBiz.login(user);
            if (res == 1) {
                System.out.println("账号不存在");
            }
            if (res == 2) {
                System.out.println("用户名或密码错误");
            }
            if (res == 3) {
                System.out.println("账号已被冻结");
                System.exit(0);
            }
            if (res == 4) {
                user_id = userBiz.findByName(name).getId();
                System.out.println("登录成功");
                MyUtil.jump();
                userMainMenu();
                break;
            }
            System.out.println("是否继续");
            choose = scanner.next();
        }while (!choose.equals("n"));
    }
//充值
    private void topup(){
        do{
            double money = 0;
            System.out.println("1、30元\t\t2、50元\t\t3、100元");
            System.out.println("4、200元\t\t5、300元\t\t6、500元");
            System.out.println("7、其他金额");
            System.out.println("8、返回上一级");
            System.out.println("9、退出");
            choose = scanner.next();
            switch (choose){
                case "1":
                    money = 30;
                    break;
                case "2":
                    money = 50;
                    break;
                case "3":
                    money = 100;
                    break;
                case "4":
                    money = 200;
                    break;
                case "5":
                    money = 300;
                    break;
                case "6":
                    money = 500;
                    break;
                case "7":
                    System.out.println("请输入金额");
                    String m = scanner.next();
                    if (MyUtil.math(m,"^[1-9]\\d*$")) {
                        money = Double.parseDouble(m);
                    }else {
                        System.out.println("金额应为正整数");
                        return;
                    }
                    break;
                case "8":
                    return;
                case "9":
                    System.out.println("退出成功,感谢您的使用");
                    System.exit(0);
                default:
                    System.out.println("您输入的有误,请重新输入!!!");
                    return;
            }
            if (money > 10000) {
                userBiz.modifyUserStateFreeze(user_id);
                System.out.println("账号异常,已冻结,请与管理员联系!!!!");
                System.exit(0);
            }else {
                boolean res = userBiz.topupById(user_id,money,MyUtil.getTime());
                if (res==true) {
                    System.out.println("充值成功");
                    userBiz.modifyMemberLevel(user_id,userBiz.totalAmountOfTopup(user_id));
                }
                userBiz.addBalance(user_id,money,money,money);
                System.out.println("是否继续");
                choose = scanner.next();
            }
        }while (!choose.equals("n"));
    }

五、项目展示

 

下载链接:

链接:https://pan.baidu.com/s/1bL7BusqsXCV-r6aMqwlS4g?pwd=1234
提取码:1234

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杪&秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值