Hi;
I've changed your code as follows; Remember to break the code into segments;
such as functions and objects; especially if they are getting too big and
too large;
First of all; I think I didn't got what you mean; please paraphrase your
question if this code does not fulfill your needs;
import java.util.*; // program uses class Scanner
>
> // Class creation to setup place holders for the required data elements for
> retrieval in my Public class later
> class PersonData { // This class to gather all person information for my
> app (outside of Main).
> PersonData(String newFname, String newLname, float newDonationNum,
> float newDonationAmount,
> String newAddress, String newCity, String newState, String
> newZip) {
> fname = newFname; // constructor invokations
> lname = newLname; // ..
> address = newAddress; // ..
> city = newCity; // ..
> state = newState; // ..
> zip = newZip; // ..
> donationNum = newDonationNum; // ..
> donationAmount = newDonationAmount; // ..
> }
> public String getFname() {
> return fname;
> }
> public String getLname() {
> return lname;
> }
> public String getAddress() {
> return address;
> }
> public String getCity() {
> return city;
> }
> public String getState() {
> return state;
> }
> public String getZip() { // String rather than float, I guess, since US
> zips can contain '-'?
> return zip;
> }
> public float getYearlyDonations() {
> return donationNum * donationAmount;
> }
> private String fname;
> private String lname;
> private String address;
> private String city;
> private String state;
> private String zip; // wasn't sure whether to use string or float for
> Zip??
> private float donationNum, donationAmount;
> } // end of PersonData class
>
> public class AddBook // Modified to include requirement of positive num
> entry for donations (amount of and number of)
> {
>
> private static persons getInput() throws IOException {
> Scanner input = new Scanner ( System.in );
>
> System.out.println(); // a blank line
> System.out.print( "Please enter a person's First Name: " ); //
> First prompt. Get the First Name of the person
> String Fname = input.nextLine(); // read persons First name -
> initialize Fname variable
>
> System.out.print( "Please enter a person's Last Name: " ); //
> Get Last Name
> String Lname = input.nextLine(); // read persons Last Name -
> initialize Lname variable
>
> // Initialize our variables not already initialized
> String Address; // Address string
> String City; // City String
> String State; // State string
> String Zip; // Zip (String seemed the best fit for this type)
> float donationNum; // first number, number of donations for the
> year
> float donationAmount; // second number, amount per donation
> //end initialization of variables
>
> // Section requesting user input-------------ends @ line 157
> System.out.print ( "Please enter the person's Address: " );
> Address = input.nextLine(); // Address validation and exception
> catch needed
>
> System.out.print ( "Please enter the person's City: " );
> City = input.nextLine(); // City validation needed
>
> System.out.print ( "Please enter the person's State: " );
> State = input.nextLine(); // Validation for State needed
>
> System.out.print ( "Zip Code in five number format please: " );
> Zip = input.nextLine(); // Get zip - and validate
>
> // Input request for number of donations. Includes validation for a
> positive integer.
> System.out.print( "Please enter number of donations: " ); // prompt
> for donation number
> donationNum = input.nextFloat();
> while (donationNum <= 0) // validate for positive number
> {
> System.out.print( "The number of donations must be a
> positive value. " +
> "Please enter the number of donations again: " ); //
> prompt for positive value for donations
> donationNum = input.nextFloat(); // prompt for another try
> for valid input
> }
>
> // Input reuest that includes validation for positive integer.
> Validation for a numeral needed later
> System.out.print( "Please enter amount per donation: $" ); //
> prompt for donation amount
> donationAmount = input.nextFloat();
> while (donationAmount <= 0) // validate for positive amount
> {
> System.out.print( "The donation amount must be a positive
> value. " +
> "Please enter the donation amount again: " ); // Prompt
> again after invalid entry
> donationAmount = input.nextFloat(); // prompt for another
> try for valid input
> }
> // End User Data Request section
> return (new PersonData(Fname, Lname, donationNum,
> donationAmount, Address, City, State, Zip));
> }
>
> private static void printData(person person) {
> System.out.printf("\n"); // Print a blank line between user entry
> and results for readability
> System.out.print( person.getFname() ); // display person's First
> Name
> System.out.printf(" "); // Get the First and Last names on same
> line with a space
> System.out.print( person.getLname() ); //display person's Last Name
> System.out.println(); // Print Lname
> System.out.print( person.getAddress() ); // get the address input
> System.out.println(); // blank line for readability
> System.out.print( person.getCity() ); // get the city input
> System.out.printf(", "); // Comma, Space on same line as City,
> State and Zip for readability
> System.out.print( person.getState() ); // get the state input
> System.out.printf(" "); // Same line for City, State and Zip
> System.out.print( person.getZip() ); // get the zip code input
> System.out.println(); // blank line for readability
> System.out.print( person.getFname() ); // get the name again for
> the statement of donations total
> System.out.printf( "'s yearly donations is: $%,.2f\n",
> person.getYearlyDonations() ); // display yearly donations total
> }
> // main method begins execution of java application
> public static void main( String args[] ) throws IOException
> {
> ArrayList persons = new ArrayList(); // Array to handle multiple
> entries of persons
>
> while ( persons.size() <5 ) // limit to 5 iterations
> {
>
> // create scanner to obtain input from command window
> // I've moved the code into a function definition; getInfo()
>
> // display User Input data
> PersonData person; // Person data from our array
>
> // Output of our data gathered from above. Blank lines and comma
> included for readability of output.
> person = getInfo();
> // fields included in our person entries
> //yearlyDonations = donationNum * donationAmount; // multiply
> printData(person);
> persons.add(person); // Add another until 5 iterations
>
> } // end While and termination of loop @ 5 iterations only
> } // end Main
> } // end class AddBook
>
>
As it is your code; I suppose it works fine and didn't compile it; but i
think methods need throws IOException statement;
I hope this would be fine; otherwise feel free to contact me with a
paraphrase of your need!
With the hope of rising of Mahdi;
Ali Shakiba
Shahid Bahonar University of Kerman
Iran - Kerman
On Sun, Jan 24, 2010 at 9:02 PM, Craig Jensen <[email protected]>wrote:
> You are very good!
>
> However, I am not so good, so I am walking through your code and then
> integrating the previous information about creating an array with object
> (Identification, or whatever) as it's type. What you did there (in the first
> response) was to use a class to create the multiple elements of different
> types, then create the array with the class as its reference. So I am now
> seeing that you have some data test elements inside Main and class Data.
>
> I am getting these entries by line by line requests of the user (non-GUI)
> like:
>
> "enter first name: "
> "enter last name: "
> "enter job: "
> "enter amount: "
> "etc..."
>
> Then I am outputting the results, OK let me include my code- from what you
> see below I am now wanting to use an array to store the input from the user
> and then still print our the results, but from the array
>
> [code below]
>
> import java.util.*; // program uses class Scanner
>
> // Class creation to setup place holders for the required data elements for
> retrieval in my Public class later
> class PersonData { // This class to gather all person information for my
> app (outside of Main).
> PersonData(String newFname, String newLname, float newDonationNum,
> float newDonationAmount,
> String newAddress, String newCity, String newState, String
> newZip) {
> fname = newFname; // constructor invokations
> lname = newLname; // ..
> address = newAddress; // ..
> city = newCity; // ..
> state = newState; // ..
> zip = newZip; // ..
> donationNum = newDonationNum; // ..
> donationAmount = newDonationAmount; // ..
> }
> public String getFname() {
> return fname;
> }
> public String getLname() {
> return lname;
> }
> public String getAddress() {
> return address;
> }
> public String getCity() {
> return city;
> }
> public String getState() {
> return state;
> }
> public String getZip() { // String rather than float, I guess, since US
> zips can contain '-'?
> return zip;
> }
> public float getYearlyDonations() {
> return donationNum * donationAmount;
> }
> private String fname;
> private String lname;
> private String address;
> private String city;
> private String state;
> private String zip; // wasn't sure whether to use string or float for
> Zip??
> private float donationNum, donationAmount;
> } // end of PersonData class
>
> public class AddBook // Modified to include requirement of positive num
> entry for donations (amount of and number of)
> {
> // main method begins execution of java application
> public static void main( String args[] )
> {
> ArrayList persons = new ArrayList(); // Array to handle multiple
> entries of persons
>
> while ( persons.size() <5 ) // limit to 5 iterations
> {
>
> // create scanner to obtain input from command window
> Scanner input = new Scanner ( System.in );
>
> System.out.println(); // a blank line
> System.out.print( "Please enter a person's First Name: " ); // First
> prompt. Get the First Name of the person
> String Fname = input.nextLine(); // read persons First name -
> initialize Fname variable
>
> System.out.print( "Please enter a person's Last Name: " ); // Get
> Last Name
> String Lname = input.nextLine(); // read persons Last Name -
> initialize Lname variable
>
> // Initialize our variables not already initialized
> String Address; // Address string
> String City; // City String
> String State; // State string
> String Zip; // Zip (String seemed the best fit for this type)
> float donationNum; // first number, number of donations for the year
> float donationAmount; // second number, amount per donation
> //end initialization of variables
>
> // Section requesting user input-------------ends @ line 157
> System.out.print ( "Please enter the person's Address: " );
> Address = input.nextLine(); // Address validation and exception catch
> needed
>
> System.out.print ( "Please enter the person's City: " );
> City = input.nextLine(); // City validation needed
>
> System.out.print ( "Please enter the person's State: " );
> State = input.nextLine(); // Validation for State needed
>
> System.out.print ( "Zip Code in five number format please: " );
> Zip = input.nextLine(); // Get zip - and validate
>
> // Input request for number of donations. Includes validation for a
> positive integer.
> System.out.print( "Please enter number of donations: " ); // prompt for
> donation number
> donationNum = input.nextFloat();
> while (donationNum <= 0) // validate for positive number
> {
> System.out.print( "The number of donations must be a positive
> value. " +
> "Please enter the number of donations again: " ); // prompt
> for positive value for donations
> donationNum = input.nextFloat(); // prompt for another try for
> valid input
> }
>
> // Input reuest that includes validation for positive integer.
> Validation for a numeral needed later
> System.out.print( "Please enter amount per donation: $" ); // prompt
> for donation amount
> donationAmount = input.nextFloat();
> while (donationAmount <= 0) // validate for positive amount
> {
> System.out.print( "The donation amount must be a positive
> value. " +
> "Please enter the donation amount again: " ); // Prompt
> again after invalid entry
> donationAmount = input.nextFloat(); // prompt for another try
> for valid input
> }
> // End User Data Request section
>
> // display User Input data
> PersonData person; // Person data from our array
>
> // Output of our data gathered from above. Blank lines and comma
> included for readability of output.
> person = new PersonData(Fname, Lname, donationNum, donationAmount,
> Address, City, State, Zip); // fields included in our person entries
> //yearlyDonations = donationNum * donationAmount; // multiply
> System.out.printf("\n"); // Print a blank line between user entry
> and results for readability
> System.out.print( person.getFname() ); // display person's First
> Name
> System.out.printf(" "); // Get the First and Last names on same
> line with a space
> System.out.print( person.getLname() ); //display person's Last Name
> System.out.println(); // Print Lname
> System.out.print( person.getAddress() ); // get the address input
> System.out.println(); // blank line for readability
> System.out.print( person.getCity() ); // get the city input
> System.out.printf(", "); // Comma, Space on same line as City,
> State and Zip for readability
> System.out.print( person.getState() ); // get the state input
> System.out.printf(" "); // Same line for City, State and Zip
> System.out.print( person.getZip() ); // get the zip code input
> System.out.println(); // blank line for readability
> System.out.print( person.getFname() ); // get the name again for
> the statement of donations total
> System.out.printf( "'s yearly donations is: $%,.2f\n",
> person.getYearlyDonations() ); // display yearly donations total
> persons.add(person); // Add another until 5 iterations
>
> } // end While and termination of loop @ 5 iterations only
> } // end Main
> } // end class AddBook
>
> As you see, the code prints out each block of information, formatted for
> readability, and iterates x 5, then terminates. I am wanting to consolidate
> the storage by using an array rather than the method above and still print
> the results. What I have works well (except for validations, of course, but
> I can do that later). I want to get the array method down so I can alter
> this to use it instead.
>
>
>
--
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/javaprogrammingwithpassion?hl=en