manager
unknown
plain_text
2 years ago
7.9 kB
6
Indexable
public static void menu() { System.out.println(" 1. Create"); System.out.println(" 2. Find and Sort"); System.out.println(" 3. Update/Delete"); System.out.println(" 4. Report"); System.out.println(" 5. Exit"); System.out.print(" Enter your choice: "); } //Allow user create new student public static void createStudent(int count, ArrayList<Student> ls) { //if number of students greater than 10 ask user continue or not if (count > 10) { System.out.print("Do you want to continue (Y/N): "); if (!Validation.checkInputYN()) { return; } } //loop until user input not duplicate while (true) { System.out.print("Enter id: "); String id = Validation.checkInputString(); System.out.print("Enter name student: "); String name = Validation.checkInputString(); if (!Validation.checkIdExist(ls, id, name)) { System.err.println("Id has exist student. Pleas re-input."); continue; } System.out.print("Enter semester: "); String semester = Validation.checkInputString(); System.out.print("Enter name course: "); String course = Validation.checkInputCourse(); //check student exist or not if (Validation.checkStudentExist(ls, id, name, semester, course)) { ls.add(new Student(id, name, semester, course)); count++; System.out.println("Add student success."); return; } System.err.println("Duplicate."); } } //Allow user create find and sort public static void findAndSort(ArrayList<Student> ls) { //check list empty if (ls.isEmpty()) { System.err.println("List empty."); return; } ArrayList<Student> listStudentFindByName = listStudentFindByName(ls); if (listStudentFindByName.isEmpty()) { System.err.println("Not exist."); } else { Collections.sort(listStudentFindByName); System.out.printf("%-15s%-15s%-15s\n", "Student name", "semester", "Course Name"); //loop from first to last element of list student for (Student student : listStudentFindByName) { student.print(); } } } //List student found by name public static ArrayList<Student> listStudentFindByName(ArrayList<Student> ls) { ArrayList<Student> listStudentFindByName = new ArrayList<>(); System.out.print("Enter name to search: "); String name = Validation.checkInputString(); for (Student student : ls) { //check student have name contains input if (student.getStudentName().contains(name)) { listStudentFindByName.add(student); } } return listStudentFindByName; } //Allow user update and delete public static void updateOrDelete(int count, ArrayList<Student> ls) { //if list empty if (ls.isEmpty()) { System.err.println("List empty."); return; } System.out.print("Enter id: "); String id = Validation.checkInputString(); ArrayList<Student> listStudentFindByName = getListStudentById(ls, id); //check list empty if (listStudentFindByName.isEmpty()) { System.err.println("Not found student."); return; } else { Student student = getStudentByListFound(listStudentFindByName); System.out.print("Do you want to update (U) or delete (D) student: "); //check user want to update or delete if (Validation.checkInputUD()) { System.out.print("Enter id: "); String idStudent = Validation.checkInputString(); System.out.print("Enter name student: "); String name = Validation.checkInputString(); System.out.print("Enter semester: "); String semester = Validation.checkInputString(); System.out.print("Enter name course: "); String course = Validation.checkInputCourse(); //check user change or not if (!Validation.checkChangeInfomation(student, id, name, semester, course)) { System.err.println("Nothing change."); } //check student exist or not if (Validation.checkStudentExist(ls, id, name, semester, course)) { student.setId(idStudent); student.setStudentName(name); student.setSemester(semester); student.setCourseName(course); System.err.println("Update success."); } return; } else { ls.remove(student); count--; System.err.println("Delete success."); return; } } } //Get student user want to update/delete in list found public static Student getStudentByListFound(ArrayList<Student> listStudentFindByName) { System.out.println("List student found: "); int count = 1; System.out.printf("%-10s%-15s%-15s%-15s\n", "Number", "Student name", "semester", "Course Name"); //display list student found for (Student student : listStudentFindByName) { System.out.printf("%-10d%-15s%-15s%-15s\n", count, student.getStudentName(), student.getSemester(), student.getCourseName()); count++; } System.out.print("Enter student: "); int choice = Validation.checkInputIntLimit(1, listStudentFindByName.size()); return listStudentFindByName.get(choice - 1); } //Get list student find by id public static ArrayList<Student> getListStudentById(ArrayList<Student> ls, String id) { ArrayList<Student> getListStudentById = new ArrayList<>(); for (Student student : ls) { if (id.equalsIgnoreCase(student.getId())) { getListStudentById.add(student); } } return getListStudentById; } //Print report public static void report(ArrayList<Student> ls) { if (ls.isEmpty()) { System.err.println("List empty."); return; } ArrayList<Report> lr = new ArrayList<>(); int size = ls.size(); for (int i = 0; i < size; i++) { int total = 0; for (Student student : ls) { String id = student.getId(); String courseName = student.getCourseName(); String studentName = student.getStudentName(); for (Student studentCountTotal : ls) { if (id.equalsIgnoreCase(studentCountTotal.getId()) && courseName.equalsIgnoreCase(studentCountTotal.getCourseName())) { total++; } } if (Validation.checkReportExist(lr, studentName, courseName, total)) { lr.add(new Report(student.getStudentName(), studentName, total)); } } } //print report for (int i = 0; i < lr.size(); i++) { System.out.printf("%-15s|%-10s|%-5d\n", lr.get(i).getStudentName(), lr.get(i).getCourseName(), lr.get(i).getTotalCourse()); } } }
Editor is loading...