Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I need some help with a project. I will list the Driver program to be used with

ID: 3561022 • Letter: I

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(" "); } }