1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
choli [55]
3 years ago
5

Write a telephone lookup program. Read a data set of 1,000 names and telephone numbers from a file that contains the numbers in

random order. Handle lookups by name and also reverse lookups by phone number. Use a binary search for both lookups.
Computers and Technology
1 answer:
morpeh [17]3 years ago
4 0

Answer:

See explaination

Explanation:

PhoneLookup.java

import java.io.FileReader;

import java.io.IOException;

import java.util.Scanner;

public class PhoneLookup

{

public static void main(String[] args) throws IOException

{

Scanner in = new Scanner(System.in);

System.out.println("Enter the name of the phonebook file: ");

String fileName = in.nextLine();

LookupTable table = new LookupTable();

FileReader reader = new FileReader(fileName);

table.read(new Scanner(reader));

boolean more = true;

while (more)

{

System.out.println("Lookup N)ame, P)hone number, Q)uit?");

String cmd = in.nextLine();

if (cmd.equalsIgnoreCase("Q"))

more = false;

else if (cmd.equalsIgnoreCase("N"))

{

System.out.println("Enter name:");

String n = in.nextLine();

System.out.println("Phone number: " + table.lookup(n));

}

else if (cmd.equalsIgnoreCase("P"))

{

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

String n = in.nextLine();

System.out.println("Name: " + table.reverseLookup(n));

}

}

}

}

LookupTable.java

import java.util.ArrayList;

import java.util.Collections;

import java.util.Scanner;

/**

A table for lookups and reverse lookups

*/

public class LookupTable

{

private ArrayList<Item> people;

/**

Constructs a LookupTable object.

*/

public LookupTable()

{

people = new ArrayList<Item>();

}

/**

Reads key/value pairs.

atparam in the scanner for reading the input

*/

public void read(Scanner in)

{

while(in.hasNext()){

String name = in.nextLine();

String number = in.nextLine();

people.add(new Item(name, number));

}

}

/**

Looks up an item in the table.

atparam k the key to find

atreturn the value with the given key, or null if no

such item was found.

*/

public String lookup(String k)

{

String output = null;

for(Item item: people){

if(k.equals(item.getName())){

output = item.getNumber();

}

}

return output;

}

/**

Looks up an item in the table.

atparam v the value to find

atreturn the key with the given value, or null if no

such item was found.

*/

public String reverseLookup(String v)

{

String output = null;

for(Item item: people){

if(v.equals(item.getNumber())){

output = item.getName();

}

}

return output;

}

}

Item.java

public class Item {

private String name, number;

public Item(String aName, String aNumber){

name = aName;

number = aNumber;

}

public String getName(){

return name;

}

public String getNumber(){

return number;

}

}

input.txt

Abbott, Amy

408-924-1669

Abeyta, Ric

408-924-2185

Abrams, Arthur

408-924-6120

Abriam-Yago, Kathy

408-924-3159

Accardo, Dan

408-924-2236

Acevedo, Elvira

408-924-5200

Acevedo, Gloria

408-924-6556

Achtenhagen, Stephen

408-924-3522

Note: Replace all the "at" with at symbol

You might be interested in
Write a program that reads in an integer, and breaks it into a sequence of individual digits. Display each digit on a separate l
Montano1993 [528]

Answer:

The program in Python is as follows:

num = int(input())

for i in str(num):

   print(int(i))

Explanation:

This gets input for the number

num = int(input())

This converts the number to string and iterates through each element of the string

for i in str(num):

This prints individual digits

   print(int(i))

4 0
3 years ago
Write a CashRegister class that can be used with the RetailItem class that you wrote in Chapter 6's Programming Challenge 4. The
lys-0071 [83]

Answer:

Following are the code to this question:

import java.util.*; //import package for user input

class RetailItem//defining class RetailItem  

{

private String desc;//defining String variable

private int unit;//defining integer variable

private double prices;//defining double variable

RetailItem()//defining default Constructor

{

   //Constructor body

}

Output:

The Sub Total value: 199.75

The Sales Tax value: 11.985

The Total value: $211.735

Explanation:

In the above code three class "RetailItem, CashRegister, and Main" is defined, in the class "RetailItem", it defines three variable that is "desc, unit, and prices", inside the class "get and set" method and the constructor is defined, that calculates its value.

In the next step,  class "CashRegister" is defined, and inside the class parameterized constructor is defined, which uses the get and set method to return its value.  

In the next step, the main class is declared, in the main method two-class object is created and calls its method that are "getSubtotal, getTax, and getTotal".  

There is some technical error that's why full code can't be added so, please find the attached file of code.  

7 0
3 years ago
All organizations need good quality cybersecurity to ensure _____. Select 4 options.
vova2212 [387]

Answer:

option 1

Explanation:

it is because they need better security for operational

7 0
3 years ago
Read 2 more answers
Two friends can share 100 songs from their Bluetooth enabled mobile devices
Umnica [9.8K]

Answer:

A

Explanation:

If they are connected via bluetooth, you can share unlimited amounts of anything.

6 0
3 years ago
A hardware supplier manufactures three kinds of​ clamps, types​ A, B, and C. Production restrictions force it to make 10 more ty
Rufina [12.5K]

Answer:

A = 120

B = 40

C = 70

Solution:

As per the question:

Manufacturer forced to make 10 more type C clamps than the total of A and b:

10 + A + B = C                (1)

Also, 3 times as many type B as type A clamps are:

A = 3B                             (2)

The total no. of clamps produced per day:

A + B + C  = 330              (3)

The no. of each type manufactured per day:

Now, from eqn (1), and (3):

A + B + 10 + A + B = 330

2A + 2B = 320

A + B = 160                       (4)

Now, from eqn (2) and (4):

3B + B = 160

B = 40

Since, A = 3B

A = 3\times 40

A = 120          

Put the values of A and C in eqn (3):

120 + 40 + C = 330

C = 70

4 0
3 years ago
Other questions:
  • Word processing, presentation, photo editing, and video games are all types of what?
    9·2 answers
  • Which two statements are true about the Data Sync functionality? (Choose two.)
    15·1 answer
  • Briley has all the hardware she needs to construct a fully functional personal computer. She connects the various components and
    7·1 answer
  • What dose AUP stand for??????????
    15·2 answers
  • What is the local portion of the e-mail address below? <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="
    15·1 answer
  • Edie wants to visit her university's website. What software application should she use?
    9·2 answers
  • What services are used to help speed the development and deployment of internal custom applications?
    8·2 answers
  • Which search engine does not track users? Choose the answer.
    10·2 answers
  • How to implement switch statement in Python?
    11·2 answers
  • A monitor is an output device. Which of the following is not a type of monitor? *
    11·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!