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