Java Calling Methods: Learn How to Use Them

  • Thread starter Thread starter ProPatto16
  • Start date Start date
  • Tags Tags
    Java
Click For Summary

Homework Help Overview

The discussion revolves around a Java programming problem related to calling methods within a class, specifically in the context of a parking fee calculation program. Participants are exploring how to properly implement method calls and handle user input for entry and exit times.

Discussion Character

  • Exploratory, Problem interpretation, Assumption checking

Approaches and Questions Raised

  • Some participants inquire about the original poster's current code and suggest posting it for better assistance. Others question the logic behind certain calculations, such as the division and multiplication of time inputs, and whether the inputs are intended to represent minutes or hours.

Discussion Status

Participants are actively engaging with the original poster's code, offering suggestions for improvement and raising questions about specific parts of the implementation. There is a recognition of the need for error handling in user input, indicating a productive direction in the discussion.

Contextual Notes

There is mention of a preference for posting code in a specific format to maintain readability, and the original poster acknowledges the absence of error handling in their current implementation.

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

  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 1 ·
Replies
1
Views
1K
Replies
8
Views
3K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K