Java实现发放红包小案例

一、目标导读

群主发普通红包。某群有很多成员,群主给成员发红包,规则如下:
1. 群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取。
2. 成员领取红包后,保存到成员余额中。

二、案例分析

在这里插入图片描述

三、 直接上代码

   1、定义Uer
public class User {
    private String name;
    private double balance;
    
    public User() {
    }

   public User(String name, double balance) {
        this.name = name;
        this.balance = balance;
    }
    public void show(){
        System.out.println("用户名:"+name+",余额为:"+balance);
    }

    public String getName() {
        return name;
    }

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

    public double getBalance() {
        return balance;
    }

    public void setBalance(double balance) {
        this.balance = balance;
    }
}

2、定义群主类

 import java.util.ArrayList;

public class QunZhu  extends User{
    public QunZhu(){

    }
    public QunZhu(String name,Double balance){
        super(name,balance);
    }
    public ArrayList<Double> send(double money,int count){
        double balance = getBalance();
        if (money>balance){
            return null;
        }
        //修改群主余额
        setBalance(balance-money);
        //创建集合,保存金额
        ArrayList<Double> arrayList=new ArrayList<>();
        //单位换算

        int zonghe=(int)(money*100);
        //正常情况下每份金额
        int m=zonghe/count;
        //不为整数时
        int n=zonghe%count;
        //遍历
        for (int i = 0; i < count-1 ; i++) {
            arrayList.add(m/100.0);
        }
        if (n==0){
            arrayList.add(m/100.0);
        }else{
            arrayList.add((m+n)/100.0);
        }
        return arrayList;
    }
}

3、定义群成员类

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

public class ChengYuan extends User {
    public ChengYuan(String name, double balance) {
        super(name, balance);
    }
    public void QiangHongBao(ArrayList<Double> hongbao){
        Random random=new Random();
        int i = random.nextInt(hongbao.size());
        setBalance(getBalance()+hongbao.get(i));
        hongbao.remove(i);
    }
}

4、定义测试类

import java.util.ArrayList;

public class HongBaoTest {
    public static void main(String[] args) {
        QunZhu qunZhu=new QunZhu("demo",100.0);
        ArrayList<Double> list = qunZhu.send(11.12, 3);
        ChengYuan chengYuan1=new ChengYuan("a1",15.0);
        ChengYuan chengYuan2=new ChengYuan("a2",15.0);
        ChengYuan chengYuan3=new ChengYuan("a3",15.0);

        chengYuan1.QiangHongBao(list);
        chengYuan2.QiangHongBao(list);
        chengYuan3.QiangHongBao(list);

        chengYuan1.show();
        chengYuan2.show();
        chengYuan3.show();
    }
}

四、最后查看运行结果

在这里插入图片描述

五、总结

该功能主要是以继承为主的基本测试题,最重要的是搞好需求分析,了解继承的含义和运用方法

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值