拼手气红包-基于继承实现(Java萌新篇)

题目:

群主发拼手气红包,n名群员收红包;
实现群主随机发送n份总金额数目一定的红包,群员收到红包,然后输出提示信息;

PS.该程序较为简单,没有检查功能,仅供参考。

程序代码:

//首先,我们创建一个抽象父类,为成员共有属性。

public abstract class PeopleFather {
    //共有属性:名字
    public String name;
    //共有属性:余额
    public int totalmoney;

}

//第二步,创建群主成员类,实现发送红包方法

public class OrganizationPeople extends PeopleFather{

    public OrganizationPeople(String name){
        this.name=name;//构造方法,创建群主的名字
    }
    public int num;//红包份数

    //发送红包方法
    public ArrayList<Integer> transmit(){
        Random r = new Random();
        int totalmoney =0;//红包总金额
        int num = 0;//红包份数
        Scanner sc = new Scanner(System.in);
        ArrayList<Integer> list = new ArrayList<>();
        System.out.print("请输入发送的红包总金额:");
        totalmoney = sc.nextInt();
        System.out.print("请输入发送的红包个数:");
        num = sc.nextInt();
        int sum = 0;
        //将总金额随机分为n份红包
        for (int i = 0; i < num-1; i++) {
            int temp = totalmoney-sum;
            int rand = r.nextInt(temp);
            list.add(rand);
            sum+=rand;
        }
        int last = totalmoney-sum;//将最后一份插入list中
        list.add(last);
        System.out.println(this.name+"群主发送了"+num+"份"+"总计"+totalmoney+"元拼手气红包!");
        return list;
    }
}

//第三步,创建成员类,用于接受红包

public class PeopleMan extends PeopleFather{

    public PeopleMan(String name){
        this.name=name;
    }

    //收到红包
    public void getMoney(ArrayList<Integer> list,int index){
        //System.out.println(name+"收到红包,余额为"+remainingSum);
        int i = index-1;
        this.totalmoney=list.get(i);
        System.out.println(this.name+"抢到了"+this.totalmoney+"元的红包!");
    }
}

//第四步,主类实现创建群主、创建n名成员,得到提示信息

public static void main(String[] args) {
    //创建群主
    OrganizationPeople or = new OrganizationPeople("玛瑙石");
    //创建n名成员
    PeopleMan pm = new PeopleMan("放飞梦想");
    PeopleMan pm1 = new PeopleMan("可乐加冰");
    PeopleMan pm2 = new PeopleMan("爱我走心");
    PeopleMan pm3 = new PeopleMan("我爱茉莉清茶");
    PeopleMan pm4 = new PeopleMan("白赚之哥");
    //群主发送红包
    ArrayList<Integer> list = or.transmit();
    //成员接受红包
    pm.getMoney(list,1);
    pm1.getMoney(list,2);
    pm2.getMoney(list,3);
    pm3.getMoney(list,4);
    pm4.getMoney(list,5);
}

实现截图:

拼手气红包-基于继承实现(Java萌新篇)