This is the question I am stuck on - 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

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

This is the question I am stuck on -

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 1 out of the 4 checks right -

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];

        for(int i=0;i<newname.length;i++)

        { 
         System.out.println();
         System.out.println("Enter quit to stop adding names and numbers otherwise Enter the phone number:");
            String temp=input.nextLine();
            if(!temp.equals("quit")) {
             newnumber[i]=temp;
                System.out.println("Enter name to the following phone number:");

                newname[i]=input.nextLine();
            }
            else {
             break;
            }

        }
        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]);
        }
    }
}
}
Example of one of the wrong checks
Phone Numbers Gina Deepak
Input
Gina
Deepak
quit
Output
Please enter name:
Gina
Gina corresponding number is (847) 341-0912
Deepak
quit
Results
(930) 412-0991 (Wrong)
(847) 341-0912 (Green for correct)
 
Example of a wrong check 
Phone Numbers Smith (123) 456-7890
Input
Smith
(123) 456-7890
Smith
quit
Output
Please enter name: Smith
Name and phone number not found Enter new entries from user:
Enter quit to stop adding names and numbers otherwise Enter the phone number: (123) 456-7890
Enter name to the following phone number:
Smith
Enter quit to stop adding names and numbers otherwise Enter the phone number:
quit
The new list of name and corresponding phone number is: Final list is: 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 Smith (123) 456-7890
Results
(123) 456-7890
 
The unexpected output is the new list of names - That isn't meant to show it seems cause it is counting it wrong due to that
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps with 1 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
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education