综合案例:群主发红包

群主发普通红包。某群有多名成员,群主给成员发普通红包。
      普通红包的规则:
             1. 群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取。
             2. 成员领取红包后,保存到成员余额中。
请根据描述,完成案例中所有类的定义以及指定类之间的继承关系,并完成发红包的操作。

案例分析

根据描述分析,得出如下继承体系:

案例实现 

定义用户类:

public class User {//成员变量private String username;//用户名private Double leftMoney;//余额//构造方法public User(){}public User(String username, double leftMoney){this.username=username;this.leftMoney=leftMoney;}//get/set方法//展示信息的方法public void show(){System.out.println("用户名:"+username+",余额为:"+leftMoney+"元");}
}

定义群主类:

public class QunZhu extends User {//添加构造方法public QunZhu(){}public QunZhu(String username,double leftMoney){//调用父类方法 super方法super(username,leftMoney);}/*群主发红包,就是把一个整数的金额 分成若干等份1.群主的余额是否够发红包不能则返回null 提示能 则继续2.修改群主的余额3.拆分红包3.1如果能整除,那么就平分3.2如果不能平分 ,那么就把余数给最后一个*///money 群主要发的红包//count  多少个人来抢,要发多少份的红包public ArrayList<Double> send(int money, int count){//1.获取群主的余额Double leftMoney = getLeftMoney();if (money>leftMoney){return null;}//2.群主的余额减少setLeftMoney(leftMoney-money);//创建一个集合 保存等份的金额ArrayList<Double> list = new ArrayList<>();//扩大100倍,相当于折算成 以 "分"为单位的,避免小数运算丢失精度的问题money = money * 100;//每份的金额int m = money / count;//不能整除的余数int l = money % count;//无论是否整除, n-1份都是每份的金额for (int i = 0; i < count - 1; i++) {//缩小100倍  折算成 "元"list.add(m/100.0);}//判断是否整除if(l == 0){//可以整除,最后一份金额,与之前的每份金额一致list.add(m/100.0);}else {//不可以整除,最后一份金额,是之前每份的金额+余数金额list.add((m+l)/100.0);}//返回集合return list;}}

定义成员类:

public class Member extends User {public Member(){}public Member( String username,double leftMoney){super(username, leftMoney);}//打开红包,就是从集合中随机抽取一份,保存到自己的余额上public void openHongBao(ArrayList<Double> list){//创建Random对象Random r = new Random();//随机生成一个角标int index = r.nextInt(list.size());//移除一个金额Double money = list.remove(index);//直接调用父类方法,保存到余额中setLeftMoney(money);}
}

定义测试类:

public class Test {public static void main(String[] args) {//创建群主对象QunZhu qz = new QunZhu("群主", 200);//创建一个键盘录入Scanner sc = new Scanner(System.in);System.out.println("请输入金额:");int money = sc.nextInt();System.out.println("请输入个数:");int count = sc.nextInt();//发红包ArrayList<Double> sendList = qz.send(money, count);//判断 如果余额不足if (sendList==null){return;}//创建三个成员变量Member m1 = new Member("张三",0);Member m2 = new Member("李四",0);Member m3 = new Member("王五",0);//打开红包m1.openHongBao(sendList);m2.openHongBao(sendList);m3.openHongBao(sendList);//展示信息qz.show();m1.show();m2.show();m3.show();}
}

有不足之处请指点,大家互相学习..

JAVA 群主发红包请红包案例 简易版相关推荐

  1. Java继承的综合案例——群主发红包

    群主发普通红包.某群有多名成员,群主给成员发普通红包.普通红包的规则: 群主的一笔金额,从群主余额中扣除,平均分成n等份.,让成员领取. 成员领取红包后,保存到成员余额中. 请根据描述,完成案例中所有 ...

  2. Java练习继承群主发红包案例(分析与实现)

    题目: 群主发普通红包,某群有多名成员,群主给成员发普通红包,普通红包的规则: 群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取: 成员领取红包后,保存到成员余额中. 请根据描述,完成案例 ...

  3. JAVA继承的综合案例——群主发普通红包

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

  4. 【继承】【群主发红包案例】

    一.题目要求: 群主发普通红包.某群有多名成员,群主给成员发普通红包.普通红包的规则: ①.群主的- -笔金额, 从群主余额中扣除,平均分成n等份,让成员领取. ②.成员领取红包后,保存到成员余额中. ...

  5. Java实现微信、QQ等群主发红包实例(普通红包)

    许久没有写blog 手有点生,但是准备开启常更模式了! 最近重拾Java知识,挑一些有趣的案例分享给大家.(拼手气红包案例) 分析: 首先,群主和成员都是微信.QQ等应用程序的用户,他们都可以归为用户 ...

  6. 群主发红包——java学习

    package com.cn.test; //父类 用户 public class User {private String name;private int money;public User() ...

  7. java练习--群主发红包

    无论群主和群成员都有属性name,money,放在父类User里 package com.qml.study;public class User {private String name ;priva ...

  8. 继承练习:发红包案例实现(群主发红包、群成员接收红包)

    //User package ExtendTest; /*群主发红包的功能实现(用到Extend): 父类:User(用户) 属性:name(姓名),money(总金额) 方法:无参构造和含参数(na ...

  9. 群主发普通红包和手气红包

    群主发普通红包 群主发普通红包.群主有多名成员,群主给成员发普通红包.普通红包的规则: 群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取. 成员领取红包后,保存到成员余额中. 请根据描述, ...

最新文章

  1. 栈与队列8——求最大子矩阵的大小
  2. springboot-mysql-pagehelper分页插件集成
  3. 机器人抓取汇总|涉及目标检测、分割、姿态识别、抓取点检测、路径规划
  4. 如何创建高质量的TypeScript声明文件(六) - 示例
  5. VC++使用Soap ToolKit3.0调用WebService接口
  6. SimulatorXcode模拟器如何使用PC键盘进行输入
  7. matlab绘制烟花,[原创]利用MATLAB燃放烟花(礼花)
  8. 华为v5服务器安装操作系统,v5服务器
  9. 解决终端SSH连接服务器一段时间不操作之后卡死的问题
  10. 服务器间数据传输的四种方式
  11. Dropdownlist插入值!
  12. 初识内存控制器和SDRAM【一文了解】
  13. windows 2008 R2 断电进入修复模式,并且无法使用usb键盘鼠标的解决方法
  14. 【leetcode】解数独
  15. [Bucket CTF 2023]
  16. java学习笔记————SSH
  17. 产品品牌想正向刷屏 就需做好精致化内容
  18. HDUOJ 6707 Shuffle Card
  19. 使用 DeepFlow 开启 Dubbo 可观测性
  20. Java开源企业开发平台教程:待办挂起业务场景实现

热门文章

  1. 华为机试python需要需要当时编译通过吗_华为校招软开算法岗历年机试编程题77道C++代码详解(五)...
  2. PixelStreaming数据通信
  3. icomoon字体图标的引入
  4. 伯努利分布、二项分布、多项分布、贝塔分布、狄利克雷分布(似然与概率)
  5. Unsafe 完全解析
  6. Kubernetes全栈架构师(Docker基础)--学习笔记
  7. 安利一个好用的Golang单元测试框架:gocheck
  8. Python绘制训练过程的loss和accuracy曲线
  9. 关爱儿童成长:培养儿童专注力书单(组图
  10. MATLAB制作成绩单