示例#1
0
        public static GradStudent AddGradStudent(List <User> gList)
        {
            string sName;
            float  gpa;
            string DoB;
            string PrevUniversity;
            float  ugGpa;

            Console.Write("Enter Name: ");
            sName = Console.ReadLine();

            Console.Write("Enter GPA: ");
            gpa = float.Parse(Console.ReadLine());

            Console.Write("Enter Date Of Birth: ");
            DoB = Console.ReadLine();

            Console.Write("Previous University: ");
            PrevUniversity = Console.ReadLine();

            Console.Write("Enter UnderGrad GPA: ");
            ugGpa = float.Parse(Console.ReadLine());

            GradStudent output = new GradStudent(sName, gpa, DoB, PrevUniversity, ugGpa);

            string uid = output.getUid();

            if (findUser(gList, uid) == null)
            {
                gList.Add(output);
                return(output);
            }

            return(null);
        }
        public IEnumerable <Student> GetAllStudents()
        {
            List <Student> lstStudents = new List <Student>();

            using (SqlConnection con = new SqlConnection(connectionString))
            {
                SqlCommand cmd = new SqlCommand("select * from Student", con);
                cmd.CommandType = CommandType.Text;

                con.Open();
                SqlDataReader rdr = cmd.ExecuteReader();

                while (rdr.Read())
                {
                    var student = new GradStudent();

                    student.ID           = Convert.ToInt32(rdr["ID"]);
                    student.Name         = rdr["Name"].ToString();
                    student.Email        = rdr["Email"].ToString();
                    student.Address      = rdr["Address"].ToString();
                    student.Class        = rdr["Class"].ToString();
                    student.MarksPercent = Convert.ToInt32(rdr["MarksPercent"]);

                    lstStudents.Add(student);
                }
                con.Close();
            }
            return(lstStudents);
        }
        public void UpdateGradStudent(GradStudent gradStudent, ref List <string> errors)
        {
            var conn = new SqlConnection(ConnectionString);

            try
            {
                var adapter = new SqlDataAdapter(UpdateGradStudentInfoProcedure, conn)
                {
                    SelectCommand = { CommandType = CommandType.StoredProcedure }
                };
                adapter.SelectCommand.Parameters.Add(new SqlParameter("@sid", SqlDbType.VarChar, 20));
                adapter.SelectCommand.Parameters.Add(new SqlParameter("@under_gpa", SqlDbType.Float));
                adapter.SelectCommand.Parameters.Add(new SqlParameter("@gre", SqlDbType.Int));

                adapter.SelectCommand.Parameters["@sid"].Value       = gradStudent.Sid;
                adapter.SelectCommand.Parameters["@under_gpa"].Value = gradStudent.Under_gpa;
                adapter.SelectCommand.Parameters["@gre"].Value       = gradStudent.Gre;

                var dataSet = new DataSet();
                adapter.Fill(dataSet);
            }
            catch (Exception e)
            {
                errors.Add("Error: " + e);
            }
            finally
            {
                conn.Dispose();
            }
        }
        public string InsertGradStudent(GradStudent gradStudent)
        {
            var errors     = new List <string>();
            var repository = new GradStudentRepository();
            var service    = new GradStudentService(repository);

            service.InsertGradStudent(gradStudent, ref errors);
            if (errors.Count == 0)
            {
                return("ok");
            }

            return("error");
        }
示例#5
0
        public void InsertGradStudent(GradStudent gradStudent, ref List <string> errors)
        {
            if (gradStudent == null)
            {
                errors.Add("GradStudent cannot be null");
                throw new ArgumentException();
            }

            if (gradStudent.Sid.Length < 5)
            {
                errors.Add("Invalid gradStudent ID");
                throw new ArgumentException();
            }

            this.repository.InsertGradStudent(gradStudent, ref errors);
        }
        public void InsertGradStudentErrorTest2()
        {
            //// Arranage
            var errors             = new List <string>();
            var mockRepository     = new Mock <IGradStudentRepository>();
            var gradStudentService = new GradStudentService(mockRepository.Object);
            var gradStudent        = new GradStudent {
                Sid = string.Empty
            };

            //// Act
            gradStudentService.InsertGradStudent(gradStudent, ref errors);

            //// Assert
            Assert.AreEqual(1, errors.Count);
        }
示例#7
0
    static void Main()
    {
        List<Student> students = new List<Student>();

        Student c1 = new Student("Fred");
        Student c2 = new GradStudent("Elvis");
        Student c3 = new UndergradStudent("Callie");

        students.Add(c1);
        students.Add(c2);
        students.Add(c3);

        // Let's now pull them back out!
        for (int i=0; i < students.Count; i++) {
          Console.WriteLine(students[i].printMessage());
        }
    }
        public List <GradStudent> GetGradStudentList(ref List <string> errors)
        {
            var conn            = new SqlConnection(ConnectionString);
            var gradStudentList = new List <GradStudent>();

            try
            {
                var adapter = new SqlDataAdapter(GetGradStudentListProcedure, conn)
                {
                    SelectCommand =
                    {
                        CommandType = CommandType.StoredProcedure
                    }
                };

                var dataSet = new DataSet();
                adapter.Fill(dataSet);

                if (dataSet.Tables[0].Rows.Count == 0)
                {
                    return(null);
                }

                for (var i = 0; i < dataSet.Tables[0].Rows.Count; i++)
                {
                    var gradStudent = new GradStudent
                    {
                        Sid       = dataSet.Tables[0].Rows[i]["sid"].ToString(),
                        Under_gpa = (float)Convert.ToDouble(dataSet.Tables[0].Rows[i]["under_gpa"].ToString()),
                        Gre       = Convert.ToInt32(dataSet.Tables[0].Rows[i]["gre"].ToString())
                    };
                    gradStudentList.Add(gradStudent);
                }
            }
            catch (Exception e)
            {
                errors.Add("Error: " + e);
            }
            finally
            {
                conn.Dispose();
            }

            return(gradStudentList);
        }
示例#9
0
    static void Main()
    {
        List <Student> students = new List <Student>();

        Student c1 = new Student("Fred");
        Student c2 = new GradStudent("Elvis");
        Student c3 = new UndergradStudent("Callie");

        students.Add(c1);
        students.Add(c2);
        students.Add(c3);

        // Let's now pull them back out!
        for (int i = 0; i < students.Count; i++)
        {
            Console.WriteLine(students[i].printMessage());
        }
    }
        public GradStudent GetGradStudentDetail(string id, ref List <string> errors)
        {
            var         conn        = new SqlConnection(ConnectionString);
            GradStudent gradStudent = null;

            try
            {
                var adapter = new SqlDataAdapter(GetGradStudentInfoProcedure, conn)
                {
                    SelectCommand = { CommandType = CommandType.StoredProcedure }
                };
                adapter.SelectCommand.Parameters.Add(new SqlParameter("@sid", SqlDbType.VarChar, 20));

                adapter.SelectCommand.Parameters["@sid"].Value = id;

                var dataSet = new DataSet();
                adapter.Fill(dataSet);

                if (dataSet.Tables[0].Rows.Count == 0)
                {
                    return(null);
                }

                gradStudent = new GradStudent
                {
                    Sid       = dataSet.Tables[0].Rows[0]["sid"].ToString(),
                    Under_gpa = (float)Convert.ToDouble(dataSet.Tables[0].Rows[0]["under_gpa"].ToString()),
                    Gre       = Convert.ToInt32(dataSet.Tables[0].Rows[0]["gre"].ToString())
                };
            }
            catch (Exception e)
            {
                errors.Add("Error: " + e);
            }
            finally
            {
                conn.Dispose();
            }

            return(gradStudent);
        }
示例#11
0
        public void UpdateGradStudent(GradStudent gradStudent, ref List <string> errors)
        {
            if (gradStudent == null)
            {
                errors.Add("GradStudent cannot be null");
                throw new ArgumentException();
            }

            if (string.IsNullOrEmpty(gradStudent.Sid))
            {
                errors.Add("Invalid student id");
                throw new ArgumentException();
            }

            if (gradStudent.Sid.Length < 5)
            {
                errors.Add("Invalid student id");
                throw new ArgumentException();
            }

            this.repository.UpdateGradStudent(gradStudent, ref errors);
        }
示例#12
0
        public static void Main(string[] args)
        {
            char              ch, ch2;
            bool              successLogin = false;
            GradStudent       st;
            var               admins        = new List <User>();
            List <Course>     coursesList   = new List <Course>();
            List <Enrollment> courseEnrolls = new List <Enrollment>();



            List <User> profList = new List <User>();
            List <User> gslist   = new List <User>();
            List <User> ugslist  = new List <User>();



            LoadUserData('G', gslist, "GsList.txt");
            LoadUserData('U', ugslist, "UGsList.txt");
            LoadUserData('P', profList, "profData.txt");
            LoadCourseData(coursesList, "coursesData.txt");
            LoadUserData('A', admins, "adminData.txt");

            List <User> students = new List <User>();

            students.AddRange(gslist);
            students.AddRange(ugslist);


            do
            {
                ch = LoginMenu();

                switch (ch)
                {
                case '1':

                    Console.WriteLine("\n \t Enter your Id:");
                    string tId = Console.ReadLine();
                    Console.Write("\t Enter your Password: "******"\n Error: user Id or password are not correct!");
                    }
                    else
                    {
                        do
                        {
                            //1- Add Grad student" , "2- Add undergrad student", "3- List All grad students",
                            //"4- List All undergrad students", "5- Add new course", "6- list students in course");
                            ch2 = admin.Menu();
                            switch (ch2)
                            {
                            //TODO (1): Add new Grad Student
                            case '1':
                                Console.Write("\nEnter  User ID number: ");
                                string Id = Console.ReadLine();
                                Console.Write("\nEnter  password: "******"\nEnter  name: ");
                                string sName = Console.ReadLine();
                                Console.Write("\nEnter  date of birth: ");
                                string DoB = Console.ReadLine();
                                Console.Write("\nEnter your student ID: ");
                                string sId = Console.ReadLine();
                                Console.Write("\nEnter GPA: ");
                                string GPA = Console.ReadLine();
                                Console.Write("\nEnter previous degree: ");
                                string pDeg = Console.ReadLine();
                                Console.Write("Enter the previous University:");
                                string pUni = Console.ReadLine();
                                Console.WriteLine("Enter department:");
                                string Dept = Console.ReadLine();
                                Console.Write("Enter UnderGrad GPA:");
                                string    uGPA        = Console.ReadLine();
                                string [] gradStudent = new string [] { Id, pw, sName, sId, DoB, Dept, GPA, pDeg, pUni, uGPA };
                                var       rUser       = findUser(gslist, Id);
                                if (rUser != null)
                                {
                                    Console.WriteLine("ID is already in use");
                                    break;
                                }
                                else
                                {
                                    gslist.Add(st = new GradStudent(gradStudent));
                                    Console.WriteLine("\n Graduate student has been added");
                                    break;
                                }

                            //TODO (2): Add new undergrad Student,
                            case '2':

                                Console.Write("Enter your User ID: ");
                                Id = Console.ReadLine();
                                Console.Write("Enter your password: "******"Enter your name: ");
                                sName = Console.ReadLine();
                                Console.Write("Enter your date of birth: ");
                                DoB = Console.ReadLine();
                                Console.Write("Enter your student ID: ");
                                sId = Console.ReadLine();
                                Console.Write("Enter your department: ");
                                Dept = Console.ReadLine();
                                Console.Write("Enter your GPA: ");
                                GPA = Console.ReadLine();
                                Console.Write("Enter your High School: ");
                                string HS = Console.ReadLine();
                                Console.Write("Enter your student classification: ");
                                string   Class        = Console.ReadLine();
                                string[] uGradStudent = new string[] { Id, pw, sName, sId, DoB, Dept, GPA, HS, Class };
                                rUser = findUser(ugslist, Id);
                                if (rUser != null)
                                {
                                    Console.WriteLine("ID is already is use");
                                }
                                else
                                {        //Check for student, then add student
                                    Student nStu = new UndergradStudent(uGradStudent);
                                    foreach (var s in courseEnrolls)
                                    {
                                        var rStd = s.getStudent();
                                        if (nStu.getUid() == rStd.getUid())
                                        {
                                            Console.WriteLine("Student is already enrolled in this class");
                                            break;
                                        }
                                    }
                                    ugslist.Add(nStu);
                                    Console.WriteLine("\n Student has been added");
                                }

                                break;

                            case '3':
                                foreach (GradStudent std in gslist)
                                {
                                    Console.WriteLine();
                                    std.DisplayStdInfo();
                                }
                                break;

                            case '4':
                                foreach (UndergradStudent std in ugslist)
                                {
                                    Console.WriteLine();
                                    std.DisplayStdInfo();
                                }
                                break;

                            case '5':         //TODO (3): Add new  course by asking Admin for course info., verify inputs 1st
                                              //        : ++ Save new list to File if admin agrees
                                Console.Write("Enter course ID:");
                                var cid = Console.ReadLine();
                                Console.Write("Enter Course name");
                                var cN = Console.ReadLine();
                                Console.Write("Enter amount of credits");
                                var      credits = Console.ReadLine();
                                string[] course  = new string[] { cN, cid, credits };
                                Console.WriteLine("Is the information correct? y/n");
                                foreach (var i in course)
                                {
                                    Console.WriteLine(i);
                                }
                                Console.WriteLine("Is information correct? y/n");
                                var answer = Console.ReadLine();
                                switch (answer)
                                {
                                case "y":
                                case "Y":
                                    //if information is correct add course to course list
                                    coursesList.Add(new Course(course[0], Int32.Parse(course[1]), Int32.Parse(course[2])));
                                    Console.WriteLine("\nThe Course has been added to the list");
                                    //Extra Credit
                                    Console.WriteLine("Would you like to save updates to the course data file? y/n ");
                                    answer = Console.ReadLine();
                                    switch (answer)
                                    {
                                    case "y":
                                    case "Y":
                                        var output = $"\n{course[0]}, {course[1]}, {course[2]}";
                                        System.IO.File.AppendAllText(@"coursesData.txt", output);
                                        break;

                                    case "n":
                                    case "N":
                                        Console.WriteLine("Course was not saved to the data file.");
                                        break;

                                    default:
                                        Console.WriteLine("There was an error");
                                        break;
                                    }
                                    break;

                                case "n":
                                case "N":
                                    Console.WriteLine("\nCourse information was not added.");
                                    break;

                                default:
                                    break;

                                    // Test: Currently adding one specific course

                                    //coursesList[0].professor = (Professor )profList[0];
                                }
                                coursesList.Add(new Course("Adv. Prog", 3312, 3));
                                break;


                            case '6':         //TODO (4): Assign course to prof by getting ProfId, courseId,
                                              //        : verify inputs, and prof doesnot have >3 courses
                                              //        : ++ Save new list to File, and make the code initialize prof-course-assignment list from a file

                                // Test: Currently Assign all courses to 1st prof in the list
                                foreach (var c in coursesList)
                                {
                                    c.professor = (Professor)profList[0];
                                    c.professor.addCourseToTeach(c);
                                }
                                //Show the list of Professors
                                Console.WriteLine("---Professor List---");
                                string uId;

                                foreach (var i in profList)
                                {
                                    uId = i.getUid();
                                    Console.WriteLine(uId);
                                }

                                Console.WriteLine("Enter Professor ID");
                                var profId = Console.ReadLine();

                                //Showing the list of courses
                                Console.WriteLine("--Course List--");
                                int crsID;
                                foreach (var c in coursesList)
                                {
                                    crsID = c.cId;
                                    Console.WriteLine(crsID);
                                }
                                Console.WriteLine("\n Enter Course ID");
                                var courseId = Int32.Parse(Console.ReadLine());
                                //Verifying Professor information against Course information
                                Professor prCheck = (Professor)findUser(profList, profId);
                                Course    crCheck = (Course)findCourse(coursesList, courseId);
                                //check
                                if (prCheck == null)
                                {
                                    Console.WriteLine("Professor ID was not found or assigned to the course");
                                    break;
                                }
                                else if (crCheck == null)
                                {
                                    Console.WriteLine("Course ID was not found Professor was not assigned to this course");
                                    break;
                                }
                                int pfCount = 0;
                                foreach (var c in coursesList)
                                {
                                    if (c.professor.getUid() == profId)
                                    {
                                        pfCount++;
                                    }
                                }
                                if (pfCount > 3)
                                {
                                    Console.WriteLine("The Professor is assigned to more than 3 courses\n Professor is not assigned to this course ");
                                    break;
                                }
                                else
                                {
                                    foreach (var c in coursesList)
                                    {
                                        if (courseId == c.cId)
                                        {
                                            c.professor = prCheck;
                                            c.professor.addCourseToTeach(c);
                                            Console.WriteLine($"The professor with the id {profId} was assigned to {courseId} ");
                                            //Extra credit
                                            Console.Write("Would you like to save the course assignment to a file? y/n");
                                            var saveIt = Console.ReadLine();
                                            switch (saveIt)
                                            {
                                            case "y":
                                            case "Y":
                                                var info = $"{profId}, {courseId}";
                                                System.IO.File.AppendAllText
                                                    (@"courseProfAssignment.txt", info);
                                                Console.WriteLine("Professor course assignment was saved to coursesProfAssignment.txt");
                                                break;

                                            case "n":
                                            case "N":
                                                Console.WriteLine("Professor course assignment not saved to a file");
                                                break;

                                            default:
                                                Console.WriteLine("There was an error");
                                                break;
                                            }
                                        }
                                    }
                                }
                                break;

                            default:
                                break;

                            case '7':
                                foreach (var std in courseEnrolls)
                                {
                                    std.displEnrolledStudInfo();
                                }
                                break;
                            } //end switch ch2
                        } while (ch2 != '0');
                    }         // else



                    break;

                case '2':      //  Works for both grad & undergrad using student combined list
                case '3':
                    Console.WriteLine("\n \t Enter your Id:");
                    tId = Console.ReadLine();
                    Console.Write("\t Enter your Password: "******"\n Error: user Id or password are not correct!");
                    }
                    else
                    {
                        do
                        {
                            //"1- List My courses", "2- Enroll in a course","3- submit course Assesment"
                            ch2 = student.Menu();
                            switch (ch2)
                            {
                            case '1':
                                student.DisplayEnrollments();

                                break;

                            case '2':
                                Console.WriteLine("Enter Course Id: ");
                                int cId = int.Parse(Console.ReadLine());

                                Course selectedCourse = findCourse(coursesList, cId);
                                // TODO (5): check if stud already enrolled in the course before adding
                                if (selectedCourse != null)
                                {
                                    Enrollment tEn = new Enrollment(selectedCourse, student);
                                    courseEnrolls.Add(tEn);
                                    student.addEnrollment(tEn);
                                    selectedCourse.addEnrollment(tEn);
                                }
                                break;


                            case '3':
                                student.DisplayEnrollments();
                                Console.WriteLine("Select Course Id To submit Assessment for: ");

                                cId = int.Parse(Console.ReadLine());

                                //selectedCourse = findCourse(coursesList,  cId);
                                //
                                Enrollment e = student.getEnrolmentByCourseId(cId);
                                if (e != null)
                                {
                                    e.getCourse().displayCourseAssessments();
                                    Console.WriteLine("Select Assessment Id To submit: ");
                                    string assessId = Console.ReadLine().Trim();
                                    e.submitAssesment(assessId, "12/12/2018");
                                }
                                break;

                            case '4':
                                // TODO (6): Drop course, get cId, verify cId in student enrollments, then remove enrol.
                                Console.WriteLine("Drop Course-");
                                Console.Write("Enter the course ID");
                                var crsID  = Int32.Parse(Console.ReadLine());
                                var enroll = student.getEnrolmentByCourseId(crsID);
                                if (enroll != null)
                                {
                                    courseEnrolls.Remove(enroll);
                                    Console.WriteLine("\nThe Course has been dropped\n");
                                    break;
                                }
                                else
                                {
                                    Console.WriteLine("\nStudent not enrolled in course\n");
                                    break;
                                }
                            } // switch ch2
                        } while (ch2 != '0');
                    }         //else
                    break;

                case '4':     //prof

                    Console.WriteLine("\n \t Enter your Id:");
                    tId = Console.ReadLine();
                    Console.Write("\t Enter your Password: "******"\n Error: user Id or password are not correct!");
                    }
                    else
                    {
                        do
                        {
                            // 1- List my courses, 2- Add Assesment to course,3- Update student's Assesment points");
                            // 4- list students in a course
                            ch2 = prof.Menu();
                            switch (ch2)
                            {
                            case '1':
                                prof.displayCourses();
                                break;

                            case '2':
                                prof.displayCourses();
                                Console.WriteLine("Enter Course Id: ");
                                int cId = int.Parse(Console.ReadLine());

                                Course selectedCourse = findCourse(coursesList, cId);
                                // TODO (7): get assessment type: assignment, exam, proj,...
                                //         : then add assessment info
                                Console.Write("Enter assessment type: exam or assignment");
                                var assessType = Console.ReadLine();
                                switch (assessType)
                                {
                                case "exam":
                                    Console.WriteLine("Enter assesment information");
                                    Console.Write("Name = ");
                                    var asName = Console.ReadLine();
                                    Console.Write("Percentage = ");
                                    var percentage = float.Parse(Console.ReadLine());
                                    Console.WriteLine("Total Points = ");
                                    var totPoints = float.Parse(Console.ReadLine());
                                    Console.Write("Due on = ");
                                    var duedate = Console.ReadLine();
                                    Console.Write("Number of attempts = ");
                                    var numofAttempts = Int32.Parse(Console.ReadLine());

                                    selectedCourse.AddCourseAssesment(new Exam(asName, percentage, totPoints, duedate, numofAttempts));
                                    break;

                                case "assignment":
                                    if (selectedCourse != null)
                                    {
                                        Console.WriteLine("Enter Assessment info: ");
                                        Console.WriteLine("Id = ");
                                        string assesId = Console.ReadLine();
                                        Console.WriteLine("Weight = ");
                                        float aPercent = float.Parse(Console.ReadLine());
                                        Console.WriteLine("Descr = ");
                                        string asDescr = Console.ReadLine();
                                        Console.WriteLine("Points = ");
                                        float aPoints = float.Parse(Console.ReadLine());
                                        Console.WriteLine("Due on = ");
                                        string aDueDate = Console.ReadLine();
                                        Console.WriteLine("Late Pen = ");
                                        float latePen = float.Parse(Console.ReadLine());

                                        selectedCourse.AddCourseAssesment(new Assignment(assesId, aPercent, asDescr, aPoints, aDueDate, latePen));
                                    }
                                    break;



                                default:
                                    Console.WriteLine("There was an error");
                                    break;
                                }

                                //coursesList[0].AddCourseAssesmsnt(new Assignment("HW1",0.25f,"written assignment",200,"10/22/18",0.1f));
                                //coursesList[0].AddCourseAssesmsnt(new Exam("MT",0.50f, 200,"10/22/18",2));
                                //coursesList[0].AddCourseAssesmsnt(new Assignment("HW2",0.25f,"written assignment",300,"10/22/18",0.1f));

                                break;

                            case '3':
                                prof.displayCourses();
                                Console.WriteLine("Enter Course Id: ");
                                cId = int.Parse(Console.ReadLine());

                                selectedCourse = findCourse(coursesList, cId);

                                if (selectedCourse != null)
                                {
                                    selectedCourse.displayCourseStudents();
                                    Console.WriteLine("Select student name  ");
                                    //Console.WriteLine(" sName : ");
                                    string sName = Console.ReadLine().Trim();

                                    Student s = selectedCourse.getStudentByName(sName);

                                    Enrollment e = s.getEnrolmentByCourseId(cId);
                                    if (e != null)
                                    {
                                        e.getCourse().displayCourseAssessments();
                                        Console.WriteLine("Select Assessment Id To update: ");
                                        string         assessId       = Console.ReadLine().Trim();
                                        StudAssessment studAssessment = e.getStudAssessmentById(assessId);
                                        Console.WriteLine("Enter assessment Points :");
                                        float newPoints = float.Parse(Console.ReadLine());
                                        studAssessment.updateAssessmentPoints(newPoints);
                                    }
                                }
                                break;

                            case '4':
                                prof.displayCourses();
                                Console.WriteLine("Enter Course Id: ");
                                cId = int.Parse(Console.ReadLine());

                                selectedCourse = findCourse(coursesList, cId);

                                if (selectedCourse != null)
                                {
                                    selectedCourse.displayCourseStudents();
                                }
                                break;
                            } // switch ch2
                        } while (ch2 != '0');
                    }         //else
                    break;
                }// switch ch
            } while (ch != '0');
        }
示例#13
0
        static void Main(string[] args)
        {
            //Declaring new Grad Student List and Under Grad Student list
            List <GradStudent>      gradList      = new List <GradStudent>();
            List <UnderGradStudent> undergradList = new List <UnderGradStudent>();

            //extracts data from txt files
            string[] gradStudentsText      = System.IO.File.ReadAllLines(@"GradStudents.txt");
            string[] undergradStudentsText = System.IO.File.ReadAllLines(@"UnderGradSTudents.txt");

            //inputs data from string array into list
            foreach (string gradData in gradStudentsText)
            {
                string[] gradDATA = gradData.Split(',');
                // foreach(string a in gradDATA){
                //     Console.WriteLine(a);
                // }
                var newgraddata = new GradStudent(gradDATA[0], gradDATA[1], long.Parse(gradDATA[2]), gradDATA[3], float.Parse(gradDATA[4]), gradDATA[5], gradDATA[6], gradDATA[7], float.Parse(gradDATA[8]));
                gradList.Add(newgraddata);
            }
            foreach (string ugdata in undergradStudentsText)
            {
                string[] ugDATA         = ugdata.Split(',');
                var      newUnderudDATA = new UnderGradStudent(ugDATA[0], ugDATA[1], long.Parse(ugDATA[2]), ugDATA[3], float.Parse(ugDATA[4]), ugDATA[5], int.Parse(ugDATA[6]));
                undergradList.Add(newUnderudDATA);
            }

            //declaring variables
            bool   continuar = true;
            string compResponse;
            string TstdName;
            string TDOB;
            long   TID = 0;
            string TMjr;
            float  TGPA;
            string TprvDegree;
            string TprvUniversity;
            string TundrgdMjr;
            float  TundergdGPA;
            string TpvsHschool;
            float  TstdClass;

            //start menue
            while (continuar)
            {
                Console.WriteLine("Select a Task (Please Enter A Number)");
                Console.WriteLine("\t1. Add Grad Student \n\t2. Add Under Grad Student \n\t3. List All Grad Students");
                Console.WriteLine("\t4. List All Under Grad \n\t5. EXIT");
                var response = Console.ReadLine();
                switch (response)
                {
                //enter grad student
                case "1":
                    compResponse = "Add Grad Student";
                    Console.WriteLine("\tYou entered {0}", compResponse);
                    Console.WriteLine("Enter Student Name:");
                    TstdName = Console.ReadLine();
                    Console.WriteLine("Date of Birth:");
                    TDOB = Console.ReadLine();
                    Console.WriteLine("ID");
                    var respuesta = Console.ReadLine();
                    TID = testlong(respuesta);
                    Console.WriteLine("Major:");
                    TMjr = Console.ReadLine();
                    Console.WriteLine("Undergraduate GPA:");
                    respuesta = Console.ReadLine();
                    TGPA      = testfloat(respuesta);
                    Console.WriteLine("Previous Degree:");
                    TprvDegree = Console.ReadLine();
                    Console.WriteLine("Previous University:");
                    TprvUniversity = Console.ReadLine();
                    Console.WriteLine("Undergraduate Major:");
                    TundrgdMjr = Console.ReadLine();
                    Console.WriteLine("Undergraduate GPA:");
                    respuesta   = Console.ReadLine();
                    TundergdGPA = testfloat(respuesta);
                    gradList.Add(new GradStudent(TstdName, TDOB, TID, TMjr, TGPA, TprvDegree, TprvUniversity, TundrgdMjr, TundergdGPA));
                    Console.WriteLine("You entered {0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}", TstdName, TDOB, TID, TMjr, TGPA, TprvDegree, TprvUniversity, TundrgdMjr, TundergdGPA);
                    break;

                //enter under grad student
                case "2":
                    compResponse = "Add Under-Grad Student";
                    Console.WriteLine("\tYou entered {0}", compResponse);
                    Console.WriteLine("Enter Student Name:");
                    TstdName = Console.ReadLine();
                    Console.WriteLine("Date of Birth:");
                    TDOB = Console.ReadLine();
                    Console.WriteLine("ID");
                    respuesta = Console.ReadLine();
                    TID       = testlong(respuesta);
                    Console.WriteLine("Major:");
                    TMjr = Console.ReadLine();
                    Console.WriteLine("Undergraduate GPA:");
                    respuesta = Console.ReadLine();
                    TGPA      = testfloat(respuesta);
                    Console.WriteLine("Previous HighSchool:");
                    TpvsHschool = Console.ReadLine();
                    Console.WriteLine("Student Class: 1. Freshman, 2. Sophmore, 3. Junior, 4. Senior");
                    respuesta = Console.ReadLine();
                    TstdClass = (int)testfloat(respuesta);
                    undergradList.Add(new UnderGradStudent(TstdName, TDOB, TID, TMjr, TGPA, TpvsHschool, (int)TstdClass));
                    Console.WriteLine("You entered {0}, {1}, {2}, {3}, {4}, {5}, {6}", TstdName, TDOB, TID, TMjr, TGPA, TpvsHschool, TstdClass);                        break;

                //list grad students
                case "3":
                    compResponse = "List All Grad Students";
                    foreach (GradStudent stu in gradList)
                    {
                        stu.displayStdInfo();
                    }
                    Console.WriteLine("You entered {0}.", compResponse);
                    break;

                //list under grad students
                case "4":
                    compResponse = "List All Under Grad Students";
                    foreach (UnderGradStudent stu in undergradList)
                    {
                        stu.displayStdInfo();
                    }
                    Console.WriteLine("You entered {0}.", compResponse);
                    break;

                //exits program
                case "5":
                    continuar = false;
                    break;

                //catches erros
                default:
                    Console.WriteLine("Input is not readable.");
                    break;
                }
            }
        }
示例#14
0
        public static void Main(string[] args)
        {
            char             ch, ch2;
            bool             successLogin = false;
            GradStudent      st;
            UndergradStudent stu;
            var               admins        = new List <User>();
            List <Course>     coursesList   = new List <Course>();
            List <Enrollment> courseEnrolls = new List <Enrollment>();



            List <User> profList = new List <User>();
            List <User> gslist   = new List <User>();
            List <User> ugslist  = new List <User>();



            LoadUserData('G', gslist, "GsList.txt");
            LoadUserData('U', ugslist, "UGsList.txt");
            LoadUserData('P', profList, "profData.txt");
            LoadCourseData(coursesList, "coursesData.txt");
            LoadUserData('A', admins, "adminData.txt");

            List <User> students = new List <User>();

            students.AddRange(gslist);
            students.AddRange(ugslist);


            do
            {
                ch = LoginMenu();

                switch (ch)
                {
                case '1':

                    Console.WriteLine("\n \t Enter your Id:");
                    string tId = Console.ReadLine();
                    Console.Write("\t Enter your Password: "******"\n Error: user Id or password are not correct!");
                    }
                    else
                    {
                        do
                        {
                            //1- Add Grad student" , "2- Add undergrad student", "3- List All grad students",
                            //"4- List All undergrad students", "5- Add new course", "6- list students in course");
                            ch2 = admin.Menu();
                            switch (ch2)
                            {
                            //TODO (1): Add new Grad Student <<DONE>>
                            case '1':
                                Console.WriteLine("Please Enter an ID");
                                string Id = Console.ReadLine();
                                Console.WriteLine("Please Enter a Password");
                                string pswd = Console.ReadLine();
                                Console.WriteLine("Please Enter a Name");
                                string name = Console.ReadLine();
                                Console.WriteLine("Please Enter a Student ID");
                                string sID = Console.ReadLine();
                                Console.WriteLine("Please Enter a Date of Birth");
                                string doB = Console.ReadLine();
                                Console.WriteLine("Please Enter a Undergrad Department");
                                string uDept = Console.ReadLine();
                                Console.WriteLine("Please Enter a GPA");
                                string GPA = Console.ReadLine();
                                Console.WriteLine("Please Enter a Previous Degree");
                                string pDeg = Console.ReadLine();
                                Console.WriteLine("Please Enter a Previous University");
                                string pUni = Console.ReadLine();
                                Console.WriteLine("Please Enter a Graduate Department");
                                string GradDept = Console.ReadLine();
                                Console.WriteLine("Please Enter a Undergrad GPA");
                                string   uGPA          = Console.ReadLine();
                                string[] grad          = new string[] { Id, pswd, name, sID, doB, uDept, GPA, pDeg, pUni, GradDept, uGPA };
                                var      checkIfExists = findUser(gslist, Id);
                                if (checkIfExists != null)
                                {
                                    Console.WriteLine("They are already in the list");
                                    break;
                                }
                                else
                                {
                                    gslist.Add(st = new GradStudent(grad));
                                    Console.WriteLine("student added");
                                    break;
                                }

                            //TODO (2): Add new undergrad Student,
                            case '2':
                                Console.WriteLine("Please Enter an ID");
                                Id = Console.ReadLine();
                                Console.WriteLine("Please Enter a Password");
                                pswd = Console.ReadLine();
                                Console.WriteLine("Please Enter a Name");
                                name = Console.ReadLine();
                                Console.WriteLine("Please Enter a Student ID");
                                sID = Console.ReadLine();
                                Console.WriteLine("Please Enter a Date of Birth");
                                doB = Console.ReadLine();
                                Console.WriteLine("Please Enter a Undergrad Department");
                                uDept = Console.ReadLine();
                                Console.WriteLine("Please Enter a GPA");
                                GPA = Console.ReadLine();
                                Console.WriteLine("Please Enter a Highschool");
                                string highSchool = Console.ReadLine();
                                Console.WriteLine("Please Enter a Classification");
                                string   classification = Console.ReadLine();
                                string[] ugrad          = new string[] { Id, pswd, name, sID, doB, uDept, GPA, highSchool, classification };
                                var      checkIfExistsU = findUser(ugslist, Id);
                                if (checkIfExistsU != null)
                                {
                                    Console.WriteLine("They are already in the list");
                                    break;
                                }
                                else
                                {
                                    ugslist.Add(stu = new UndergradStudent(ugrad));
                                    Console.WriteLine("student added");
                                    break;
                                }

                            case '3':
                                foreach (GradStudent std in gslist)
                                {
                                    Console.WriteLine();
                                    std.DisplayStdInfo();
                                }
                                break;

                            case '4':
                                foreach (UndergradStudent std in ugslist)
                                {
                                    Console.WriteLine();
                                    std.DisplayStdInfo();
                                }
                                break;

                            case '5':         //TODO (3): Add new  course by asking Admin for course info., verify inputs 1st
                                              //        : ++ Save new list to File if admin agrees

                                // Test: Currently adding one specific course
                                coursesList.Add(new Course("Adv. Prog", 3312, 3));
                                //coursesList[0].professor = (Professor )profList[0];
                                break;

                            case '6':         //TODO (4): Assign course to prof by getting ProfId, courseId,
                                              //        : verify inputs, and prof doesnot have >3 courses
                                              //        : ++ Save new list to File, and make the code initialize prof-course-assignment list from a file

                                // Test: Currently Assign all courses to 1st prof in the list
                                foreach (var c in coursesList)
                                {
                                    c.professor = (Professor)profList[0];
                                    c.professor.addCourseToTeach(c);
                                }
                                break;

                            case '7':
                                foreach (var std in courseEnrolls)
                                {
                                    std.displEnrolledStudInfo();
                                }
                                break;
                            } //end switch ch2
                        } while (ch2 != '0');
                    }         // else



                    break;

                case '2':      //  Works for both grad & undergrad using student combined list
                case '3':
                    Console.WriteLine("\n \t Enter your Id:");
                    tId = Console.ReadLine();
                    Console.Write("\t Enter your Password: "******"\n Error: user Id or password are not correct!");
                    }
                    else
                    {
                        do
                        {
                            //"1- List My courses", "2- Enroll in a course","3- submit course Assesment"
                            ch2 = student.Menu();
                            switch (ch2)
                            {
                            case '1':
                                student.DisplayEnrollments();

                                break;

                            case '2':
                                Console.WriteLine("Enter Course Id: ");
                                int cId = int.Parse(Console.ReadLine());

                                Course selectedCourse = findCourse(coursesList, cId);
                                // TODO (5): check if stud already enrolled in the course before adding
                                if (selectedCourse != null)
                                {
                                    Enrollment tEn = new Enrollment(selectedCourse, student);
                                    courseEnrolls.Add(tEn);
                                    student.addEnrollment(tEn);
                                    selectedCourse.addEnrollment(tEn);
                                }
                                break;


                            case '3':
                                student.DisplayEnrollments();
                                Console.WriteLine("Select Course Id To submit Assessment for: ");

                                cId = int.Parse(Console.ReadLine());

                                //selectedCourse = findCourse(coursesList,  cId);
                                //
                                Enrollment e = student.getEnrolmentByCourseId(cId);
                                if (e != null)
                                {
                                    e.getCourse().displayCourseAssessments();
                                    Console.WriteLine("Select Assessment Id To submit: ");
                                    string assessId = Console.ReadLine().Trim();
                                    e.submitAssesment(assessId, "12/12/2018");
                                }
                                break;

                                //case '4':
                                // TODO (6): Drop course, get cId, verify cId in student enrollments, then remove enrol.
                            } // switch ch2
                        } while (ch2 != '0');
                    }         //else
                    break;

                case '4':     //prof

                    Console.WriteLine("\n \t Enter your Id:");
                    tId = Console.ReadLine();
                    Console.Write("\t Enter your Password: "******"\n Error: user Id or password are not correct!");
                    }
                    else
                    {
                        do
                        {
                            // 1- List my courses, 2- Add Assesment to course,3- Update student's Assesment points");
                            // 4- list students in a course
                            ch2 = prof.Menu();
                            switch (ch2)
                            {
                            case '1':
                                prof.displayCourses();
                                break;

                            case '2':
                                prof.displayCourses();
                                Console.WriteLine("Enter Course Id: ");
                                int cId = int.Parse(Console.ReadLine());

                                Course selectedCourse = findCourse(coursesList, cId);
                                // TODO (7): get assessment type: assignment, exam, proj,...
                                //         : then add assessment info
                                if (selectedCourse != null)
                                {
                                    Console.WriteLine("Enter Assessment info: ");
                                    Console.WriteLine("Id = ");
                                    string assesId = Console.ReadLine();
                                    Console.WriteLine("Weight = ");
                                    float aPercent = float.Parse(Console.ReadLine());
                                    Console.WriteLine("Descr = ");
                                    string asDescr = Console.ReadLine();
                                    Console.WriteLine("Points = ");
                                    float aPoints = float.Parse(Console.ReadLine());
                                    Console.WriteLine("Due on = ");
                                    string aDueDate = Console.ReadLine();
                                    Console.WriteLine("Late Pen = ");
                                    float latePen = float.Parse(Console.ReadLine());

                                    selectedCourse.AddCourseAssesment(new Assignment(assesId, aPercent, asDescr, aPoints, aDueDate, latePen));
                                }


                                //coursesList[0].AddCourseAssesmsnt(new Assignment("HW1",0.25f,"written assignment",200,"10/22/18",0.1f));
                                //coursesList[0].AddCourseAssesmsnt(new Exam("MT",0.50f, 200,"10/22/18",2));
                                //coursesList[0].AddCourseAssesmsnt(new Assignment("HW2",0.25f,"written assignment",300,"10/22/18",0.1f));

                                break;

                            case '3':
                                prof.displayCourses();
                                Console.WriteLine("Enter Course Id: ");
                                cId = int.Parse(Console.ReadLine());

                                selectedCourse = findCourse(coursesList, cId);

                                if (selectedCourse != null)
                                {
                                    selectedCourse.displayCourseStudents();
                                    Console.WriteLine("Select student name  ");
                                    //Console.WriteLine(" sName : ");
                                    string sName = Console.ReadLine().Trim();

                                    Student s = selectedCourse.getStudentByName(sName);

                                    Enrollment e = s.getEnrolmentByCourseId(cId);
                                    if (e != null)
                                    {
                                        e.getCourse().displayCourseAssessments();
                                        Console.WriteLine("Select Assessment Id To update: ");
                                        string         assessId       = Console.ReadLine().Trim();
                                        StudAssessment studAssessment = e.getStudAssessmentById(assessId);
                                        Console.WriteLine("Enter assessment Points :");
                                        float newPoints = float.Parse(Console.ReadLine());
                                        studAssessment.updateAssessmentPoints(newPoints);
                                    }
                                }
                                break;

                            case '4':
                                prof.displayCourses();
                                Console.WriteLine("Enter Course Id: ");
                                cId = int.Parse(Console.ReadLine());

                                selectedCourse = findCourse(coursesList, cId);

                                if (selectedCourse != null)
                                {
                                    selectedCourse.displayCourseStudents();
                                }
                                break;
                            } // switch ch2
                        } while (ch2 != '0');
                    }         //else
                    break;
                }// switch ch
            } while (ch != '0');
        }
        //find all undergraduate students, graduate students, faculty, and chairpersons
        //creates an instance of each class
        public void createOwlMemberList()
        {
            using (OleDbConnection connection = new OleDbConnection(strConnection))
            {
                try
                {
                    connection.Open();

                    using (OleDbCommand command1 = new OleDbCommand("SELECT OWLMEMBER.fldID, OWLMEMBER.fldName, OWLMEMBER.fldBirthDate, "
                                                                    + "STUDENT.fldMajor, STUDENT.fldGPA "
                                                                    + "FROM (OWLMEMBER INNER JOIN STUDENT ON OWLMEMBER.fldID = STUDENT.fldID);", connection))
                    {
                        OleDbDataReader reader = command1.ExecuteReader();
                        if (reader.HasRows)
                        {
                            while (reader.Read())
                            {
                                int      id      = reader.GetInt32(0);
                                string   name    = reader.GetString(1);
                                DateTime bday    = reader.GetDateTime(2);
                                string   major   = reader.GetString(3);
                                decimal  gpa     = reader.GetDecimal(4);
                                Student  student = new Student(id, name, bday, major, gpa);
                                //GlobalData.owlList.addToList(student);
                            }
                        }
                    }

                    using (OleDbCommand command2 = new OleDbCommand("SELECT OWLMEMBER.fldID, OWLMEMBER.fldName, OWLMEMBER.fldBirthDate, "
                                                                    + "STUDENT.fldMajor, STUDENT.fldGPA, "
                                                                    + "UNDERGRADUATESTUDENT.fldTuition, UNDERGRADUATESTUDENT.fldYear, UNDERGRADUATESTUDENT.fldCredits "
                                                                    + "FROM (OWLMEMBER INNER JOIN STUDENT ON OWLMEMBER.fldID = STUDENT.fldID) INNER JOIN UNDERGRADUATESTUDENT ON STUDENT.fldID = UNDERGRADUATESTUDENT.fldID;", connection))
                    {
                        OleDbDataReader reader = command2.ExecuteReader();
                        if (reader.HasRows)
                        {
                            while (reader.Read())
                            {
                                int              id      = reader.GetInt32(0);
                                string           name    = reader.GetString(1);
                                DateTime         bday    = reader.GetDateTime(2);
                                string           major   = reader.GetString(3);
                                decimal          gpa     = reader.GetDecimal(4);
                                decimal          tuition = reader.GetDecimal(5);
                                string           year    = reader.GetString(6);
                                int              credits = reader.GetInt32(7);
                                UndergradStudent UG      = new UndergradStudent(id, name, bday, major, gpa, tuition, year, credits);
                                //GlobalData.owlList.addToList(UG);
                            }
                        }
                    }
                    using (OleDbCommand command3 = new OleDbCommand("SELECT OWLMEMBER.fldID, OWLMEMBER.fldName,OWLMEMBER.fldBirthdate, "
                                                                    + "STUDENT.fldMajor, STUDENT.fldGPA, "
                                                                    + "GRADUATESTUDENT.fldDegreeProgram, GRADUATESTUDENT.fldStipend "
                                                                    + "FROM (OWLMEMBER INNER JOIN STUDENT ON OWLMEMBER.fldID = STUDENT.fldID) INNER JOIN GRADUATESTUDENT ON STUDENT.fldID = GRADUATESTUDENT.fldID;", connection))
                    {
                        OleDbDataReader reader = command3.ExecuteReader();
                        if (reader.HasRows)
                        {
                            while (reader.Read())

                            {
                                int         id      = reader.GetInt32(0);
                                string      name    = reader.GetString(1);
                                DateTime    bday    = reader.GetDateTime(2);
                                string      major   = reader.GetString(3);
                                decimal     gpa     = reader.GetDecimal(4);
                                string      program = reader.GetString(5);
                                decimal     stipend = reader.GetDecimal(6);
                                GradStudent GS      = new GradStudent(id, name, bday, major, gpa, program, stipend);
                                // GlobalData.owlList.addToList(GS);
                            }
                        }
                    }
                    using (OleDbCommand command4 = new OleDbCommand("SELECT OWLMEMBER.fldID, OWLMEMBER.fldName, OWLMEMBER.fldBirthDate, "
                                                                    + "FACULTY.fldDepartment, FACULTY.fldRank "
                                                                    + "FROM OWLMEMBER INNER JOIN FACULTY ON OWLMEMBER.fldID = FACULTY.fldId;", connection))
                    {
                        OleDbDataReader reader = command4.ExecuteReader();
                        if (reader.HasRows)
                        {
                            while (reader.Read())

                            {
                                int      id     = reader.GetInt32(0);
                                string   name   = reader.GetString(1);
                                DateTime bday   = reader.GetDateTime(2);
                                string   dept   = Convert.ToString(reader.GetTextReader(3));
                                string   rank   = Convert.ToString(reader.GetTextReader(4));
                                Faculty  member = new Faculty(id, name, bday, dept, rank);
                                //GlobalData.owlList.addToList(member);
                            }
                        }
                    }
                    using (OleDbCommand command5 = new OleDbCommand("SELECT OWLMEMBER.fldID, OWLMEMBER.fldName,OWLMEMBER.fldBirthdate, "
                                                                    + "FACULTY.fldDepartment, FACULTY.fldRank, CHAIRPERSON.fldStipend "
                                                                    + "FROM (OWLMEMBER INNER JOIN FACULTY ON OWLMEMBER.fldID = FACULTY.fldId) INNER JOIN CHAIRPERSON ON FACULTY.fldID = CHAIRPERSON.fldID;", connection))
                    {
                        OleDbDataReader reader = command5.ExecuteReader();
                        if (reader.HasRows)
                        {
                            while (reader.Read())

                            {
                                int         id      = reader.GetInt32(0);
                                string      name    = reader.GetString(1);
                                DateTime    bday    = reader.GetDateTime(2);
                                string      dept    = reader.GetString(3);
                                string      rank    = reader.GetString(4);
                                decimal     stipend = reader.GetDecimal(5);
                                Chairperson chair   = new Chairperson(id, name, bday, dept, rank, stipend);
                                //GlobalData.owlList.addToList(chair);
                            }
                        }
                    }
                    connection.Close();
                }
                catch (OleDbException ex)
                {
                    Console.Write("Error: " + ex.Message);
                    connection.Close();
                }
            }
        }
示例#16
0
 /// <summary>
 /// Create a new GradStudent object.
 /// </summary>
 /// <param name="ID">Initial value of Id.</param>
 /// <param name="firstName">Initial value of FirstName.</param>
 /// <param name="lastName">Initial value of LastName.</param>
 /// <param name="middleName">Initial value of MiddleName.</param>
 /// <param name="major">Initial value of Major.</param>
 public static GradStudent CreateGradStudent(int ID, string firstName, string lastName, string middleName, string major)
 {
     GradStudent gradStudent = new GradStudent();
     gradStudent.Id = ID;
     gradStudent.FirstName = firstName;
     gradStudent.LastName = lastName;
     gradStudent.MiddleName = middleName;
     gradStudent.Major = major;
     return gradStudent;
 }
示例#17
0
        public static void Main(string[] args)
        {
            char              ch, ch2;
            bool              successLogin = false;
            GradStudent       st;
            var               admins        = new List <User>();
            List <Course>     coursesList   = new List <Course>();
            List <Enrollment> courseEnrolls = new List <Enrollment>();



            List <User> profList = new List <User>();
            List <User> gslist   = new List <User>();
            List <User> ugslist  = new List <User>();



            LoadUserData('G', gslist, "GsList.txt");
            LoadUserData('U', ugslist, "UGsList.txt");
            LoadUserData('P', profList, "profData.txt");
            LoadCourseData(coursesList, "coursesData.txt");
            LoadUserData('A', admins, "adminData.txt");

            List <User> students = new List <User>();

            students.AddRange(gslist);
            students.AddRange(ugslist);


            do
            {
                ch = LoginMenu();

                switch (ch)
                {
                case '1':

                    Console.WriteLine("\n \t Enter your Id:");
                    string tId = Console.ReadLine();
                    Console.Write("\t Enter your Password: "******"\n Error: user Id or password are not correct!");
                    }
                    else
                    {
                        do
                        {
                            //1- Add Grad student" , "2- Add undergrad student", "3- List All grad students",
                            //"4- List All undergrad students", "5- Add new course", "6- list students in course");
                            ch2 = admin.Menu();
                            switch (ch2)
                            {
                            //TODO (1): Add new Grad Student
                            case '1':
                                //Get student info
                                Console.Write("\nEnter the graduate student's ID number: ");
                                string gradID = Console.ReadLine();
                                Console.Write("\nEnter the graduate student's password: "******"\nEnter the graduate student's name: ");
                                string gradStudentName = Console.ReadLine();
                                Console.Write("\nEnter the graduate student's GPA: ");
                                string gradStudentGPA = Console.ReadLine();
                                Console.Write("\nEnter the graduate student's date of birth: ");
                                string gradStudentDOB = Console.ReadLine();
                                Console.Write("\nEnter the graduate student's previous university: ");
                                string gradStudentPrevUni = Console.ReadLine();
                                Console.Write("\nEnter the graduate student's undergradutate GPA: ");
                                string gradStudentUnderGPA = Console.ReadLine();
                                break;
                                //Check to see if student exists
                                var gstudentCheck = findUser(gslist, gradID); //checking the id against students
                                if (gstudentCheck != null)                    //If student id already exists throw an error
                                {
                                    Console.WriteLine("\nError. A student with that ID already exists in the system.\n");
                                }
                                else
                                {
                                    //make a string for the GradStudent() function
                                    string[]    graduateStudent = new string[] { gradID, gradPassWord, gradStudentName, gradStudentGPA, gradStudentDOB, gradStudentPrevUni, gradStudentUnderGPA };
                                    GradStudent gstudent        = new GradStudent(graduateStudent);
                                    gslist.Add(gstudent);
                                }
                                break;

                            //TODO (2): Add new undergrad Student,
                            case '2':
                                //Get student info
                                Console.Write("\nEnter the undergraduate student's ID number: ");
                                string ugradID = Console.ReadLine();
                                Console.Write("\nEnter the undergraduate student's password: "******"\nEnter the undergraduate student's name: ");
                                string ugradStudentName = Console.ReadLine();
                                Console.Write("\nEnter the undergraduate student's GPA: ");
                                string ugradStudentGPA = Console.ReadLine();
                                Console.Write("\nEnter the undergraduate student's date of birth: ");
                                string ugradStudentDOB = Console.ReadLine();
                                Console.Write("\nEnter the undergraduate student's previous high school: ");
                                string ugradStudentPrevHS = Console.ReadLine();
                                Console.Write("\nEnter the undergraduate student's classification: ");
                                string ugradStudentClass = Console.ReadLine();
                                break;
                                //Check to see if student exists
                                var ugstudentCheck = findUser(gslist, gradID); //checking the id against students
                                if (ugstudentCheck != null)                    //If student id already exists throw an error
                                {
                                    Console.WriteLine("\nError. A student with that ID already exists in the system.\n");
                                }
                                else
                                {
                                    //make a string for the UndergradStudent() function
                                    string[]         undergraduateStudent = new string[] { ugradID, ugradPassWord, ugradStudentName, ugradStudentGPA, ugradStudentDOB, ugradStudentPrevHS, ugradStudentClass };
                                    UndergradStudent ugstudent            = new UndergradStudent(undergraduateStudent);
                                    ugslist.Add(ugstudent);
                                }
                                break;

                            case '3':
                                foreach (GradStudent std in gslist)
                                {
                                    Console.WriteLine();
                                    std.DisplayStdInfo();
                                }
                                break;

                            case '4':
                                foreach (UndergradStudent std in ugslist)
                                {
                                    Console.WriteLine();
                                    std.DisplayStdInfo();
                                }
                                break;

                            case '5':         //TODO (3): Add new  course by asking Admin for course info., verify inputs 1st
                                              //        : ++ Save new list to File if admin agrees
                                //Get input from user about course
                                Console.Write("\nEnter course's name: ");
                                string courseName = Console.ReadLine();
                                Console.Write("\nEnter course's ID: ");
                                int courseID = Convert.ToInt32(Console.ReadLine());
                                Console.Write("\nEnter amount of credits for this course: ");
                                var courseCreditsNum = Console.ReadLine();
                                //Check to see if the course already exists
                                var courseCheck = findCourse(coursesList, courseID); //checking the id against current courses
                                if (courseCheck != null)                             //If course id already exists throw an error
                                {
                                    Console.WriteLine("\nError. A course with that ID already exists in the system.\n");
                                }
                                else
                                {
                                    //make a string for the Course() function
                                    string   newCourseID  = Convert.ToString(courseID);
                                    string[] newCourse    = new string[] { courseName, newCourseID, courseCreditsNum };
                                    Course   addNewCourse = new Course(newCourse);
                                    coursesList.Add(addNewCourse);
                                }

                                // Test: Currently adding one specific course
                                // coursesList.Add(new Course("Adv. Prog", 3312, 3));
                                //coursesList[0].professor = (Professor )profList[0];
                                break;

                            case '6':         //TODO (4): Assign course to prof by getting ProfId, courseId,
                                              //        : verify inputs, and prof doesnot have >3 courses
                                              //        : ++ Save new list to File, and make the code initialize prof-course-assignment list from a file
                                //creating a loop so that the admin can correctly choose the professor and course id
                                string adminVerify = "N";
                                while (adminVerify != "Y")
                                {
                                    //Showing the admin the list of professors then making them chose by the professor ID
                                    Console.WriteLine("\nList of Professors");
                                    foreach (var p in profList)
                                    {
                                        string profID;
                                        Console.WriteLine($"Professor ID: {profID = p.getUid()}");
                                    }
                                    Console.Write("\nSelect a professor from the list above by typing the ID: ");
                                    string adminProfChoice = Console.ReadLine();
                                    //Checking that the selected professor exists
                                    Professor checkingProfSelection = (Professor)findUser(profList, adminProfChoice);
                                    //Showing the admin the list of courses then making them chose by the course ID
                                    Console.WriteLine("\nList of Courses");
                                    foreach (var c in coursesList)
                                    {
                                        int courseChoiceID;
                                        Console.WriteLine($"Course ID: {courseChoiceID= c.cId}");
                                    }
                                    Console.Write("\nSelect a course from the list above by typing the ID: ");
                                    string adminCourseChoice = Console.ReadLine();
                                    //Checking that the selected professor exists
                                    Course checkingCourseSelection = (Course)findCourse(coursesList, Convert.ToInt32(adminCourseChoice));
                                    Console.Write($"\nAre these choices correct? (Y or N)\n\tProfessor ID = {adminProfChoice}\n\tCourse ID = {adminCourseChoice}");
                                    adminVerify = Console.ReadLine();

                                    if (adminVerify == "Y")
                                    {
                                        Console.WriteLine("\nChecking to see if the selected professor has more than three courses....");
                                        int numProfCourses = 0;
                                        foreach (var c in coursesList)
                                        {
                                            if (c.professor.getUid() == adminProfChoice)
                                            {
                                                numProfCourses++;         //Counts number of courses the selected professor has
                                            }
                                        }
                                        if (numProfCourses > 3)
                                        {
                                            Console.WriteLine("\nThis professor already has 3 courses. Please try again.");
                                            adminVerify = "N";
                                        }
                                        else
                                        {
                                            Console.WriteLine("\nAssigning the course to the professor...");
                                            foreach (var c in coursesList)
                                            {
                                                if (c.cId == Convert.ToInt32(adminCourseChoice))
                                                {
                                                    c.professor = checkingProfSelection;
                                                    c.professor.addCourseToTeach(c);
                                                    Console.WriteLine("\nCourse successfully.");
                                                }
                                            }
                                        }
                                    }
                                }

                                // Test: Currently Assign all courses to 1st prof in the list
                                // foreach (var c in coursesList)
                                // {
                                //     c.professor = (Professor)profList[0];
                                //     c.professor.addCourseToTeach(c);
                                // }
                                break;

                            case '7':
                                foreach (var std in courseEnrolls)
                                {
                                    std.displEnrolledStudInfo();
                                }
                                break;
                            } //end switch ch2
                        } while (ch2 != '0');
                    }         // else



                    break;

                case '2':      //  Works for both grad & undergrad using student combined list
                case '3':
                    Console.WriteLine("\n \t Enter your Id:");
                    tId = Console.ReadLine();
                    Console.Write("\t Enter your Password: "******"\n Error: user Id or password are not correct!");
                    }
                    else
                    {
                        do
                        {
                            //"1- List My courses", "2- Enroll in a course","3- submit course Assesment"
                            ch2 = student.Menu();
                            switch (ch2)
                            {
                            case '1':
                                student.DisplayEnrollments();

                                break;

                            case '2':
                                Console.WriteLine("Enter Course Id: ");
                                int cId = int.Parse(Console.ReadLine());

                                Course selectedCourse = findCourse(coursesList, cId);
                                // TODO (5): check if stud already enrolled in the course before adding
                                Enrollment courseChecking;
                                courseChecking = student.getEnrolmentByCourseId(cId);
                                if (courseChecking != null)
                                {
                                    Console.WriteLine("/nStudent is already enrolled in this course.");
                                }
                                else
                                {
                                    if (selectedCourse != null)
                                    {
                                        Enrollment tEn = new Enrollment(selectedCourse, student);
                                        courseEnrolls.Add(tEn);
                                        student.addEnrollment(tEn);
                                        selectedCourse.addEnrollment(tEn);
                                    }
                                }
                                break;


                            case '3':
                                student.DisplayEnrollments();
                                Console.WriteLine("Select Course Id To submit Assessment for: ");

                                cId = int.Parse(Console.ReadLine());

                                //selectedCourse = findCourse(coursesList,  cId);
                                //
                                Enrollment e = student.getEnrolmentByCourseId(cId);
                                if (e != null)
                                {
                                    e.getCourse().displayCourseAssessments();
                                    Console.WriteLine("Select Assessment Id To submit: ");
                                    string assessId = Console.ReadLine().Trim();
                                    e.submitAssesment(assessId, "12/12/2018");
                                }
                                break;

                            case '4':
                                // TODO (6): Drop course, get cId, verify cId in student enrollments, then remove enrollment.
                                Console.WriteLine("Enter Course Id for course to drop: ");
                                int cDropId = int.Parse(Console.ReadLine());

                                Course selectedDropCourse = findCourse(coursesList, cDropId);
                                // TODO (5): check if stud already enrolled in the course before adding
                                Enrollment courseCheckingForDrop;
                                courseCheckingForDrop = student.getEnrolmentByCourseId(cDropId);
                                if (courseCheckingForDrop != null)
                                {
                                    courseEnrolls.Remove(courseCheckingForDrop);
                                    Console.WriteLine("\nStudent has been dropped from the course.");
                                }
                                else
                                {
                                    Console.WriteLine("\nStudent already not enrolled.");
                                }
                                break;
                            } // switch ch2
                        } while (ch2 != '0');
                    }         //else
                    break;

                case '4':     //prof

                    Console.WriteLine("\n \t Enter your Id:");
                    tId = Console.ReadLine();
                    Console.Write("\t Enter your Password: "******"\n Error: user Id or password are not correct!");
                    }
                    else
                    {
                        do
                        {
                            // 1- List my courses, 2- Add Assesment to course,3- Update student's Assesment points");
                            // 4- list students in a course
                            ch2 = prof.Menu();
                            switch (ch2)
                            {
                            case '1':
                                prof.displayCourses();
                                break;

                            case '2':
                                prof.displayCourses();
                                Console.WriteLine("Enter Course Id: ");
                                int cId = int.Parse(Console.ReadLine());

                                Course selectedCourse = findCourse(coursesList, cId);
                                // TODO (7): get assessment type: assignment, exam, proj,...
                                //         : then add assessment info
                                Console.Write("\nEnter the type of assesmment: 1 - assignment, 2 - exam");
                                string assesmentType = Console.ReadLine();
                                switch (assesmentType)
                                {
                                case "1":
                                    if (selectedCourse != null)
                                    {
                                        Console.WriteLine("Enter Assessment info: ");
                                        Console.WriteLine("Id = ");
                                        string assesId = Console.ReadLine();
                                        Console.WriteLine("Weight = ");
                                        float aPercent = float.Parse(Console.ReadLine());
                                        Console.WriteLine("Descr = ");
                                        string asDescr = Console.ReadLine();
                                        Console.WriteLine("Points = ");
                                        float aPoints = float.Parse(Console.ReadLine());
                                        Console.WriteLine("Due on = ");
                                        string aDueDate = Console.ReadLine();
                                        Console.WriteLine("Late Pen = ");
                                        float latePen = float.Parse(Console.ReadLine());

                                        selectedCourse.AddCourseAssesment(new Assignment(assesId, aPercent, asDescr, aPoints, aDueDate, latePen));
                                    }
                                    break;

                                case "2":
                                    if (selectedCourse != null)
                                    {
                                        Console.WriteLine("Enter Assessment info: ");
                                        Console.WriteLine("Exam Name = ");
                                        string examName = Console.ReadLine();
                                        Console.WriteLine("Exam Percentage = ");
                                        float examPercentage = float.Parse(Console.ReadLine());
                                        Console.WriteLine("Exam Points = ");
                                        float examPoints = float.Parse(Console.ReadLine());
                                        Console.WriteLine("Exam Due On = ");
                                        string examDueDate = Console.ReadLine();
                                        Console.WriteLine("Exam Number of Attempts = ");
                                        int examAttempts = int.Parse(Console.ReadLine());
                                        selectedCourse.AddCourseAssesment(new Exam(examName, examPercentage, examPoints, examDueDate, examAttempts));
                                    }
                                    break;
                                }


                                //coursesList[0].AddCourseAssesmsnt(new Assignment("HW1",0.25f,"written assignment",200,"10/22/18",0.1f));
                                //coursesList[0].AddCourseAssesmsnt(new Exam("MT",0.50f, 200,"10/22/18",2));
                                //coursesList[0].AddCourseAssesmsnt(new Assignment("HW2",0.25f,"written assignment",300,"10/22/18",0.1f));

                                break;

                            case '3':
                                prof.displayCourses();
                                Console.WriteLine("Enter Course Id: ");
                                cId = int.Parse(Console.ReadLine());

                                selectedCourse = findCourse(coursesList, cId);

                                if (selectedCourse != null)
                                {
                                    selectedCourse.displayCourseStudents();
                                    Console.WriteLine("Select student name  ");
                                    //Console.WriteLine(" sName : ");
                                    string sName = Console.ReadLine().Trim();

                                    Student s = selectedCourse.getStudentByName(sName);

                                    Enrollment e = s.getEnrolmentByCourseId(cId);
                                    if (e != null)
                                    {
                                        e.getCourse().displayCourseAssessments();
                                        Console.WriteLine("Select Assessment Id To update: ");
                                        string         assessId       = Console.ReadLine().Trim();
                                        StudAssessment studAssessment = e.getStudAssessmentById(assessId);
                                        Console.WriteLine("Enter assessment Points :");
                                        float newPoints = float.Parse(Console.ReadLine());
                                        studAssessment.updateAssessmentPoints(newPoints);
                                    }
                                }
                                break;

                            case '4':
                                prof.displayCourses();
                                Console.WriteLine("Enter Course Id: ");
                                cId = int.Parse(Console.ReadLine());

                                selectedCourse = findCourse(coursesList, cId);

                                if (selectedCourse != null)
                                {
                                    selectedCourse.displayCourseStudents();
                                }
                                break;
                            } // switch ch2
                        } while (ch2 != '0');
                    }         //else
                    break;
                }// switch ch
            } while (ch != '0');
        }
示例#18
0
        public static void Main(string[] args)
        {
            char              ch, ch2;
            bool              successLogin = false;
            GradStudent       st;
            var               admins        = new List <User>();
            List <Course>     coursesList   = new List <Course>();
            List <Enrollment> courseEnrolls = new List <Enrollment>();



            List <User> profList = new List <User>();
            List <User> gslist   = new List <User>();
            List <User> ugslist  = new List <User>();



            LoadUserData('G', gslist, "GsList.txt");
            LoadUserData('U', ugslist, "UGsList.txt");
            LoadUserData('P', profList, "profData.txt");
            LoadCourseData(coursesList, "coursesData.txt");
            LoadUserData('A', admins, "adminData.txt");

            List <User> students = new List <User>();

            students.AddRange(gslist);
            students.AddRange(ugslist);


            do
            {
                ch = LoginMenu();

                switch (ch)
                {
                case '1':

                    Console.WriteLine("\n \t Enter your Id:");
                    string tId = Console.ReadLine();
                    Console.Write("\t Enter your Password: "******"\n Error: user Id or password are not correct!");
                    }
                    else
                    {
                        do
                        {
                            //1- Add Grad student" , "2- Add undergrad student", "3- List All grad students",
                            //"4- List All undergrad students", "5- Add new course", "6- list students in course");
                            ch2 = admin.Menu();
                            switch (ch2)
                            {
                            //TODO (1): Add new Grad Student
                            case '1':
                                Console.WriteLine("Enter User ID: ");
                                string uid = Console.ReadLine();
                                Console.WriteLine("Enter Password: "******"Enter Student Name: ");
                                string sname = Console.ReadLine();
                                Console.WriteLine("Enter GPA: ");
                                string gpa = Console.ReadLine();
                                Console.WriteLine("Enter DoB: ");
                                string DoB = Console.ReadLine();
                                Console.WriteLine("Enter Previous University: ");
                                string PrevUniversity = Console.ReadLine();
                                Console.WriteLine("Enter Undergrad GPA: ");
                                string   ugGpa        = Console.ReadLine();
                                string[] inputStrings = new string[11] {
                                    uid, pw, sname, null, DoB, null, gpa, null, PrevUniversity, null, ugGpa
                                };
                                int existAlready = 0;
                                foreach (GradStudent g in gslist)
                                {
                                    if (g.getUid() == uid)
                                    {
                                        existAlready = 1;
                                    }
                                }
                                if (existAlready == 1)
                                {
                                    break;
                                }
                                GradStudent gradstudentk = new GradStudent(inputStrings);
                                break;

                            //TODO (2): Add new undergrad Student,
                            case '2':
                                Console.WriteLine("Enter User ID: ");
                                string uid2 = Console.ReadLine();
                                Console.WriteLine("Enter Password: "******"Enter Student Name: ");
                                string sname2 = Console.ReadLine();
                                Console.WriteLine("Enter GPA: ");
                                string gpa2 = Console.ReadLine();
                                Console.WriteLine("Enter DoB: ");
                                string DoB2 = Console.ReadLine();
                                Console.WriteLine("Enter High School: ");
                                string highschool = Console.ReadLine();
                                Console.WriteLine("Enter Class: ");
                                string   classif       = Console.ReadLine();
                                string[] inputStrings2 = new string[9] {
                                    uid2, pw2, sname2, null, DoB2, null, gpa2, highschool, classif
                                };
                                //File: uId, pw, sName, sID, DoB, Dept, GPA, HS, Class
                                //       0    1    2     3    4     5    6    7    8
                                int existAlready2 = 0;
                                foreach (UndergradStudent u in ugslist)
                                {
                                    if (u.getUid() == uid2)
                                    {
                                        existAlready = 1;
                                    }
                                }
                                if (existAlready2 == 1)
                                {
                                    break;
                                }
                                UndergradStudent ugradstudentk = new UndergradStudent(inputStrings2);
                                break;

                            case '3':
                                foreach (GradStudent std in gslist)
                                {
                                    Console.WriteLine();
                                    std.DisplayStdInfo();
                                }
                                break;

                            case '4':
                                foreach (UndergradStudent std in ugslist)
                                {
                                    Console.WriteLine();
                                    std.DisplayStdInfo();
                                }
                                break;

                            case '5':         //TODO (3): Add new  course by asking Admin for course info., verify inputs 1st
                                              //        : ++ Save new list to File if admin agrees
                                Console.WriteLine("Enter Course Name: ");
                                string coursename = Console.ReadLine();
                                Console.WriteLine("Enter Course ID: ");
                                int id = Convert.ToInt16(Console.ReadLine());
                                Console.WriteLine("Enter Credits: ");
                                int credits            = Convert.ToInt16(Console.ReadLine());
                                int coursealreadyexist = 0;
                                foreach (Course x in coursesList)
                                {
                                    if (x.cId == id)
                                    {
                                        coursealreadyexist = 1;
                                    }
                                }
                                if (coursealreadyexist == 1)
                                {
                                    break;
                                }
                                Course coursse = new Course(coursename, id, credits);
                                coursesList.Add(coursse);
                                // Test: Currently adding one specific course
                                //coursesList.Add(new Course("Adv. Prog", 3312, 3));
                                //coursesList[0].professor = (Professor )profList[0];
                                break;

                            case '6':         //TODO (4): Assign course to prof by getting ProfId, courseId,
                                              //        : verify inputs, and prof doesnot have >3 courses
                                              //        : ++ Save new list to File, and make the code initialize prof-course-assignment list from a file
                                foreach (Professor m in profList)
                                {
                                    Console.WriteLine(m.getUid());
                                }
                                Console.WriteLine("Enter prof ID: ");
                                int profid = Convert.ToInt16(Console.ReadLine());
                                foreach (Course f in coursesList)
                                {
                                    f.displayCourseInfo();
                                }
                                Console.WriteLine("Enter Course ID: ");
                                int courseId = Convert.ToInt16(Console.ReadLine());
                                foreach (Course x in coursesList)
                                {
                                    if (x.cId == courseId)
                                    {
                                        foreach (Professor p in profList)
                                        {
                                            if (Convert.ToInt16(p.getUid()) == profid)
                                            {
                                                x.professor = p;
                                                x.professor.addCourseToTeach(x);
                                            }
                                        }
                                    }
                                }
                                break;

                            /*
                             * // Test: Currently Assign all courses to 1st prof in the list
                             * foreach (var c in coursesList)
                             * {
                             *  c.professor = (Professor)profList[0];
                             *  c.professor.addCourseToTeach(c);
                             * }
                             * break;
                             */
                            case '7':
                                foreach (var std in courseEnrolls)
                                {
                                    std.displEnrolledStudInfo();
                                }
                                break;
                            } //end switch ch2
                        } while (ch2 != '0');
                    }         // else



                    break;

                case '2':      //  Works for both grad & undergrad using student combined list
                case '3':
                    Console.WriteLine("\n \t Enter your Id:");
                    tId = Console.ReadLine();
                    Console.Write("\t Enter your Password: "******"\n Error: user Id or password are not correct!");
                    }
                    else
                    {
                        do
                        {
                            //"1- List My courses", "2- Enroll in a course","3- submit course Assesment"
                            ch2 = student.Menu();
                            switch (ch2)
                            {
                            case '1':
                                student.DisplayEnrollments();

                                break;

                            case '2':
                                Console.WriteLine("Enter Course Id: ");
                                int cId = int.Parse(Console.ReadLine());

                                Course selectedCourse = findCourse(coursesList, cId);
                                // TODO (5): check if stud already enrolled in the course before adding
                                if (selectedCourse != null)
                                {
                                    foreach (Enrollment enrol in courseEnrolls)
                                    {
                                        if (enrol.getCourse() == selectedCourse)
                                        {
                                            if (enrol.getStudent() == student)
                                            {
                                                break;
                                            }
                                        }
                                    }
                                    Enrollment tEn = new Enrollment(selectedCourse, student);
                                    courseEnrolls.Add(tEn);
                                    student.addEnrollment(tEn);
                                    selectedCourse.addEnrollment(tEn);
                                }
                                break;


                            case '3':
                                student.DisplayEnrollments();
                                Console.WriteLine("Select Course Id To submit Assessment for: ");

                                cId = int.Parse(Console.ReadLine());

                                //selectedCourse = findCourse(coursesList,  cId);
                                //
                                Enrollment e = student.getEnrolmentByCourseId(cId);
                                if (e != null)
                                {
                                    e.getCourse().displayCourseAssessments();
                                    Console.WriteLine("Select Assessment Id To submit: ");
                                    string assessId = Console.ReadLine().Trim();
                                    e.submitAssesment(assessId, "12/12/2018");
                                }
                                break;

                            case '4':
                                Console.WriteLine("Enter Course ID: ");
                                int courseid = Convert.ToInt16(Console.ReadLine());
                                foreach (Enrollment encorl in courseEnrolls)
                                {
                                    if (encorl.getCourse().cId == courseid)
                                    {
                                        courseEnrolls.Remove(encorl);
                                    }
                                }
                                break;
                                // TODO (6): Drop course, get cId, verify cId in student enrollments, then remove enrol.
                            } // switch ch2
                        } while (ch2 != '0');
                    }         //else
                    break;

                case '4':     //prof

                    Console.WriteLine("\n \t Enter your Id:");
                    tId = Console.ReadLine();
                    Console.Write("\t Enter your Password: "******"\n Error: user Id or password are not correct!");
                    }
                    else
                    {
                        do
                        {
                            // 1- List my courses, 2- Add Assesment to course,3- Update student's Assesment points");
                            // 4- list students in a course
                            ch2 = prof.Menu();
                            switch (ch2)
                            {
                            case '1':
                                prof.displayCourses();
                                break;

                            case '2':
                                prof.displayCourses();
                                Console.WriteLine("Enter Course Id: ");
                                int cId = int.Parse(Console.ReadLine());

                                Course selectedCourse = findCourse(coursesList, cId);
                                // TODO (7): get assessment type: assignment, exam, proj,...
                                //         : then add assessment info
                                if (selectedCourse != null)
                                {
                                    Console.WriteLine("Enter Assessment info: ");
                                    Console.WriteLine("Enter 1 for Assignment, 2 for Exam: ");
                                    int choice = Convert.ToInt16(Console.ReadKey());
                                    if (choice == 1)
                                    {
                                        Console.WriteLine("Id = ");
                                        string assesId = Console.ReadLine();
                                        Console.WriteLine("Weight = ");
                                        float aPercent = float.Parse(Console.ReadLine());
                                        Console.WriteLine("Descr = ");
                                        string asDescr = Console.ReadLine();
                                        Console.WriteLine("Points = ");
                                        float aPoints = float.Parse(Console.ReadLine());
                                        Console.WriteLine("Due on = ");
                                        string aDueDate = Console.ReadLine();
                                        Console.WriteLine("Late Pen = ");
                                        float latePen = float.Parse(Console.ReadLine());

                                        selectedCourse.AddCourseAssesment(new Assignment(assesId, aPercent, asDescr, aPoints, aDueDate, latePen));
                                    }
                                    if (choice == 2)
                                    {
                                        Console.WriteLine("Id = ");
                                        string assesId = Console.ReadLine();
                                        Console.WriteLine("Weight = ");
                                        float aPercent = float.Parse(Console.ReadLine());
                                        Console.WriteLine("Points = ");
                                        float aPoints = float.Parse(Console.ReadLine());
                                        Console.WriteLine("Due on = ");
                                        string aDueDate = Console.ReadLine();
                                        Console.WriteLine("Att Pen = ");
                                        int att = Convert.ToInt16(Console.ReadLine());

                                        selectedCourse.AddCourseAssesment(new Exam(assesId, aPercent, aPoints, aDueDate, att));
                                    }
                                }


                                //coursesList[0].AddCourseAssesmsnt(new Assignment("HW1",0.25f,"written assignment",200,"10/22/18",0.1f));
                                //coursesList[0].AddCourseAssesmsnt(new Exam("MT",0.50f, 200,"10/22/18",2));
                                //coursesList[0].AddCourseAssesmsnt(new Assignment("HW2",0.25f,"written assignment",300,"10/22/18",0.1f));

                                break;

                            case '3':
                                prof.displayCourses();
                                Console.WriteLine("Enter Course Id: ");
                                cId = int.Parse(Console.ReadLine());

                                selectedCourse = findCourse(coursesList, cId);

                                if (selectedCourse != null)
                                {
                                    selectedCourse.displayCourseStudents();
                                    Console.WriteLine("Select student name  ");
                                    //Console.WriteLine(" sName : ");
                                    string sName = Console.ReadLine().Trim();

                                    Student s = selectedCourse.getStudentByName(sName);

                                    Enrollment e = s.getEnrolmentByCourseId(cId);
                                    if (e != null)
                                    {
                                        e.getCourse().displayCourseAssessments();
                                        Console.WriteLine("Select Assessment Id To update: ");
                                        string         assessId       = Console.ReadLine().Trim();
                                        StudAssessment studAssessment = e.getStudAssessmentById(assessId);
                                        Console.WriteLine("Enter assessment Points :");
                                        float newPoints = float.Parse(Console.ReadLine());
                                        studAssessment.updateAssessmentPoints(newPoints);
                                    }
                                }
                                break;

                            case '4':
                                prof.displayCourses();
                                Console.WriteLine("Enter Course Id: ");
                                cId = int.Parse(Console.ReadLine());

                                selectedCourse = findCourse(coursesList, cId);

                                if (selectedCourse != null)
                                {
                                    selectedCourse.displayCourseStudents();
                                }
                                break;
                            } // switch ch2
                        } while (ch2 != '0');
                    }         //else
                    break;
                }// switch ch
            } while (ch != '0');
        }