170 发收红包案例分析与程序编写

170 发收红包案例分析与程序编写

package demo14;//170 发收红包案例分析与程序编写
/*分析部分-
*共有部分 取名叫用户类,包含1.姓名2.余额-----父类

  • 各自所有信息-
  • 群主-发红包–对应发红包方法
  • 普通群成员-收红包–对应收红包方法
  • 发红包的逻辑 三要素-
  • 返回值类型-ArrayList
  • 方法名称-send()
    *参数列表-1.总共发多少钱 int totalMoney
  •     2.分成多少份   int count
    
  • public ArrayListsend(in totalMoney, int count){}
  • 收红包的逻辑三要素-
  • 返回值类型-void
  • 方法名称-receive
  • 参数列表ArrayList
  • public void receive(ArrayListList){}
  • */

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 String getName(){
    return name;
    }
 public void setMoney(int money){
    this.money=money;
}
public int getMoney(){
    return money;
}

}

/* package demo14;

import java.util.ArrayList;

public class MainRedpacket {
public static void main(String[] args) {
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(50,3);
    one.Receive(redList);
    two.Receive(redList);
    three.Receive(redList);
    System.out.println("*************************");
    manager.show();
    one.show();
    two.show();
    three.show();

}

}

*/

/*package demo14;

import java.util.ArrayList;

public class Manager extends User {
//这是一个默认构造,写上之后更加方便
public Manager(){
//默认的有一个super();过程
}

//子类需要继承抽象父类的构造函数,因为必须写下面这个有参数构造方法

public Manager (String name,int money){
super(name,money);
}
public ArrayList send(int totalMoney, int count) {
//首先需要一个集合,用来存储若干个红包的金额
ArrayList 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;

}
}
*/

/*package demo14;

import java.util.ArrayList;
import java.util.Random;
//普通成员
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());
//根据索引,从集合当中删除,并且得到被删除的红包,给我自己
int delta=list.remove(index);
//当前成员自己本来有多少钱
int money=super.getMoney();
//加法,并且重新设置回去
super.setMoney(money+delta);

}

}
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值