题目:群主发普通红包群主发普通红包。
某群有多名成员,群主给成员发普通红包。普通红包的规则: .
1.群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取。
2.成员领取红包后,保存到成员余额中。
请根据描述,完成案例中所有类的定义以及指定类之间的继承关系,并完成发红包的操作。
公共类
package honbao;
public class User {
private String name;//姓名
private int money;//余额,也就是当前用户所拥有的钱数
public User() {
super();
}
public User(String name, int money) {
super();
this.name = name;
this.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;
}
}
**群主类**
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 sendMoney,int count){
//首先需要一个集合,用来存储若干个红包的金额
ArrayList<Integer> redList=new ArrayList<>();
//首先要看一下群主自己有多少钱
int leftMoney=super.getMoney();//群主当前余额
if(sendMoney > leftMoney) {
System.out.println("余额不足");
return redList;//返回空集合
}
//扣钱,其实就是重新设置余额
super.setMoney(leftMoney-sendMoney);
//发红包平均拆分count份
int avg=sendMoney/count;
int mod=sendMoney%count;//余数,也就是除不尽时候的零头
//除不开的零头放在最后一个红包中
//下面把红包放在一个一个集合中
for(int i=0;i<redList.size()-1;i++)
{
redList.add(avg);
}
//最后一个红包
int last=avg+mod;
redList.add(last);
return redList;
}
}
**普通群成员类**
import java.util.ArrayList;
import java.util.Random;
//普通群成员类
public class Member extends User {
public Member() {
super();
// TODO Auto-generated constructor stub
}
public Member(String name, int money) {
super(name, money);
// TODO Auto-generated constructor stub
}
public void receive(ArrayList<Integer> list){
//从多个红包当中随机抽取一个红包给我自己pt
//随机获取一个集合当中的索引编号
int index =new Random().nextInt(list.size());
//根据索引,从集合中删除,并且得到被删除的红包,给我自己
int delta = list.remove(index);
//当前成员自己本来有多少钱;
int money = super.getMoney();
//加法,重新设置回去
super.setMoney(money+delta);
}
}
**主方法**
import java.util.ArrayList;
public class MainRedList {
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建一个群主,三个普通成员
Manager manager = new Manager("群主",100);
Member one = new Member("成员A",0);
Member two = new Member("成员B",0);
Member three = new Member("成员C",0);
manager.show();
one.show();
two.show();
three.show();
System.out.println("===========");
//群主发20元,分成3个红包
ArrayList<Integer> redList = manager.send(9, 3);
//三个普通成员收红包
one.receive(redList);
two.receive(redList);
three.receive(redList);
manager.show();//80
one.show();//8
two.show();//6
three.show();//6
//因为除不尽,所以上面三个是随机的三个数
}
}