Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.90 KB | None | 0 0
  1. import se.lth.cs.pt.io.*;
  2. import java.util.*;
  3.  
  4. //Sidorna 92 och 124 i kompendiet รคr bra
  5.  
  6. class Person {
  7.  
  8.     private String name, nbr;
  9.    
  10.     public Person (String name, String nbr) {
  11.     this.name = name;
  12.     this.nbr = nbr;
  13.     }
  14.  
  15.     public String getName() {
  16.     return name;
  17.     }
  18.  
  19.     public String getNbr() {
  20.     return nbr;
  21.     }
  22. }
  23.  
  24. class Register {
  25.  
  26.     private List<Person> persons;
  27.  
  28.     public Register() {
  29.     persons = new ArrayList<Person>();
  30.     }
  31.  
  32.     public boolean addPerson (String name, String nbr) {
  33.     if (existsName(name)) {
  34.         return false;
  35.     }
  36.     Person person = new Person(name, nbr);
  37.     persons.add(person);
  38.     return true;
  39.     }
  40.  
  41.     public boolean removePerson(String name) {
  42.     boolean found = false;
  43.     if (existsName(name)) {
  44.         int i = 0;
  45.         while (i < persons.size() && !found) {
  46.         if (persons.get(i).getName().equals(name)) {
  47.             persons.remove(i);
  48.             found = true;
  49.         }
  50.         i++;
  51.         }
  52.     }
  53.     return found;
  54.     }
  55.  
  56.     public boolean personExists(String name) {
  57.     if (existsName(name)) {
  58.         return true;
  59.     }
  60.     return false;
  61.     }
  62.  
  63.     public List<Person> findByPartOfName(String partOfName) {
  64.     List<Person> found = new ArrayList<Person>();
  65.     if (existsName(partOfName)) {
  66.         int i = 0;
  67.         while (i < persons.size()) {
  68.         if (persons.get(i).getName().indexOf(partOfName) >= 0) {
  69.             found.add(persons.get(i));
  70.             i++;
  71.         }
  72.         i++;
  73.         }
  74.         return found;
  75.     }
  76.     return found;
  77.     }
  78.  
  79.     public List<Person> findByNumber(String nbr) {
  80.     List<Person> nbrFound = new ArrayList<Person>();
  81.     if (existsNbr(nbr)) {
  82.         int i = 0;
  83.         while (i < persons.size()) {
  84.         if (persons.get(i).getNbr().compareTo(nbr) == 0) {
  85.             nbrFound.add(persons.get(i));
  86.             i++;
  87.         }
  88.         i++;
  89.         }
  90.         return nbrFound;
  91.     }
  92.     return nbrFound;
  93.     }
  94.  
  95.     public List<Person> findAll() {
  96.     List<Person> personsCopy = persons;
  97.     return personsCopy;
  98.     }
  99.  
  100.     //Aiding function
  101.     private boolean existsName(String name) {
  102.         int i = 0;
  103.         boolean found = false;
  104.         while (i < persons.size()&& !found) {
  105.             if (persons.get(i).getName().equals(name)) {
  106.                 found = true;
  107.             } else {
  108.                 i++;
  109.         }
  110.         }  
  111.         return found;
  112.     }
  113.  
  114.     //Aiding function
  115.     private boolean existsNbr(String nbr) {
  116.         int i = 0;
  117.         boolean found = false;
  118.         while (i < persons.size() && !found) {
  119.             if (persons.get(i).getNbr().equals(nbr)) {
  120.                 found = true;
  121.             } else {
  122.                 i++;
  123.         }
  124.         }
  125.         return found;
  126.     }
  127. }
  128.    
  129. class PhoneRegistry {
  130.  
  131.     public static void main(String[] args) {
  132.     new PhoneRegistry().run();
  133.     }
  134.  
  135.     Register persons = new Register();
  136.    
  137.     void run() {
  138.     System.out.printf("--- Welcome to PhoneRegistry ---\n");
  139.     while (true) {
  140.         System.out.println();
  141.         System.out.println();
  142.         System.out.println("1. Add new person");
  143.         System.out.println("2. Remove person");
  144.         System.out.println("3. Search by part of name");
  145.         System.out.println("4. Search for given number");
  146.         System.out.println("5. Print all persons");
  147.         System.out.println("0. Exit");
  148.         int val = Keyboard.nextInt("Choose desired option (0-5): ");
  149.         System.out.println();
  150.         if (val == 1) {
  151.         add();
  152.         } else if (val == 2) {
  153.         remove();
  154.         } else if (val == 3) {
  155.         searchByName();
  156.         /*} else if (val == 4) {
  157.           searchByNbr();
  158.           } else if (val == 5) {
  159.           printAll();
  160.           } else if (val == 0) {
  161.           exit();
  162.           } else {
  163.           tryAgain();
  164.           }*/
  165.         }  
  166.     }
  167.     }
  168.  
  169.     void add() {
  170.     while (true) {
  171.         String name = Keyboard.nextLine("Type in the name you wish to add: ");
  172.         if (persons.personExists(name)) {
  173.         System.out.println("Name already exists! Please try again");
  174.         } else {
  175.         String nbr = Keyboard.nextLine("Type in this person's number: ");
  176.         persons.addPerson(name, nbr);
  177.         System.out.println("OK - person added to registry!");
  178.         break;
  179.         }
  180.     }
  181.     }
  182.  
  183.     void remove() {
  184.     while (true) {
  185.         String name = Keyboard.nextLine("Type in the name you wish to remove: ");
  186.         if (persons.personExists(name)) {
  187.         persons.removePerson(name);
  188.         System.out.println("OK - person removed from registry");
  189.         System.out.println();
  190.         break;
  191.         } else {
  192.         System.out.println("There is no such name in the registry, please try again");
  193.         System.out.println();
  194.         }
  195.     }
  196.     }
  197.    
  198.     void searchByName() {
  199.     String partOfName = Keyboard.nextLine("Typ in a name or a part of a name that you wish to search for: ");
  200.     if(persons.findByPartOfName(partOfName).size() > 0) {
  201.         for(int i = 0; i < persons.findByPartOfName(partOfName).size(); i++){
  202.         System.out.println(persons.findByPartOfName(partOfName).get(i).getName() + ": " +  persons.findByPartOfName(partOfName).get(i).getNbr());
  203.         }
  204.     } else {
  205.         System.out.println("Name did not match any registry entries");
  206.     }
  207.     }
  208. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement