Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.IO;
- //using System.Windows.Forms;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- // Pag di siya nag-reference sa using System.Windows.Forms, all you need to do is just go to Project > Add Windows Form.
- /*
- * MACHINE PROBLEM: EnrollIt
- * For IT111P - OOP 1 - A54
- * Lajato, Arciaga, Tangunan
- */
- namespace IT111P_MP_EnrRollIT
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.Title = "EnrollIt - Academic Enrollment";
- List<Student> students = new List<Student>();
- List<Course> courses = new List<Course>() {
- new Course() { CourseCode = "COM210", CourseName = "Communication Arts", CourseCost = 1001, Students = new List<Student>() }, // [0]
- new Course() { CourseCode = "COM150", CourseName = "Radio and Television", CourseCost = 1008, Students = new List<Student>() }, // [1]
- new Course() { CourseCode = "MMA101", CourseName = "Intro to Multimedia", CourseCost = 1004, Students = new List<Student>() }, // [2]
- new Course() { CourseCode = "MMA160", CourseName = "Audio/Video Production", CourseCost = 1018, Students = new List<Student>() }, // [3]
- new Course() { CourseCode = "CS101", CourseName = "Introduction to CS", CourseCost = 1010, Students = new List<Student>() }, // [4]
- new Course() { CourseCode = "CS152", CourseName = "Human-Computer Interaction", CourseCost = 1024, Students = new List<Student>() }, // [5]
- new Course() { CourseCode = "IT111P", CourseName = "C# Programming", CourseCost = 1012, Students = new List<Student>() }, // [6]
- new Course() { CourseCode = "IT112P", CourseName = "Windows Forms", CourseCost = 1016, Students = new List<Student>() }, // [7]
- new Course() { CourseCode = "MATH004", CourseName = "Quick Maths", CourseCost = 1006, Students = new List<Student>() }, // [8]
- new Course() { CourseCode = "MATH022", CourseName = "Calculus", CourseCost = 1008, Students = new List<Student>() }, // [9]
- new Course() { CourseCode = "MATH025", CourseName = "Theoretical Mathematics", CourseCost = 1014, Students = new List<Student>() }, // [10]
- new Course() { CourseCode = "MEC101", CourseName = "Mechanics", CourseCost = 1016, Students = new List<Student>() }, // [11]
- new Course() { CourseCode = "ECE101", CourseName = "Circuits", CourseCost = 1022, Students = new List<Student>() }, // [12]
- new Course() { CourseCode = "DRAW022", CourseName = "Drawing for Architecture", CourseCost = 1020, Students = new List<Student>() } // [13]
- };
- List<Curriculum> curricula = new List<Curriculum>() {
- new Curriculum() { CourseProgram = "IT", Courses = new List<Course>(){ courses[0], courses[4], courses[5], courses[6], courses[7], courses[8], courses[9] } },
- new Curriculum() { CourseProgram = "CS", Courses = new List<Course>(){ courses[0], courses[4], courses[5], courses[6], courses[7], courses[8], courses[9] } },
- new Curriculum() { CourseProgram = "MMA", Courses = new List<Course>(){ courses[0], courses[2], courses[3], courses[4], courses[8] } },
- new Curriculum() { CourseProgram = "COMM", Courses = new List<Course>(){ courses[0], courses[1], courses[2], courses[3], courses[4], courses[8] } },
- new Curriculum() { CourseProgram = "ME", Courses = new List<Course>(){ courses[0], courses[4], courses[8], courses[9], courses[10], courses[11] } },
- new Curriculum() { CourseProgram = "CPE", Courses = new List<Course>(){ courses[0], courses[2], courses[4], courses[6], courses[8], courses[9], courses[10], courses[12] } },
- new Curriculum() { CourseProgram = "ECE", Courses = new List<Course>(){ courses[0], courses[2], courses[6], courses[8], courses[9], courses[10], courses[12] } },
- new Curriculum() { CourseProgram = "AR", Courses = new List<Course>(){ courses[0], courses[2], courses[6], courses[8], courses[9], courses[10], courses[13] } }
- };
- int IDcount = 0;
- // MessageBox.Show("Welcome to EnrollIt.!", "EnrollIt");
- MainMenu(students, courses, curricula, ref IDcount);
- Console.ReadKey();
- }
- static void MainMenu(List<Student> students, List<Course> courses, List<Curriculum> curricula, ref int ic)
- {
- int input = ' '; int sid = 0, co = 0;
- do
- {
- Console.Clear();
- Console.WriteLine
- ("Welcome to EnrollIt.!" + "\n\n" +
- "[1] Register Student\n" +
- "[2] View Student Info\n" +
- "[3] View Curriculum\n" +
- "[4] Enroll in a course\n" +
- "[5] Show class list\n" +
- "[6] View Enrolled Subjects\n" +
- "[7] View Account Balances\n" +
- "[8] Pay account balances\n" + "\n" +
- "[9] Remove A Student From A course\n" +
- "[10] Remove A Student\n" +
- "[11] Admin's Menu\n"+
- "[0] Quit\n");
- Console.Write("Enter choice: ");
- try
- {
- input = int.Parse(Console.ReadLine());
- switch (input)
- {
- case 1:
- // Register Student
- Console.WriteLine("Register Student");
- EnterStudent(students, curricula, ref ic);
- break;
- case 2:
- // View Student Info
- Console.WriteLine("View Student Info");
- ViewStudentInfo(students);
- break;
- case 3:
- // View Curriculum
- Console.WriteLine("View Curriculum");
- ViewCurriculum(students, curricula, ref sid, ref co);
- break;
- case 4:
- // Enroll in a Course
- Console.WriteLine("Enroll in a Course");
- EnrollInCourse(students, courses, curricula, ref sid, ref co);
- break;
- case '+':
- // Evaluate course grades
- Console.WriteLine("Evaluate course grades");
- break;
- case 5:
- // Show class list
- Console.WriteLine("Show class list");
- ShowClassList(courses, curricula);
- break;
- case 6:
- // View Enrolled Subjects
- Console.WriteLine("View Enrolled Subjects");
- ViewEnrolledClasses(students);
- break;
- case 7:
- // View account balances
- Console.WriteLine("View account balances");
- ViewPaymentInfo(students);
- break;
- case 8:
- // Pay account balances
- Console.WriteLine("Pay account balances");
- PayBalances(students);
- break;
- case 9:
- Console.WriteLine("Remove A Student from a course");
- RemoveStudentFromACourse(students, courses);
- break;
- case '*':
- Console.WriteLine("Show available courses");
- ShowCourses(courses, curricula);
- break;
- case 10:
- Console.WriteLine("Remove a student");
- RemoveStudent(students);
- break;
- case 11:
- Console.WriteLine("Admin's Menu");
- AdminsMenu(students,courses,curricula);
- break;
- case '0':
- // Quit
- Console.Write("Thank you. Have a nice day.! :) ");
- Console.ReadKey();
- Environment.Exit(0);
- break;
- default:
- Console.Write("Invalid key entered: {0} ", input);
- break;
- }
- Console.ReadKey();
- }
- catch (Exception x)
- {
- Console.WriteLine("Opps: {0}\n{1}", x.GetType(), x.Message);
- Console.ReadKey();
- }
- } while (input != '0');
- }
- static void AdminsMenu(List<Student> students,List<Course> courses,List<Curriculum> curricula)
- {
- string username = "Admin";
- string password = "it111p";
- string user, pass;
- bool check = false;
- do
- {
- Console.WriteLine("Login");
- Console.Write("Username: ");
- user = Console.ReadLine();
- Console.Write("Password: ");
- pass = Console.ReadLine();
- if (user == username && pass == password)
- {
- Console.WriteLine("You have been logged in.");
- Console.ReadKey();
- Console.Clear();
- check = true;
- }
- else
- {
- Console.WriteLine("Incorrect Username & Password.");
- Console.ReadKey();
- Console.Clear();
- }
- } while (user != username && pass != password);
- if(check==true)
- {
- int choice1;
- do
- {
- Console.WriteLine("[1] Add Course");
- Console.WriteLine("[2] Add Course to curriculum");
- Console.WriteLine("[3] Exit");
- Console.Write("Select A Choice: ");
- choice1 = int.Parse(Console.ReadLine());
- if (choice1 == 1)
- {
- string newCourseCode = " ";
- string newCourseName = " ";
- double courseCost = 0;
- Console.Write("Add New Course Code: ");
- newCourseCode = Console.ReadLine();
- Console.Write("Add new Course Name: ");
- newCourseName = Console.ReadLine();
- Console.Write("Add new Course Cost: ");
- courseCost = int.Parse(Console.ReadLine());
- courses.Add(new Course() { CourseCode = newCourseCode, CourseName = newCourseName, CourseCost = courseCost, Students = new List<Student>() });
- Console.WriteLine("Course Added!");
- Console.Clear();
- }
- if (choice1 == 2)
- {
- for (int i = 0; i < curricula.Count; i++)
- {
- Console.WriteLine("[{0}] {1} ", i, curricula[i].CourseProgram);
- }
- Console.Write("Select A program: ");
- int selectedProg = int.Parse(Console.ReadLine());
- Console.Clear();
- for (int j = 0; j < courses.Count; j++)
- {
- Console.WriteLine("[{0}] {1} - {2}", j, courses[j].CourseCode, courses[j].CourseName);
- }
- Console.Write("Select A course to be added in " + curricula[selectedProg].CourseProgram);
- int selectedCourse = int.Parse(Console.ReadLine());
- curricula[selectedProg].Courses.Add(courses[selectedCourse]);
- Console.WriteLine("Course successfully added to the program!");
- Console.ReadKey();
- Console.Clear();
- }
- } while (choice1!=3);
- }
- }
- static void RemoveStudentFromACourse(List<Student> students,List<Course> courses)
- {
- int enterStudID = EnterStudentID(students);
- int count = 0;
- int selectedCourse = 0;
- for (int i = 0; i < students.Count; i++)
- {
- if (students[i].StudentId == enterStudID)
- {
- break;
- }
- count++;
- }
- Console.WriteLine("Available Courses: ");
- for (int i = 0; i < courses.Count; i++)
- {
- Console.WriteLine("[{0}] {1} - {2}", i, courses[i].CourseCode, courses[i].CourseName);
- }
- Console.Write("Select A course: ");
- selectedCourse = int.Parse(Console.ReadLine());
- courses[selectedCourse].Students.RemoveAt(count);
- Console.WriteLine("Student Successfully removed!");
- }
- static void RemoveStudent(List<Student>students)
- {
- Console.WriteLine("[1]Remove Student");
- int enterStudID = EnterStudentID(students);
- int count = 0;
- for (int i = 0; i < students.Count; i++)
- {
- if (students[i].StudentId == enterStudID)
- {
- break;
- }
- count++;
- }
- students.RemoveAt(count);
- Console.WriteLine("Student Successfully Removed!");
- }
- static void EnterStudent(List<Student> s, List<Curriculum> ca, ref int c)
- {
- string inputName;
- int yrLvl, sNum, inProg;
- Console.Write("Enter name: ");
- inputName = Console.ReadLine();
- for (int i = 0; i < ca.Count; i++)
- {
- Console.Write("[{0}] {1} ", i, ca[i].CourseProgram);
- }
- Console.Write("\nEnter program: ");
- inProg = int.Parse(Console.ReadLine());
- Console.Write("Enter year level: ");
- yrLvl = int.Parse(Console.ReadLine());
- sNum = ((DateTime.Now.Year) * 1000) + (++c);
- s.Add(new Student() { Name = inputName, CourseProgram = ca[inProg].CourseProgram, CPNum = inProg, YearLevel = yrLvl, StudentId = sNum, Courses = new List<Course>(), Payment = new Payment() });
- Console.Write("Student added.");
- }
- static void ViewStudentInfo(List<Student> students)
- {
- FileStream file = new FileStream(@"studentlist.txt", FileMode.Create, FileAccess.Write);
- StreamWriter writer = new StreamWriter(file);
- Console.Clear();
- Console.WriteLine("List of Students: ");
- writer.WriteLine("List of Students: ");
- Console.WriteLine(("Name").PadRight(36) + "\t" + ("StudentNumber").PadRight(10) + "\t" + ("YearLevel").PadRight(10) + "\t" + ("CourseProgram").PadRight(8));
- writer.WriteLine(("Name").PadRight(36) + "\t" + ("StudentNumber").PadRight(10) + "\t" + ("YearLevel").PadRight(10) + "\t" + ("CourseProgram").PadRight(8));
- foreach (var stud in students)
- {
- Console.WriteLine("{0}\t{1}\t{2}\t{3}", stud.Name.PadRight(36), Convert.ToString(stud.StudentId).PadRight(10),
- Convert.ToString(stud.YearLevel).PadRight(10), stud.CourseProgram.PadRight(8));
- writer.WriteLine("{0}\t{1}\t{2}\t{3}", stud.Name.PadRight(36), Convert.ToString(stud.StudentId).PadRight(10),
- Convert.ToString(stud.YearLevel).PadRight(10), stud.CourseProgram.PadRight(8));
- }
- writer.Close();
- file.Close();
- }
- static void ShowCourses(List<Course> courses, List<Curriculum> curricula)
- {
- Console.WriteLine("Available Courses: ");
- for (int i = 0; i < courses.Count; i++)
- Console.WriteLine("[{0}] {1} - {2}", i, courses[i].CourseCode, courses[i].CourseName);
- }
- static void ViewCurriculum(List<Student> students, List<Curriculum> curricula, ref int sn, ref int co)
- {
- sn = EnterStudentID(students);
- if (sn == 0)
- return;
- co = 0;
- for (int i = 0; i < students.Count; i++)
- {
- if (students[i].StudentId == sn)
- {
- break;
- }
- co++;
- }
- Console.WriteLine("Available Courses: ");
- for (int i = 0; i < curricula[students[co].CPNum].Courses.Count; i++)
- Console.WriteLine("[{0}] {1} - {2}", i, curricula[students[co].CPNum].Courses[i].CourseCode, curricula[students[co].CPNum].Courses[i].CourseName);
- }
- static void EnrollInCourse(List<Student> students, List<Course> courses, List<Curriculum> curricula, ref int sn, ref int co)
- {
- // int count = 0;
- // int enterStudID = EnterStudentID(students);
- // if (enterStudID == 0)
- // return;
- ViewCurriculum(students, curricula, ref sn, ref co);
- if (sn == 0)
- return;
- // ShowCourses(courses, curricula);
- Console.Write("Enter course: ");
- int selectedCourse = int.Parse(Console.ReadLine());
- bool check1 = true;
- // count = 0;
- co = 0;
- for (int i = 0; i < curricula[students[co].CPNum].Courses[selectedCourse].Students.Count; i++)
- {
- if (sn == curricula[students[co].CPNum].Courses[selectedCourse].Students[i].StudentId)
- {
- Console.WriteLine("Student is already enrolled in this course!");
- check1 = false;
- return;
- }
- }
- if (check1 == true)
- {
- for (int i = 0; i < students.Count; i++)
- {
- if (students[i].StudentId == sn)
- {
- break;
- }
- co++;
- }
- students[co].Payment.TotalPayable += courses[selectedCourse].CourseCost;//Display cost
- students[co].Payment.Balance += courses[selectedCourse].CourseCost;//course cost
- curricula[students[co].CPNum].Courses[selectedCourse].Students.Add(students[co]); // <-- Fix this
- // students[co].Courses.Add(courses[selectedCourse]); // <-- Scrap this
- students[co].Courses.Add(curricula[students[co].CPNum].Courses[selectedCourse]); // <-- Keep this
- // curricula[students[co].CPNum].Courses[selectedCourse]
- Console.WriteLine("Course added.!");
- }
- }
- static void ShowClassList(List<Course> courses, List<Curriculum> curricula)
- {
- FileStream file = new FileStream(@"classlist.txt", FileMode.Create, FileAccess.Write);
- StreamWriter writer = new StreamWriter(file);
- Console.Clear();
- ShowCourses(courses, curricula);
- Console.Write("Enter course: ");
- int selectedCourse = int.Parse(Console.ReadLine());
- Console.WriteLine("Class List");
- writer.WriteLine("Class List");
- Console.WriteLine("{0}: {1}", courses[selectedCourse].CourseCode, courses[selectedCourse].CourseName);
- writer.WriteLine("{0}: {1}", courses[selectedCourse].CourseCode, courses[selectedCourse].CourseName);
- Console.WriteLine(("Name").PadRight(36) + "\t" + ("StudentNumber").PadRight(10) + "\t" + ("YearLevel").PadRight(10) + "\t" + ("CourseProgram").PadRight(8));
- writer.WriteLine(("Name").PadRight(36) + "\t" + ("StudentNumber").PadRight(10) + "\t" + ("YearLevel").PadRight(10) + "\t" + ("CourseProgram").PadRight(8));
- int count = 1;
- foreach (var st in courses[selectedCourse].Students)
- {
- Console.WriteLine("[{4}]{0}\t{1}\t{2}\t{3}", st.Name.PadRight(36), Convert.ToString(st.StudentId).PadRight(10),
- Convert.ToString(st.YearLevel).PadRight(10), st.CourseProgram.PadRight(8),count);
- writer.WriteLine("{0}\t{1}\t{2}\t{3}", st.Name.PadRight(36), Convert.ToString(st.StudentId).PadRight(10),
- Convert.ToString(st.YearLevel).PadRight(10), st.CourseProgram.PadRight(8));
- count++;
- }
- writer.Close();
- file.Close();
- }
- static void ViewEnrolledClasses(List<Student> students)
- {
- int enterStudID = EnterStudentID(students);
- if (enterStudID == 0)
- return;
- int count = 0;
- for (int i = 0; i < students.Count; i++)
- {
- if (students[i].StudentId == enterStudID)
- {
- break;
- }
- count++;
- }
- Console.WriteLine("Enrolled in: ");
- foreach (var s in students[count].Courses)
- Console.WriteLine("{0} - {1}", s.CourseCode, s.CourseName);
- }
- static void ViewPaymentInfo(List<Student> students)
- {
- FileStream file = new FileStream(@"ecm.txt", FileMode.Create, FileAccess.Write);
- StreamWriter writer = new StreamWriter(file);
- int enterStudID = EnterStudentID(students);
- if (enterStudID == 0)
- return;
- int count = 0;
- for (int i = 0; i < students.Count; i++)
- {
- if (students[i].StudentId == enterStudID)
- {
- break;
- }
- count++;
- }
- writer.WriteLine("Certificate of Matriculation");
- writer.WriteLine("Name: {0} \t ID: {1} \t Program: {2} \t Year: {3}",
- students[count].Name, students[count].StudentId, students[count].CourseProgram, students[count].YearLevel);
- Console.WriteLine("Enrolled in: ");
- foreach (var s in students[count].Courses)
- {
- Console.WriteLine("{0} - {1} - {2}", s.CourseCode, s.CourseName, s.CourseCost);
- writer.WriteLine("{0} - {1} - {2}", s.CourseCode, s.CourseName, s.CourseCost);
- }
- Console.WriteLine("Total amount payable: {0}", students[count].Payment.TotalPayable);
- writer.WriteLine("Total amount payable: {0}", students[count].Payment.TotalPayable);
- Console.WriteLine("Total Amount Balance left: {0}", students[count].Payment.Balance);
- writer.Close();
- file.Close();
- }
- static void PayBalances(List<Student> students)
- {
- FileStream file = new FileStream(@"receipt.txt", FileMode.Create, FileAccess.Write);
- StreamWriter writer = new StreamWriter(file);
- double amount = 0, change = 0, topay = 0;
- int enterStudID = EnterStudentID(students);
- if (enterStudID == 0)
- return;
- int count = 0;
- writer.WriteLine("Official Receipt");
- for (int i = 0; i < students.Count; i++)
- {
- if (students[i].StudentId == enterStudID)
- {
- break;
- }
- count++;
- }
- if (students[count].Payment.Balance <= 0)
- {
- Console.WriteLine("No balance left!");
- return;
- }
- else
- {
- topay = students[count].Payment.Balance;
- Console.WriteLine("To pay: {0}", topay);
- Console.Write("Enter Payment: ");
- amount = int.Parse(Console.ReadLine());
- writer.WriteLine("Name: {0} \t ID: {1} \t Program: {2} \t Year: {3}",
- students[count].Name, students[count].StudentId, students[count].CourseProgram, students[count].YearLevel);
- change = amount - students[count].Payment.Balance;
- students[count].Payment.Balance -= amount;
- Console.WriteLine("Amount Paid: " + amount);
- Console.WriteLine("Change: " + change);
- writer.WriteLine("Amount Due: " + topay);
- writer.WriteLine("Amount Paid: " + amount);
- writer.WriteLine("Change: " + change);
- if (students[count].Payment.Balance <= 0)
- {
- students[count].Payment.Balance = 0;
- Console.WriteLine("Balance Left: {0}", students[count].Payment.Balance);
- }
- else
- {
- Console.WriteLine("Balance Left: " + students[count].Payment.Balance);
- }
- }
- writer.Close();
- file.Close();
- }
- static int EnterStudentID(List<Student> students)
- {
- int enterStudID;
- string name = " ";
- int YearLevel = ' ';
- string CourseProgram = " ";
- int studID = ' ';
- char choice = ' ';
- bool check = false;
- do
- {
- Console.Write("Enter Student ID: ");
- enterStudID = int.Parse(Console.ReadLine());
- for (int i = 0; i < students.Count; i++)
- {
- if (students[i].StudentId == enterStudID)
- {
- check = true;
- }
- }
- if (check == false)
- {
- Console.WriteLine("Student not found!");
- Console.Write("Do you want to try again [Y/N]? ");
- choice = char.Parse(Console.ReadLine());
- }
- if (check == true)
- {
- break;
- }
- } while (choice != 'n');
- if (choice == 'n')
- return 0;
- if (check == true)
- {
- for (int i = 0; i < students.Count; i++)
- {
- if (students[i].StudentId == enterStudID)
- {
- studID = enterStudID;
- name = students[i].Name;
- YearLevel = students[i].YearLevel;
- CourseProgram = students[i].CourseProgram;
- break;
- }
- }
- Console.WriteLine("Student ID: " + studID);
- Console.WriteLine("Name: " + name);
- Console.WriteLine("Year level: " + YearLevel);
- Console.WriteLine("Course Program: " + CourseProgram);
- }
- return enterStudID;
- }
- }
- public class Student
- {
- public int StudentId { get; set; }
- public string Name { get; set; }
- public int YearLevel { get; set; }
- public string CourseProgram { get; set; }
- public int CPNum { get; set; }
- public List<Course> Courses { get; set; }
- public Payment Payment { get; set; }
- }
- public class Course
- {
- public string CourseCode { get; set; }
- public string CourseName { get; set; }
- public double CourseCost { get; set; }
- public List<Student> Students { get; set; }
- }
- public class Curriculum
- {
- public string CourseProgram { get; set; }
- public List<Course> Courses { get; set; }
- }
- public class Payment : Student
- {
- private double TotalAmountPayable { get; set; }
- private double BalanceLeft { get; set; }
- public double TotalPayable
- {
- get
- {
- return TotalAmountPayable;
- }
- set
- {
- TotalAmountPayable = value;
- }
- }
- public double Balance
- {
- get
- {
- return BalanceLeft;
- }
- set
- {
- BalanceLeft = value;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement