超市管理系统(对象+集合)

//超市类

package 超市管理系统;

public class Market {
    private String name;//
    private String cardID;//
    private String password;//
    private int score;//
    private String regisDate;//


    public Market() {
    }

    public Market(String name, String cardID, String password, int score, String regisDate) {
        this.name = name;
        this.cardID = cardID;
        this.password = password;
        this.score = score;
        this.regisDate = regisDate;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return cardID
     */
    public String getCardID() {
        return cardID;
    }

    /**
     * 设置
     * @param cardID
     */
    public void setCardID(String cardID) {
        this.cardID = cardID;
    }

    /**
     * 获取
     * @return password
     */
    public String getPassword() {
        return password;
    }

    /**
     * 设置
     * @param password
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * 获取
     * @return score
     */
    public int getScore() {
        return score;
    }

    /**
     * 设置
     * @param score
     */
    public void setScore(int score) {
        this.score = score;
    }

    /**
     * 获取
     * @return regisDate
     */
    public String getRegisDate() {
        return regisDate;
    }

    /**
     * 设置
     * @param regisDate
     */
    public void setRegisDate(String regisDate) {
        this.regisDate = regisDate;
    }

    public String toString() {
        return "Market{name = " + name + ", cardID = " + cardID + ", password = " + password + ", score = " + score + ", regisDate = " + regisDate + "}";
    }
}

//业务需求

package 超市管理系统;

import java.text.SimpleDateFormat;
import java.util.*;

public class MemberDao {
    public static final Scanner sc = new Scanner(System.in);
    List<Market>  markets = new ArrayList<>();
    //开始菜单
    public void meun(){
        System.out.println("------------------------欢迎进入超市系统-----------------------");
        System.out.println("1、积分累计 2、积分兑换 3、查询剩余积分 4、修改密码 5、开卡 6、退出");
        System.out.println("===========================================================");
        System.out.println("请选择:");
    }
    public void start(){
        do {
            meun();
            String choose =sc.nextLine();
            switch (choose){
                case "1":
                    //积分累计
                    if (savaScore()){
                        System.out.println("积分累计成功");
                    }else {
                        System.out.println("对不你输入的会员卡号或密码有误!!!");

                    }
                    break;
                case "2":
                    //积分兑换
                    if (minusScore()){
                        System.out.println("积分兑换成功");
                    }else {
                        System.out.println("对不起你输入的会员卡号或密码有误");
                    }
                    break;
                case "3":
                    //查询剩余积分
                    showScoce();
                    break;
                case "4":
                    //修改密码
                    UresScoce();
                    break;
                case "5":
                    //开卡
                    register();
                    break;
                case "6":
                    //退出
                    System.out.println("感谢你的光临!");
                    return;
                default:
                    System.out.println("输入错误!请重新输入!");
            }
        }while (true);
    }

    //判断用户是否存在
    public Market hasMarket(String id,String password){
        for (Market market: markets){
            if (market.getCardID().equals(id)&&market.getPassword().equals(password)){
                return market;
            }
        }
        return null;
    }
    /**
     * 开卡
     */
    private void register() {
        Market m = new Market();
        System.out.println("请输入你的姓名!!");
        m.setName(sc.nextLine());
        //会员卡号
        String cardID=createID();
        System.out.println("请输入注册密码!");
        String password=sc.nextLine();
        while (true){
            if (password.matches("[A-Z]{1,5}\\w{5,15}")){
                m.setPassword(password);
                break;
            }else {
                System.out.println("密码不能小于六位或大于20为首字母要大写!!");
                password=sc.nextLine();
            }
        }
        //开卡送积分
        m.setScore(100);
        //开发日期
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
        String rs =sdf.format(date);
        m.setRegisDate(rs);
        m.setCardID(cardID);
        System.out.println("恭喜你开卡成功您的会员卡号是:"+m.getCardID()+"注册时间是"+m.getRegisDate());
        markets.add(m);
    }

    /**
     * 会员卡号生成八位
     * @return
     */
    private String createID() {
        String rs ="";
        Random r = new Random();
        for (int i = 1; i <= 8; i++) {
            rs+=r.nextInt(10);
            }
        if (bijiao(rs)){
            return rs;
        }else {
            for (int j = 0; j <=8 ; j++) {
                rs+=r.nextInt(10);
            }
        }
        return rs;
    }

    /**
     * 判断卡号是否存在
     * @param rs
     * @return
     */
    private boolean bijiao(String rs) {
        for (Market market :markets){
            if (market.getCardID().equals(rs)){
                return false;
            }
        }
        return true;
    }

    /**
     * 修改密码
     */
    private void UresScoce() {
        System.out.println("请输入你的会员卡号:");
        String id = sc.nextLine();
        System.out.println("请输入你的会员密码");
        String password=sc.nextLine();
        Market market =hasMarket(id,password);
        if (market!=null){
            while (true) {
                System.out.println("请输入你要修改的会员密码:");
                String password1 =sc.nextLine();
                System.out.println("请再次输入你要修改的会员密码:");
                String password2 =sc.nextLine();
                if (password1.equals(password2)){
                    System.out.println("密码修改成功!");
                    market.setPassword(password1);
                    break;
                }else {
                    System.out.println("两次密码不一致!请重新输入!");
                }
            }
        }else {
            System.out.println("会员不存在!!!!");
        }
    }

    /**
     * 查询
     */
    private void showScoce() {
        System.out.println("请输入你的会员卡号:");
        String id = sc.nextLine();
        System.out.println("请输入你的会员密码");
        String password=sc.nextLine();
        Market market =hasMarket(id,password);
        if (market!=null){
            System.out.println("会员卡号\t姓名\t剩余积分\t开卡日期");
            System.out.println(market.getCardID()+"\t"+market.getName()+"\t"+market.getScore()+"\t"+market.getRegisDate());
        }else {
            System.out.println("会员不存在!!!!");
        }
    }

    /**
     * 积分兑换
     * @return
     */
    private boolean minusScore() {
        String c="y";
        System.out.println("请输入你的会员卡号:");
        String id = sc.nextLine();
        System.out.println("请输入你的会员密码");
        String password=sc.nextLine();
        Market market =hasMarket(id,password);
        if (market!=null){
            do {
                    System.out.println("请输入你要抵消多少积分:(1元积一分)");
                    String sorce = sc.nextLine();
                    Integer i = Integer.valueOf(sorce);
                    if (i<=market.getScore()){
                        market.setScore(market.getScore()-i);
                        System.out.println("您消费了"+i+"分"+"抵换了"+(i/100)+"元");
                        return true;
                    }else {
                        System.out.println("对不起你的积分不足!");
                        System.out.println("是否继续(y/n)");
                        c =sc.nextLine();
                        if (!c.equals("y")){
                            return false;
                        }
                    }
            }while (c.equals("y"));
            return true;
        }else {
            return false;
        }
    }

    /**
     * 积分累计
     * @return
     */
    private boolean savaScore() {
        System.out.println("请输入你的会员卡号:");
        String id = sc.nextLine();
        System.out.println("请输入你的会员密码");
        String password=sc.nextLine();
        Market market =hasMarket(id,password);
        if (market!=null){
            System.out.println("请输入你此次消费的金额:(1元积一分)");
            String sorce = sc.nextLine();
            Integer i = Integer.valueOf(sorce);
            market.setScore(market.getScore()+i);
            return true;
        }else {
            return false;
        }

    }
}

//主函数

package 超市管理系统;

public class SystemMarket {
    public static void main(String[] args) {
        MemberDao m = new MemberDao();
        m.start();
    }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值