zoukankan      html  css  js  c++  java
  • 发红包的案例

    package cn.hope.day09.demo09;

    /**
    * @author newcityman
    * @date 2019/7/11 - 22:57
    */
    public class User {
    private String name;
    private Integer money;

    public User() {
    }

    public User(String name, Integer money) {
    this.name = name;
    this.money = money;
    }

    public String getName() {
    return name;
    }

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

    public Integer getMoney() {
    return money;
    }

    public void setMoney(Integer money) {
    this.money = money;
    }

    public void show(){
    System.out.println("我是:"+this.name+",我的余额是:"+this.money);
    }
    }

    package cn.hope.day09.demo09;

    import java.util.ArrayList;
    import java.util.Random;

    /**
    * @author newcityman
    * @date 2019/7/11 - 23:24
    */
    public class Member extends User {
    public Member() {
    }

    public Member(String name, Integer money) {
    super(name, money);
    }

    public void receive(ArrayList<Integer> list){
    //从红包中随机抽取一个,给自己
    //随机抽取一个集合中的索引编号
    int index= new Random().nextInt(list.size());
    //根据索引,从集合中删除,并且得到被删除的红包,给自己
    int delta = list.remove(index);
    //当前成员目前本来有多少钱
    int money = super.getMoney();
    //收取红包,存进腰包
    super.setMoney(money+delta);

    }
    }
    package cn.hope.day09.demo09;

    import java.util.ArrayList;

    /**
    * @author newcityman
    * @date 2019/7/11 - 23:00
    */
    //群主的类
    public class Manager extends User {

    public Manager() {
    }

    public Manager(String name, Integer money) {
    super(name, money);
    }

    public ArrayList<Integer> send(int totalMoney,int count) {
    //首先需要创建一个集合,用来存储若干个红包
    ArrayList<Integer> redList = new ArrayList<>();
    //首先看看群主有多少钱
    int leftMoney = super.getMoney();
    if (totalMoney > leftMoney) {
    System.out.println("余额不足,请充值");
    return redList;
    }
    //扣钱,其实就是重新设置余额
    super.setMoney(leftMoney - totalMoney);
    //红包需要平均拆分成count份
    int avg = totalMoney / count;
    int mod = totalMoney % count;
    //除不开的零头,包在最后一个红包当中
    //下面把红包放到集合中去
    for (int i = 0; i < count - 1; i++) {
    redList.add(avg);
    }
    //最后一个红包
    int last = avg + mod;
    redList.add(last);
    return redList;
    }
    }
    
    
    package cn.hope.day09.demo09;


    import java.util.ArrayList;

    /**
    * @author newcityman
    * @date 2019/7/11 - 23:36
    */
    public class MainRedPacket {
    public static void main(String[] args) {
    Manager m = new Manager("群主",100);
    Member one = new Member("zmy",0);
    Member two = new Member("zmk",0);
    Member three = new Member("zmh",0);

    m.show();
    one.show();
    two.show();
    three.show();
    System.out.println("========================");
    ArrayList<Integer> list = m.send(20,3);
    one.receive(list);
    two.receive(list);
    three.receive(list);

    m.show();
    one.show();
    two.show();
    three.show();





    }


    }


     
  • 相关阅读:
    访问 http://localhost:8081对 flink 集群和任务进行监控管理
    Flink之流处理WordCount
    Flink之批处理WordCount
    为什么说JAVA中runnable接口的run方法运行在子线程?
    Java中的字符输入输出流练习
    在JAVA中实现文件读写练习
    JAVA自定义异常使用方法
    三种二叉树遍历的非递归算法
    C编译错误:Main.c:4:5: error: variably modified ‘f’ at file scope int f[maxn];
    中序+先序构造二叉树,后序遍历
  • 原文地址:https://www.cnblogs.com/newcityboy/p/11180094.html
Copyright © 2011-2022 走看看