ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

随机发红包

2019-06-08 22:49:31  阅读:151  来源: 互联网

标签:redList name show int money 发红包 public 随机


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("我叫"+name+", 我有多少钱"+money); }
public void setName(String name) {
this.name = name;
}
public void setMoney(int money) {
this.money = money;
}
public String getName() {
return name; }
public int getMoney() {
return money; }
}


import java.util.ArrayList; import java.util.Random;
public class Number extends User {
public Number() {
}
public Number(String name, int money) {
super(name, money);
}
public void recive(ArrayList<Integer> list) {
// 从多个红包当中随机抽取一个给自己
int index = new Random().nextInt(list.size());
// 根据索引,从集合当中删除。并且得到被删除的红包给我自己
int delta= list.remove(index); //当前成员自自己有多少钱
int money = super.getMoney(); //加法,并且重新设置回去
super.setMoney(money+delta);
} }

public class Maneger extends User {
public Maneger(){
}
public Maneger(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 (totalmoney > leftmoney){
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);
}
int last=avg+mod;
redList.add(last);
return redList;
} }

public class MainRedPacket {     
public static void main(String[] args) {
Maneger maneger= new Maneger("群主",100);
Number one = new Number("成员A",0);
Number two = new Number("成员A",0);
Number three = new Number("成员A",0);
maneger.show();
one.show();
two.show();
three.show();
System.out.println("============");
//群主发20 分3个红包
ArrayList<Integer> redList =maneger.send(20,3);
// 三个成员去收红包
one.recive(redList);
two.recive(redList);
three.recive(redList);

maneger.show();

one.show();
two.show();
three.show();

} }




标签:redList,name,show,int,money,发红包,public,随机
来源: https://www.cnblogs.com/xinglingzhiren/p/10991989.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有