Java Calling Methods: Learn How to Use Them

  • Thread starter Thread starter ProPatto16
  • Start date Start date
  • Tags Tags
    Java
AI Thread Summary
The discussion focuses on how to call methods within a Java class, specifically in the context of a parking fee calculation program. Participants emphasize the importance of posting code clearly and using proper formatting to enhance readability. The main method, `beginCharging`, prompts users for entry and exit times, while the `calculateCharges` method computes the parking fee based on time differences. Suggestions for improvement include adding error handling to manage invalid inputs and ensuring clarity in user instructions. Overall, the code is praised for its quality, especially given the author's limited experience in Java.
ProPatto16
Messages
323
Reaction score
0
dfjchjd
 
Last edited:
Physics news on Phys.org
I'm not sure what you're trying to figure out. Calling another method in the same class isn't difficult. Could you post what you have so far?

As far as the correct thread, programming problems usually go in the Engineering, Comp Sci, & Technology section.
 
fhgfj
 
Last edited:
Not sure why it's centred that thread, hope it's still readable
 
ProPatto16 said:
Not sure why it's centred that thread, hope it's still readable
It would be better if you code post the code. Use the code tags when you post and it will stay indented.
 
yjfj
 
Last edited:
All that you have to do is to put the method call in where you've indicated.
You don't need to call it from the ParkingTest class also. I'm not sure about other parts such as why you are dividing by 100 and multiplying by 60. Are your inputs intended to be minutes or hours?

Code:
// Parking.java
// Class to calculate parking fee
import java.util.Scanner; // import Scanner

public class Parking 
{
     int charge; // charge for parking
     int receipt; // receipt total of all customers
     int customer; // number of customers
     int entryTime; // user inputs entry time
     int exitTime; // user inputs exit time
     int timeDiffMin; // time difference in minutes
     int timeDifference; // time difference
     
     public void beginCharging()
     {
            Scanner input = new Scanner ( System.in ); // create new Scanner 
          
            customer = 1; // initialize customer count
            
            System.out.println( "\nHello and welcome!" );
            System.out.println( "This is a parking fee program." );
        
            while ( customer <= 9)
            {       
                    System.out.printf( 
                            "Please enter entry and exit time for customer %d\n",
                            customer ); // prompt
                    System.out.print( "Entry Time: " ); // input entry time
                    entryTime = input.nextInt();
                    System.out.print( "Exit time: " ); // input exit time
                    exitTime = input.nextInt();
                    
                    [B]// This is all that you need.
                    calculateCharges();[/B]
                    
                    
                    System.out.printf( "Thank you, your charge is $%d\n\n",
                            charge ); // display charge
                    customer = customer + 1;
                    receipt = receipt + charge;
            } // end while statement
            System.out.println( "Thank you for using this program" );
            System.out.printf( "Total of all charges: $%d", receipt );
            System.out.println( "Have a nice day!" );
            
     } // end method beginCharging
            
     public void calculateCharges()
     { 
            timeDiffMin = (((exitTime/100)*60)+(exitTime%100))
                          -(((entryTime/100)*60)+(entryTime%100));
            timeDifference = ((timeDiffMin/60)*100)+(timeDiffMin%60);
 
            if ( timeDifference > 800 )
                charge = 20;
            else if ( timeDifference > 700 )
                charge = 18;
            else if ( timeDifference > 600 )
                charge = 16;
            else if ( timeDifference > 500 )
                charge = 14;
            else if ( timeDifference > 400 )
                charge = 12;
            else if ( timeDifference > 300 )
                charge = 10;
            else if ( timeDifference > 200 )
                charge = 8;
            else if ( timeDifference > 100 )
                charge = 6;
            else if ( timeDifference > 30 )
                charge = 4;
            else if ( timeDifference > 15 )
                charge = 2;
            else charge = 0;
          
       } // end method calculateCharges
} // end class Parking
 
dthg
 
Last edited:
You're welcome. The military time makes sense now - it just wasn't jumping out at me. One thing that I always recommend is to put in more error handling. For example, if you enter a decimal point or alphabetical character, the program blows up and ends. The best test is entering things that don't make sense - because that is exactly what the users will eventually do.

BTW, your Java code is very good for someone who has only been doing it for three weeks.
 
Last edited:
  • #10
Havnt really done any error handling yet. so i just put in the welcome messages a message about how to enter the time correctly haha :)
thanks!
 

Similar threads

Back
Top