| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5355 人关注过本帖
标题:请各位帮我看看我的代码哪里错了
取消只看楼主 加入收藏
丶随风飘扬
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2019-11-1
结帖率:66.67%
收藏
已结贴  问题点数:1 回复次数:11 
请各位帮我看看我的代码哪里错了
问题:
形状求周长--类继承机制应用
问题描述:

    1、定义父类:形状(Shape),其中有1个方法成员:对形状的周长进行计算;

    2、分别定义子类:圆形(Circle)、正方形(Square)、矩形(Rectangle)、三角形(Triangle);

    3、每个子类重写父类中计算周长的方法,实现对每种形状的周长进行计算;

    4、类中的属性成员均修饰为private,方法成员均修饰为public;

    5、用@Override注解标出重写的方法。

输入要求:        

    第1行输入1个正整数T(1<=T<=100),表示有T组测试数据。

    每组测试数据输入占1行,首先为1个正整数M(1<=M<=4), 若

    1、若M=1,后面输入的为圆形的半径;

    2、若M=2,后面输入的为正方形的边长;

    3、若M=3,后面输入的为矩形的长和宽;

    4、若M=4,后面输入的为三角形的三条边长(确保输入合法)。

    以上各数均为正整数,且定义:兀(pai)=3。



输出要求:

    对于每组测试数据,输出占1行,为1个整数,即形状的边长。

样例输入:

4

1 2

2 2

3 2 3

4 2 3 4

样例输出:
12

8

10

9
这是我的代码:
程序代码:
import java.util.*;

public class JXNU {
    final int π=3;
    class shape{
        public    void count() {    
}
    }
    public class Circle extends shape{
        private  double r;
        public Circle(double r)
        {
            this.r=r;
        }
         @Override
         public void count() {
                System.out.printf("%d",2*π*r);
         }
         }
    public class Square extends shape{
        private double a;
        public Square(double a)
        {
            this.a=a;
        }
         @Override
         public void count() {
                System.out.printf("%d",4*a);
         }
    }
    public class Rectangle extends shape{
        private double a,b;
        public Rectangle(double a,double b)
        {
            this.a=a;
            this.b=b;
        }
         @Override
         public void count() {
                System.out.printf("%d",2*(a+b));
         }
    }
    public class Triangle extends shape{
        private double a,b,c;
        public Triangle(double a,double b,double c)
        {
            this.a=a;
            this.b=b;
            this.c=c;
        }        
         @Override
         public void count() {
                System.out.printf("%d",a+b+c);
         }
    }    

    public void main(String[] args) {
        // TODO Auto-generated method stub
        int T, M;
        double a,b,c,r;
        Scanner sc=new Scanner(System.in);
        T=sc.nextInt();
        while(T-->0){
            M=sc.nextInt();
            if (M==1){
                r=sc.nextDouble();
                Circle c1=new Circle(r);
                c1.count();                
            }
            else if (M==2){
                a=sc.nextDouble();
                Square c1=new Square(a);
                c1.count();
                
            }
            else if (M==3){
                a=sc.nextDouble();
                b=sc.nextDouble();
                Rectangle c1=new Rectangle(a,b);
                c1.count();
            }
            else if (M==4){            
                a=sc.nextDouble();
                b=sc.nextDouble();
                c=sc.nextDouble();
                if(a + b > c && b + c > a && a + c > b)
                {
                    Triangle c1=new Triangle(a,b,c);
                    c1.count();
                }
                else break;
                    
            }

    }

}
}
搜索更多相关主题的帖子: 输入 public count this double 
2020-03-16 07:49
丶随风飘扬
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2019-11-1
收藏
得分:0 
我先开始输入1,然后输入1 2,应该得到半径为2的圆的周长,但我第二次输入要输入3个数才能得到结果,而且结果也只是把第二个数和第三个数相乘。
2020-03-16 07:58
丶随风飘扬
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2019-11-1
收藏
得分:0 
回复 2楼 林月儿
不懂怎么修改。。。
2020-03-16 08:12
丶随风飘扬
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2019-11-1
收藏
得分:0 
大佬,你说的的东西我还真不怎么理解。。。我基础有点弱。。。你能帮我改一下吗?
2020-03-16 09:44
丶随风飘扬
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2019-11-1
收藏
得分:0 
程序代码:
import java.util.*;

public class JXNU {
    final int π=3;
    class shape{
        public    void count() {    
}
    }
    public class Circle extends shape{
        private  double r;
        public Circle(double r)
        {
            this.r=r;
        }
         @Override
         public void count() {
                System.out.printf("%d",2*π*r);
         }
         }
    public class Square extends shape{
        private double a;
        public Square(double a)
        {
            this.a=a;
        }
         @Override
         public void count() {
                System.out.printf("%d",4*a);
         }
    }
    public class Rectangle extends shape{
        private double a,b;
        public Rectangle(double a,double b)
        {
            this.a=a;
            this.b=b;
        }
         @Override
         public void count() {
                System.out.printf("%d",2*(a+b));
         }
    }
    public class Triangle extends shape{
        private double a,b,c;
        public Triangle(double a,double b,double c)
        {
            this.a=a;
            this.b=b;
            this.c=c;
        }        
         @Override
         public void count() {
                System.out.printf("%d",a+b+c);
         }
    }    

    public void main(String[] args) {
        // TODO Auto-generated method stub
        int T, M;
        double a,b,c,r;
        Scanner sc=new Scanner(System.in);
        T=Integer.valueOf(sc.nextInt());
        while(T-->0){
            String[] arr = sc.nextLine().split(" ");//空格分割并转型
            M=Integer.valueOf(arr[0]);
            if (M==1){
                r=Double.parseDouble(arr[1]);
                Circle c1=new Circle(r);
                c1.count();    
            }
            else if (M==2){
                a=Double.parseDouble(arr[1]);
                Square c1=new Square(a);
                c1.count();
                
            }
            else if (M==3){
                a=Double.parseDouble(arr[1]);
                b=Double.parseDouble(arr[2]);
                Rectangle c1=new Rectangle(a,b);
                c1.count();
            }
            else if (M==4){            
                a=Double.parseDouble(arr[1]);
                b=Double.parseDouble(arr[2]);
                c=Double.parseDouble(arr[3]);
                if(a + b > c && b + c > a && a + c > b)
                {
                    Triangle c1=new Triangle(a,b,c);
                    c1.count();
                }
                else break;
            }
    }
}
}

这样改还是不行唉。
2020-03-16 10:57
丶随风飘扬
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2019-11-1
收藏
得分:0 
回复 10楼 林月儿
改过来了,但还是有问题,跟我3楼时说的问题一样。。。
2020-03-16 11:08
丶随风飘扬
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2019-11-1
收藏
得分:0 
回复 12楼 林月儿
在T=1的前提下,当M=1或2时,第二次输入就只需要输入二个数就要输出结果的(第一个数对应M,第二个数是圆的半径或正方形的边长),但实际上需要输入三个数才能输出结果。所以我不知道哪里出问题了。
2020-03-16 14:18
丶随风飘扬
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2019-11-1
收藏
得分:0 
回复 14楼 林月儿
图片附件: 游客没有浏览图片的权限,请 登录注册
2020-03-16 14:58
丶随风飘扬
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2019-11-1
收藏
得分:0 
回复 16楼 林月儿
程序代码:
import java.util.*;

public class JXNU {
    final int π=3;
    class shape{
        public    void count() {    
}
    }
    public class Circle extends shape{
        private  double r;
        public Circle(double r)
        {
            this.r=r;
        }
         @Override
         public void count() {
                System.out.printf("%d",2*π*r);
         }
         }
    public class Square extends shape{
        private double a;
        public Square(double a)
        {
            this.a=a;
        }
         @Override
         public void count() {
                System.out.printf("%d",4*a);
         }
    }
    public class Rectangle extends shape{
        private double a,b;
        public Rectangle(double a,double b)
        {
            this.a=a;
            this.b=b;
        }
         @Override
         public void count() {
                System.out.printf("%d",2*(a+b));
         }
    }
    public class Triangle extends shape{
        private double a,b,c;
        public Triangle(double a,double b,double c)
        {
            this.a=a;
            this.b=b;
            this.c=c;
        }        
         @Override
         public void count() {
                System.out.printf("%d",a+b+c);
         }
    }    

    public void main(String[] args) {
        // TODO Auto-generated method stub
        int T, M;
        double a,b,c,r;
        Scanner sc=new Scanner(System.in);
        T=Integer.valueOf(sc.nextLine());
        while(T-->0){
            String[] arr = sc.nextLine().split(" ");//空格分割并转型
            M=Integer.valueOf(arr[0]);
            if (M==1){
                r=Double.parseDouble(arr[1]);
                Circle c1=new Circle(r);
                c1.count();    
            }
            else if (M==2){
                a=Double.parseDouble(arr[1]);
                Square c1=new Square(a);
                c1.count();
                
            }
            else if (M==3){
                a=Double.parseDouble(arr[1]);
                b=Double.parseDouble(arr[2]);
                Rectangle c1=new Rectangle(a,b);
                c1.count();
            }
            else if (M==4){            
                a=Double.parseDouble(arr[1]);
                b=Double.parseDouble(arr[2]);
                c=Double.parseDouble(arr[3]);
                if(a + b > c && b + c > a && a + c > b)
                {
                    Triangle c1=new Triangle(a,b,c);
                    c1.count();
                }
                else break;
            }
    }
}
}
2020-03-16 15:41
丶随风飘扬
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2019-11-1
收藏
得分:0 
回复 18楼 林月儿
还是没用,还是一样的问题,快被这个给整自闭了。。
程序代码:
import java.util.*;

public class JXNU {
    final int π=3;
    class shape{
        public    void count() {    
}
    }
    public class Circle extends shape{
        private  double r;
        public Circle(double r)
        {
            this.r=r;
        }
         @Override
         public void count() {
                System.out.printf("%d\n",2*π*r);
         }
         }
    public class Square extends shape{
        private double a;
        public Square(double a)
        {
            this.a=a;
        }
         @Override
         public void count() {
                System.out.printf("%d\n",4*a);
         }
    }
    public class Rectangle extends shape{
        private double a,b;
        public Rectangle(double a,double b)
        {
            this.a=a;
            this.b=b;
        }
         @Override
         public void count() {
                System.out.printf("%d\n",2*(a+b));
         }
    }
    public class Triangle extends shape{
        private double a,b,c;
        public Triangle(double a,double b,double c)
        {
            this.a=a;
            this.b=b;
            this.c=c;
        }        
         @Override
         public void count() {
                System.out.printf("%d\n",a+b+c);
         }
    }    

    public void main(String[] args) {
        // TODO Auto-generated method stub
        int T, M;
        double a,b,c,r;
        Scanner sc=new Scanner(System.in);
        T=Integer.valueOf(sc.nextLine());
        while(T-->0){
            String[] arr = sc.nextLine().split(" ");//空格分割并转型
            System.out.println(Arrays.toString(arr));
            M=Integer.valueOf(arr[0]);
            if (M==1){
                r=Double.parseDouble(arr[1]);
                Circle c1=new Circle(r);
                c1.count();    
            }
            else if (M==2){
                a=Double.parseDouble(arr[1]);
                Square c1=new Square(a);
                c1.count();
                
            }
            else if (M==3){
                a=Double.parseDouble(arr[1]);
                b=Double.parseDouble(arr[2]);
                Rectangle c1=new Rectangle(a,b);
                c1.count();
            }
            else if (M==4){            
                a=Double.parseDouble(arr[1]);
                b=Double.parseDouble(arr[2]);
                c=Double.parseDouble(arr[3]);
                if(a + b > c && b + c > a && a + c > b)
                {
                    Triangle c1=new Triangle(a,b,c);
                    c1.count();
                }
                else break;
            }
    }
}
}

图片附件: 游客没有浏览图片的权限,请 登录注册

2020-03-16 16:02
快速回复:请各位帮我看看我的代码哪里错了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022124 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved