package test1;

public class user {
private String name; //姓名
private int money; //当前用户拥有的钱数

public user() {
}

public user(String name, int money) {
this.name = name;
this.money = money;
}
//显示一下当前用户有多少钱?
public void show(){
System.out.println("我叫"+this.name+",我有:"+this.money+"钱");
}
public String getName() {
return name;
}

public int getMoney() {
return money;
}

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

public void setMoney(int money) {
this.money = money;
}
}
package test1;

import java.util.ArrayList;
//群主的类
public class manager extends user {
public manager(){
}

public manager(String name, int money) {
super(name, money); //从而调用父类的构造方法
}
public ArrayList<Integer> send(int totalMoney,int count ){
// 首先需要一个集合,用来存储若若干个红包的金额
ArrayList<Integer>redlist=new ArrayList<>();
// 首先看一下群主自己有多少钱?
int leftmoney=super.getMoney();//余额
if (leftmoney<totalMoney){
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);
}
redlist.add(avg+mod);
return redlist;
}
package test1;

import java.util.ArrayList;
import java.util.Random;
//普通成员收红包
public class member extends user {
public member() {
}

public member(String name, int 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 test1;
//随机分配给三个人
import java.net.SocketOption;
import java.nio.MappedByteBuffer;
import java.util.ArrayList;

public class test1 {
public static void main(String[] args) {
manager man=new manager("群主",100);

member one=new member("成员A",0);
member two=new member("成员A",0);
member three=new member("成员A",0);

man.show();
one.show();
two.show();
three.show();
System.out.println("+++++++++++++++++++++");
// 群主总共发20块红包,分成3个红包
ArrayList<Integer>redlist=man.send(20,3);
// 三个普通成员收红包
one.receive(redlist);
two.receive(redlist);
three.receive(redlist);
man.show();
one.show();
two.show();
three.show();
}
}