idzik icon

Java-BootCamp-Kolekcje-ManagePerson

idzik | PRO | 11/18/16 06:59:11 PM UTC | 0 ⭐ | 372 👁️ | Never ⏰ | []
Java |

15.03 KB

|

None

|

0 👍

/

0 👎

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
 
public class Person implements Comparable<Person> {
    private String name;
    private String surname;
    private int age;
    private int height;
    private double weight;
    private static List<Person> lista = new ArrayList<Person>();
 
    public static int liczba;
 
    public static int numberOfPerson() {
        return liczba;
    }
 
    public static void addPerson(String name, String surname, int age, int height, double weight) {
        Person person = new Person(name, surname, age, height, weight);
        Person.lista.add(person);
        liczba++;
    }
 
    public static List<Person> getAllPerson() {
        return lista;
    }
 
    public static void searchPerson() {
        // switch name,surname,age,height,weight
        Scanner read = new Scanner(System.in);
        Scanner nameScanner=new Scanner(System.in);
        int choice = 1;
        System.out.println(choice);
        do {
            System.out.println("Find a person by");
            System.out.println("Enter your choice");
            System.out.println("0.Exit");
            System.out.println("1.Name");
            System.out.println("2.Surname");
            System.out.println("3.Age");
            System.out.println("4.Height");
            System.out.println("5.Weight");
            String choicename;
            choice=read.nextInt();
            switch (choice) {
            case 0:
                System.out.println("0.Exit");
                break;
            case 1:
                System.out.println("1.Name");
                System.out.println("Enter Name");
                choicename = nameScanner.nextLine();
                for (Person person : lista) {
                    if (person.getName().equalsIgnoreCase(choicename)) System.out.println(person);
                }
                break;
            case 2:
                System.out.println("2.Surname");
                System.out.println("Enter Surname");
                choicename = nameScanner.nextLine();
                for (Person person : lista) {
                    if (person.getSurname().equalsIgnoreCase(choicename)) System.out.println(person);
                }
                break;
            case 3:
                System.out.println("3.Age");
                System.out.println("Enter Age");
                choicename = nameScanner.nextLine();
                for (Person person : lista) {
                    if (person.getAge()==Integer.parseInt(choicename)) System.out.println(person);
                }
                break;
            case 4:
                System.out.println("4.Height");
                choicename = nameScanner.nextLine();
                for (Person person : lista) {
                    if (person.getHeight()==Integer.parseInt(choicename)) System.out.println(person);
                }
                break;
            case 5:
                System.out.println("5.Weight");
                choicename = nameScanner.nextLine();
                for (Person person : lista) {
                    if (person.getWeight()==Integer.parseInt(choicename)) System.out.println(person);
                }
                break;
            default:
                System.out.println("Incorrect number.Try again.Enter 0 to exit");
                break;
            }
        } while (choice > 1 && choice < 6);
        //System.out.println(choice);
        read.close();
        nameScanner.close();
    }
    public static void minPerson(){
        Scanner read = new Scanner(System.in);
        Scanner nameScanner=new Scanner(System.in);
        int choice = 1;
        System.out.println(choice);
        do {
            System.out.println("Min a person by");
            System.out.println("Enter your choice");
            System.out.println("0.Exit");
            System.out.println("1.Name");
            System.out.println("2.Surname");
            System.out.println("3.Age");
            System.out.println("4.Height");
            System.out.println("5.Weight");
            String choicename;
            choice=read.nextInt();
            switch (choice) {
            case 0:
                System.out.println("0.Exit");
                break;
            case 1:
                System.out.println("1.Name");
                Collections.sort(Person.lista,new ComparatorPersonName());
                System.out.println(Person.lista.get(0));
                break;
            case 2:
                System.out.println("2.Surname");
                Collections.sort(Person.lista,new ComparatorPersonSurname());
                System.out.println(Person.lista.get(0));
                break;
            case 3:
                System.out.println("3.Age");
                Collections.sort(Person.lista,new ComparatorPersonAge());
                System.out.println(Person.lista.get(0));
                break;
            case 4:
                System.out.println("4.Height");
                Collections.sort(Person.lista,new ComparatorPersonHeight());
                System.out.println(Person.lista.get(0));
                break;
            case 5:
                System.out.println("5.Weight");
                Collections.sort(Person.lista,new ComparatorPersonWeight());
                System.out.println(Person.lista.get(0));
                break;
            default:
                System.out.println("Incorrect number.Try again.Enter 0 to exit");
                break;
            }
        } while (choice > 1 && choice < 6);
        //System.out.println(choice);
        read.close();
        nameScanner.close();
    }
    public static void maxPerson(){
        Scanner read = new Scanner(System.in);
        Scanner nameScanner=new Scanner(System.in);
        int choice = 1;
        System.out.println(choice);
        do {
            System.out.println("Max a person by");
            System.out.println("Enter your choice");
            System.out.println("0.Exit");
            System.out.println("1.Name");
            System.out.println("2.Surname");
            System.out.println("3.Age");
            System.out.println("4.Height");
            System.out.println("5.Weight");
            String choicename;
            choice=read.nextInt();
            switch (choice) {
            case 0:
                System.out.println("0.Exit");
                break;
            case 1:
                System.out.println("1.Name");
                Collections.sort(Person.lista,new ComparatorPersonName());
                System.out.println(Person.lista.get(lista.size()-1));
                break;
            case 2:
                System.out.println("2.Surname");
                Collections.sort(Person.lista,new ComparatorPersonSurname());
                System.out.println(Person.lista.get(lista.size()-1));
                break;
            case 3:
                System.out.println("3.Age");
                Collections.sort(Person.lista,new ComparatorPersonAge());
                System.out.println(Person.lista.get(lista.size()-1));
                break;
            case 4:
                System.out.println("4.Height");
                Collections.sort(Person.lista,new ComparatorPersonHeight());
                System.out.println(Person.lista.get(lista.size()-1));
                break;
            case 5:
                System.out.println("5.Weight");
                Collections.sort(Person.lista,new ComparatorPersonWeight());
                System.out.println(Person.lista.get(lista.size()-1));
                break;
            default:
                System.out.println("Incorrect number.Try again.Enter 0 to exit");
                break;
            }
        } while (choice > 1 && choice < 6);
        //System.out.println(choice);
        read.close();
        nameScanner.close();
    }
    
    public static void sortPerson(){
        Scanner read = new Scanner(System.in);
        Scanner nameScanner=new Scanner(System.in);
        int choice = 1;
        System.out.println(choice);
        do {
            System.out.println("Sort a person by");
            System.out.println("Enter your choice");
            System.out.println("0.Exit");
            System.out.println("1.Name");
            System.out.println("2.Surname");
            System.out.println("3.Age");
            System.out.println("4.Height");
            System.out.println("5.Weight");
            String choicename;
            choice=read.nextInt();
            switch (choice) {
            case 0:
                System.out.println("0.Exit");
                break;
            case 1:
                System.out.println("1.Name");
                Collections.sort(Person.lista,new ComparatorPersonName());
                System.out.println(Person.lista);
                break;
            case 2:
                System.out.println("2.Surname");
                Collections.sort(Person.lista,new ComparatorPersonSurname());
                System.out.println(Person.lista);
                break;
            case 3:
                System.out.println("3.Age");
                Collections.sort(Person.lista,new ComparatorPersonAge());
                System.out.println(Person.lista);
                break;
            case 4:
                System.out.println("4.Height");
                Collections.sort(Person.lista,new ComparatorPersonHeight());
                System.out.println(Person.lista);
                break;
            case 5:
                System.out.println("5.Weight");
                Collections.sort(Person.lista,new ComparatorPersonWeight());
                System.out.println(Person.lista);
                break;
            default:
                System.out.println("Incorrect number.Try again.Enter 0 to exit");
                break;
            }
        } while (choice > 1 && choice < 6);
        //System.out.println(choice);
        read.close();
        nameScanner.close();
    }
 
    @Override
    public String toString() {
        return "Person [name=" + name + ", surname=" + surname + ", age=" + age + ", height=" + height + ", weight="
                + weight + "]";
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getSurname() {
        return surname;
    }
 
    public void setSurname(String surname) {
        this.surname = surname;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    public int getHeight() {
        return height;
    }
 
    public void setHeight(int height) {
        this.height = height;
    }
 
    public double getWeight() {
        return weight;
    }
 
    public void setWeight(double weight) {
        this.weight = weight;
    }
    public static void deletePerson(){
        Scanner read = new Scanner(System.in);
        Scanner nameScanner=new Scanner(System.in);
        int choice = 1;
        System.out.println(choice);
        do {
            System.out.println("Delete a person by");
            System.out.println("Enter your choice");
            System.out.println("0.Exit");
            System.out.println("1.Name");
            System.out.println("2.Surname");
            System.out.println("3.Age");
            System.out.println("4.Height");
            System.out.println("5.Weight");
            String choicename;
            choice=read.nextInt();
            switch (choice) {
            case 0:
                System.out.println("0.Exit");
                break;
            case 1:
                System.out.println("1.Name");
                System.out.println("Enter Name");
                choicename = nameScanner.nextLine();
                for (Person person : lista) {
                    if (person.getName().equalsIgnoreCase(choicename)) lista.remove(person);
                }
                break;
            case 2:
                System.out.println("2.Surname");
                System.out.println("Enter Surname");
                choicename = nameScanner.nextLine();
                for (Person person : lista) {
                    if (person.getSurname().equalsIgnoreCase(choicename)) lista.remove(person);
                }
                break;
            case 3:
                System.out.println("3.Age");
                System.out.println("Enter Age");
                choicename = nameScanner.nextLine();
                for (Person person : lista) {
                    if (person.getAge()==Integer.parseInt(choicename)) lista.remove(person);
                }
                break;
            case 4:
                System.out.println("4.Height");
                choicename = nameScanner.nextLine();
                for (Person person : lista) {
                    if (person.getHeight()==Integer.parseInt(choicename)) lista.remove(person);
                }
                break;
            case 5:
                System.out.println("5.Weight");
                choicename = nameScanner.nextLine();
                for (Person person : lista) {
                    if (person.getWeight()==Integer.parseInt(choicename)) lista.remove(person);
                }
                break;
            default:
                System.out.println("Incorrect number.Try again.Enter 0 to exit");
                break;
            }
        } while (choice > 1 && choice < 6);
        //System.out.println(choice);
        read.close();
        nameScanner.close();
        System.out.println(Person.getAllPerson());
    }
    public static void main(String[] args) {
        Person.addPerson("Michał", "Makowski", 33, 175, 82);
        Person.addPerson("Tomasz", "Kowalski", 38, 186, 92);
        Person.addPerson("Dorota", "Jankowska", 30, 176, 58);
        
        String wybor = "0";
        Scanner readLoop = new Scanner(System.in);
        Scanner read = new Scanner(System.in);
        String name1;
        String surname1;
        int age1;
        int height1;
        double weight1;
        do {
            System.out.println("-----------");
            Person.clearConsole();
            System.out.println("Enter your choice");
            System.out.println("0.Exit");
            System.out.println("1.Add new person");
            System.out.println("2.Search for person");
            System.out.println("3.Delete a person");
            System.out.println("4.Search min");
            System.out.println("5.Search max");
            System.out.println("6.Sort list of persons");
            System.out.println("7.View a list of persons");
            wybor = read.nextLine();
            switch (Integer.parseInt(wybor)) {
            case 0:
                System.out.println("Your choose EXIT");
                break;
            case 1:
                System.out.println("Your choice 1");
                System.out.println("Give name:");
                name1=readLoop.nextLine();
                System.out.println("Give surname:");
                surname1=readLoop.nextLine();
                System.out.println("Give age:");
                age1=Integer.parseInt(readLoop.nextLine());
                System.out.println("Give height:");
                height1=Integer.parseInt(readLoop.nextLine());
                System.out.println("Give weight:");
                weight1=Integer.parseInt(readLoop.nextLine());
                Person.addPerson(name1, surname1, age1, height1, weight1);
                break;
            case 2:
                System.out.println("Your choice Search for Person");
                Person.searchPerson();
                break;
            case 3:
                System.out.println("Your choice 3 Delete a Person");
                Person.deletePerson();
                break;
            case 4:
                System.out.println("Your choice 4 Search min Person");
                Person.minPerson();
                break;
            case 5:
                System.out.println("Your choice 5 Search max Person");
                Person.maxPerson();
                break;  
            case 6:
                System.out.println("Your choice 6 Sort Persons by params");
                //Collections.sort(Person.lista);
                Person.sortPerson();
                System.out.println(lista);
                break;
            case 7:
                System.out.println("Your choice 7 View a list of Persons");
                if (Person.liczba > 0)
                    System.out.println(Person.lista);
                else
                    System.out.println("The list is empty");
                break;
            default:
                System.out.println("Incorrect number.Try again.Enter 0 to exit");
                break;
            }
        } while (Integer.parseInt(wybor) > 0 && Integer.parseInt(wybor) < 8);
        readLoop.close();
        read.close();
    }
 
    public static void clearConsole() {
        try {
            final String os = System.getProperty("os.name");
 
            if (os.contains("Windows")) {
                Runtime.getRuntime().exec("cls");
            } else {
                Runtime.getRuntime().exec("clear");
            }
        } catch (final Exception e) {
 
        }
    }
 
    @Override
    public int compareTo(Person o) {
        if (this.getSurname().compareTo(o.getSurname())<0)return -1;
        else if (this.getSurname().compareTo(o.getSurname())>0)return 1;
        return 0;
    }
 
    public Person(String name, String surname, int age, int height, double weight) {
        super();
        setName(name);
        setSurname(surname);
        setAge(age);
        setHeight(height);
        setWeight(weight);
 
    }
 
}
 
 
 
import java.util.Comparator;
 
public class ComparatorPersonHeight implements Comparator<Person>{
 
    @Override
    public int compare(Person p1, Person p2) {
        if (p1.getHeight()<p2.getHeight()) return -1;
        else if (p1.getHeight()>p2.getHeight()) return 1; 
        return 0;
    }
 
}
 
 
 
import java.util.Comparator;
 
public class ComparatorPersonName implements Comparator<Person>{
 
    @Override
    public int compare(Person p1, Person p2) {
        if (p1.getName().compareTo(p2.getName())<0) return -1;
        else if (p1.getName().compareTo(p2.getName())>0) return 1; 
        return 0;
    }
 
}
 
 
 
import java.util.Comparator;
 
public class ComparatorPersonSurname implements Comparator<Person>{
 
    @Override
    public int compare(Person p1, Person p2) {
        if (p1.getSurname().compareTo(p2.getSurname())<0) return -1;
        else if (p1.getSurname().compareTo(p2.getSurname())>0) return 1; 
        return 0;
    }
 
}
 
 
 
 
import java.util.Comparator;
 
public class ComparatorPersonWeight implements Comparator<Person>{
 
    @Override
    public int compare(Person p1, Person p2) {
        if (p1.getWeight()<p2.getWeight()) return -1;
        else if (p1.getWeight()>p2.getWeight()) return 1; 
        return 0;
    }
 
}

Comments