dimanche 20 octobre 2019

Search an Array (or ArrayList) for a specific person(value), given by scanner user and if found, return/print all values in that array to the scanner

I have made an interactive scanner with menu. In menu choice 1 in my main, I want the user to write a name or number and then search my arrays or ArrayList for that specific value. If found, I want to return all the values in the same array, printed to the scanner.

I have been spending the better part of a day trying to make this work. (Please answer as you would a newbie) That's me ;)

My first class:

package com.company;


public class FitnessEmployees {
    private String Name;
    private String CPR;
    private int Hours;
    private int Salary;
    private String Vacation;
    private String EmployeeType;

public FitnessEmployees(){

}

    public FitnessEmployees(String name, String CPR, int hours, int salary, String vacation, String employeeType) {
        this.Name = name;
        this.CPR = CPR;
        this.Hours = hours;
        this.Salary = salary;
        this.Vacation = vacation;
        this.EmployeeType = employeeType;
    }

    public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }

    public String getCPR() {
        return CPR;
    }

    public void setCPR(String CPR) {
        this.CPR = CPR;
    }

    public int getHours() {
        return Hours;
    }

    public void setHours(int hours) {
        Hours = hours;
    }

    public int getSalary() {
        return Salary;
    }

    public void setSalary(int salary) {
        Salary = salary;
    }

    public String getVacation() {
        return Vacation;
    }

    public void setVacation(String vacation) {
        Vacation = vacation;
    }

    public String getEmployeeType() {
        return EmployeeType;
    }

    public void setEmployeeType(String employeeType) {
        EmployeeType = employeeType;
    }

    @Override
    public String toString() {
        return "FitnessEmployees{" +
                "Name='" + Name + '\'' +
                ", CPR='" + CPR + '\'' +
                ", Hours=" + Hours +
                ", Salary=" + Salary +
                ", Vacation=" + Vacation +
                ", EmployeeType='" + EmployeeType + '\'' +
                '}';
    }
}

My second class:

package com.company;

public class FitnessMember {
    private String Name;
    private String CPR;
    private String MemberType;
    private int Fee;
    private int MemberNr;



    public FitnessMember(String name, String CPR, String memberType, int fee, int memberNr) {
        this.Name = name;
        this.CPR = CPR;
        this.MemberType = memberType;
        this.Fee = fee;
        this.MemberNr = memberNr;
    }

    public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }

    public String getCPR() {
        return CPR;
    }

    public void setCPR(String CPR) {
        this.CPR = CPR;
    }

    public String getMemberType() {
        return MemberType;
    }

    public void setMemberType(String memberType) {
        MemberType = memberType;
    }

    public int getFee() {
        return Fee;
    }

    public void setFee(int fee) {
        Fee = fee;
    }

    public int getMemberNr() {
        return MemberNr;
    }

    public void setMemberNr(int memberNr) {
        MemberNr = memberNr;
    }

    @Override
    public String toString() {
        return "FitnessMember{" +
                "Name='" + Name + '\'' +
                ", CPR='" + CPR + '\'' +
                ", MemberType='" + MemberType + '\'' +
                ", Fee=" + Fee +
                ", MemberNr=" + MemberNr +
                '}';
    }
}

My Main:

package com.company;


import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class FitnessMain {







    public static void udskrivArray(String[][] a) {   
        for (int row = 0 ; row < a.length ; row++ ) { 
            System.out.println();
            for (int column = 0 ; column < a[row].length ; column++) { 
                System.out.print( a[row][column]);
            }
        }

    }

    public static void udskrivArray2(String[][] a) {
        for (int row = 0 ; row < a.length ; row++ ) {
            System.out.println();
            for (int column = 0 ; column < 2 ; column++) {  
                System.out.print( a[row][column]);
            }
        }

    }




    public static void main(String[] args) {

        int salaryAdmin = 23000;
        int salaryInstructor = 456;








        FitnessEmployees ObjectEmployees1 = new FitnessEmployees();
        String nameClaus = "Claus";
        ObjectEmployees1.setName(nameClaus);
        String CPRClaus = "221175-1011";
        ObjectEmployees1.setCPR(CPRClaus);
        int hoursClaus = 37;
        ObjectEmployees1.setHours(hoursClaus);
        int salaryClaus = salaryAdmin;
        ObjectEmployees1.setSalary(salaryClaus);
        String vacationClaus = "5";
        ObjectEmployees1.setVacation(vacationClaus);
        String EmployeeTypeClaus = "Administrative";
        ObjectEmployees1.setEmployeeType(EmployeeTypeClaus);



        int hoursTove = 20;



        int HoursAnna = 37;

        int hoursHenning = 15;


        //EmployeesData
        FitnessEmployees fitnessEmployee1 = new FitnessEmployees("Claus", "221175-1011", 37, salaryAdmin, "5", "Administrative");
        FitnessEmployees fitnessEmployee2 = new FitnessEmployees("Tove", "011080-1014", 20, salaryInstructor * hoursTove, "", "Instructor");
        FitnessEmployees fitnessEmployee3 = new FitnessEmployees("Anna", "011080-1012", 37, (salaryAdmin), "5", "Administrative");
        FitnessEmployees fitnessEmployee4 = new FitnessEmployees("Henning", "011080-1015", 20, (salaryInstructor * hoursHenning), " ", "Instructor");

        //MembersData
        FitnessMember fitnessMembers1 = new FitnessMember("Morten", "130195-1303", "Full", 299, 1);
        FitnessMember fitnessMembers2 = new FitnessMember("Martin", "221175-1011", "Basic", 199, 2);
        FitnessMember fitnessMembers3 = new FitnessMember("Martina", "050970-1409", "Full", 299, 3);
        FitnessMember fitnessMembers4 = new FitnessMember("Marcel", "221175-1012", "Basic", 199, 4);





        System.out.println("FITNESS EMPLOYEES \n");


        System.out.printf("%-12s", "Name");
        System.out.printf("%-14s", "CPR");
        System.out.printf("%-12s", "Hours");
        System.out.printf("%-12s", "Salary");
        System.out.printf("%-3s", "Vacation\n");



        for (int i = 0; i < 62; i++) {
            System.out.print("*");
        }




        System.out.println();


        System.out.printf("%-12s", fitnessEmployee1.getName());  
        System.out.printf("%-14s", fitnessEmployee1.getCPR());
        System.out.printf("%-12d", fitnessEmployee1.getHours());
        System.out.printf("%-12s", fitnessEmployee1.getSalary());
        System.out.printf("%-3s", fitnessEmployee1.getVacation());

        System.out.println();

        System.out.printf("%-12s", fitnessEmployee2.getName());
        System.out.printf("%-14s", fitnessEmployee2.getCPR());
        System.out.printf("%-12d", fitnessEmployee2.getHours());
        System.out.printf("%-12s", fitnessEmployee2.getSalary());
        System.out.printf("%-3s", fitnessEmployee2.getVacation());

        System.out.println();

        System.out.printf("%-12s", fitnessEmployee3.getName());
        System.out.printf("%-14s", fitnessEmployee3.getCPR());
        System.out.printf("%-12d", fitnessEmployee3.getHours());
        System.out.printf("%-12s", fitnessEmployee3.getSalary());
        System.out.printf("%-3s", fitnessEmployee3.getVacation());

        System.out.println();

        System.out.printf("%-12s", fitnessEmployee4.getName());
        System.out.printf("%-14s", fitnessEmployee4.getCPR());
        System.out.printf("%-12d", fitnessEmployee4.getHours());
        System.out.printf("%-12s", fitnessEmployee4.getSalary());
        System.out.printf("%-3s", fitnessEmployee4.getVacation());

        System.out.println();






        //Employees som Arrays
        String[] employee1Array = {fitnessEmployee1.getName() + "       ", fitnessEmployee1.getCPR() + "   ", String.valueOf(fitnessEmployee1.getHours()) + "          ", String.valueOf(fitnessEmployee1.getSalary()) + "       ", fitnessEmployee1.getVacation()};
        String[] employee2Array = {fitnessEmployee2.getName() + "        ", fitnessEmployee2.getCPR() + "   ", String.valueOf(fitnessEmployee2.getHours()) + "          ", String.valueOf(fitnessEmployee2.getSalary()) + "      ", fitnessEmployee2.getVacation()};
        String[] employee3Array = {fitnessEmployee3.getName() + "        ", fitnessEmployee3.getCPR() + "   ", String.valueOf(fitnessEmployee3.getHours()) + "          ", String.valueOf(fitnessEmployee3.getSalary()) + "       ", fitnessEmployee3.getVacation()};
        String[] employee4Array = {fitnessEmployee4.getName() + "     ", fitnessEmployee4.getCPR() + "   ", String.valueOf(fitnessEmployee4.getHours()) + "          ", String.valueOf(fitnessEmployee4.getSalary()) + "      ", fitnessEmployee4.getVacation()};

        String[][] allEmployeesArray = {employee1Array,employee2Array,employee3Array,employee4Array};



        System.out.println();

        for (int i = 0; i < 45; i++) {
            System.out.print("=");
        }




        System.out.println();


        System.out.println("\n\n\nFITNESS MEMBERS");
        System.out.printf("%-12s", "Name");
        System.out.printf("%-14s", "CPR");
        System.out.printf("%-12s", "Member type");
        System.out.printf("%-12s", "Fee");


        System.out.println();

        for (int i = 0; i < 62; i++) {
            System.out.print("*");
        }
        System.out.println();

        String[] member1Array = {fitnessMembers1.getName() + "      ", fitnessMembers1.getCPR() + "   ", fitnessMembers1.getMemberType() + "        ", String.valueOf(fitnessMembers1.getFee())}; //omgår at lave wrapper class. Array er jo string og Fee er int
        String[] member2Array = {fitnessMembers2.getName() + "      ", fitnessMembers2.getCPR() + "   ", fitnessMembers2.getMemberType() + "       ", String.valueOf(fitnessMembers2.getFee())};
        String[] member3Array = {fitnessMembers3.getName() + "     ", fitnessMembers3.getCPR() + "   ", fitnessMembers3.getMemberType() + "        ", String.valueOf(fitnessMembers3.getFee())};
        String[] member4Array = {fitnessMembers4.getName() + "      ", fitnessMembers4.getCPR() + "   ", fitnessMembers4.getMemberType() + "       ", String.valueOf(fitnessMembers4.getFee())};

        ArrayList<String[]> fitnessMembersArrayList = new ArrayList<>();
        fitnessMembersArrayList.add(member1Array);
        fitnessMembersArrayList.add(member2Array);
        fitnessMembersArrayList.add(member3Array);
        fitnessMembersArrayList.add(member4Array);

        String[][] allMembersArray = {member1Array,member2Array,member3Array,member4Array};


        udskrivArray(allMembersArray);






        System.out.println("\n");

        for (int i = 0; i < 45; i++) {
            System.out.print("=");
        }




        System.out.println("\n\n\nEMPLOYEES & MEMBERS Name and cpr");
        System.out.printf("%-12s", "Name");
        System.out.printf("%-14s", "CPR");
        System.out.println();

        for (int i = 0; i < 62; i++) {
            System.out.print("*");
        }



        udskrivArray2(allEmployeesArray);
        udskrivArray2(allMembersArray);


        System.out.println("\n");



        System.out.println();



        String userName1 = "Faisal";
        String passWord1 = "Eksamen";


        Scanner login = new Scanner(System.in);
        System.out.println("Please type in your username:");

        String userName = login.nextLine();
        if (userName.equals(userName1)) {
            System.out.println("Welcome " + userName);
        } else {

            System.out.println("Incorrect User - limited choices available");

        }


        String userChoice; // variable som opbevarer det indtastede

        Scanner input = new Scanner(System.in);

        //loop menuen indtil brugeren vælger at afslutte
        while(true){
            //Vis valgmulighederne
            System.out.println("----Available Choices----");
            System.out.println(" Press 1 for search for a specific employee or member");
            System.out.println(" Press 2 to list and count all employees (CPR)");
            System.out.println(" Press 3 to list the current salaries of all the employees");
            System.out.println(" Press 4 to exit");

            System.out.println("\nPlease choose from the list:\n");


            userChoice = input.next();

            String answer = "null";

            switch(userChoice){
                case "1":

                    System.out.println("Please write the name or CPR of the person you are searching for." );
                     answer = input.next();


                    System.out.println("Searching for " + answer);
                    for (int i = 0; i < allEmployeesArray.length; i++) {
                        System.out.println();

                            if (allEmployeesArray[i].equals(answer)) {
                                System.out.println(Arrays.toString(allEmployeesArray[i]));
                            }else{
                                System.out.println("Person not found");
                            }


                    }

                    System.out.println();
                    System.out.println("done with job number 1");
                    break;

                case "2":

                    String[] currentEmployees = {fitnessEmployee1.getCPR(), fitnessEmployee2.getCPR(), fitnessEmployee3.getCPR(), fitnessEmployee4.getCPR()};
                    System.out.println("We currently have "+ currentEmployees.length + " employees (Listed by CPR).");
                    System.out.println(Arrays.toString(currentEmployees));

                    System.out.println("\nPlease make your next choice\n");
                    break;

                case "3":

                    int[] employeesSalary = {fitnessEmployee1.getSalary(), fitnessEmployee2.getSalary(), fitnessEmployee3.getSalary(), fitnessEmployee4.getSalary()};
                    System.out.println("These are the current salaries of our employees:");
                    for (int i = 0; i < employeesSalary.length; i++) {
                        System.out.println( + employeesSalary[i]);
                    }

                    System.out.println("\nPlease make your next choice\n");
                    break;

                case "4":
                    //Afslut scanneren
                    System.out.println("Exiting...");
                    System.exit(0);
                default:

                    System.out.println("That is not a valid choice. Please try again...");
            }
        }



    }

}

Aucun commentaire:

Enregistrer un commentaire