0% found this document useful (0 votes)
8 views

OOP Theory Assignment Word File

Uploaded by

rajusindhi585
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

OOP Theory Assignment Word File

Uploaded by

rajusindhi585
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

OOP Theory Assignment #03

Ansh Kumar
23K-5548
Bs-FT

Task#01:

from abc import ABC, abstractmethod

class Person:
def __init__(self, name, age):
self.name = name
self.age = age

class AcademicRole(ABC):
@abstractmethod
def academic_role(self):
pass

class Student(Person, AcademicRole):


def __init__(self, name, age, subject, grade):
super().__init__(name, age)
self.subject = subject
self.__grade = grade

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."

class Teacher(Person, AcademicRole):


def __init__(self, name, age, subject, salary):
super().__init__(name, age)
self.subject = subject
self.__salary = salary

def get_salary(self):
return self.__salary

def set_salary(self, salary):


self.__salary = 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."

s = Student("Ansh", 20, "OOP", "A")


print(s.get_details())
print(s.academic_role())

t = Teacher("Sir Shoaib", 30, "OOP", 150000)


print(t.get_details())
print(t.academic_role())

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 set_enrolled_courses(self, courses):


self.__enrolled_courses = courses

def get_progress(self):
return self.__progress

def set_progress(self, course, progress):


self.__progress[course] = 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 set_rating(self, rating):


self.__rating = 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)

instructor = Instructor("Sir Shoaib", "shoaib@nu.edu.pk")


instructor.set_courses_taught(["Python"])
instructor.set_rating(4.5)

python_course = ProgrammingCourse("Python", 30)


design_course = DesignCourse("Design Basics", 20)

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())

You might also like