红包案例

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

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

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

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

分析图

 代码

父类:

public class User {
private String name;//名字
private int meney;//余额

public User(String name, int meney) {
this.name = name;
this.meney = meney;
}

public User() {
}


public String getName() {
return name;
}

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

public int getMeney() {
return meney;
}

public void setMeney(int meney) {
this.meney = meney;
}
//成员方法
public void show(){
System.out.println("我叫"+name+",余额:"+meney);
}

}

群主类:

public class Manager extends User {
public Manager() {
}

public Manager(String name, int meney) {
super(name, meney);
}
public ArrayList<Integer> send(int totalMoney,int count){
//创建一个集合用于存放红包
ArrayList<Integer> list = new ArrayList<>();
//设置一个变量接收群主的余额
int lefMoney=super.getMeney();
//判断发送的红包钱数是否大于群主的余额
if (totalMoney>lefMoney){
//如果是就提示余额不足
System.out.println("余额不足");
//返回一个空集合 证明发送失败
return list;
}
//如果不是就扣除余额并重新设置群主的余额
super.setMeney(lefMoney-totalMoney);
//将红包拆分
int avg=totalMoney/count;
//发红包除不尽数放到这个变量里
int mod=totalMoney%count;
//for循环将红包存进集合中,-1是因为我们要将除不尽的数塞进红包发给最后一个人,所以将它移除
for (int i = 0; i < count-1; i++) {
list.add(avg);
}
//将除不尽的数放进集合
int last=avg+mod;
list.add(last);

return list;
}
}

群成员类:

public class Member extends User {
public Member(String name, int meney) {
super(name, meney);
}

public Member() {
}
public void receive(ArrayList<Integer> list){
//设置一个随机数当做集合当中的编号 范围就是集合的长度
int anInt = new Random().nextInt(list.size());
//根据索引 从集合当中删除
Integer remove = list.remove(anInt);
//获取群成员自己本来的钱
int meney = super.getMeney();
//将红包的钱加上
super.setMeney(meney+remove);
}
}

测试类:

public class test {
public static void main(String[] args) {
//创建群主对象
Manager owner = new Manager("群主", 100);
//创建群成员的对象
Member memberA = new Member("成员A", 0);
Member memberB = new Member("成员B", 0);
Member memberC = new Member("成员C", 0);
//查询群主的余额
owner.show();
//查询成员A-C的余额
memberA.show();
memberB.show();
memberC.show();
System.out.println("-------------------------------");

//群主发红包 群主发20 三份红包
ArrayList<Integer> send = owner.send(20, 3);
//群成员接收红包
memberA.receive(send);
memberB.receive(send);
memberC.receive(send);

//查询群主的余额
owner.show();
//查询成员A-C的余额
memberA.show();
memberB.show();
memberC.show();
}
}

原文地址:http://www.cnblogs.com/shenziyi/p/16797928.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性