超市会员管理系统

 

超市会员管理系统百度云盘下载

链接:https://pan.baidu.com/s/1ifP73BSnq9tgofF6ea9GiA
提取码:w9ih

 

 

客户会员类

package com.member;

import java.util.Date;

/**
 *     客户信息类
 * @author Administrator
 *
 */
public class User {
    
    
    //客户资料
    private Integer cardNum;            //卡号
    private String userName;            //用户名
    private String password;            //密码
    private int integral=100;            //积分
    private Date ocd;                    //开卡日期
    

    //构造方法
    public User() {}
    public User(int cardNum,String userName, String password, int integral,Date ocd) {
        this.cardNum = cardNum;
        this.userName=userName;
        this.password = password;
        this.integral = integral;
        this.ocd=ocd;
    }

    //setter getter
    public int getCardNum() {
        return cardNum;
    }
    /**
     *     会员卡号八位数限制
     */
    public boolean setCardNum(int cardNum) {
        if(cardNum>=10000000&&cardNum<100000000) {
            this.cardNum = cardNum;
            return false;
        }
        return true;
    }
    public String getUserName() {
        return userName;
    }
    /**
     *     用户名长度限制
     */
    public boolean setUserName(String userName) {
        if(userName.length()>2&&userName.length()<13) {
            this.userName = userName;
            return false;
        }else if(userName.length()<3){
            System.out.println("用户名长度不能少于3位");
        }else {
            System.out.println("用户名长度不能多于12位");
        }
        return true;
    }

    public String getPassword() {
        return password;
    }
    /**
     *     密码长度限制
     */
    public boolean setPassword(String password) {
        if(password.length()>5&&password.length()<13) {
            this.password = password;
            return false;
        }else if(password.length()<=5){
            System.out.println("密码长度不能少于6位");
        }else {
            System.out.println("密码长度不能多于12位");
        }
        return true;
    }
    public int getIntegral() {
        return integral;
    }

    public void setIntegral(int integral) {
        this.integral= integral;
    }
    public Date getOcd() {
        return ocd;
    }
    public void setOcd(Date ocd) {
        this.ocd = ocd;
    }

    
}

 

超市系统

package com.member;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 *     会员卡系统类
 */
import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.Map;
import java.util.Random;
import java.util.Scanner;

public class Member {
    Scanner sc=new Scanner(System.in);

    Map<Integer,User> map=new HashMap<Integer,User>();    //会员卡集合

    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    //时间显示的格式
    
    /**
     *     高级会员
     */
    Date date=new Date();        //获取当前系统时间
    User user1=new User(88888888,"善良可爱猪","h888888",10000,date);
    User user2=new User(99999999,"无敌龙卷风","999999",20000,date);
    User user3=new User(66666666,"老司机","666666",20000,date);
    
    public void initial(){
        map.put(88888888,user1);
        map.put(99999999,user2);
        map.put(66666666,user3);
    }
    /**
     *     会员管理系统界面
     */
    public void start() {
        initial();            //初始化高级会员
        String choose="";    //用户选择
        do{
            System.out.println("**********欢迎进入超市会员管理系统**********");
            System.out.println("1、会员登录\t\t2、会员开卡\t\t3、退出系统");
            choose=sc.next();
            switch (choose) {
            case "1":
                System.out.println("***会员登录***");
                User u=Login();                        //登录后返回的对象
                if(u instanceof User) {                //判断返回的对象是否是会员
                    menu(u);                        //调用会员菜单二级界面
                }
                break;
            case "2":
                System.out.println("***会员开卡***");
                newCard();                                    //调用开卡方法
                break;
            case "3":
                System.out.println("感谢您的使用,欢迎下次使用!");
                break;

            case "zzh":
                System.out.println("***管理者***");
                inShow();
                break;    
            default:
                System.out.println("*输入有误,请重新输入!*");
                break;
            }
        }while(!"3".equals(choose));
    }

    /**
     *     会员卡菜单界面(二级菜单)
     */
    public void menu(User u) {
        String choose="";
        do {
            System.out.println("*******************************会员用户**********************************");
            System.out.println("1、积分累计\t\t2、积分兑换\t\t3、查询剩余积分\t4、修改密码\t\t5、退出登录");
            choose=sc.next();
            switch (choose) {
            case "1":
                System.out.println("***积分累计***");
                shop(u);
                break;
            case "2":
                System.out.println("***积分兑换***");
                toUse(u);
                break;
            case "3":
                System.out.println("***查询积分***");
                show(u);
                break;
            case "4":
                System.out.println("***修改密码***");
                if(revamp(u)) {
                    System.out.println("***请重新登录***");
                    return;
                }
                break;
            case "5":
                System.out.println("***退出登录成功***");
                break;
            default:
                System.out.println("输入有误,请重新输入!");
                break;
            }
        }while(!"5".equals(choose));
    }

    /**
     *     登入会员卡
     */
    public User Login() {
        boolean flag=false;
        System.out.println("请输入您的会员卡号:");
        Integer cardNum=0;
        try {
            cardNum=sc.nextInt();
        }catch(InputMismatchException e) {
            System.err.println("卡号非法输入");
            return null;
        }
        System.out.println("请输入您的密码:");
        String password=sc.next();

        //遍历集合的key,对比输入的key
        for(Map.Entry<Integer,User> m:map.entrySet()) {
            if(cardNum.equals(m.getKey())&&password.equals(m.getValue().getPassword())) {
                System.out.println("***登录成功***");
                System.out.println("***尊敬的:"+m.getValue().getUserName()+",您好***");
                return m.getValue();    //返回对象
            }
        }
        System.out.println("用户名或者密码错误");
        return null;
    }


    /**
     *    会员开卡
     */
    public void newCard() {
        //创建用户
        User u=new User();

        //随机八位数卡号
        Random random=new Random();
        boolean flag;                                //标记卡号是否正确
        do {
            flag=u.setCardNum(random.nextInt());    //随机卡号值
        }while(flag);

        //输入用户名密码
        do {
            System.out.println("请输入注册用户名:");
            flag =u.setUserName(sc.next());

            //用户名错误结束本次循环
            if(flag) {
                continue;
            }
            System.out.println("请输入注册密码:");
            flag=u.setPassword(sc.next());

            //密码错误提示
            if(flag) {
                System.out.println("请重新注册!");
            }
        }while(flag);

        //创建开卡日期
        Date date=new Date();
        u.setOcd(date);

        //注册成功
        map.put(u.getCardNum(), u);                    //把对象放入集合里
        System.out.println("***恭喜开通会员卡成功,系统赠送您100积分,您的会员卡号:"+u.getCardNum()+"***");
    } 

    /**
     *     积分累计
     */
    public void shop(User u) {
        System.out.println("请输入您此次消费金额(消费一元累计一积分):");
        try {
            int buy=sc.nextInt();
            if(buy<=0) {
                System.out.println("***输入错误,积分累计失败!***");
            }else {
                System.out.println("***积分累计成功!***");
                u.setIntegral(u.getIntegral()+buy);            //积分加上输入的金钱积分
            }
            System.out.println("***积分总计:"+u.getIntegral()+"***");
        }catch(InputMismatchException e) {
            System.err.println("***输入不是数字!累计积分失败!***");
        }
    }

    /**
     *     积分兑换
     */
    public void toUse(User u) {
        System.out.println("请输入您需要兑换的积分(100积分抵用0.1元,不足100的积分不做抵用):");
        try {
            int use=sc.nextInt();
            if(use>u.getIntegral()) {
                System.out.println("***积分余额不足积分兑换失败***");
            }else if(use>=100) {
                u.setIntegral(u.getIntegral()-use);        //积分减输入的金钱积分
                System.out.println("您的消费金额中使用会员积分抵消:"+(use/100f)+"元");
                System.out.println("剩余积分总计:"+u.getIntegral());
            }else if(use<100) {
                System.out.println("兑换的积分不足100,兑换失败!");
            }
        }catch(InputMismatchException e) {
            System.err.println("***输入不是数字!积分兑换失败!***");
        }
    }
    /**
     *     查询剩余积分
     */
    public void show(User u) {
        System.out.println("用户名\t\t会员卡号\t\t剩余积分\t\t开卡日期");
        System.out.print(u.getUserName()+"\t\t"+u.getCardNum());
        System.out.println("\t"+u.getIntegral()+"\t\t"+sdf.format(u.getOcd()));
    }

    /**
     *     修改密码
     */
    public boolean revamp(User u) {
        boolean flag=false;
        System.out.println("请输入您的会员卡号:");
        int cardNum=0;
        try {
            cardNum=sc.nextInt();
        }catch(InputMismatchException e) {
            System.err.println("卡号非法输入");
        }
        System.out.println("请输入您的密码:");
        String password=sc.next();

        if(cardNum==u.getCardNum()&&password.equals(u.getPassword())) {
            System.out.println("请输入新的会员密码:");
            if(!u.setPassword(sc.next())) {
                System.out.println("密码修改成功!");
                flag=true;
            }else {
                System.out.println("密码修改失败!");
                flag=false;
            }
        }else {
            System.out.println("***您输入的会员卡号或密码错误,无法修改***");
            flag=false;
        }
        return flag;
    }
}

 

 

 

测试类

 

package com.member;
/**
 *     超市会员管理系统测试类
 * @author Administrator
 *
 */
public class MemberTest {
    public static void main(String[] args) {
        //创建会员对象
        Member member=new Member();
        //调用超市会员系统
        member.start();
    }
}

 

 

 

运行

 

posted @ 2019-03-01 08:41  纸灰  阅读(548)  评论(0编辑  收藏  举报