超市管理

对着背影说爱祢 提交于 2019-11-28 03:13:07
package com.myshoop;

//会员类  
public class Member {

    
    private String name;   //姓名
    private int num;    //会员卡号
    private String password;  //密码
    private int score;   //积分
    private String carDate;   //开卡日期
    
    
    
    
    
    public Member() {
        super();
    }
    public Member(String name, int num, String password, int score, String carDate) {
        super();
        this.name = name;
        this.num = num;
        this.password = password;
        this.score = score;
        this.carDate = carDate;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public int getScore() {
        return score;
    }
    public void setScore(int score) {
        this.score = score;
    }
    public String getCarDate() {
        return carDate;
    }
    public void setCarDate(String carDate) {
        this.carDate = carDate;
    }
    
    
}

 

 

package com.myshoop;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

//业务类
public class MemberDao {

    Member m = null;
    static Scanner sc = new Scanner(System.in);
    // 写一个集合用来存储会员用户的
    List<Member> memberList = new ArrayList<Member>();

    // 写方法
    // 开始菜单
    // 菜单
    public void menu() {

        System.out.println("***欢迎来到新嘉隆线上超市******");
        System.out.println("**********************");
        System.out.println("1、积分累计 2、积分兑换 3、查询剩余积分 4、修改密码 5、开卡 6、退出");
        System.out.println("请选择:");

    }

    // 开始
    public void start() {

        do {
            menu();
            String choose = sc.next();
            switch (choose) {
            case "1":
                // 积分累计
                scoreAdd();
                if (scoreAdd() == true) {
                    System.out.println("积分累计成功!Q");
                } else if (scoreAdd() == false) {

                    System.out.println("积分累计失败!N");
                }
                continue;
            case "2":
                // 积分兑换
                scoreChange();
                if (scoreChange() == true) {

                    System.out.println("积分兑换成功!");
                } else if (scoreChange() == false) {

                    System.out.println("积分兑换失败!");
                }
                continue;
            case "3":
                // 查询剩余积分
                finaScore();
                continue;
            case "4":
                // 修改密码
                changePassword();
                continue;
            case "5":
                // 开卡
                openCar();
                continue;

            case "6":
                // 退出
                System.out.println("亲! 谢谢您的使用,欢迎下次再次使用!");
                break;

            default:
                System.out.println("亲! 找不到您要的选线 ,请重新输入❥(^_-)");

                continue;
            }
            break;
        } while (true);

    }

    // * 查询用户是否存在 如果存在返回用户 根据会员卡号和密码查找用户是否存在 不存在则为null
    public Member hasMember(int num, String password) {

        for (Member member : memberList) {

            if (member.getNum() == num && member.getPassword().equalsIgnoreCase(password)) {

                return member;
            }
        }
        return null;

    }

    // 1、积分累计
    public boolean scoreAdd() {

        System.out.println("请输入卡号:");

        int num = sc.nextInt();

        System.out.println("请输入密码:");

        String password = sc.next();

        if (hasMember(num, password) != null) {

            System.out.println("请输入您的消费金额(0.1元相当于100积分)");
            int score = sc.nextInt();
            m.setScore(m.getScore() + score * 1000);
            System.out.println("恭喜用户获得积分:" + m.getScore());
        } else {

            System.out.println("该用户不存在,请重新输入:");
        }
        return true;

    }

    // 2、积分兑换
    public boolean scoreChange() {
        System.out.println("请输入卡号:");

        int num = sc.nextInt();
        
        System.out.println("请输入密码:");
        
        String password = sc.next();
        
        if(hasMember(num,password)!=null) {
            
            System.out.println("请输入您要兑换的积分数(1积分相当于0.001元)");
            int score = sc.nextInt();
            if(score<=m.getScore()) {
            m.setScore(m.getScore()-score);
            System.out.println("恭喜用户兑换积分成功! 兑换的金额是::"+"\n"+score*0.001+"元");
            }else {
                System.out.println("用户的积分不够!");
            }
        }else {
            
            
            System.out.println("该用户不存在(或用户名和密码错误),请重新输入:");
        }
        return true;
        
    
    }

    // 3、查询剩余积分
    public void finaScore() {
        System.out.println("请输入卡号:");

        int num = sc.nextInt();
        
        System.out.println("请输入密码:");
        
        String password = sc.next();
        
if(hasMember(num,password)!=null) {
            
            
        System.out.println(m.getScore());
        
        
        }else {
            
            
            System.out.println("该用户不存在,请重新输入:");
        }
    
    }

    // 4、修改密码
    public void changePassword() {
        System.out.println("请输入卡号:");

        int num = sc.nextInt();
        
        System.out.println("请输入密码:");
        
        String password = sc.next();
        
        if(hasMember(num,password)!=null) {
            
            
            System.out.println("请输入你要修改的密码:");
            String newPassword = sc.next();
            m.setPassword(newPassword);
            System.out.println("修改密码成功!");
            }else {
                
                
                System.out.println("该用户不存在,请重新输入:");
            }
        
    }

    // 5、开卡 用户要先开卡才能使用
    // 随机生成卡号
    public int creatNum() {

        Random random = new Random();
        int num = random.nextInt(100000000);
        // 确保卡号的唯一性 如果集合中存在 那么就再随机生成一个
        if (m.getNum() == num) {
            num = random.nextInt(100000000);

        }
        return num;
    }

    public void openCar() {
        m = new Member();
        System.out.println("请输入用户名:");
        m.setName(sc.next());
        // 随机生成卡号 写一个方法
        int carNum = creatNum();
        m.setNum(carNum);
        // 确保用户名和密码正确
        // 输入密码 密码的长度不能小于6
        System.out.print("请输入注册密码:  ");
        String password;
        boolean boo = true;
        do {
            password = sc.next();
            if (password.length() < 6) {
                System.out.print("输入的密码长度小于6,亲! 请重新输入:  ");
                boo = false;
            } else {
                boo = true;
                m.setPassword(password);
            }

        } while (!boo);

        // 注册成功! 赠送100积分
        m.setScore(100);
        // 开卡日期:
        Date date = new Date();

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");

        String carDate = simpleDateFormat.format(date);
        m.setCarDate(carDate);

        // 提醒用户操作成功! 卡号是多少
        System.out.println("亲! 您的会员开通成功! 您的卡号是:" + carNum);

        memberList.add(m);
    }

}

 

 

 

package com.myshoop;

public class Test {

    //测试类
    public static void main(String[] args) {
        
        MemberDao dao = new MemberDao();
        
        dao.start();
        
    }
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!