Question
I need some help with a project. I will list the Driver program to be used with the program, then the program requirements and sample output at the bottom.
Program must be in OOP format and cannot use .IOException or throws
import java.util.ArrayList;
public class LastFirstChapter10 {
public static void main(String [] args) {
ArrayList aBook = new ArrayList ();
ArrayList();
for (int count = 0; count < 1; count++) //change 1 to add more than 1
{
//***************************************************
//add code here to add new entry to ArrayList
//call addEntry
//print blank line
//***********************************************
}
int foundIndex = LiFiAddressBook.search(aBook); System.out.println();
if (foundIndex > -1)
aBook.get(foundIndex).display();
else
System.out.println("No Entry Found");
}
} // end driver
Output should be as shown in example at bottom.
LiFiAddressBook.java class
Instance variables:
First Name (string)
Last Name (string)
Street Address (string)
City State (string)
Zip Code (string)
addEntry method:
search method:
display method:
Sample Session:
Please Enter First Name: Ken
Please Enter Last Name: Dewey
Please Enter Street Address: 6420 SE 15th St.
Please Enter City, State: Midwest City, OK
Please Enter Zip Code: 73110
Please Enter First Name: Nick
Please Enter Last Name: Dewey
Please Enter Street Address: 3232 Longridge Rd.
Please Enter City, State: Del City, OK
Please Enter Zip Code: 73115
Please Enter First Name: Steve
Please Enter Last Name: Jones
Please Enter Street Address: 1205 Waynes Place
Please Enter City, State: Moore, OK
Please Enter Zip Code: 73024
Search Menu;
1. First Name
2. Last Name
3. Street Address 4. City, State
5. Zip Code
Please Enter Field to Search: 1
Please enter value to search for: Nick
First Name: Nick
Last Name: Dewey
Street Address: 3232 Longridge Rd. City, State: Del City, OK
Zip Code: 73115
If the item is not found:
No Entry Found
Explanation / Answer
import static org.junit.Assert.assertTrue; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; import org.junit.Before; import org.junit.Test; public class AddressBookTest { private Contact c1, c2, c3, c4, c5, c6, c7; private AddressBookPersist addressBookPersist; @Before public void setUp() { addressBookPersist = new AddressBookPersist(); createNewContacts(); } public static void main(String[] args) { AddressBookTest test = new AddressBookTest(); test.setUp(); test.sortFriendsByTheirNames(); test.uniqueFriendsFromTwoAddressBooks(); test.uniqueFriendsFromThreeAddressBooks(); } @Test public void uniqueFriendsFromTwoAddressBooks() { System.out.println("========== Unique Friends from Two Address Books =========="); addTwoAddressBooks(); List addressBooks = addressBookPersist.getAddressBooks(); printInput(addressBooks); // Get unique contacts from two AddressBooks Set uniqueContacts = AddressBook.getUniqueContacts(addressBooks); printOutput(addressBooks, uniqueContacts); // The unique contacts from these two address books should be c1 and c4 Set expected = new HashSet(Arrays.asList(c1, c4)); assertTrue(uniqueContacts.equals(expected)); } @Test public void uniqueFriendsFromThreeAddressBooks() { System.out.println("========== Unique Friends from Three Address Books =========="); addThreeAddressBooks(); List addressBooks = addressBookPersist.getAddressBooks(); printInput(addressBooks); // Get unique contacts from three AddressBooks Set uniqueContacts = AddressBook.getUniqueContacts(addressBooks); printOutput(addressBooks, uniqueContacts); // The unique contacts from three address books should be c1, c4 and c5, c6, c7 Set expected = new HashSet(Arrays.asList(c4, c5, c6, c7)); assertTrue(uniqueContacts.equals(expected)); } @Test public void sortFriendsByTheirNames() { System.out.println("========== Display the list of friends sorted by their name =========="); AddressBook addressBook = new AddressBook("ab1"); addressBook.addContact(c5); addressBook.addContact(c1); addressBook.addContact(c4); addressBook.addContact(c2); addressBook.addContact(c3); System.out.println("==Input=="); System.out.println("Address Book: " + addressBook.getName()); System.out.println("Friends:"); for (Contact contact : addressBook.getContacts()) { System.out.println(contact); } System.out.println(); Collections .sort(addressBook.getContacts(), new ContactNameComparator()); System.out.println("==Output=="); System.out.println("Address Book: " + addressBook.getName()); System.out.println("Friends:"); for (Contact contact : addressBook.getContacts()) { System.out.println(contact); } System.out.println(" "); // Sorted list assertTrue("Bob".equals(addressBook.getContacts().get(0).getName())); assertTrue("Jane".equals(addressBook.getContacts().get(1).getName())); assertTrue("John".equals(addressBook.getContacts().get(2).getName())); assertTrue("Mary".equals(addressBook.getContacts().get(3).getName())); assertTrue("Ruby".equals(addressBook.getContacts().get(4).getName())); } private void createNewContacts() { c1 = new Contact("Bob", "02 9218 5479"); c2 = new Contact("Mary", "04 9218 5479"); c3 = new Contact("Jane", "02 9 605 3147"); c4 = new Contact("John", "02 605 3147"); c5 = new Contact("Ruby", "03 9 605 3147"); c6 = new Contact("Paul", "03 9 605 3147"); c7 = new Contact("Zee", "03 9 605 3147"); } private void addTwoAddressBooks() { addressBookPersist.removeAllAddressBooks(); AddressBook ab1 = new AddressBook("ab1"); AddressBook ab2 = new AddressBook("ab2"); // AddContacts to the addressBooks ab1.addContact(c1); ab1.addContact(c2); ab1.addContact(c3); ab2.addContact(c2); ab2.addContact(c4); ab2.addContact(c3); addressBookPersist.addAddressBook(ab1); addressBookPersist.addAddressBook(ab2); } private void addThreeAddressBooks() { addressBookPersist.removeAllAddressBooks(); AddressBook ab1 = new AddressBook("ab1"); AddressBook ab2 = new AddressBook("ab2"); AddressBook ab3 = new AddressBook("ab3"); // AddContacts to the addressBooks ab1.addContact(c1); ab1.addContact(c2); ab1.addContact(c3); ab2.addContact(c2); ab2.addContact(c4); ab2.addContact(c3); ab3.addContact(c1); ab3.addContact(c5); ab3.addContact(c6); ab3.addContact(c7); addressBookPersist.addAddressBook(ab1); addressBookPersist.addAddressBook(ab2); addressBookPersist.addAddressBook(ab3); } private void printInput(List addressBooks){ System.out.println("==Input=="); for (AddressBook addressBook : addressBooks) { System.out.println("Address Book: " + addressBook.getName()); System.out.println("Friends:"); for (Contact c : addressBook.getContacts()) { System.out.println(c.getName()); } System.out.println(""); } } private void printOutput(List addressBooks,Set uniqueContacts){ System.out.println("==Output=="); System.out.print("Address Books: "); String names = ""; for (AddressBook addressBook : addressBooks) { names += addressBook.getName() + ", "; } if (names.length() > 0) { System.out.println(names.substring(0, names.lastIndexOf(","))); } for (Contact c : uniqueContacts) { System.out.println(c.getName()); } System.out.println(" "); } }