美文网首页
东秦抢红包3

东秦抢红包3

作者: __method__ | 来源:发表于2021-04-14 20:03 被阅读0次

建立User类

package com.neusoft.redbag;

public class User {


    // 属性
    private String userName;
    // 余额
    private int leftMoney;
    // 空参构造函数
    public User(){

    }
    // 全参构造函数
    public User(String userName,  int leftMoney){
        this.userName = userName;
        this.leftMoney = leftMoney;
    }
    // get set方法


    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public int getLeftMoney() {
        return leftMoney;
    }

    public void setLeftMoney(int leftMoney) {
        this.leftMoney = leftMoney;
    }

    public  void show(){
        System.out.println("用户" + this.userName + "  " + "余额" + this.leftMoney);;
    }
}

建立普通成员类(抢红包的)

package com.neusoft.redbag;

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

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

    public Member(String userName, int leftMoney) {
        super(userName, leftMoney);
    }
    // 收红包方法
    public void receive(ArrayList<Integer> arrayList){
        // 随机拿出来一个
        Random random = new Random();
        int index = random.nextInt(arrayList.size());
        int selectMoney =  arrayList.remove(index);
        // 更新余额
        int leftMoney = super.getLeftMoney();
        super.setLeftMoney(leftMoney + selectMoney);
    }



}

建立群主类(发红包的)

package com.neusoft.redbag;

import java.util.ArrayList;

// 群主发红包
public class Manager extends User {
    public Manager() {
    }

    public Manager(String userName, int leftMoney) {
        super(userName, leftMoney);
    }

    /**
     * 发红包的方法
     * @param totalMoney  总金额
     * @param count 发几个红包
     */
    public ArrayList<Integer> send(int totalMoney, int count){
        ArrayList<Integer> list = new ArrayList<>();
        // 查看当前用户的余额
        int leftMoney = super.getLeftMoney();
        // 判断
        if (totalMoney > leftMoney)
            System.out.println("余额不足");
        // 扣余额
        super.setLeftMoney(leftMoney-totalMoney);
        // 将钱分成 count 份
        // 每个人发的钱
        int avg = totalMoney/count;
        // 除不开余出来的钱  %取余
        int mod = totalMoney%count;

        for (int i = 0; i < count -1 ; i++) {
            list.add(avg);
        }
        // 最后一个
        list.add(avg+mod);
        return list;
    }
}

测试类

{
        Manager manager = new Manager("马化腾", 200);
        Member member1 = new Member("张三", 0);
        Member member2 = new Member("李四", 20);
        Member member3 = new Member("王五", 30);
        manager.show();
        member1.show();
        member2.show();
        member3.show();
        Scanner sc=new Scanner(System.in);
        System.out.println("请设置红包的金额:");
        int money=sc.nextInt();
        System.out.println("请设置红包的个数:");
        int num=sc.nextInt();
        // 发红包
        ArrayList<Integer> list = manager.send(money, num);
        member1.receive(list);
        member2.receive(list);
        member3.receive(list);
        System.out.println("抢完之后,成员情况");
        manager.show();
        member1.show();
        member2.show();
        member3.show();


    }

相关文章

网友评论

      本文标题:东秦抢红包3

      本文链接:https://www.haomeiwen.com/subject/bvullltx.html