2015-11-07 96 views
0

我正在尝试在Java中添加,乘除分数。我得到的输出是:FRACTIONS @ 3d4eac69。有任何想法吗?在Java中添加,减去,乘除法和除法分数

public class FRACTIONS { 
private int numer, denom; 
    public FRACTIONS(){ 
    numer=1; 
    denom=1; 
} 
public FRACTIONS (int n, int d){ 
    numer=n; 
    denom=d; 
} 
public int getNumerator(){ 
    return numer; 
} 
public int getDenominator(){ 
    return denom; 
} 
public FRACTIONS add(FRACTIONS other){ 
    int n = numer * other.denom + other.numer * denom; 
    int d = denom * other.denom; 
    return new FRACTIONS (n, d); 
} 

public FRACTIONS sub(FRACTIONS other){ 
int n = numer * other.denom + other.numer * denom; 
int d = denom * other.denom; 
return new FRACTIONS (n, d); 
} 

public FRACTIONS mult(FRACTIONS other){ 
int n = numer * other.numer; 
int d = denom * other.denom; 
return new FRACTIONS (n, d); 
} 

public FRACTIONS div(FRACTIONS other){ 
int n = numer * other.denom; 
int d = denom * other.numer; 
return new FRACTIONS (n, d); 
} 

public String toString(){ 
String str; 
str= n + "/" + d; 
return str; 
} 

} 

测试人员计划:

import java.util.Scanner; 
public class FRACTIONS_TESTER { 

public FRACTIONS_TESTER() { 
} 

public static void main(String[] args) { 
    Scanner reader = new Scanner (System.in); 
    Scanner scan = new Scanner (System.in); 
    FRACTIONS numer, denom; 
    numer= new FRACTIONS(); 
    denom = new FRACTIONS(); 
    System.out.print ("Enter the numerator for fraction 1: "); 
    int n1 = reader.nextInt(); 
    System.out.print ("Enter the denominator for fraction 1: "); 
    int d1 = reader.nextInt(); 
    System.out.print ("Enter the numerator for fraction 2: "); 
    int n2 = reader.nextInt(); 
    System.out.print ("Enter the denominator for fraction 2: "); 
    int d2 = reader.nextInt(); 
int n = 5; 
int d = 6; 
    FRACTIONS f1=new FRACTIONS (n1, d1); 
    FRACTIONS f2=new FRACTIONS (n2, d2); 
    FRACTIONS f3=new FRACTIONS (n,d); 


    int opt; 
    System.out.println ("Select the corresponding number for the desired 
operation: "); 
    System.out.println (" 1. Addition \n 2. Subtraction \n 3. 
Multiply \n 4. Divison"); 
    opt=scan.nextInt(); 
    if (opt==1){ 
     f3=f1.add (f2); 

    } 
    if (opt==2){ 
     f3=f1.sub (f2); 

    } 
    if (opt==3) { 
     f3=f1.mult (f2); 

    } 
    if (opt==4){ 
     f3=f1.div (f2); 

    } 
    } 
System.out.println (f3); 
} 

在此先感谢。我只想输出为字符串,以“/”形式返回

+0

你是否在添加toString方法后重新编译你的FRACTIONS类? – Kenney

+0

您需要下面答案中的toString方法,但我在评论说您应该遵循Java命名约定和CamelCase类名称,而不是ALL_CAPS –

+0

此代码不能编译。请不要让人们检查与您实际使用的代码不同的代码。 –

回答

0

ndtoString的范围内未定义。也许你的意思是

@Override 
public String toString() { 
    return numer + "/" + denom; 
} 
+0

谢谢。我添加了这个,并且仍然将FRACTIONS @ 3d4eac69作为我的输出,而不是分子/分母形式的分数的解决方案。 –