发红包案例

发红包案例

群主发普通红包。某群有多名成员,群主给成员发普通红包。普通红包的规则;

1.群主的一笔金额从群主余额中扣除,平均分成n等份,让成员领取。

2.成员领取红包后,保存到成员余额中。

请根据描述,完成案例中所有类的定义以及指定类之间的继承关系,并完成发红包的操作。

发红包的逻辑,三要素:

返回值类型: ArrayList<Integer>

方法名称:send

参数列表:1、总共发多少钱  int totalMoney

     2、分成多少份  int count

收红包的逻辑,三要素:

返回值类型:void

方法名称:receive

参数列表:ArrayList<Integer>

复制代码
public class User {
    private String name;
    private int money;

    //展示余额
    public void show(){
        System.out.println("我叫:"+name+",我有"+money);
    }

    public User() {
    }

    public User(String name, int money) {
        this.name = name;
        this.money = 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;
    }
}
复制代码
复制代码
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> list = new ArrayList<>();
        int money = super.getMoney();
        if (totalMoney>money){
            System.out.println("余额不足");
            return list;
        }
        super.setMoney(money-totalMoney);
        int avg = totalMoney/count;
        int mod = totalMoney%count;

        for (int i = 0; i < count-1; i++) {
            list.add(avg);
        }
        list.add(avg+mod);
        return list;
    }
}
复制代码
复制代码
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());
        Integer delta = list.remove(index);
        int money = super.getMoney();
        super.setMoney(money+delta);
    }
}
复制代码
复制代码
public class Test {
    public static void main(String[] args) {
        Manager manager = new Manager("群主",500);
        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("=================");
        ArrayList<Integer> list = manager.send(200, 3);
        one.receive(list);
        two.receive(list);
        three.receive(list);

        manager.show();
        one.show();
        two.show();
        three.show();
    }
}
复制代码

运行结果:

 

 

posted @   xjw12345  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示