Fifty-five 2020-02-24 22:28 采纳率: 50%
浏览 429
已采纳

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

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

**要求:
必须采用封装

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:输出一共有几个人,各个年龄段各有多少人,各个组报名费是多少钱,总报名费是多少钱
**

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

图片说明

图片说明

图片说明

  • 写回答

2条回答 默认 最新

  • 来自星星的可乐 2020-02-25 10:52
    关注

    图片说明

    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);
        }
    
    }
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题