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..f3aa7c3 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