I really need help here. This is for a class assignment, yet I'm not getting any help from anyone, anywhere, including my instructor. This is an online class, and he is never available. Since this is for a class, I need to keep things the way they are. Meaning that I need the outside class, and all of the setter/getter methods. This is for a basic address book. I need the Storage class to calculate numdonationAmount*numDonationsYTD. This calculation cannot be within found anywhere in AddressBook.java. It must be found in Storage.java. I have damn near most of it. Also, I can't get the Decimal formatter to work properly. I can't get it to work properly using the printf command, either. I need the output to be the name, address, city, state, zip, how many times this person donated, and the total amount of all donations (donate amount * how many times this person donated). Here is my code. I am on the verge of giving up. I just can't seem to understand java, at least in the way that I am being taught. The first part is AddressBook.java, and the second is a class I created, Storage.java
/*Program: Address Book
Week 04 Assignment 01 IT/215
Jordan Sinclair
Last Modified on 20091031 */
import java.util.*; //program uses java utilities package //program uses java I/O package
//import java.text.*; //programs uses java text package
//import java.io.*;
public class AddressBook { //class AddressBook declaration
public static void main(String args[]) { //begin main()
Storage entry = new Storage ();
Scanner input = new Scanner( System.in ); //program uses scanner class to evalute strings of text
//DecimalFormat money = new DecimalFormat("$00.00"); //program uses decimalFormat class to evaluate currency
System.out.println( "Welcome to Jordan's Address Book Program!" ); //introductory line
final String stopP = "Stop"; //string stopP declaration is created and not reconfigurable
do{ //begin do clause
/* 20091018 update changed all input variables to 'id<variableName> and took out last name prompt */
System.out.println( "Please Enter A Name. Otherwise, enter Stop to exit: " ); //program asks for user to enter a first name
entry.idName = input.nextLine(); //scanner variable idName is created
if (entry.idName.equals(stopP)) {
System.out.println("Thank you for using Jordan's Address Book. Program will now exit.");
}else{
System.out.println(); //blank line for readability
System.out.println( "Please Enter Street Address for "+entry.idName+":" ); //program asks user to enter the street address
entry.idAddress = input.nextLine(); //user input 'idAddress' variable created
System.out.println(); //blank line for readability
System.out.println( "Please Enter City:"); //program asks user to enter a city
entry.idCity = input.nextLine(); //user input 'idCity' variable created
System.out.println(); //blank line for readability
System.out.println("Please Enter Two Letter State Abbreviation (i.e., TX):"); //program asks for user to enter a state in a two letter format
entry.idState = input.nextLine(); //user input 'idState' variable created
System.out.println(); //blank line for readability
System.out.println("Please Enter a 5-digit Zip Code:"); //program asks user to enter a zip code
entry.idZip = input.nextLine(); //user input 'idZip' variable created
System.out.println(); //blank line for readability
String array[]={entry.idName,entry.idAddress,entry.idCity,entry.idState,entry.idZip};
// 20091017 update: changed "donationNumber" to "donationYTD". numDYTD stems from "Number Donations Year To Date". this is the integer number format for the variable "donationYTD
//int numDYTD; //declares variable 'numDYTD' as an integer
System.out.println("Please Enter Number of Donations This Year:"); //program asks user to enter number of donation frequency year to date
String donationsYTD = input.nextLine(); //user input 'donations year to date' as a string
entry.numDonationsYTD = Double.parseDouble(donationsYTD); //'donations year to date' string is recognized as int numDYTD
while (entry.numDonationsYTD <= 0) { //begin if clause
System.out.println("ERROR! FLAGRANT WINDOWS ERROR!! Dunno what you did, mate, but you sure screwed things up over here! You're lucky I don't throw the Blue Screen of DEATH at you!! Now enter a positive number!!!(Greater Than 0)"); //print error message1
System.out.println("Please Enter Number of Donations This Year (Positive Numbers Only):");//program re-asks user to enter number of donation frequency year to date
donationsYTD = input.nextLine(); //user input 'donations year to date' as a string
entry.numDonationsYTD = Double.parseDouble(donationsYTD); //'donations year to date' string is recognized as int numDYTD
continue; //restart while() and re-evaluate while condition
} //end while()
//double numDonateAmount; //declare variable numDonateAmount as a double-precision floating-point number
System.out.println("Please Enter Amount of Each Donation This Year (format X.XX)"); //program asks for donation amount numeric total
String donationAmount = input.nextLine(); //user input total donation amount in numerical value
entry.numDonateAmount = Double.parseDouble(donationAmount); //'donationAmount' is recognized as a double numDonateAmount
while (entry.numDonateAmount <=0) { //begin while clause
System.out.println("ERROR! FLAGRANT WINDOWS ERROR!! Dunno what you did, mate, but you sure screwed things up over here! You're lucky I don't throw the Blue Screen of DEATH at you!! Now enter a positive number!!!(Greater Than 0)"); //print error message2
System.out.println("Please Enter Amount of Each Donation This Year (Positive Numbers Only, Format X.XX):");//program re-asks for donation amount numeric total
donationAmount = input.nextLine(); //user input total donation amount numeric total
entry.numDonateAmount = Double.parseDouble(donationAmount); //'donationAmount' is recognized as a double numDonateAmount
continue; //restart while() and re-evaluate while condition
}
/* both print statements below reflect the returned output based upon previous input */
System.out.printf( entry.idName+" lives at "+entry.idAddress+" "+entry.idCity+", "+entry.idState+" "+entry.idZip+" and donated "+entry.numDonationsYTD+" time(s) this year.");
System.out.println();
//double grandTotal=entry.numDonateTotal; //create a new variable to equal the product of the donation amount and frequency
//double numDonateTotal = entry.numDonateTotal;
System.out.printf("The total of all donations amount to "+entry.numDonateTotal+".");//placed this new total in USD currency format to display a grand total
System.out.println();
}}while (! (entry.idName.equals(stopP)));
} //end main()
} //end class AddressBook
. Here is Storage.java. I created this class.
/* Storage Class
Jordan Sinclair
IT/215
Address Book Part Three
20091025*/
//programs uses java text package
public class Storage { //class definition
public String idName; //program creates variable idName
public String idAddress; //program creates variable idAddress
public String idCity; //program creates variable idCity
public String idState; //program creates variable idState
public String idZip; //program creates variable idZip
public String donationsYTD; //program creates double precision floating variable donateYTD
public String donationAmount; //program creates double precision floating variable donateAmount
public double numDonateAmount;
public double numDonationsYTD;
public double numDonateTotal;
public Storage () {
}
public Storage(String name, String address, String city, String state, String zip, double donationsYTD, double donateAmount, double donateTotal) {
this.idName=name;
this.idAddress=address;
this.idCity=city;
this.idState=state;
this.idZip=zip;
this.numDonationsYTD=donationsYTD;
this.numDonateAmount=donateAmount;
//numDonateTotal=numDonationsYTD*numDonateAmount;
this.numDonateTotal=donateTotal;
}
public void setNumDonationsYTD (double donationsYTD) {
numDonationsYTD=donationsYTD;
}
public double getNumDYTD () {
return numDonationsYTD;
}
public void setNumDonateAmount (double donateAmount) {
numDonateAmount=donateAmount;
}
public double getNumDonateAmount () {
return numDonateAmount;
}
//public void setNumDonateTotal (double donateTotal){
//numDonateTotal=donateTotal;
//}
public double NumDonateTotal(){
numDonateTotal=numDonateAmount*numDonationsYTD;
return numDonateTotal;
}
public void setIdName (String name) { //set idName
idName=name;
}
public String getIdName () { //get idName
return idName;
}
public void setIdAddress (String address) { //set idAddress
idAddress=address;
}
public String getIdAddress () { //get idAddress
return idAddress;
}
public void setIdCity (String city) { //set idCity
idCity=city;
}
public String getIdCity () { //get idCity
return idCity;
}
public void setIdState (String state) { //set idState
idState=state;
}
public String getIdState () { //get idState
return idState;
}
public void setIdZip (String zip) { //set idZip
idZip=zip;
}
public String getIdZip () { //get idZip
return idZip;
}
}
The formatted text needs to be in the output in a USD format. Output needs to be like this:
idName lives at idAddress, idCity, idState, idZip, and has donated numDonateAmount times. The total of all donations amount to numDonateTotal.
Now, I need to grab numDonateAmount from Storage class, and numDonateTotal needs to be in dollar format. Please tell me what I'm doing wrong.