This project is a simple console-based Examination System built with Object-Oriented Programming (OOP) principles in C#. It allows the user to create and take different types of exams (Final or Practical) with support for various question types.
- Question Types:
- True/False (for Final exams only)
- Multiple Choice Questions (MCQ)
- Exam Types:
- Final Exam: includes MCQ and True/False questions, displays student answers and final grade
- Practical Exam: includes only MCQ questions, displays correct answers after the exam
- OOP Concepts Used:
- Inheritance and Polymorphism
- Encapsulation
- Abstraction
- ExaminationSystem/
- Models/
Question.cs– Base class for all questionsMCQQuestion.cs– Inherits fromQuestion, used for MCQTrueFalseQuestion.cs– Inherits fromQuestion, used for True/FalseAnswer.cs– Represents an answer optionExam.cs– Abstract class for shared exam logicFinalExam.cs– Inherits fromExam, for final examsPracticalExam.cs– Inherits fromExam, for practical examsSubject.cs– Represents a subject with an exam
Program.cs– Main entry point to run the applicationREADME.md– Project documentation
- Models/
-
Question Class
Each question has:- A Header (title)
- A Body (description)
- Mark assigned
- A list of possible Answers
- A reference to the Correct Answer
-
Answer Class
Contains:- AnswerId
- AnswerText
-
Exam Class (Abstract)
Common properties:- Time
- Number of Questions
- ShowExam() method (overridden by Final and Practical exams)
-
Subject Class
Each subject has:- SubjectId
- SubjectName
- An associated Exam object
- CreateExam() method to generate the exam
-
Exam Types
- FinalExam:
- Supports MCQ and True/False questions
- Displays student answers and total grade
- PracticalExam:
- Supports only MCQ questions
- Displays correct answers only
- FinalExam: