OOP Theory Assignment Word File
OOP Theory Assignment Word File
Ansh Kumar
23K-5548
Bs-FT
Task#01:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
class AcademicRole(ABC):
@abstractmethod
def academic_role(self):
pass
def get_grade(self):
return self.__grade
def set_grade(self, grade):
self.__grade = grade
def get_details(self):
return f"Name: {self.name}, Age: {self.age}, Subject: {self.subject}, Grade:
{self.__grade}"
def academic_role(self):
return f"{self.name} learns."
def get_salary(self):
return self.__salary
def get_details(self):
return f"Name: {self.name}, Age: {self.age}, Subject: {self.subject}, Salary:
{self.__salary}"
def academic_role(self):
return f"{self.name} teaches."
Task#02:
from abc import ABC, abstractmethod
class User(ABC):
def __init__(self, username, email):
self.username = username
self.email = email
@abstractmethod
def access_portal(self):
pass
class Student(User):
def __init__(self, username, email):
super().__init__(username, email)
self.__enrolled_courses = []
self.__progress = {}
def access_portal(self):
return f"Student {self.username} accessing portal"
def get_enrolled_courses(self):
return self.__enrolled_courses
def get_progress(self):
return self.__progress
def get_role_description(self):
return "Role: Student - Enrolls in courses and tracks progress."
class Instructor(User):
def __init__(self, username, email):
super().__init__(username, email)
self.__courses_taught = []
self.__rating = 0.0
def access_portal(self):
return f"Instructor {self.username} accessing portal"
def get_courses_taught(self):
return self.__courses_taught
def set_courses_taught(self, courses):
self.__courses_taught = courses
def get_rating(self):
return self.__rating
def get_role_description(self):
return "Role: Instructor - Teaches courses and is rated by students."
class Course:
def __init__(self, course_name, duration):
self.course_name = course_name
self.duration = duration
def course_details(self):
return f"Course: {self.course_name}, Duration: {self.duration} hours."
class ProgrammingCourse(Course):
def course_details(self):
return f"Programming Course: {self.course_name}, Duration: {self.duration}
hours, Includes coding assignments."
class DesignCourse(Course):
def course_details(self):
return f"Design Course: {self.course_name}, Duration: {self.duration} hours,
Includes design projects."
student = Student("ALi", "ali@nu.edu.pk")
student.set_enrolled_courses(["Python", "Design Basic"])
student.set_progress("Python", 80)
print(student.access_portal())
print(student.get_role_description())
print(student.get_enrolled_courses())
print(student.get_progress())
print(instructor.access_portal())
print(instructor.get_role_description())
print(instructor.get_courses_taught())
print(instructor.get_rating())
print(python_course.course_details())
print(design_course.course_details())