Java一个超级简易的超市管理积分的系统

第一步我们首先要想清楚思路,比如我们在超市消费的时候是不是每个人都会有一张会员卡,会员卡号都是随机生成的。然后客人凭借这个卡号去消费的时候累计积分

所以第一步我们建立一个关于用户的一个Class类

package com.work.Demo_Timeout;

/**
 * @author Lizhenye
 * @date 2019/5/22  14:27
 * 会员的类
 */

public class Member {
    private  String registDate; //开卡日期
    private  String  name;// 姓名
    private  int cardId; //卡号
    private String password;//密码
    private  int score; //积分
//构造函数 无参
    public Member() {
    }
//构造函数有参
    public Member(String registDate, String name, int cardId, String password, int score) {
        this.registDate = registDate;
        this.name = name;
        this.cardId = cardId;
        this.password = password;
        this.score = score;
    }

    public String getRegistDate() {
        return registDate;
    }

    public void setRegistDate(String registDate) {
        this.registDate = registDate;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getCardId() {
        return cardId;
    }

    public void setCardId(int cardId) {
        this.cardId = cardId;
    }

    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;
    }
}

第二 我们就要把我们方法以及里面执行的方法写进去

package com.work.Demo_Timeout;

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

/**
 * @author Lizhenye
 * @date 2019/5/22  14:31
 * 业务类
 */
public class MemberDao {
    /**
     * //先建立一个考试的菜单
     */

    //定义好Scanner 用于接收客户输入信息
    Scanner sc=new Scanner(System.in);
    // 添加一个集合
     List<Member> memberList=new ArrayList();
    public  void headerStart(){

        System.out.println("=========================================欢迎进入会员管理系统");
        System.out.println("1、积分管理      2、积分兑换      3、积分查询      4、修改密码      5、开卡        6、退出");
        System.out.println("请选择您要进行的操作");
    }

    /**
     *
     * 具体的实现业务
     */
    public  void Start(){
        do {
             //添加项目的开头
            headerStart();
            int input = sc.nextInt();
            switch (input){
                case 1:
                    //积分存取
                    if (saveScore()){
                        System.out.println("积分存取成功");
                    }else {
                        System.out.println("存取积分失败");
                    }
                    continue;
                case 2://2、积分兑换
                    if (minuScore()){
                        System.out.println("积分兑换成功");
                    }else {
                        System.out.println("存取兑换失败");
                    }
                    continue;
                case 3: //  3、积分查询
                    showScore();
                    continue;
                case 4:// 4、修改密码
                    if (changPwd()){
                        System.out.println("修改密码成功");
                    }else {
                        System.out.println("修改密码失败");
                    }
                    continue;
                case 5:// 5、开卡
                    register();
                    continue;
                case 6:
                    //  退出
                    System.out.println("感谢您使用我们超市的会员卡");
                    break;
                    default:
                        System.out.println("请您输入正确的操作(1~6):");
                        continue;
            }
            break;
        } while (true);
    }

    /**
     * 积分存取
     * @return
     */
    public  boolean saveScore(){
        Member member = new Member();
        System.out.println("请输入您的卡号:");
        member.setCardId(sc.nextInt());
        System.out.println("请输入您的密码:");
        member.setPassword( sc.next());
         if ((member=hasMemer(member))!=null){
             System.out.println("请输入您在本超市消费的金额(一元一积分):");
             int money = sc.nextInt();
             member.setScore(money+member.getScore());
             System.out.println("积分增加成功,您目前的积分是:"+member.getScore());
             return  true;
         }else {
             System.out.println("您输入的是有问题的操作。");
         }
        return false;
    }

    /***
     * 积分兑换
     * @return
     */
    public  boolean minuScore(){
        Member member = new Member();
        System.out.println("请输入您的卡号:");
        member.setCardId(sc.nextInt());  //接受输入的值,并且设置这个值为对象的卡号
        System.out.println("请输入您的密码:");
        member.setPassword(sc.next());
        if ((member=hasMemer(member))!=null){
            System.out.println("积分兑换规则:100积分积分为0.1元,请输入您要兑换的积分");
            int num = sc.nextInt();
            if((member.getScore()-num)<0){
                System.out.println("您的积分不足,请重新操作");
            }else{
                member.setScore(member.getScore()-num);
                System.out.println("兑换成功,您已经兑换. 您一共兑换"+(num/100)*0.1+"元"+"您的积分目前是:"+member.getScore());
                return  true;
            }
        }
       return false;
    }

    /**
     * 积分查询
     */
    public  void  showScore(){
        Member member = new Member();  //实例化对象为member
        System.out.println("请输入您的卡号:");
        member.setCardId(sc.nextInt());
        System.out.println("请输入您的密码:");
        member.setPassword(sc.next());
        if ((member=hasMemer(member))!=null){
            System.out.println("姓名  会员卡号    剩余积分  开卡日期");
            System.out.println(member.getName()+"   "+member.getCardId()+"   "+member.getScore()+"   "+member.getRegistDate());
        }else{
            System.out.println("您输入的账号密码有问题,无法查询");
        }
    }
    public  Member  hasMemer(Member member) {
        if (member.getPassword() != null) { //判断下输入的账号密码是不是为空
            for (int i = 0; i < memberList.size(); i++) { //不为空就遍历循环  存数据的集合里面是不是含有这个账号密码
                if (member.getCardId() == memberList.get(i).getCardId() && member.getPassword().equalsIgnoreCase(memberList.get(i).getPassword())) {
                    return memberList.get(i);
                }
            }
        }
        return  null;
    }







    /**
     * 修改密码
     * @return
     */
    public  boolean changPwd(){
        Member member = new Member();
        System.out.println("请输入您的卡号:");
        member.setCardId(sc.nextInt());
        System.out.println("请输入您的密码:");
        member.setPassword(sc.next());
        if ((member=hasMemer(member))!=null){
            System.out.println("请输入您现在修改的密码(密码的长度不能低于6位):");
            String newpwd = sc.next();
            if (newpwd.length()<6){
                System.out.println("您的密码输入不符合规定.");
                return  false;
            }
            member.setPassword(newpwd);

        }
        return  true;
    }

    /**
     * 开卡
     */
    public  void register(){
        Member member = new Member();
        System.out.println("欢迎您使用本超市会员卡,请输入您的姓名:");
        String carName=sc.next();
        member.setName(carName);
        //随机生成一个卡号
        member.setCardId(this.randomCarId());
        System.out.println("请输入您设置的密码(密码长度不低于6):");
        //定义一个开关 是否跳出循环
         boolean flag=true;
        do {
            String pwd = sc.next();
            if (pwd.length()<6){
                System.out.println("输入的密码不可以低于六位数字,请重新输入:");
                flag = false;
            }else{
                member.setPassword(pwd);
                flag =true;
            }
        }while (!flag);
        //开发送积分100
        member.setScore(100);
        //添加开卡日期
        SimpleDateFormat simday = new SimpleDateFormat("yyyy年MM月dd日");
        Date date = new Date();
         String newTime=simday.format(date);
        member.setRegistDate(newTime);
        memberList.add(member);
        System.out.println("恭喜您成为一个超级会员,系统赠送您100积分,您的卡号是"+member.getCardId());
    }
    /*
     * 随机一个卡号
     * @return
     */
       public int randomCarId(){
        //实例化对象
           Member member = new Member();
         //随机生成一个卡号
           Random random=  new Random();
           int carId = random.nextInt(99999);
          //判断这个卡号是否存在
          for (Member m:memberList){
              //如果集合对象里的会员卡号存在重新随机一个新的数字
                if (m.getCardId()==carId){
                    carId = random.nextInt();
                }
           }
           return carId;
       }
}

最后一步我们通过main方法去实现结果

package com.work.Demo_Timeout;

/**
 * @author Lizhenye
 * @date 2019/5/22  14:32
 * 实现类
 */
public class MemberTest {
    public static void main(String[] args) {
        MemberDao memberDao = new MemberDao();
        memberDao.Start();
    }
}

以上是我们的所有代码,需要注意的就只有一个卡号的随机生成,我们要判断下这个卡号是不是已经存在了,如果存在就需要重新生成

public int randomCarId(){
        //实例化对象
           Member member = new Member();
         //随机生成一个卡号
           Random random=  new Random();
           int carId = random.nextInt(99999);
          //判断这个卡号是否存在
          for (Member m:memberList){
              //如果集合对象里的会员卡号存在重新随机一个新的数字
                if (m.getCardId()==carId){
                    carId = random.nextInt();
                }
           }
           return carId;
       }
  • 12
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值