基于java实现简单发红包功能

论坛 期权论坛 脚本     
niminba   2021-5-23 02:32   2146   0

本文实例为大家分享了java实现简单发红包的具体代码,供大家参考,具体内容如下

这个案例是普通红包,均分的,不是拼手气红包。

package nuc.edu.day01.demo05;

/**
 * @author Administrator
 * 用户类
 */
public class User {
  private String name;
  private Double money;

  public User() {
  }
  //显示当前余额
  public void show(){
    System.out.println(name + "当前的余额为:" + money);
  }

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

  public String getName() {
    return name;
  }

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

  public Double getMoney() {
    return money;
  }

  public void setMoney(Double money) {
    this.money = money;
  }
}
package nuc.edu.day01.demo05;

import java.util.ArrayList;

/**
 * @author Administrator
 * 群主发红包的操作
 */
public class Manager extends User {
  public Manager() {
  }

  public Manager(String name, Double money) {
    super(name, money);
  }

  /**定义发红包的方法
   * totalMoney:发红包的总金额
   * num:发红包的个数*/
  public ArrayList<Double> send(double totalMoney,int num){
    /**存放红包的集合*/
    ArrayList<Double> redList = new ArrayList<>();
    /**当前余额*/
    double leftMoney = super.getMoney();
    if (leftMoney < totalMoney){
      System.out.println("抱歉,您的余额不足");
      return redList;
    }
    /**发完红包的余额*/
    super.setMoney(leftMoney-totalMoney);
    /**将钱平均存入每个红包中*/
    double avg = totalMoney / num;
    for (int i = 0; i < num; i++) {
      redList.add(avg);
    }
    return redList;
  }
}
package nuc.edu.day01.demo05;

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

/**
 * @author Administrator
 * 群内成员抢红包的操作
 */
public class Member extends User {
  public Member() {
  }

  public Member(String name, Double money) {
    super(name, money);
  }

  /**定义收红包的方法*/
  public void receive(ArrayList<Double> list){
    /**创建随机红包对应的索引*/
    int index = new Random().nextInt(list.size());
    /**当前余额*/
    double money = super.getMoney();
    /**根据索引将自己抢到的红包删掉*/
    double delta = list.remove(index);
    /**领完红包后的余额*/
    super.setMoney(money+delta);
  }
}
package nuc.edu.day01.demo05;

import java.util.ArrayList;

/**
 * @author Administrator
 */
public class Main {
  public static void main(String[] args) {
    Manager manager = new Manager("群主",300.00);
    Member a = new Member("A",0.00);
    Member b = new Member("B",10.00);
    /**显示当前余额*/
    manager.show();
    a.show();
    b.show();
    System.out.println("============");

    ArrayList<Double> redList = manager.send(52.00,2);
    a.receive(redList);
    b.receive(redList);
    /**显示抢完红包后的余额*/
    manager.show();
    a.show();
    b.show();
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持社区。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1060120
帖子:212021
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP