2016-09-15 91 views
0

嗨我是编程新手,尝试使用子模块来找出圆的区域。用方法计算形状区域

即时应该只有circleCalc在主要和所有输入和输出在子模块中分开。

我可以得到一些帮助吗?也有一些解释与返回类型,我不知道什么是无效的

import java.util.*; 
public class shapeCalc 
{ 
    public static void main(String [] args) 
    { 
    double circleCalc, circle; 
    circleCalc(); 

    } 

    public static double intInput(String inputStatement) 
    { 
     double diameter; 
     Scanner sc = new Scanner(System.in); 
     System.out.println(inputStatement); 
     diameter = sc.nextInt(); 
     return diameter; 
    } 

    public static double calcCircleArea(double diameter) 
    { 
     double radius, area; 
     radius = (double)diameter/2.0; 
     area = Math.PI * radius * radius; 
     return area; 
    } 

    public static String extractOutput (double area) 
    { 
     String output; 
     double fraction, mm, m, cm; 
     fraction = area - (int)area; 
     mm = fraction *100.0; 
     m = (int)area/10000; 
     cm = (int)area % 10000; 
     System.out.println("area is" + m + cm + mm); 
    } 

    public static void circleCalc() 
    { 
     double diam, area, extractOutput; 
     diam = intInput("enter diameter"); 
     area = calcCircleArea(diam); 
     extractOutput(area); 
    } 
} 
+0

'submodules'是我所期望的Git的问题看,但不是Java的术语。我想你的意思是说“方法”。 'void'是一个返回类型,实际上表明一个方法什么都不返回。 –

+0

我也很困惑你的意思(或教授的意思)是由子模块。除此之外,在我看来,你已经解决了这个问题 - 恭喜。您可能有一个错误消息,即'extractOutput()'应该返回一个'String'而不是。既然这个方法打印到'System.out'本身,我认为它不需要返回一个字符串,所以你可能想要改变它的返回类型,比如'public static void extractOutput(double area)'。 –

+0

对不起,我的意思是说方法我已经改变为公共静态无效extractOutput,但现在我得到一个错误,说shapeCalc.java:7:错误:不兼容的类型:void不能转换为双重 circle = circleCalc(); @ OleV.V。 –

回答

0

方法与void返回类型不返回任何内容。看着你的问题,似乎你想打印/显示区域。 所以我做了一些修改现有的代码..

public static void main(String[] args) {   
     System.out.println("Area :" + circleCalc()); 
    } 

public static double intInput(String inputStatement) { 
no change;} 

public static double calcCircleArea(double diameter) { 
no change;} 

public static String extractOutput(double area) { 
     String output; 
     double fraction, mm, m, cm; 
     fraction = area - (int) area; 
     mm = fraction * 100.0; 
     m = (int) area/10000; 
     cm = (int) area % 10000; 
     output = String.valueOf(m + cm + mm); 
     return output; 
    } 
public static String circleCalc() { 
     double diam, area; 
     diam = intInput("enter diameter"); 
     area = calcCircleArea(diam); 
     return extractOutput(area); 
    }