A personal phone directory contains room for first names and phone numbers for 30 people. Assign names and phone numbers for the first 10 people. Prompt the user for a name, and if the name is found in the list, display the corresponding phone number. If the name is not found in the list, prompt the user for a phone number, and add the new name and phone number to the list. Continue to prompt the user for names until the user enters quit. After the arrays are full (containing 30 names), do not allow the user to add new entries. Use the following names and phone numbers: Name Phone # Gina (847) 341-0912 Marcia (847) 341-2392 Rita (847) 354-0654 Jennifer (414) 234-0912 Fred (414) 435-6567 Neil (608) 123-0904 Judy (608) 435-0434 Arlene (608) 123-0312 LaWanda (920) 787-9813 Deepak (930) 412-0991

Np Ms Office 365/Excel 2016 I Ntermed
1st Edition
ISBN:9781337508841
Author:Carey
Publisher:Carey
Chapter8: Working With Advanced Functions
Section: Chapter Questions
Problem 4.4CP
icon
Related questions
Question

This is the question I am struggling with - 

A personal phone directory contains room for first names and phone numbers for 30 people. Assign names and phone numbers for the first 10 people. Prompt the user for a name, and if the name is found in the list, display the corresponding phone number. If the name is not found in the list, prompt the user for a phone number, and add the new name and phone number to the list.

Continue to prompt the user for names until the user enters quit. After the arrays are full (containing 30 names), do not allow the user to add new entries.

Use the following names and phone numbers:

Name Phone #
Gina (847) 341-0912
Marcia (847) 341-2392
Rita (847) 354-0654
Jennifer (414) 234-0912
Fred (414) 435-6567
Neil (608) 123-0904
Judy (608) 435-0434
Arlene (608) 123-0312
LaWanda (920) 787-9813
Deepak (930) 412-0991

This is the code I have. I have gotten one out of the four checks so somewhere I am either over complicating it or I just have it wrong - 

import java.util.*;
class PhoneNumbers {
    public static void main(String[] args) {
        // Write your code here
          int room,j=0;

    boolean present= false;   

    String [] names ={"Gina", "Marcia", "Rita", "Jennifer", "Fred", "Neil", "Judy", "Arlene", "LaWanda", "Deepak"};

    String [] number= {"(847) 341-0912","(847) 341-2392", "(847) 354-0654","(414) 234-0912", "(414) 435-6567", "(608) 123-0904", "(608) 435-0434", "(608) 123-0312", "(920) 787-9813", "(930) 412-0991" };

    String nameEntered;
    Scanner input = new Scanner(System.in);        
    System.out.println("Please enter name: ");   //enter name to be searched  
    nameEntered = input.nextLine();        
    for(room = 0; room < names.length; room++)         //search for the name    
    {

        if(names[room].equals(nameEntered))     
        {
          present =true;     //if found return true
          j=room;    //assign value of index at which the name is found
          break;
        }
    }
    if(present==true)    //check for true of false

    {

         System.out.println(names[j] + " corresponding number is " +number[j]);

    }

//if name is not found enter new entries from user

    else

    {

        System.out.println("Name and phone number not found");

        System.out.println("Enter new entries from user:");

//declare new array for name and number to be entered by user

        String newname[]=new String[20];

        String newnumber[]= new String[20];

        System.out.println("Enter the limit the user want to input and it should be less than 20 and greater than 10: ");

        int limit=input.nextInt();

        for(int i=0;i<limit;i++)

        {
            System.out.println("Enter phone number:");

            newnumber[i]=input.next();

            System.out.println("Enter name to the following phone number:");

            newname[i]=input.next();
        }
        System.out.println("The new list of name and corresponding phone number is: ");

        int aLen = names.length;    //length of names array

        int bLen = newname.length;   //length of new name array

        String[] finalnamelist = new String[aLen + bLen];

//copy two array in new array using copy function

        System.arraycopy(names, 0, finalnamelist, 0, aLen);

        System.arraycopy(newname, 0, finalnamelist, aLen, bLen);

        int cLen = number.length;    //length of number array

        int dLen = newnumber.length;  //length of new number array
 
        String[] finalnumberlist = new String[cLen + dLen];
//copy the number into new array
        System.arraycopy(number, 0, finalnumberlist, 0, cLen);
        System.arraycopy(newnumber, 0,finalnumberlist, cLen, dLen);
//print the new array with corresponding name and numbers
        System.out.println("Final list is:");
        for(int k=0;k<finalnamelist.length;k++)
        {
            if(finalnamelist[k]!=null)
            System.out.println(finalnamelist[k]+"  "+finalnumberlist[k]);
        }
    }
}
}
 
This is an example of one of the checks I have wrong - 
 
Test Case Incomplete

PhoneNumbers Smith (123) 456-7890 Jones (098) 765-4321

Input
Smith
(123) 456-7890
Jones
(098) 765-4321
Smith
Jones
quit
Output
Please enter name:
Smith
Name and phone number not found Enter new entries from user:
Enter the limit the user want to input and it should be less than 20 and greater than 10:
(123) 456-7890
Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:864) at java.util.Scanner.next(Scanner.java:1485) at java.util.Scanner.nextInt(Scanner.java:2117) at java.util.Scanner.nextInt(Scanner.java:2076) at PhoneNumbers.main(PhoneNumbers.java:65)
Jones
(098) 765-4321
Smith
Jones
quit
Results
(123) 456-7890 (in red for being incorrect/incomplete)
(098) 765-4321 (in red for being incorrect/incomplete)
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 7 steps with 2 images

Blurred answer
Knowledge Booster
Linux
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Np Ms Office 365/Excel 2016 I Ntermed
Np Ms Office 365/Excel 2016 I Ntermed
Computer Science
ISBN:
9781337508841
Author:
Carey
Publisher:
Cengage