Hello guys I need some one who could help me figure out what is the mistake or what should i add in prder to get the correct output. It is only the final part, the summary part. It seems that the program adds the values before adding the nights or guests with the one after adding them. It should add only those values after adding the nights or guests. here is my class code, and the test class. Note it is just the final part i need help with.

CLASS


package testhotel;

/**
*
* @author yoismel
*/
public class Hotel
{
//Declare constant variables
private static final double ROOM_RATE = 79.95,
TAX_RATE = 6.5,
TELEPHONE = 5.75,
MEAL_COST = 12.95,
TIP_RATE = 7.5;

// Instance variables
private int noOfNights,
noOfGuest;

private double amountDue,
meal,
tax,
subtotal,
total,
tip;

private String roomNumber;

private static double roomTotal = 0,
telephoneTotal = 0,
mealTotal = 0,
tipsTotal = 0,
taxTotal = 0,
overallTotal = 0;
private static int additionalNights = 0,
additionalGuest = 0;

//Constructors
public Hotel( String room)
{
roomNumber = room;
noOfGuest = 1;
noOfNights = 1;
}

public Hotel( String room, int nights)
{
this(room);
noOfNights = nights;
}

public Hotel(String room, int nights, int guest)
{
this(room, nights);
noOfGuest = guest;
}

public void calculate()
{
amountDue = ROOM_RATE * noOfNights * noOfGuest;
tax = amountDue * TAX_RATE/100;
subtotal = amountDue + tax;
meal = MEAL_COST * noOfGuest * noOfNights;
tip = (TIP_RATE * (subtotal + meal + TELEPHONE))/100;
total = subtotal + TELEPHONE + meal + tip;

roomTotal += amountDue;
telephoneTotal += TELEPHONE;
mealTotal += meal;
tipsTotal += tip;
taxTotal += tax;
overallTotal = roomTotal + telephoneTotal + mealTotal + tipsTotal + taxTotal;
}


//Get room number and charges
public String getRoomNumber()
{
return roomNumber;
}

public double getRoomRate()
{
return ROOM_RATE;
}

public int getNumberOfNights()
{
return noOfNights;
}

public int getNumberOfGuests()
{
return noOfGuest;
}

public double getAmountDue()
{
return amountDue;
}

public double getTaxRate()
{
return TAX_RATE;
}

public double getSubtotal()
{
return subtotal;
}

public double getPhoneCharges()
{
return TELEPHONE;
}

public double getMeal()
{
return meal;
}

public double getTaxDue()
{
return tax;
}

public double getTip()
{
return tip;
}

public double getTotal()
{
return total;
}



//For adding Nights and Guests
public int addNights(int an ){

noOfNights = noOfNights + an;
return noOfNights;
}

public int addGuest(int ag ){

noOfGuest = noOfGuest + ag;
return noOfGuest;
}



//Get overall the totals
public static double getRoomTotal(){

return roomTotal;
}

public static double getTelephoneTotal(){

return telephoneTotal;
}

public static double getMealTotal(){

return mealTotal;
}

public static double getTipsTotal(){

return tipsTotal;
}

public static double getTaxTotal(){

return taxTotal;
}

public static double getOverallTotal(){

return overallTotal;
}
}


TEST CLASS

package testhotel;
import java.util.Date;
import java.text.DateFormat;
import java.text.NumberFormat;

class TestHotel
{
public static void main(String[] arg)
{
NumberFormat f = NumberFormat.getCurrencyInstance();

//Create customer objects, calculate amounts, display receipts
Hotel customer1 = new Hotel("10 - M", 2, 2);
customer1.calculate();
display(customer1, f);

Hotel customer2 = new Hotel("12 - B");//1 night, 1 guest


Hotel customer3 = new Hotel("12 - C", 2);//2 nights, 1 guest
customer3.calculate();

customer2.addNights(1);
customer2.calculate();
display(customer2, f);

customer3.addGuest(1);
customer3.calculate();
display(customer3, f);

display(f);
}

static void display(Hotel h, NumberFormat f)
{
// Set up and display heading and date for each receipt
System.out.println("\tThe ABC Cheap Lodging, Inc");
Date d = new Date();
DateFormat df = DateFormat.getDateInstance();
System.out.println("\tDate: \t" + df.format(d));

// Display expenses line by line including subtotal
System.out.println("Room# \t\t\t\t" + h.getRoomNumber());
System.out.println("Room Rate\t\t\t" + f.format(h.getRoomRate()));
System.out.println("Length of stay\t\t\t" + h.getNumberOfNights() + " night(s)");
System.out.println("No. of guests\t\t\t" + h.getNumberOfGuests());
System.out.println("Room cost\t\t\t" + f.format(h.getAmountDue()));
System.out.println("Tax" + h.getTaxRate() +"%"+ "\t\t\t" + f.format(h.getTaxDue()));
System.out.println("\tSubtotal \t\t\t" + f.format(h.getSubtotal()));
System.out.println("Telephone \t\t\t" + f.format(h.getPhoneCharges()));
System.out.println("Meal charges \t\t\t" + f.format(h.getMeal()));
System.out.println("Tip \t\t\t\t" + f.format(h.getTip()));

//Display to total
System.out.println("\nTOTAL AMOUNT DUE\t................" + f.format(h.getTotal()));

// Display thank you message
System.out.println("\nThanks for staying at The ABC Cheap Lodging, Inc" );
System.out.println("\tPlease come again !!!");
System.out.println("\n");
}
public void display(NumberFormat f)
{
// Complete this method so that it displays the summary amounts as shown in the output


System.out.println(" \t\tOfficial Use Only");
System.out.println(" \t\tToday's Summary");
System.out.println(" \tRoom\t........." + f.format(Hotel.getRoomTotal()));
System.out.println(" \tTelephone........" + f.format(Hotel.getTelephoneTotal()));
System.out.println(" \tMeal\t........." + f.format(Hotel.getMealTotal()));
System.out.println(" \tTips\t........." + f.format(Hotel.getTipsTotal()));
System.out.println(" \tTax\t........." + f.format(Hotel.getTaxTotal()));
System.out.println(" ______________________________________");
System.out.println(" Gross Transaction......." + f.format(Hotel.getOverallTotal()));
}

}



OUTPUT

run:
The ABC Cheap Lodging, Inc
Date: Sep 22, 2011
Room# 10 - M
Room Rate $79.95
Length of stay 2 night(s)
No. of guests 2
Room cost $319.80
Tax6.5% $20.79
Subtotal $340.59
Telephone $5.75
Meal charges $51.80
Tip $29.86

TOTAL AMOUNT DUE ................$428.00

Thanks for staying at The ABC Cheap Lodging, Inc
Please come again !!!


The ABC Cheap Lodging, Inc
Date: Sep 22, 2011
Room# 12 - B
Room Rate $79.95
Length of stay 2 night(s)
No. of guests 1
Room cost $159.90
Tax6.5% $10.39
Subtotal $170.29
Telephone $5.75
Meal charges $25.90
Tip $15.15

TOTAL AMOUNT DUE ................$217.09

Thanks for staying at The ABC Cheap Lodging, Inc
Please come again !!!


The ABC Cheap Lodging, Inc
Date: Sep 22, 2011
Room# 12 - C
Room Rate $79.95
Length of stay 2 night(s)
No. of guests 2
Room cost $319.80
Tax6.5% $20.79
Subtotal $340.59
Telephone $5.75
Meal charges $51.80
Tip $29.86

TOTAL AMOUNT DUE ................$428.00

Thanks for staying at The ABC Cheap Lodging, Inc
Please come again !!!


Official Use Only
Today's Summary
Room .........$959.40
Telephone........$23.00
Meal .........$155.40
Tips .........$90.01
Tax .........$62.36
______________________________________
Gross Transaction.......$1,290.17



SHOULD GET
Room.........799.50
Telephone..17.25
Meal..........129.50
Tips...........74.87
Tax............51.97
___________________________________
Gross Transaction......1073.08