输入年龄(不定长),输出各个年龄组各有多少人(年龄组的划分标准会发生变化)

问题:用户输入不定长的年龄,返回各个年龄组各有多少人.(年龄组划分标准会变化)

**要求:
必须采用封装

1:用户输入1.7.12.31.35.48.58.62(可数不定,有时候会输入2个,有时候会输入20个)

2:年龄组会变化,有时候1-7叫儿童 , 8到17叫未成年.

            有时候1-5叫儿童,6-12年童年,13-17叫为成年.**

**目标:
1:用户输入年龄,判断出各个年龄段各有多少人.

2:快速实现年龄组划分标准设定

3:固定报名费500元/人,儿童组和退休组除了交纳固定报名费还需要额外交纳150元关照费.

4:输出一共有几个人,各个年龄段各有多少人,各个组报名费是多少钱,总报名费是多少钱
**

贴上几个自己瞎写的代码.(未完成,没有参考性)

图片说明

图片说明

图片说明

图片说明

import java.util.*;

public class Test {
    public static void main(String[] args) {
        AgeGroup ageGroup = AgeGroup.InitGroup();
        System.out.println(ageGroup.getGroup().toString());
        List a=new ArrayList();
        a.add(2);
        a.add(24);
        a.add(12);
        a.add(25);
        a.add(65);
        a.add(55);
        a.add(42);
        a.add(35);
        a.add(80);
        ageGroup.isWhich(a);
        ageGroup.fee();
        System.out.println(ageGroup.getGroup().toString());
    }
}
class AgeGroup{
    private Random ageRd;
    public List getGroup() {
        return group;
    }

    public void setGroup(List group) {
        this.group = group;
    }

    private List group;
    private AgeGroup(){
        ageRd = new Random();
        group = new ArrayList();
        int t= 1;
        for (int i =0;i<6;i++){
            List value = getValue(t);
            t = (int) value.get(1);
            group.add(value);
        }

    }
    private List getValue(int t) {
        List comp = new ArrayList();
        comp.add(t);
        t = ageRd.nextInt(t + 10) + t;
        comp.add(t);
        comp.add(0);
        return comp;

    }
    public static AgeGroup InitGroup(){
        AgeGroup a=new AgeGroup();
        return a;
    }
    public void isWhich(List<Integer> list){
        for (int i = 0;i<list.size();i++){
            for (int j=0;j<group.size();j++){
                List li = (List) group.get(j);
                int c = list.get(i);
                int max = (int) li.get(1);
                int min = (int) li.get(0);
                if (c>min&&c<max){
                    ((List) group.get(j)).set(2,(int) ((List) group.get(j)).get(2) + 1);
                }
            }
        }
    }

    public void fee(){
        int allNum=0;
        for (int i = 0;i<group.size();i++){
            int c=0;
            List list= (List) group.get(i);
            if (i==0||i==group.size()-1){
                c= (int) list.get(2) * 500+ (int) list.get(2) * 150;
                allNum += c;
                System.out.println("第"+(i+1)+"组费用:"+c);
            }else {
                c = (int) list.get(2) * 500;
                allNum += c;
                System.out.println("第" + (i + 1) + "组费用:" + c);
            }
        }
        System.out.println("总计:"+allNum);
    }

}



https://zhidao.baidu.com/question/368739639819700004.html