From eda102d90ac7aef0cb225ed0b6a8a4dab04fe42f Mon Sep 17 00:00:00 2001 From: Amir Mahdi Date: Tue, 19 Mar 2024 10:34:07 -0700 Subject: [PATCH] vay vay vay vay vay vay vay --- src/.idea/.gitignore | 3 + src/.idea/misc.xml | 6 + src/.idea/modules.xml | 8 + src/.idea/vcs.xml | 6 + src/main/java/Account.java | 44 ++- src/main/java/Assistant.java | 53 ++++ src/main/java/Course.java | 46 +++ src/main/java/Hogwarts.java | 82 +++++- src/main/java/Main.java | 546 ++++++++++++++++++++++++++++++++++- src/main/java/Student.java | 35 +++ src/main/java/Teacher.java | 102 +++++++ 11 files changed, 917 insertions(+), 14 deletions(-) create mode 100644 src/.idea/.gitignore create mode 100644 src/.idea/misc.xml create mode 100644 src/.idea/modules.xml create mode 100644 src/.idea/vcs.xml create mode 100644 src/main/java/Assistant.java create mode 100644 src/main/java/Course.java create mode 100644 src/main/java/Student.java create mode 100644 src/main/java/Teacher.java diff --git a/src/.idea/.gitignore b/src/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/src/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/src/.idea/misc.xml b/src/.idea/misc.xml new file mode 100644 index 0000000..69ace3f --- /dev/null +++ b/src/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/.idea/modules.xml b/src/.idea/modules.xml new file mode 100644 index 0000000..b5ed9de --- /dev/null +++ b/src/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/.idea/vcs.xml b/src/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/src/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/Account.java b/src/main/java/Account.java index e2dc915..e415d55 100644 --- a/src/main/java/Account.java +++ b/src/main/java/Account.java @@ -1,24 +1,64 @@ +import java.util.Scanner; import java.util.UUID; -public class Account { +public class Account implements AccountManagement{ private String username; // TODO: Passwords should hashed + private String password; private UUID accountID; + public static String hash(String password) { + long mod = 1000000007 , mabna = 457; + long ans = 0 , ans2 = 0 , pow = 1 , pow2 = 1; + for (int i = 0 ; i < password.length() ; i++) { + int save = password.charAt(i) - '0'; + ans = (ans + (pow *save)) % mod; + pow = (pow *mabna) % mod; + + } + return String.valueOf(ans); + } + + + + public Account(String username, String password){ + this.username=""; + this.password=hash(password); + this.accountID=UUID.randomUUID(); + } + + private String pass; + public void SignUp(String pass) { + this.password = hash(pass); + + } @Override public boolean validatePassword(String enteredPassword) { //TODO - return false; + return hash(enteredPassword).equals(this.password); + } @Override public void changeUsername(String newUsername) { //TODO + this.username = newUsername; } @Override public void changePassword(String newPassword) { //TODO + this.password = hash(newPassword); + } + + public String getUsername(){ + Scanner username = new Scanner(System.in); + this.username=username.nextLine(); + return null; + } + + public UUID getAccountID(){ + return accountID; } } diff --git a/src/main/java/Assistant.java b/src/main/java/Assistant.java new file mode 100644 index 0000000..b87f531 --- /dev/null +++ b/src/main/java/Assistant.java @@ -0,0 +1,53 @@ +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Scanner; + +public class Assistant extends Account { + static List allCourses = new ArrayList<>(); + static List teachersInQueue = new ArrayList<>(); + public Assistant(String username, String password) { + super(username, password); + } + public void getCoursesAndStudents(List allCourses) { + for (int i = 0; i < allCourses.size(); i++){ + System.out.println(allCourses.get(i).getCourseName() + " :"); + System.out.println("\t" + allCourses.get(i).getStudents()); + } + } + public void addCourse(Course c) { + allCourses.add(c); + } + public void makeCourse(String courseName, String details) { + Teacher teacher = new Teacher("", ""); + Course c = new Course(teacher, courseName, details); + addCourse(c); + } + public static List getCoursesName() { + List coursesName = new ArrayList<>(); + for (int i = 0; i < allCourses.size(); i++) { + coursesName.add(allCourses.get(i).getCourseName()); + } + return coursesName; + } + public void getProfile() { + System.out.println(); + } + public void teacherRegister() { + Scanner in = new Scanner(System.in); + for (int i = 0; i < teachersInQueue.size(); i++) { + System.out.print(teachersInQueue.get(i).getUsername() + ", "); + } + System.out.print("\nEnter teachers name for register: "); + String teacherName = in.next(); + Teacher teacherTarget = new Teacher("", ""); + for (int i = 0; i < teachersInQueue.size(); i++) { + Teacher teacher = teachersInQueue.get(i); + if (teacher.getUsername().equals(teacherName)) { + teacher.signUp(); + teacherTarget = teacher; + } + } + teachersInQueue.remove(teacherTarget); + } +} diff --git a/src/main/java/Course.java b/src/main/java/Course.java new file mode 100644 index 0000000..f2d7620 --- /dev/null +++ b/src/main/java/Course.java @@ -0,0 +1,46 @@ +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.UUID; + +public class Course { + private UUID courseID; + Teacher courseTeacher; + private String teacherName; + private String courseName; + private String details; + List students; + static HashMap studentScore = new HashMap<>(); + public Teacher getCourseTeacher() { + return courseTeacher; + } + public String getDetails() { + return details; + } + public Course(Teacher courseTeacher, String courseName, String details) { + this.courseTeacher = courseTeacher; + this.courseName = courseName; + this.details = details; + this.courseID = UUID.randomUUID(); + this.students = new ArrayList<>(); + } + + public void addStudent(String student) { + this.students.add(student); + } + public List getStudents() { + return students; + } + public void changeTeacher(Teacher courseTeacher) { + this.courseTeacher = courseTeacher; + } + public String getCourseName() { + return courseName; + } + public void scoring(String studentName, Double score) { + studentScore.put(studentName, score); + } + public UUID getCourseID() { + return courseID; + } +} diff --git a/src/main/java/Hogwarts.java b/src/main/java/Hogwarts.java index 4a8a967..e7279e9 100644 --- a/src/main/java/Hogwarts.java +++ b/src/main/java/Hogwarts.java @@ -1,19 +1,85 @@ -public class Hogwarts { +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; +import java.util.UUID; - // TODO: Define Attributes +public class Hogwarts { + static List Assistants = new ArrayList<>(); + static List students = new ArrayList<>(); + static List teachers = new ArrayList<>(); + static List courses = new ArrayList<>(); + public static void addAssistant(Assistant assistant) { + Assistants.add(assistant); + } + public void addStudent(Student student) { + students.add(student); + } + public void addTeacher(Teacher teacher) { + teachers.add(teacher); + } + public void addCourse(Course courseName) { + courses.add(courseName); + } + public void courseReq(Teacher teacher, Course courseName) { + if (courseName.getCourseTeacher().getUsername().equals("")) { + courseName.courseTeacher.changeUsername(teacher.getUsername()); + } + else { + System.out.println("access denied"); + } + } - // TODO: Define Functionalities - public void viewAllTeachers() { - //TODO + public static void viewAllTeachers() { + for (int i = 0; i < teachers.size(); i++) { + System.out.print(teachers.get(i).getUsername() + " - "); + } } - public void viewAllStudents() { - //TODO + public static void viewAllStudents() { + for (int i = 0; i < students.size(); i++) { + System.out.print(students.get(i).getUsername() + " - "); + } } public void viewAllCourses() { - //TODO + for (int i = 0; i < courses.size(); i++) { + System.out.print(courses.get(i).getCourseName() + " - "); + } + } + public static void courseRequest(Teacher teacher) { + Scanner in = new Scanner(System.in); + for (int i = 0; i < courses.size(); i++) { + if (courses.get(i).courseTeacher.getUsername().equals("")) { + System.out.println(courses.get(i).getCourseName() + " - " + courses.get(i).getCourseID() + " details: " + Hogwarts.courses.get(i).getDetails()); + } + } + System.out.print("enter UUID for get course: "); + String input2 = in.next(); + for (int i = 0; i < Hogwarts.courses.size(); i++) { + if (!courses.get(i).courseTeacher.getUsername().equals("") && courses.get(i).getCourseID().toString().equals(input2)) { + System.out.println("access denied!"); + } + else if (courses.get(i).courseTeacher.getUsername().equals("") && courses.get(i).getCourseID().toString().equals(input2)) { + teacher.addCourse(courses.get(i), teacher); + } + } + } + public static void Scoring(Teacher teacher) { + teacher.scoring(); + } + public static void GetCourseViaUUID(UUID uuid) { + for (int i = 0; i < courses.size(); i++) { + if (courses.get(i).getCourseID().equals(uuid)) { + System.out.print(courses.get(i).getCourseName() + " :\n"); + System.out.print("Teacher: " + courses.get(i).courseTeacher.getUsername() + "\n"); + System.out.println("Students :"); + System.out.print("\t"); + for (int j = 0; j < courses.get(i).getStudents().size(); j++) { + System.out.print(courses.get(i).getStudents().get(j) + " - "); + } + } + } } } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index b70f59b..d178566 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,14 +1,552 @@ /* TODO: Import all the classes that you have defined and make use of them to build the program. - */ - + */import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; +import java.util.UUID; public class Main { public static void main(String[] args) { - // TODO: Program starts from here + Assistant assistant = new Assistant("ErmiaHost", "ermia1384"); + AssistantMenu(assistant); + Hogwarts.addAssistant(assistant); + runMenu(); } + public static void AssistantMenu(Assistant assistant) { + System.out.print("\n\n"); + Scanner in = new Scanner(System.in); + while (true) { + System.out.println("1.logOut, \n2.TeacherRequest, \n3.RemoveUser, \n4.CreateCourse, \n 5.CheckProfile, \n6.ViewCourseDetail," + + " \n7.Setting)"); + String input = in.next(); + + if (input.equals("1")) { + break; + } + else if (input.equals("3")) { + System.out.print("1.Teacher \n 2.Student "); + input = in.next(); + + if (input.equals("1")) { + Hogwarts.viewAllTeachers(); + System.out.print("\n" + "enter teacher name: "); + String name = in.next(); + boolean find = false; + while (true) { + name = in.next(); + if (name.equals("back-to-menu")) + break; + for (int i = 0; i < Hogwarts.teachers.size(); i++) { + find |= Hogwarts.teachers.get(i).getUsername().equals(name); + } + if (find) + break; + else { + System.out.println("enter correct input"); + } + } + if (find) { + Teacher teacher = new Teacher("", ""); + Teacher teacher2 = new Teacher("", ""); + for (int i = 0; i < Hogwarts.teachers.size(); i++) { + if (Hogwarts.teachers.get(i).getUsername().equals(name)) { + teacher = Hogwarts.teachers.get(i); + } + } + Hogwarts.teachers.remove(teacher); + for (int i = 0; i < teacher.courses.size(); i++) { + teacher.courses.get(i).changeTeacher(teacher2); + } + for (int i = 0; i < Hogwarts.courses.size(); i++) { + if (Hogwarts.courses.get(i).courseTeacher.equals(teacher)) { + Hogwarts.courses.get(i).changeTeacher(teacher2); + } + } + for (int i = 0; i < Hogwarts.students.size(); i++) { + for (int j = 0; j < Hogwarts.students.get(i).courses.size(); j++) { + if (Hogwarts.students.get(i).courses.get(j).courseTeacher.equals(teacher)) { + Hogwarts.students.get(i).courses.get(j).changeTeacher(teacher2); + } + + } + } + } + + } + else { + Hogwarts.viewAllStudents(); + System.out.print("\n" + "enter student name: "); + String name = in.next(); + boolean find = false; + while (true) { + name = in.next(); + if (name.equals("back-to-menu")) + break; + for (int i = 0; i < Hogwarts.students.size(); i++) { + find |= Hogwarts.students.get(i).getUsername().equals(name); + } + if (find) + break; + else { + System.out.println("enter correct input"); + } + } + if (find) { + Student student = new Student("", ""); + Student student2 = new Student("", ""); + for (int i = 0; i < Hogwarts.students.size(); i++) { + if (Hogwarts.students.get(i).getUsername().equals(name)) { + student = Hogwarts.students.get(i); + } + } + Hogwarts.students.remove(student); + for (int i = 0; i < student.courses.size(); i++) { + student.courses.get(i).students.remove(name); + } + for (int i = 0; i < Hogwarts.courses.size(); i++) { + Hogwarts.courses.get(i).students.remove(name); + } + for (int i = 0; i < Hogwarts.teachers.size(); i++) { + for (int j = 0; j < Hogwarts.teachers.get(i).courses.size(); j++) { + Hogwarts.teachers.get(i).courses.get(j).students.remove(name); + } + } + } + } + } + else if (input.equals("2")) { + assistant.teacherRegister(); + } + else if (input.equals("4")) { + System.out.print("enter name for course: "); + input = in.next(); + System.out.print("enter course details: "); + String det = ""; + while (in.hasNext()) { + String input2 = in.next(); + if (input2.equals("FINISH")) { + break; + } + det += input2 + ' '; + } + Teacher teacher = new Teacher("", ""); + Course course = new course(teacher, input, det); + Hogwarts.courses.add(course); + } + else if (input.equals("5")) { + System.out.println("Select profile with ID: "); + for (int i = 0; i < Hogwarts.students.size(); i++) { + System.out.println((i + 1) + " : " + Hogwarts.students.get(i).getUsername()); + } + for (int i = 0; i < Hogwarts.teachers.size(); i++) { + System.out.println((i + Hogwarts.students.size() + 1) + " : " + Hogwarts.teachers.get(i).getUsername()); + } + int num = in.nextInt(); + if (num > Hogwarts.students.size()) { + System.out.println("userName : " + Hogwarts.teachers.get(num - Hogwarts.students.size() - 1).getUsername()); + System.out.println("Courses : "); + System.out.print("\t"); + for (int i = 0; i < Hogwarts.teachers.get(num - Hogwarts.students.size() - 1).courses.size(); i++) { + Course course = Hogwarts.teachers.get(num - Hogwarts.students.size() - 1).courses.get(i); + System.out.println(course.getCourseName() + " :"); + for (int j = 0; j < course.getStudents().size(); j++) { + System.out.print(course.getStudents().get(j) + " - "); + } + } + System.out.print("\n"); + Hogwarts.teachers.get(num - Hogwarts.students.size() - 1).getTeacherScore(); + System.out.print("\n"); + } + else { + System.out.println("userName : " + Hogwarts.teachers.get(num - 1).getUsername()); + System.out.println("Courses : "); + System.out.print("\t"); + for (int i = 0; i < Hogwarts.students.get(num - 1).courses.size(); i++) { + Course course = Hogwarts.students.get(num - 1).courses.get(i); + System.out.print(course.getCourseName() + " With " + course.courseTeacher.getUsername() + ", score: "); + System.out.println(course.studentScore.get(Hogwarts.students.get(num - 1).getUsername())); + } + } + } + else if (input.equals("6")) { + for (int i = 0; i < Hogwarts.courses.size(); i++) { + Course course = Hogwarts.courses.get(i); + System.out.println(course.getCourseName() + " : "); + System.out.println("\t" + course.getDetails() + " " + course.courseTeacher.getUsername()); + System.out.print("\t\t"); + for (int j = 0; j < course.getStudents().size(); j++) { + System.out.print(course.getStudents().get(j) + " - "); + } + System.out.print("\n"); + } + } + else { + System.out.print("1.changePass \n2.changeUserName :"); + input = in.next(); + if (input.equals("1")) { + System.out.print("enter new password: "); + input = in.next(); + assistant.changePassword(input); + } + else { + while (true) { + System.out.print("enter new userName: "); + input = in.next(); + if (!input.equals(assistant.getUsername())) { + boolean find = false; + for (int i = 0; i < Hogwarts.Assistants.size(); i++) + find |= Hogwarts.Assistants.get(i).getUsername().equals(input); + if (!find) + break; + } + } + assistant.changeUsername(input); + } + } + } + } + public static void TeacherMenu(Teacher teacher) { + System.out.print("\n\n"); + Scanner in = new Scanner(System.in); + while (true) { + System.out.println("1.logOut \n 2.CourseRequest \n 3.MyCourses \n4.Scoring \n5.MyScore \n 6.Setting)"); + String input = in.next(); + + if (input.equals("1")) { + break; + } + else if (input.equals("2")) { + Hogwarts.courseRequest(teacher); + } + else if (input.equals("3")) { + teacher.getStudent(); + } + else if (input.equals("4")) { + teacher.getTeacherScore(); + } + else if (input.equals("4")) { + Hogwarts.Scoring(teacher); + } + else { + System.out.print("1.changePass \n2.changeUserName :"); + input = in.next(); + + if (input.equals("1")) { + System.out.print("enter new password: "); + input = in.next(); + teacher.changePassword(input); + } + else { + while (true) { + System.out.print("enter new userName: "); + input = in.next(); + if (!input.equals(teacher.getUsername())) { + boolean find = false; + for (int i = 0; i < Hogwarts.teachers.size(); i++) + find |= Hogwarts.teachers.get(i).getUsername().equals(input); + if (!find) + break; + } + } + String lastUserName = teacher.getUsername(); + teacher.changeUsername(input); + for (int i = 0; i < Hogwarts.teachers.size(); i++) { + if (Hogwarts.teachers.get(i).getAccountID().equals(teacher.getAccountID())) { + Hogwarts.teachers.get(i).changeUsername(input); + } + } + for (int i = 0; i < Hogwarts.courses.size(); i++) { + if (Hogwarts.courses.get(i).getCourseTeacher().getAccountID().equals(teacher.getAccountID())) { + Hogwarts.courses.get(i).changeTeacher(teacher); + } + } + for (int i = 0; i < Hogwarts.students.size(); i++) { + Student student = Hogwarts.students.get(i); + for (int j = 0; j < student.getTeachers().size(); j++) { + if (student.getTeachers().get(j).getAccountID().equals(teacher.getAccountID())) + student.getTeachers().get(j).changeUsername(input); + } + for (int j = 0; j < student.courses.size(); j++) { + if (student.courses.get(j).getCourseTeacher().getAccountID().equals(teacher.getAccountID())) { + student.courses.get(j).changeTeacher(teacher); + } + } + } + for (int i = 0; i < Assistant.teachersInQueue.size(); i++) { + if (Assistant.teachersInQueue.get(i).getUsername().equals(lastUserName)) { + Assistant.teachersInQueue.get(i).changeUsername(input); + } + } + + } + } + } + } + public static void StudentMenu(Student student) { + System.out.print("\n\n"); + Scanner in = new Scanner(System.in); + while (true) { + System.out.println("1.logOut \n 2.TakeCourse \n3.MyCourses \n 4.MyTeachers \n 5.ScoreTeachers \n 6.Setting)"); + String input = in.next(); + if (input.equals("1")) { + break; + } + else if (input.equals("2")) { + for (int i = 0; i < Hogwarts.courses.size(); i++) { + Course course = Hogwarts.courses.get(i); + System.out.println(i + " : " + course.getCourseName() + " - " + course.getCourseTeacher().getUsername() + " - " + course.getCourseID()); + } + System.out.print("Enter number of course you want: "); + int input2 = in.nextInt(); + if (input2 >= Hogwarts.courses.size()) { + System.out.println("Access denied!"); + } + else { + Course course = Hogwarts.courses.get(input2); + boolean find = false; + for (int i = 0; i < student.courses.size(); i++) { + if (student.courses.get(i).getCourseID().equals(course.getCourseID())) { + find = true; + } + } + if (find) { + System.out.println("course has already exist."); + } + else { + student.addCourse(course); + } + } + } + else if (input.equals("3")) { + for (int i = 0; i < student.getCourses().size(); i++) { + System.out.print(student.getCourses().get(i).getCourseName() + " "); + } + System.out.print("\n"); + } + else if (input.equals("4")) { + for (int i = 0; i < student.getTeachers().size(); i++) { + System.out.print(student.getTeachers().get(i).getUsername() + " "); + } + System.out.print("\n"); + } + else if (input.equals("5")) { + System.out.println("select course for score teacher: "); + for (int i = 0; i < student.courses.size(); i++) { + Course course = student.courses.get(i); + System.out.println(course.getCourseName() + " - " + course.getCourseTeacher().getUsername() + " - " + course.getCourseID()); + } + System.out.print("Enter number of course you want: "); + int input2 = in.nextInt(); + Course course = student.courses.get(input2); + if (student.TeacherScore.get(course.getCourseID()) != null) { + System.out.print("enter Score: "); + Double score = in.nextDouble(); + student.scoreTeacher(course.getCourseID(), score); + } + else { + System.out.println("you have already scored this teacher"); + } + } + else { + System.out.print("1.changePass \n2.changeUserName "); + input = in.next(); + if (input.equals("1")) { + System.out.print("enter new password: "); + input = in.next(); + student.changePassword(input); + } + else { + String lastUserName = student.getUsername(); + while (true) { + System.out.print("enter new userName: "); + input = in.next(); + if (!input.equals(student.getUsername())) { + boolean find = false; + for (int i = 0; i < Hogwarts.students.size(); i++) + find |= Hogwarts.students.get(i).getUsername().equals(input); + if (!find) + break; + } + } + input = in.next(); + student.changeUsername(input); + for (int i = 0; i < Hogwarts.courses.size(); i++) { + Course course = Hogwarts.courses.get(i); + for (int j = 0; j < course.getStudents().size(); j++) { + if (course.getStudents().get(j).equals(lastUserName)) + course.getStudents().get(j).equals(input); + } + course.studentScore.put(lastUserName, course.studentScore.get(lastUserName)); + course.studentScore.remove(lastUserName); + } + } + } + } + } public static void runMenu() { - // TODO: Menu will be shown here... + Scanner in = new Scanner(System.in); + while (true) { + System.out.println("enter back-to-menu for going yo menu"); + System.out.println("select your profile: \n1.student \n2.teacher \n3. assistant)"); + String input = in.next(); + if (input.equals("1")) { + System.out.println("1.signup \n 2.login"); + input = in.next(); + if (input.equals("1")) { + while (true) { + System.out.print("enter userName: "); + input = in.next(); + boolean find = false; + for (int i = 0; i < Hogwarts.students.size(); i++) { + find |= Hogwarts.students.get(i).getUsername().equals(input); + } + if (find) { + System.out.println("username already exist!"); + } + else { + System.out.print("enter passWord: "); + String pass = in.next(); + Student student = new Student(input, pass); + Hogwarts.students.add(student); + break; + } + } + } + else if (input.equals("2")) { + while (true) { + System.out.print("enter userName: "); + input = in.next(); + if (input.equals("back-to-menu")) + break; + boolean find = false; + Student student = new Student("", ""); + for (int i = 0; i < Hogwarts.students.size(); i++) { + if (Hogwarts.students.get(i).getUsername().equals(input)) { + student = Hogwarts.students.get(i); + } + find |= Hogwarts.students.get(i).getUsername().equals(input); + } + if (!find) { + System.out.println("username not found!"); + } + else { + while (true) { + System.out.print("enter passWord: "); + String pass = in.next(); + if (pass.equals("back-to-menu")) + break; + if (student.validatePassword(pass)) { + StudentMenu(student); + break; + } + else { + System.out.println("incorrect password!"); + } + } + break; + } + } + } + } + //teacher + else if (input.equals("2")) { + System.out.println("1.signup \n 2.login"); + input = in.next(); + if (input.equals("1")) { + while (true) { + System.out.print("enter userName: "); + input = in.next(); + boolean find = false; + for (int i = 0; i < Hogwarts.teachers.size(); i++) { + find |= Hogwarts.teachers.get(i).getUsername().equals(input); + } + if (find) { + System.out.println("username already exist!"); + } + else { + System.out.print("enter passWord: "); + String pass = in.next(); + Teacher newTeacher = new Teacher(input, "kalampoloshirzi+salad+khoonezahraina"); + newTeacher.setPass(pass); + Hogwarts.teachers.add(newTeacher); + Assistant.teachersInQueue.add(newTeacher); + System.out.println("please wait to verify your access."); + break; + } + } + } + else if (input.equals("2")) { + while (true) { + System.out.print("enter userName: "); + input = in.next(); + if (input.equals("back-to-menu")) + break; + boolean find = false; + Teacher teacher = new Teacher("", ""); + for (int i = 0; i < Hogwarts.teachers.size(); i++) { + if (Hogwarts.teachers.get(i).getUsername().equals(input)) { + teacher = Hogwarts.teachers.get(i); + } + find |= Hogwarts.teachers.get(i).getUsername().equals(input); + } + if (!find) { + System.out.println("username not found!"); + } + else { + while (true) { + System.out.print("enter passWord: "); + String pass = in.next(); + if (pass.equals("back-to-menu")) + break; + if (teacher.validatePassword(pass)) { + TeacherMenu(teacher); + break; + } + else { + System.out.println("incorrect password!"); + } + } + break; + } + } + } + } + else { + while (true) { + System.out.print("enter userName: "); + input = in.next(); + if (input.equals("back-to-menu")) + break; + boolean find = false; + Assistant assistant = new Assistant("", ""); + for (int i = 0; i < Hogwarts.Assistants.size(); i++) { + if (Hogwarts.Assistants.get(i).getUsername().equals(input)) { + assistant = Hogwarts.Assistants.get(i); + } + find |= Hogwarts.Assistants.get(i).getUsername().equals(input); + } + if (!find) { + System.out.println("username not found!"); + } + else { + while (true) { + System.out.print("enter passWord: "); + String pass = in.next(); + if (pass.equals("back-to-menu")) + break; + if (assistant.validatePassword(pass)) { + AssistantMenu(assistant); + break; + } + else { + System.out.println("incorrect password!"); + } + } + break; + } + } + } + } } } diff --git a/src/main/java/Student.java b/src/main/java/Student.java new file mode 100644 index 0000000..aea848a --- /dev/null +++ b/src/main/java/Student.java @@ -0,0 +1,35 @@ +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.UUID; + +public class Student extends Account { + List courses; + static HashMap TeacherScore = new HashMap<>(); + List Teachers; + public Student(String username, String password) { + super(username, password); + Teachers = new ArrayList<>(); + courses = new ArrayList<>(); + } + public void addCourse(Course c) { + courses.add(c); + c.addStudent(getUsername()); + Teachers.add(c.getCourseTeacher()); +// for (int i = 0; i < Hogwarts.students.size(); i++) { +// if (Hogwarts.students.get(i).getUsername().equals(getUsername())) { +// Hogwarts.students.get(i).courses.remove(c); +// Hogwarts.students.get(i).courses.add(c); +// } +// } + } + public List getCourses() { + return courses; + } + public List getTeachers() { + return Teachers; + } + public void scoreTeacher(UUID uuid, Double teacherScore) { + this.scoreTeacher(uuid, teacherScore); + } +} \ No newline at end of file diff --git a/src/main/java/Teacher.java b/src/main/java/Teacher.java new file mode 100644 index 0000000..476a009 --- /dev/null +++ b/src/main/java/Teacher.java @@ -0,0 +1,102 @@ +import java.util.*; + +public class Teacher extends Account { + List courses; + List> scores = new ArrayList<>(); + private String pass; + public void setPass(String pass) { + this.pass = pass; + } + public void signUp() { + SignUp(pass); + } + public Teacher(String username, String password) { + super(username, password); + courses = new ArrayList<>(); + } + public void addCourse(Course c, Teacher teacher) { + courses.add(c); + c.changeTeacher(c.getCourseTeacher()); + for (int i = 0; i < c.getStudents().size(); i++) { + for (int j = 0; j < Hogwarts.students.size(); j++) { + if (Hogwarts.students.get(j).getUsername().equals(c.getStudents().get(i))) { + Hogwarts.students.get(j).Teachers.add(c.courseTeacher); + } + } + } + for (int i = 0; i < Hogwarts.courses.size(); i++) { + if (Hogwarts.courses.get(i).getCourseID().equals(c.getCourseID())) { + Hogwarts.courses.get(i).changeTeacher(teacher); + } + } + } + public void addCourse(String coursename, List allCourses, Teacher teacher) { + for (int i = 0; i < allCourses.size(); i++) { + if (allCourses.get(i).getCourseName().equals(coursename)) { + addCourse(allCourses.get(i), teacher); + } + } + } + public void scoring() { + Scanner in = new Scanner(System.in); + for (int i = 0; i < courses.size(); i++) { + System.out.print(courses.get(i).getCourseName() + ", "); + } + System.out.print("\nenter course name: "); + String courseName = in.next(); + for (int i = 0; i < courses.size(); i++) { + if (courses.get(i).getCourseName().equals(courseName)) { + System.out.println(courses.get(i).getStudents()); + System.out.print("enter score of students: "); + for (int j = 0; j < courses.get(i).getStudents().size(); j++) { + String studentName = courses.get(i).getStudents().get(j); + Double score = in.nextDouble(); + courses.get(i).scoring(studentName, score); + } + } + } + } + public void getStudent() { + Scanner in = new Scanner(System.in); + for (int i = 0; i < courses.size(); i++) { + System.out.print(courses.get(i).getCourseName() + ", "); + } + System.out.print("\nenter course name: "); + String courseName = in.next(); + for (int i = 0; i < courses.size(); i++) { + if (courses.get(i).getCourseName().equals(courseName)) { + System.out.println(courses.get(i).getStudents()); + } + } + } + + public void getCourses() { + for (int i = 0; i < courses.size(); i++) { + System.out.print(courses.get(i).getCourseName() + ", "); + } + System.out.print("\n"); + } + public void addTeacherScore(Course course, Double TeacherScore) { + HashMap save = new HashMap<>(); + save.put(course.getCourseID(), TeacherScore); + this.scores.add(save); + } + public void getTeacherScore() { + for (int i = 0; i < courses.size(); i++) { + System.out.print(courses.get(i).getCourseName() + ' ' + courses.get(i).getCourseID() + ": "); + Double TeacherScore = 0.0, cnt = 0.0; + for (int j = 0; j < scores.size(); j++) { + if (scores.get(j).get(courses.get(i).getCourseID()) != null) { + cnt = cnt + 1.0; + TeacherScore += scores.get(j).get(courses.get(i).getCourseID()); + } + } + if (cnt == 0.0) { + System.out.println("score not exist"); + } + else { + System.out.println(TeacherScore / cnt); + } + } + } +} \ No newline at end of file