A console application written in C# that lets a teacher create exams (Final or Practical) for a subject, and lets a student take them. It was built to practice object-oriented programming: abstraction, inheritance, polymorphism, encapsulation, and the ICloneable and IComparable interfaces.
Features
Create an exam for a subject (subject name + subject ID), either:
Final exam: each question is True/False or MCQ. The student gets a grade (marks and percentage), and the right answer is shown for every wrong answer.
Practical exam: MCQ questions only. There is no grade; the right answers are shown at the end.
List the exams created in the current run.
Take an exam from the menu.
Show an exam with its right answers (model answer) without asking anything.
Demonstrate ICloneable: deep-copy a question, edit the copy, and prove the original did not change.
Demonstrate IComparable: compare two exams, or sort all exams, by number of questions.
Input is validated everywhere (numbers in range, marks greater than 0, no empty text, true/false), and an MCQ question refuses duplicate answers.
The exams live in memory only: they are lost when the program closes.