Student

 avatar
unknown
plain_text
2 years ago
21 kB
2
Indexable
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Student extends Person {
    private int numOfModules, numOfRepeatModules;
    private double amount_paid, total_amount, balance, dep_amount;
    private static final int ModulePrice = 525, RepeatedModulePrice = 110;

    public static List<Student> studentList = new ArrayList<>();

    //  Constructor Student
    public Student(int ID, String Fname, String Lname, String Gender, String PhoneNum, String Address, int numOfModules, int numOfRepeatModules, double amount_paid, double total_amount, double balance) {
        super(ID, Fname, Lname, Gender, PhoneNum, Address);
        this.numOfModules = numOfModules;
        this.numOfRepeatModules = numOfRepeatModules;
        this.amount_paid = amount_paid;
        this.total_amount = total_amount;
        this.balance = balance;
    }

    public int getNumOfModules() {  return numOfModules;  }
    public void setNumOfModules(int numOfModules) {  this.numOfModules = numOfModules;  }

    public int getRep_modules() {  return numOfRepeatModules;  }
    public void setRep_modules(int numOfRepeatModules) {  this.numOfRepeatModules = numOfRepeatModules;  }


    public double getAmount_paid() {  return amount_paid;  }
    public void setAmount_paid(double amount_paid) {  this.amount_paid = amount_paid;  }

    public double getTotal(){  return total_amount;  }
    public void setTotal(){  this.total_amount = total_amount;  }
    public double getBalance(){  return balance;  }
    public double setBalance(double balance){  this.balance = balance; return 0; }

    public double getDep_amount() {  return dep_amount;  }
    public void setDep_amount(double dep_amount) {  this.dep_amount = dep_amount;  }


    static void add_student() {
        System.out.println("====================================================");
        System.out.println("\t\t\t\t<< ADD NEW STUDENT >>");
        System.out.println("====================================================\n");

        Scanner in = new Scanner(System.in).useDelimiter("\n");

        System.out.print("Enter ID: ");

        // Initialize addID variable to zero to only accept integer values
        int addID = 0;

        // Validation for Student ID
        if(in.hasNextInt()){
            addID = in.nextInt();
            for (int i = 0; i < studentList.size(); i++) {
                if (addID == studentList.get(i).getID()) {
                    System.out.println("ID is already registered!");
                    Main.sysPause();
                    return;
                }
            }
        }
        else {
            System.out.println("Please enter a valid input!");
            Main.sysPause();
            return;
        }

        System.out.print("Enter First Name: ");
        String addFirstname = in.next();

        System.out.print("Enter Last Name: ");
        String addLastname = in.next();

        System.out.print("Enter Gender: ");
        String addGender = in.next();

        System.out.print("Enter Phone Number: ");
        String addPhone = in.next();

        System.out.print("Enter Address: ");
        String addAddress = in.next();

        System.out.print("Enter Number of Modules: ");
        int addModules = in.nextInt();

        /* //variable type validation
        if(in.hasNextInt()) {

        }
        else {
            System.out.println("Please enter a valid input!");
            Main.sysPause();
            return;
        }
        */

        System.out.print("Enter Number of Repeated Modules: ");
        int addRepModules = in.nextInt();


        // Constraint the user to only input less than or equal than 6 modules
        if ((addModules + addRepModules) > 6) {
            System.out.println("You cannot get more than 6 modules for this semester!");
            return;
        } else if (addModules !=0 && addRepModules > 2) {
            System.out.println("You cannot take a new module if you want to take more than 2 repeated modules this semester!");
            return;
        }

        double total_amount = (ModulePrice * addModules) + (RepeatedModulePrice * addRepModules);
        System.out.println("Total: " + total_amount);

        System.out.print("Enter Amount Paid: ");
        double addAmount = in.nextDouble();

        if(addAmount > total_amount){
            System.out.println("Cannot pay more than " + total_amount);
            Main.sysPause();
            return;
        }

        double balance = total_amount - addAmount;

        System.out.print("\n\t\t\t\t   Account Status ");
        // Inform user that 1 student has been added
        System.out.println("\nSuccessfully Added Student #" + addID + " to the Database!");

        // store all inputs of user inside the constructor
        Student studentobj = new Student(addID, addFirstname, addLastname, addGender, addPhone, addAddress, addModules, addRepModules, addAmount, total_amount, balance);

        // store inside the array list
        studentList.add(studentobj);

        Main.YNS_Exit();
    }
    static void update_student() {
        System.out.println("====================================================");
        System.out.println("\t\t\t\t<< UPDATE STUDENT >>");
        System.out.println("====================================================\n");

        if (studentList.size() == 0) {
            System.out.println("There are no STUDENTS registered in the database!");
            Main.sysPause();
        }
        else {
            Scanner in = new Scanner(System.in).useDelimiter("\n");
            System.out.print("Enter ID: ");
            int upID = in.nextInt();

            for (int j = 0; j < studentList.size(); j++) {
                if (studentList.get(j).getID() != upID) {
                    System.out.println(upID + " does not exist in the database!");
                    Main.sysPause();
                    return;
                }
            }

            for (int i = 0; i < studentList.size(); i++) {
                if (upID == studentList.get(i).getID()) {
                    System.out.println("Student#" + upID);
                    System.out.println("\nName: " + studentList.get(i).getFName() + " " + studentList.get(i).getLName());
                    System.out.println("Gender: " + studentList.get(i).getGender());
                    System.out.println("Phone Number: " + studentList.get(i).getPhoneNum());
                    System.out.println("Address: " + studentList.get(i).getAddress());
                    System.out.println("Number of Modules: " + studentList.get(i).getNumOfModules());
                    System.out.println("Number of Repeated Modules: " + studentList.get(i).getRep_modules());

                    System.out.println("====================================================");
                    System.out.println("\t\t\t\t\t<< UPDATE >>");
                    System.out.println("====================================================\n");

                    System.out.println("[1] Student Number");
                    System.out.println("[2] Name");
                    System.out.println("[3] Gender");
                    System.out.println("[4] Phone Number");
                    System.out.println("[5] Address ");
                    System.out.println("[6] Number of Modules");
                    System.out.println("[7] Number of Repeated Modules");
                    System.out.println("[8] Cancel");


                    switch (Main.choice()) {
                        case 1:
                            System.out.println("====================================================");
                            System.out.println("\t\t\t<< UPDATE STUDENT NUMBER >>");
                            System.out.println("====================================================\n");

                            System.out.print("Enter new Student Number (ex.202110139): ");
                            int updateID = in.nextInt();

                            for (int k = 0; k < studentList.size(); k++) {
                                if (updateID == studentList.get(k).getID()) {
                                    System.out.println(updateID + " is already registered! please try again");
                                    Main.sysPause();
                                    return;
                                }
                            }

                            studentList.get(i).setID(updateID);
                            System.out.println("\nStudent ID has been updated!");
                            Main.sysPause();
                            break;

                        case 2:
                            System.out.println("====================================================");
                            System.out.println("\t\t\t  << UPDATE STUDENT NAME >>");
                            System.out.println("====================================================\n");

                            System.out.println("Enter Student Name ");

                            System.out.print("Enter First name: ");
                            String updateFName = in.next();
                            System.out.print("Enter Last name");
                            String updateLName = in.next();

                            studentList.get(i).setFName(updateFName);
                            studentList.get(i).setLName(updateLName);
                            System.out.println("\nStudent name has been updated!");
                            break;

                        case 3:
                            System.out.println("====================================================");
                            System.out.println("\t\t\t << UPDATE STUDENT GENDER >>");
                            System.out.println("====================================================\n");

                            System.out.printf("Enter Gender: ");
                            String updateGender = in.next();

                            studentList.get(i).setGender(updateGender);
                            System.out.printf("\nStudent's Gender has been updated!");
                            Main.sysPause();
                            break;

                        case 4:
                            System.out.println("====================================================");
                            System.out.println("\t\t\t  << UPDATE PHONE NUMBER >>");
                            System.out.println("====================================================\n");

                            System.out.print("Enter your new Phone Number: ");
                            String updatePhone = in.next();

                            // setter (setPhoneNum) used to update the current phone number
                            studentList.get(i).setPhoneNum(updatePhone);
                            System.out.println("\nPhone Number has been updated!");
                            Main.sysPause();
                            break;

                        case 5:
                            System.out.println("====================================================");
                            System.out.println("\t\t\t\t<< UPDATE ADDRESS >>");
                            System.out.println("====================================================\n");

                            System.out.print("Enter your new Address: ");
                            String newAddress = in.next();

                            studentList.get(i).setAddress(newAddress);
                            System.out.println("\nAddress has been updated!");
                            Main.sysPause();
                            break;

                        case 6:
                            System.out.println("====================================================");
                            System.out.println("\t\t\t\t<< UPDATE MODULES >>");
                            System.out.println("====================================================\n");

                            System.out.print("Update Number Modules: ");
                            int updateModules = in.nextInt();

                            // check if user still takes 6 module
                            if (updateModules + studentList.get(i).numOfRepeatModules > 6) {
                                System.out.println("Cannot take more than 6 total modules");
                                Main.sysPause();
                                return;
                            } else {
                                studentList.get(i).setNumOfModules(updateModules);
                                System.out.println("\nModules Have been updated!");
                                Main.sysPause();
                            }
                            break;

                        case 7:
                            System.out.println("====================================================");
                            System.out.println("\t\t\t<< UPDATE REPEATED MODULES >>");
                            System.out.println("====================================================\n");

                            System.out.println("Update Repeated Modules: ");
                            int updateRepeatedModules = in.nextInt();

                            // check if user still takes 6 module
                            if(studentList.get(i).numOfModules !=0 && updateRepeatedModules > 2){
                                System.out.println("Cannot take more than 2 repeated modules!");
                                Main.sysPause();
                                return;
                            }
                            else if((updateRepeatedModules + studentList.get(i).numOfModules) > 6){
                                System.out.println("Cannot take more than 6 total modules!");
                                Main.sysPause();
                                return;
                            }
                            else{
                                studentList.get(i).setRep_modules(updateRepeatedModules);
                                System.out.println("\n Repeated Modules have been Updated");
                                Main.sysPause();
                            }
                            break;

                        case 8:
                            System.out.println("\nReturning to the Main Menu...");
                            Main.sysPause();
                            break;
                        default:
                            System.out.println("Invalid Input! \n Exiting Program...");
                            Main.sysPause();
                            System.exit(0);

                    }
                }
            }
        }
    }

    static void delete_student() {
        System.out.println("====================================================");
        System.out.println("\t\t\t\t<< DELETE STUDENT >>");
        System.out.println("====================================================\n");


        if (studentList.size() == 0) {
            System.out.println("There are no STUDENTS registered in the database!");
            Main.sysPause();
        }
        else {
            Scanner in = new Scanner(System.in);
            System.out.print("Enter Student ID (ex. 202110139): ");
            int delID = in.nextInt();

            for (int j = 0; j < studentList.size(); j++) {
                if (studentList.get(j).getID() != delID) {
                    System.out.println(delID + " does not exist in the database!");
                    Main.sysPause();
                    return;
                }
            }

            for (int i = 0; i < studentList.size(); i++) {
                if (studentList.get(i).getID() == delID) {
                    System.out.println(studentList.get(i).getID() + " has been removed from the database!!");
                    studentList.remove(i);
                    Main.YNS_Exit();

                    if (studentList.lastIndexOf(i) == delID) {
                        System.out.println(studentList.get(i).getID() + " has been removed from the database!!");
                        studentList.remove(i);
                        Main.YNS_Exit();
                    }
                }
            }
            Main.YNS_Exit();
        }
    }
    static void show_balance() {
        System.out.println("====================================================");
        System.out.println("\t\t\t<< SHOW REMAINING BALANCE >>");
        System.out.println("====================================================\n");

        if (studentList.size() == 0) {
            System.out.println("There are no STUDENTS registered in the database!");
            Main.sysPause();
        }
        else {
            Scanner in = new Scanner(System.in);
            System.out.print("Enter Student ID (ex. 202110139): ");
            int bal_ID = in.nextInt();

            for (int j = 0; j < studentList.size(); j++) {
                if (studentList.get(j).getID() != bal_ID) {
                    System.out.println(bal_ID + " does not exist in the database!");
                    Main.sysPause();
                    return;
                }
            }

            for (int i = 0; i < studentList.size(); i++) {
                if (bal_ID == studentList.get(i).getID()) {
                    System.out.println("Student#" + bal_ID);
                    System.out.println("\nRemaining Balance: " + studentList.get(i).getBalance());
                    Main.YNS_Exit();
                }
            }
        }

    }
    static void deposit(){
        System.out.println("====================================================");
        System.out.println("\t\t\t\t  << FEE DEPOSIT >>");
        System.out.println("====================================================\n");

        if(studentList.size() == 0){
            System.out.println("There are no STUDENTS registered in the database!");
            Main.sysPause();
        }
        else {
            Scanner in = new Scanner(System.in);
            System.out.print("Enter Student ID (ex. 202110139): ");
            int deposit_ID = in.nextInt();

            for (int j = 0; j < studentList.size(); j++) {
                if (studentList.get(j).getID() != deposit_ID) {
                    System.out.println(deposit_ID + " does not exist in the database!");
                    Main.YNS_Exit();
                }
            }

            System.out.print("Enter amount: ");
            int dep_amount = in.nextInt();
            System.out.println("Payment Successfully Posted!");

            for (int i = 0; i < studentList.size(); i++) {
                if (deposit_ID == studentList.get(i).getID()) {
                    double y = studentList.get(i).getBalance();
                    double updatedDeposit = y - dep_amount;
                    studentList.get(i).setBalance(updatedDeposit);
                    System.out.println("Your new balance is " + studentList.get(i).getBalance());
                }
            }
            Main.YNS_Exit();
        }
    }
    static void showZero(){
        System.out.println("====================================================");
        System.out.println("\t\t  << STUDENTS WITH ZERO BALANCE >>");
        System.out.println("====================================================\n");

        if (studentList.size() == 0) {
            System.out.println("There are no STUDENTS registered in the database!");
            Main.sysPause();
            return;
        }
        else {
            for (int i = 0; i < studentList.size(); i++) {
                if (studentList.get(i).getBalance() == 0) {
                    System.out.println("\nStudent# " + studentList.get(i).getID() + " : " + studentList.get(i).getFName() + studentList.get(i).getLName());
                }
            }
        Main.YNS_Exit();
        }
    }
    static void showNonZero(){
        System.out.println("====================================================");
        System.out.println("\t\t\t << STUDENTS WITH BALANCE >>");
        System.out.println("====================================================\n");

        if (studentList.size() == 0) {
            System.out.println("There are no STUDENTS registered in the database!");
            Main.sysPause();
            return;
        }
        else {
            for (int i = 0; i < studentList.size(); i++) {
                if (studentList.get(i).getBalance() != 0) {
                    System.out.println("\nStudent# " + studentList.get(i).getID() + " : " + studentList.get(i).getFName() + " " + studentList.get(i).getLName());
                }
            }
            Main.YNS_Exit();
        }

    }
}
Editor is loading...