2020 new year red envelope Java implementation

In a group, the group owner sends N red packets, the remaining fractions are given to the last red packet, and N members randomly grab the red packets.

  • Main method
package edu.sust.basic.red;

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        Manger 群主 = new Manger("群主", 100);
        Member 成员1 = new Member("成员1", 0);
        Member 成员2 = new Member("成员2", 0);
        Member 成员3 = new Member("成员3", 0);
        群主.show();
        成员1.show();
        成员2.show();
        成员3.show();
        ArrayList<Integer> 红包 = 群主.send(40, 3);
        成员1.receive(红包);
        成员2.receive(红包);
        成员3.receive(红包);
        群主.show();
        成员1.show();
        成员2.show();
        成员3.show();
    }
}
  • Group owner
package edu.sust.basic.red;

import java.util.ArrayList;

public class Manger extends User {
    public Manger() {
    }

    public Manger(String name, int money) {
        super(name, money);
    }

    /**
     * 发红包
     *
     * @param totalMoney 总共发多少钱
     * @param count      分成多少份
     * @return 红包列表
     */
    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);
        int avg = totalMoney / count;
        int mod = totalMoney % count;
        for (int i = 0; i < count - 1; i++) {
            redList.add(avg);
        }
        redList.add(avg + mod);
        return redList;
    }
}

  • Member class
package edu.sust.basic.red;

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

public class Member extends User {
    public Member(String name, int money) {
        super(name, money);
    }

    public Member() {
    }

    public void receive(ArrayList<Integer> redList) {
        int index = new Random().nextInt(redList.size());
        int money = redList.remove(index);
        int leftMoney = super.getMoney();
        super.setMoney(money + leftMoney);
    }
}

  • User class
package edu.sust.basic.red;

public class User {
    private String name;
    private int money;

    public User() {
    }

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

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", money=" + money +
                '}';
    }
    public void show(){
        System.out.println("我是"+name+",我有"+money+"元");
    }
    public String getName() {
        return name;
    }

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

    public int getMoney() {
        return money;
    }

    public void setMoney(int money) {
        this.money = money;
    }
}
Published 395 original articles · won 130 · 200,000 views +

Guess you like

Origin blog.csdn.net/qq_40507857/article/details/103791517