• ##超市会员卡管理,利用我们之前的知识进行温习


    首先当我们拿到超市会员卡管理系统这个题的时候,可能会绝对哇,好高大上,其实不然,我们要从心里鄙视它,你很low,等我干掉你!!

    然后我们去分析这个题我们用面向对象怎么去解决:

    一,超市会员卡?

    一个卡绝对会有的属性:  卡号,,姓名,,开卡时间,,密码,,积分是不是??

    那么我门就可以先把这个卡类给建立出来

    public class CarVip {
        //首先 我们要建立会员卡的属性    姓名   卡号   密码  积分   开卡时间
        private String name;
        private  int carId;
        private String password;
        private int socre;
        private String registDate;
    
        //空参构造
        public CarVip() {
        }
        //有参构造
        public CarVip(String name, int carId, String password, int socre, String registDate) {
            this.name = name;
            this.carId = carId;
            this.password = password;
            this.socre = socre;
            this.registDate = registDate;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getCarId() {
            return carId;
        }
    
        public void setCarId(int carId) {
            this.carId = carId;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public int getSocre() {
            return socre;
        }
    
        public void setSocre(int socre) {
            this.socre = socre;
        }
    
        public String getRegistDate() {
            return registDate;
        }
    
        public void setRegistDate(String registDate) {
            this.registDate = registDate;
        }
    }

    二,会员卡绝对会有业务类去实现会员卡这个类

    它的方法都有哪些呢?根据要求总共五个方法:

    1,开卡

    2,存积分

    3,查询积分

    4,兑换积分

    5,修改密码

    6,退出系统

    public class CarVipDao {
        Scanner sc = new Scanner(System.in);
        List<CarVip> carVipList = new ArrayList();
    
        public void startVip() {
            System.out.println("================================");
            System.out.println("1,开卡    2,存积分   3,积分查询  4,积分兑换  5,修改密码  6.退出系统");
            System.out.println("================================");
            System.out.println("请选择:");
        }
    
        public void start() {
            do {
                //让程序进入界面交互部分
                startVip();
                int choose = sc.nextInt();//让键盘录入去接收
                switch (choose) {
                    case 1:
                        //1,开卡
                        openNewCarId();
                        continue;
                    case 2:
                        //2,存积分
                        if(cunScore()){
                            System.out.println("恭喜你,积分累计成功");
                        }else{
                            System.out.println("对不起,积分累计失败");
                        }
                        continue;
                    case 3:
                        //3,查询积分
                        chaScore();
                        continue;
                    case 4:
                        //4,积分兑换
                        if(duiScore()){
                            System.out.println("恭喜你,积分兑换成功");
                        }else{
                            System.out.println("对不起,积分兑换失败");
                        }
                        continue;
                    case 5:
                        //5,修改密码
                        if(checkPas()){
                            System.out.println("恭喜你,密码修改成功");
                        }else{
                            System.out.println("对不起,你的输入有误");
                        }
                        continue;
                    case 6:
                        //6退出系统
    //                    System.exit(1);
                        break;
                    default:
                        System.out.println("对不起,你的输入有误,请重新输入:");
                        continue;
                }
                break;
            } while (true);
        }
    
        /**
         * 1,开卡
         */
        public void openNewCarId() {
            CarVip carVip = new CarVip();//新建卡类对象
            System.out.println("请输入姓名:");
            carVip.setName(sc.next());
            //随机生成卡号
            carVip.setCarId(this.openNew());
            //输入密码
            System.out.println("请输入您的密码:");
            boolean flag = false;
            String pas;
            do {
                pas = sc.next();
                if (pas.length() < 6) {
                    System.out.println("对不起,您输入错误,请重新输入:");
                } else {
                    carVip.setPassword(pas);
                    flag = true;
                }
    
            } while (!flag);
            //开卡成功后送积分100
            carVip.setSocre(100);
            //显示开卡时间
            Date date = new Date();//系统时间
            String s = new SimpleDateFormat("yyyy-MM-dd").format(date);
            carVip.setRegistDate(s);
            carVipList.add(carVip);
            System.out.println("恭喜您,开卡成功,为了感谢你对我们的支持,送你100积分,你的会员卡号是:" + carVip.getCarId());
    
        }
    
        /**
         * 生成随机卡号
         *
         * @return
         */
        private int openNew() {
            Random r = new Random();
            int i = r.nextInt(99999999);
            for (CarVip vip : carVipList) {
                if (i == vip.getCarId()) {
                    i = r.nextInt(99999999);
                }
            }
            return i;
        }
    
        /**
         * 2,存积分
         */
        public boolean cunScore() {
            CarVip vip = new CarVip();
            System.out.println("请输入您的卡号:");
            vip.setCarId(sc.nextInt());
            System.out.println("请输入密码:");
            vip.setPassword(sc.next());
            if ((vip=hascar(vip))!=null) {
                System.out.println("请输入你消费的金额:(1元换1积分)");
                int i = sc.nextInt();
                vip.setSocre(vip.getSocre()+i);
                return true;
            }else{
                System.out.println("对不起,您输入的账号密码不匹配,请重新输入");
            }
            return true;
        }
    
        /**
         * 判断输入的卡号和密码是否正确
         * @param carVip
         * @return
         */
        private CarVip hascar(CarVip carVip) {
            if (carVip.getPassword() != null) {
                for (int i = 0; i < carVipList.size(); i++) {
                    //equalsIgnoreCase是不分大小写,需要判断输入的密码是否一样
                    if (carVipList.get(i).getPassword().equalsIgnoreCase(carVip.getPassword()) && carVipList.get(i).getCarId() == carVip.getCarId()) {
                        return carVipList.get(i);
                    }
                }
            }
            return null;
        }
    
        /**
         * 3,查询积分
         */
        public void chaScore(){
            CarVip vip = new CarVip();
            System.out.println("请输入你的卡号:");
            vip.setCarId(sc.nextInt());
            System.out.println("请输入你的密码:");
            vip.setPassword(sc.next());
            if((vip=hascar(vip))!=null){
                System.out.println("姓名  卡号  积分  开卡时间");
                System.out.println(vip.getName()+" "+vip.getCarId()+" "+vip.getSocre()+" "+vip.getRegistDate());
            }else{
                System.out.println("对不起,你输入的卡号和密码不匹配,请重新输入");
            }
        }
    
        /**
         * 4,兑换积分
         */
        public boolean duiScore(){
            CarVip vip = new CarVip();
            System.out.println("请输入你的卡号:");
            vip.setCarId(sc.nextInt());
            System.out.println("请输入你的密码:");
            vip.setPassword(sc.next());
            if((vip=hascar(vip))!=null){
                System.out.println("请输入你要兑换的积分:(100积分兑换0.1元,不足100积分不能兑换)");
                int i = sc.nextInt();
                if(i<vip.getSocre()){
                    vip.setSocre(vip.getSocre()-i);
                    System.out.println("您的积分兑换成功:"+i/100*0.1+"元");
                    return true;
                }else{
                    System.out.println("对不起,你的积分不够,不能兑换");
                }
            }else{
                System.out.println("对不起,你输入的卡号和密码不匹配,请重新输入:");
            }
            return false;
        }
    
        /**
         * 5,修改密码
         */
        public boolean checkPas(){
            CarVip vip = new CarVip();
            System.out.println("请输入您的卡号:");
            vip.setCarId(sc.nextInt());
            System.out.println("请输入您的密码:");
            vip.setPassword(sc.next());
            if((vip=hascar(vip))!=null){
                System.out.println("输入正确,请输入您的新密码:");
                String pas;
                boolean flag=false;
                do{
                    pas=sc.next();
                    if(pas.length()<6){
                        System.out.println("对不起,您输入错误,请重新输入:");
                        flag=false;
                    }else{
                        vip.setPassword(pas);
                        flag=true;
                    }
                }while (!flag);
                return true;
            }else{
                System.out.println("对不起,您输入的卡号和密码不匹配,请重新输入:");
            }
            return false;
        }
    }

    三:测试类

    public class Test {
        public static void main(String[] args) {
            CarVipDao car = new CarVipDao();
            car.start();
        }
    }
  • 相关阅读:
    P3 创建项目(下)
    P2 创建项目(中)
    P1 创建项目(上)
    ASP.NET Core 3.x 入门视频(完结)
    网易云微专业《职场人必学的Python技能课》
    01.Python配置与运行
    阶段一-03.地址,订单,支付,定时任务开发-第1章 收货地址功能开发-1-6 收货地址
    ASYNC PROGRAMING IN JAVASCRIPT[转]
    Bluebird-NodeJs的Promise
    理解Nodejs的Event Loop
  • 原文地址:https://www.cnblogs.com/liurui-bk517/p/10918075.html
Copyright © 2020-2023  润新知