Results 1 to 3 of 3
  1. #1
    sephisel is offline Member
    Join Date
    Oct 2013
    Posts
    1
    Rep Power
    0

    Default Cannot get the meant results in feet and inches

    Hello everyone,
    Thanks for trying to help me.

    The program that I am working on is supposed to ask a person for their input in feet and inches

    2' 2 2/2" <--- (This format)

    However, I cannot come up with a way that enables such kind of user input.

    The program is composed of three classes

    Fraction

    Pair

    Mix

    <!-- Java: ... -->

    Java Code:
    import java.util.Scanner;  
    class Mix extends Fraction{  
      
      public Mix ( int n, int m)   
      {  
      super (n,m);  
      }  
      
      public String displayMix()   
      {  
      String str="";  
      if (first < second)   
      str=first+ "'" + first%second +"/"+second+"\"";  
      else   
      str=first+"'" +(first+second)+"/"+second+"\"";  
      
      return str;   
      } //display  
      
    public static String get ()  
    {  
      Scanner scan = new Scanner(System.in);  
      System.out.print("Please enter a mixed-format number:");  
      String userInput = scan.nextLine();  
      userInput = userInput.trim();  
      System.out.println("Input is: "+ userInput);  
      return (userInput);  
    } //get  
      
      
      public static void main(String [] args)  
      {  
      String userInput;  
      int[]iA = {0,0,0,1};  
      
      userInput = Mix.get();  
      iA=parse(userInput);  
      Mix f = new Mix ( iA[0] , (iA[1]*iA[2])+(iA[3]) );  
      System.out.println("Number = " + f.displayMix());  
      
      userInput = Mix.get();  
      iA=parse(userInput);  
      Mix g = new Mix ( iA[0] , iA[1] * iA[3] + iA[2]);  
      System.out.println("Number = " + g.displayMix());  
      
      Mix h = Mix.add (f,g);  
      System.out.println("Sum ="+ h.displayMix());  
      } // main  
      
      
      public static Mix add (Mix f, Mix g){  
      int gtop=       f.first+g.first;  
      
      int gbottom=    f.second+g.second;  
      return(new Mix ( gtop, gbottom));  
      } //add  
      
      
    public static int[] parse (String userInput){  
    int [] sA = {0,0,0,1};  
    int pos = userInput.indexOf("'");  
      
    String sNum0 = userInput.substring(0,pos);  
    pos = userInput.indexOf("'");  
    sA[0]= Integer.parseInt(sNum0);  
      
    String sNum = userInput.substring(0,pos);  
    pos = sNum.indexOf("  ");  
    sA[1]= Integer.parseInt(sNum);  
      
    String sNum2 = userInput.substring(pos + 1);  
    pos = sNum2.indexOf("/");  
      
    String sTop= sNum2.substring (pos +3);  
    pos = sNum2.indexOf("\"");  
    sA[2] = Integer.parseInt(sTop);  
      
    String sBot = sNum2.substring(pos +1);  
      
    sA[3] = Integer.parseInt(sBot);  
      
    // 2' 2 2/2  
    return (sA);  
    }} //parse


    I have managed to get result after inputting

    2' 2 2/2"1

    I don't know what I am doing wrong, but something is off since i need a number after the " to get a result back.

    I am pretty sure that something is wrong with the parsing method, i just dont know where it is.

    This is the Fraction class


    Java Code:
    public class Fraction extends Pair{  
    //attributes: NONE  
      
      
    public Fraction(int n, int m) {  
    super(n,m);  
    int g=gcd(n,m);  
    first = first;  
    second=second/g;  
    }//Fraction  
      
      
    public void display2() {  
    System.out.print(first);  
    System.out.print("/");  
    System.out.println(second);  
    }//display  
      
      
    public Fraction add (Fraction f1, Fraction f2){  
    int gtop=f1.first * f2.second  
    + f2.first * f1.second;  
    int gbottom= f1.second * f2.second;  
    return (new Fraction(gtop,gbottom));  
    }  
      
      
    public static int gcd (int n, int m){  
    while ( n!=m) {  
    if (n>m) n=n-m;  
    else m=m-n;  
    }//while  
    return (n);  
    } //gcd  
    } //class
    This is the third class


    Java Code:
    public class Pair {  
    int first;  
    int second;  
      
    public Pair(int n, int m) {  
    first=n;  
    second=m;  
    }//Pair  
      
      
    public void display() {  
    //pseudo_code is here  
    System.out.print("First integer="+first);  
    System.out.println();  
    System.out.println("Second integer="+second);  
    }//display  
      
      
    public static void main(String[] args) {  
    //pseudo-code is here  
    Pair f= new Pair(2,4);  
    f.display();  
    }//main  
    } //class

  2. #2
    Junky's Avatar
    Junky is offline Grand Poobah
    Join Date
    Jan 2011
    Location
    Dystopia
    Posts
    3,800
    Rep Power
    7

    Default Re: Cannot get the meant results in feet and inches


  3. #3
    DarrylBurke's Avatar
    DarrylBurke is offline Forum Police
    Join Date
    Sep 2008
    Location
    Madgaon, Goa, India
    Posts
    11,458
    Rep Power
    20

    Default Re: Cannot get the meant results in feet and inches

    There's a New to Java section for beginner questions. Or did you really think this is an advanced question?

    db
    If you're forever cleaning cobwebs, it's time to get rid of the spiders.

Similar Threads

  1. centimetres = inches*2.75;
    By soc86 in forum New To Java
    Replies: 9
    Last Post: 11-03-2008, 03:58 PM
  2. Java Forums Topics Meant for
    By linuxswan in forum Suggestions & Feedback
    Replies: 2
    Last Post: 07-22-2008, 01:30 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •