Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import se.lth.cs.pt.io.*;
- import java.util.*;
- //Sidorna 92 och 124 i kompendiet รคr bra
- class Person {
- private String name, nbr;
- public Person (String name, String nbr) {
- this.name = name;
- this.nbr = nbr;
- }
- public String getName() {
- return name;
- }
- public String getNbr() {
- return nbr;
- }
- }
- class Register {
- private List<Person> persons;
- public Register() {
- persons = new ArrayList<Person>();
- }
- public boolean addPerson (String name, String nbr) {
- if (existsName(name)) {
- return false;
- }
- Person person = new Person(name, nbr);
- persons.add(person);
- return true;
- }
- public boolean removePerson(String name) {
- boolean found = false;
- if (existsName(name)) {
- int i = 0;
- while (i < persons.size() && !found) {
- if (persons.get(i).getName().equals(name)) {
- persons.remove(i);
- found = true;
- }
- i++;
- }
- }
- return found;
- }
- public boolean personExists(String name) {
- if (existsName(name)) {
- return true;
- }
- return false;
- }
- public List<Person> findByPartOfName(String partOfName) {
- List<Person> found = new ArrayList<Person>();
- if (existsName(partOfName)) {
- int i = 0;
- while (i < persons.size()) {
- if (persons.get(i).getName().indexOf(partOfName) >= 0) {
- found.add(persons.get(i));
- i++;
- }
- i++;
- }
- return found;
- }
- return found;
- }
- public List<Person> findByNumber(String nbr) {
- List<Person> nbrFound = new ArrayList<Person>();
- if (existsNbr(nbr)) {
- int i = 0;
- while (i < persons.size()) {
- if (persons.get(i).getNbr().compareTo(nbr) == 0) {
- nbrFound.add(persons.get(i));
- i++;
- }
- i++;
- }
- return nbrFound;
- }
- return nbrFound;
- }
- public List<Person> findAll() {
- List<Person> personsCopy = persons;
- return personsCopy;
- }
- //Aiding function
- private boolean existsName(String name) {
- int i = 0;
- boolean found = false;
- while (i < persons.size()&& !found) {
- if (persons.get(i).getName().equals(name)) {
- found = true;
- } else {
- i++;
- }
- }
- return found;
- }
- //Aiding function
- private boolean existsNbr(String nbr) {
- int i = 0;
- boolean found = false;
- while (i < persons.size() && !found) {
- if (persons.get(i).getNbr().equals(nbr)) {
- found = true;
- } else {
- i++;
- }
- }
- return found;
- }
- }
- class PhoneRegistry {
- public static void main(String[] args) {
- new PhoneRegistry().run();
- }
- Register persons = new Register();
- void run() {
- System.out.printf("--- Welcome to PhoneRegistry ---\n");
- while (true) {
- System.out.println();
- System.out.println();
- System.out.println("1. Add new person");
- System.out.println("2. Remove person");
- System.out.println("3. Search by part of name");
- System.out.println("4. Search for given number");
- System.out.println("5. Print all persons");
- System.out.println("0. Exit");
- int val = Keyboard.nextInt("Choose desired option (0-5): ");
- System.out.println();
- if (val == 1) {
- add();
- } else if (val == 2) {
- remove();
- } else if (val == 3) {
- searchByName();
- /*} else if (val == 4) {
- searchByNbr();
- } else if (val == 5) {
- printAll();
- } else if (val == 0) {
- exit();
- } else {
- tryAgain();
- }*/
- }
- }
- }
- void add() {
- while (true) {
- String name = Keyboard.nextLine("Type in the name you wish to add: ");
- if (persons.personExists(name)) {
- System.out.println("Name already exists! Please try again");
- } else {
- String nbr = Keyboard.nextLine("Type in this person's number: ");
- persons.addPerson(name, nbr);
- System.out.println("OK - person added to registry!");
- break;
- }
- }
- }
- void remove() {
- while (true) {
- String name = Keyboard.nextLine("Type in the name you wish to remove: ");
- if (persons.personExists(name)) {
- persons.removePerson(name);
- System.out.println("OK - person removed from registry");
- System.out.println();
- break;
- } else {
- System.out.println("There is no such name in the registry, please try again");
- System.out.println();
- }
- }
- }
- void searchByName() {
- String partOfName = Keyboard.nextLine("Typ in a name or a part of a name that you wish to search for: ");
- if(persons.findByPartOfName(partOfName).size() > 0) {
- for(int i = 0; i < persons.findByPartOfName(partOfName).size(); i++){
- System.out.println(persons.findByPartOfName(partOfName).get(i).getName() + ": " + persons.findByPartOfName(partOfName).get(i).getNbr());
- }
- } else {
- System.out.println("Name did not match any registry entries");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement