From 91ed3033aa375237fa1bda26c235763a1f15c67c Mon Sep 17 00:00:00 2001 From: zahramoghaddasi Date: Wed, 20 Mar 2024 17:43:31 +0330 Subject: [PATCH 1/2] khodaya basss --- .idea/.gitignore | 3 + .idea/.name | 1 + .idea/gradle.xml | 18 + .idea/misc.xml | 5 + .idea/vcs.xml | 6 + src/main/java/Account.java | 38 +- src/main/java/AccountManagement.java | 2 +- src/main/java/Assistant.java | 53 +++ src/main/java/Course.java | 46 +++ src/main/java/Hogwarts.java | 84 +++- src/main/java/Main.java | 591 ++++++++++++++++++++++++++- src/main/java/Student.java | 30 ++ src/main/java/Teacher.java | 102 +++++ 13 files changed, 958 insertions(+), 21 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/.name create mode 100644 .idea/gradle.xml create mode 100644 .idea/misc.xml create mode 100644 .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/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..6a19840 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +Account.java \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..72a0a48 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..49504ef --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.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..42bfe8c 100644 --- a/src/main/java/Account.java +++ b/src/main/java/Account.java @@ -1,24 +1,50 @@ 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 hashingPassword(String pass){ + long hashmod = 527733233; + long hashmabna = 701; + long ans = 0 ; + long power = 1; + for(int i = 0 ; i < pass.length() ; i++){ + int save = pass.charAt(i) - '0'; + ans = (ans + ( power * save ) ) % hashmod; + power = (power * hashmabna ) % hashmod ; + } + return String.valueOf(ans); + } + public Account(String username , String password ){ + this.username = username ; + this.password =hashingPassword (password) ; + this.accountID = UUID.randomUUID(); + } + @Override public boolean validatePassword(String enteredPassword) { - //TODO - return false; + return hashingPassword(enteredPassword).equals(this.password); } @Override public void changeUsername(String newUsername) { - //TODO + + this.username = newUsername; } @Override public void changePassword(String newPassword) { - //TODO + this.password = hashingPassword(newPassword) ; + } + public String getUsername () { + return username; + } + public UUID getAccountID(){ + return accountID; + } + public void SignUp(String pass){ + this.password = hashingPassword(pass); } } diff --git a/src/main/java/AccountManagement.java b/src/main/java/AccountManagement.java index d460ec2..0562856 100644 --- a/src/main/java/AccountManagement.java +++ b/src/main/java/AccountManagement.java @@ -1,4 +1,4 @@ -public interface AccountManagement { +public interface AccountManagement { public boolean validatePassword(String enteredPassword); public void changeUsername(String newUsername); public void changePassword(String newPassword); diff --git a/src/main/java/Assistant.java b/src/main/java/Assistant.java new file mode 100644 index 0000000..727f480 --- /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 teachersIswaiting = 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 < teachersIswaiting.size(); i++) { + System.out.print(teachersIswaiting.get(i).getUsername() + ", "); + } + System.out.print("\nEnter teachers name for register: "); + String teacherName = in.next(); + Teacher teacherTarget = new Teacher("", ""); + for (int i = 0; i < teachersIswaiting.size(); i++) { + Teacher teacher = teachersIswaiting.get(i); + if (teacher.getUsername().equals(teacherName)) { + teacher.signUp(); + teacherTarget = teacher; + } + } + teachersIswaiting.remove(teacherTarget); + } +} \ No newline at end of file diff --git a/src/main/java/Course.java b/src/main/java/Course.java new file mode 100644 index 0000000..356c572 --- /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; + } +} \ No newline at end of file diff --git a/src/main/java/Hogwarts.java b/src/main/java/Hogwarts.java index 4a8a967..a7fac2e 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) + " - "); + } + } + } } -} +} \ No newline at end of file diff --git a/src/main/java/Main.java b/src/main/java/Main.java index b70f59b..74a82ce 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,14 +1,595 @@ -/* - 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("ZAHRAMOGHADDASI", "13841384"); + Hogwarts.addAssistant(assistant); + Assistant host = new Assistant("maasoom","123456"); + Hogwarts.addAssistant(host); + runMenu(); } + public static void AssistantMenu(Assistant assistant) { + System.out.print("\n\n"); + Scanner in = new Scanner(System.in); + while (true) { + System.out.println("choose one Of Title: (1)logOut, 2)TeacherRequest, 3)RemoveUser, 4)CreateCourse, 5)CheckProfile, 6)ViewCourseDetail, 7)Setting)"); + String input = in.next(); + while (!input.equals("1") && !input.equals("2") && !input.equals("3") && !input.equals("4") + && !input.equals("5") && !input.equals("6") && !input.equals("7")) { + System.out.print("enter correct input: "); + input = in.next(); + } + if (input.equals("1")) { + break; + } + else if (input.equals("3")) { + System.out.print("1)teacher , 2)student? "); + input = in.next(); + while (!input.equals("1") && !input.equals("2")) { + System.out.print("enter correct input: "); + 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")) + 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: \n\nWhen the description is finished, type \"FINISH\" to return"); + 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("choos one : (changePass, changeUserName :"); + input = in.next(); + while (!input.equals("changePass") && !input.equals("changeUserName")) { + System.out.print("enter correct input: "); + input = in.next(); + } + if (input.equals("changePass")) { + 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("choose one: (1)logOut,2)CourseRequest, 3)MyCourses, 4)Scoring, 5)MyScore, 6)Setting)"); + String input = in.next(); + while (!input.equals("1") && !input.equals("2") && !input.equals("3") + && !input.equals("4") && !input.equals("5") && !input.equals("6") ) { + System.out.print("enter correct input: "); + 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("5")) { + teacher.getTeacherScore(); + } + else if (input.equals("4")) { + Hogwarts.Scoring(teacher); + } + else { + System.out.print("choos one : (changePass, changeUserName :"); + input = in.next(); + while (!input.equals("changePass") && !input.equals("changeUserName")) { + System.out.print("enter correct input: "); + input = in.next(); + } + if (input.equals("changePass")) { + 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.teachersIswaiting.size(); i++) { + if (Assistant.teachersIswaiting.get(i).getUsername().equals(lastUserName)) { + Assistant.teachersIswaiting.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("choose one: (1)logOut, 2)TakeCourse, 3)MyCourses, 4)MyTeachers, 5)ScoreTeachers, 6)Setting"); + String input = in.next(); + while (!input.equals("1") && !input.equals("2") && !input.equals("3") + && !input.equals("4") && !input.equals("5") && !input.equals("6") ) { + System.out.print("enter correct input: "); + 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("choos one : (1)changePass, 2)changeUserName :"); + input = in.next(); + while (!input.equals("1") && !input.equals("2")) { + System.out.print("enter correct input: "); + 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 to menu"); + System.out.println("select your profile: (1)student, 2)teacher, 3)assistant)"); + String input = in.next(); + while (!input.equals("1") && !input.equals("2") && !input.equals("3")) { + System.out.print("enter correct input : "); + input = in.next(); + } + //Student + if (input.equals("1")) { + System.out.println("1)signup or 2)login or 3)back-to-menu?"); + input = in.next(); + while (!input.equals("1") && !input.equals("2") && !input.equals("3")) { + System.out.print("enter correct input : "); + 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")) + 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 or 2)login or 3)back-to-menu?"); + input = in.next(); + while (!input.equals("1") && !input.equals("2") && !input.equals("3")) { + System.out.print("enter correct input : "); + 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, input); + newTeacher.setPass(pass); + Hogwarts.Teachers.add(newTeacher); + Assistant.teachersIswaiting.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")) + break; + boolean find = false; + Teacher teacher = new Teacher(input, input); + 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!"); + + if(input.equals("3")){ + break; + } + } + else { + while (true) { + System.out.print("enter passWord: "); + String pass = in.next(); + if (pass.equals("back")) + 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..f9fe5c0 --- /dev/null +++ b/src/main/java/Student.java @@ -0,0 +1,30 @@ +import java.util.*; + +public class Student extends Account { + Random rand = new Random(); + List courses; + static HashMap TeacherScore = new HashMap<>(); + List Teachers; + String HogwartsSchool; + String[] sortinghat = {"Hufflepuff", "Gryffindor", "Slytherin", "Ravenclaw"}; + public Student(String username, String password) { + super(username, password); + HogwartsSchool = sortinghat[rand.nextInt(4)]; + Teachers = new ArrayList<>(); + courses = new ArrayList<>(); + } + public void addCourse(Course course) { + courses.add(course); + course.addStudent(getUsername()); + Teachers.add(course.getCourseTeacher()); + } + public List getCourses() { + return courses; + } + public List getTeachers() { + return Teachers; + } + public void scoreTeacher(UUID id, Double teacherScore) { + this.scoreTeacher(id, 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..6324881 --- /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 cource, Teacher teacher) { + courses.add(cource); + cource.changeTeacher(cource.getCourseTeacher()); + for (int i = 0; i < cource.getStudents().size(); i++) { + for (int j = 0; j < Hogwarts.Students.size(); j++) { + if (Hogwarts.Students.get(j).getUsername().equals(cource.getStudents().get(i))) { + Hogwarts.Students.get(j).Teachers.add(cource.courseTeacher); + } + } + } + for (int i = 0; i < Hogwarts.Courses.size(); i++) { + if (Hogwarts.Courses.get(i).getCourseID().equals(cource.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 TeachersScore = 0.0, counter = 0.0; + for (int j = 0; j < scores.size(); j++) { + if (scores.get(j).get(courses.get(i).getCourseID()) != null) { + counter += 1.0; + TeachersScore += scores.get(j).get(courses.get(i).getCourseID()); + } + } + if (counter == 0.0) { + System.out.println("score not exist"); + } + else { + System.out.println(TeachersScore / counter); + } + } + } +} \ No newline at end of file From c243cd182d63d0dee87c0e4d3226394cc5339a59 Mon Sep 17 00:00:00 2001 From: zahramoghaddasi Date: Wed, 20 Mar 2024 17:49:00 +0330 Subject: [PATCH 2/2] finished --- src/main/java/Account.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/Account.java b/src/main/java/Account.java index 42bfe8c..f3aa7c3 100644 --- a/src/main/java/Account.java +++ b/src/main/java/Account.java @@ -44,7 +44,7 @@ public String getUsername () { public UUID getAccountID(){ return accountID; } - public void SignUp(String pass){ + public void SignUp(String pass) { this.password = hashingPassword(pass); } }