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
You notice that somehow you have duplicate records for some of your clients in your database. What should you do?
IRINA_888 [86]

Inspect them and make sure that they are exact copies then delete one if they are the same.

5 0
3 years ago
Read 2 more answers
Cloud computing will offer applications that are _______.
Komok [63]
B. only accesible over the internet
8 0
3 years ago
Read 2 more answers
. Html documents are created by adding what to text?
zvonat [6]
The answer is Tags, sorry about putting the other answer misread question.
7 0
3 years ago
Hello, my first time being here and I'm returning back from college and I'm now studying Java in college but I was stuck doing t
KengaRu [80]

Answer:

import java.time.LocalDate;

class TestWedding {

 public static void main(String[] args) {

   Person man1 = new Person("John", "Doe", LocalDate.parse("1990-05-23"));

   Person woman1 = new Person("Jane", "Something", LocalDate.parse("1995-07-03"));

   Person man2 = new Person("David", "Johnson", LocalDate.parse("1991-04-13"));

   Person woman2 = new Person("Sue", "Mi", LocalDate.parse("1997-12-01"));

   Couple cpl1 = new Couple(man1, woman1);

   Couple cpl2 = new Couple(man2, woman2);

   Wedding wed1 = new Wedding(cpl1, "Las Vegas", LocalDate.parse("2020-09-12"));

   Wedding wed2 = new Wedding(cpl2, "Hawaii", LocalDate.parse("2021-01-02"));  

   displayDetails(wed1, wed2);

 }

 public static void displayDetails(Wedding w1, Wedding w2) {

   System.out.println(w1.toString());

   System.out.println(w2.toString());

 }

}

---------------------------

class Couple {

 private Person person1;

 private Person person2;

 public Couple(Person p1, Person p2) {

   person1 = p1;

   person2 = p2;

 }

 public String toString() {

   return person1.toString() + " and " + person2.toString();

 }

}

----------------------------

import java.time.LocalDate;

import java.time.format.DateTimeFormatter;

class Person {

 private String firstName;

 private String lastName;

 private LocalDate birthDate;

 public Person(String first, String last, LocalDate bdate) {

   firstName = first;

   lastName = last;

   birthDate = bdate;

 }

 public String getFirstName() {

   return firstName;

 }

 public String toString() {

   DateTimeFormatter formatter = DateTimeFormatter.ofPattern("LLLL dd, yyyy");

   return String.format("%s %s born %s", this.firstName, this.lastName, birthDate.format(formatter));

 }

}

------------------------------------

import java.time.LocalDate;

import java.time.format.DateTimeFormatter;

class Wedding {

 private Couple couple;

 private String location;

 private LocalDate weddingDate;

 public Wedding(Couple c, String loc, LocalDate wDate) {

   couple = c;

   location = loc;

   weddingDate = wDate;

 }

 public String getLocation() {

       return this.location;

 }

 public String toString() {

   DateTimeFormatter formatter = DateTimeFormatter.ofPattern("LLLL dd, yyyy");

   return  

     couple.toString() +  

     " are getting married in " + location + " on "+

     weddingDate.format(formatter);

 }

}

Explanation:

I used overrides of toString to let each object print its own details. That's why this solution doesn't really require any getters. I implemented some to show how it's done, but you'll have to complete it. The solution shows how to think in an OO way; ie., let every class take care of its own stuff.

6 0
3 years ago
The device that concerts one type of signal to another is what​
chubhunter [2.5K]

Answer:

Transducer is a type of device that converts one type of signal into another.

6 0
3 years ago
Other questions:
  • The inflationary gap occurs when you obtain no increase in output, but only an increase in the Average Price Level from an incre
    13·1 answer
  • How do open online courses help with independent learning? (1 point)
    13·2 answers
  • Given: The following if statement uses an overloaded &gt; operator to determine whether the price of a Car object is more than $
    5·1 answer
  • What is software that, while purporting to serve some useful function and often fulfilling that function, also allows Internet a
    11·1 answer
  • A large IPv4 datagram is fragmented into 4 fragments at router 1 to pass over a network with an MTU of 1500 bytes. Assume each f
    15·1 answer
  • What does Data storage enable a browser to do
    5·1 answer
  • I stole you pokemon cards :o
    6·2 answers
  • How do i make a PDF and what is a PDF<br><br> sorry i am dumb
    14·1 answer
  • I need to reverse a inputted word using for loops with range 0 to the input word and increment 1.
    5·1 answer
  • Explain the difference between overexposed vs. underexposed images?
    15·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!