Question 36: Library Management System
**Context**: Design a system to manage members and librarians in a library environment.
Interfaces:
- Borrowable: void borrowBook()
- Returnable: String returnBook()
Abstract class: LibraryUser
Fields: String userId, String section
Abstract method: void displayInfo()
Concrete method: void baseMethod() -> "Library access granted."
Concrete classes:
- Member
- Inherits LibraryUser, implements Borrowable and Returnable
- Field: ArrayList<String> borrowedBooks
- Overload borrowBook(String bookTitle)
- checkCondition() throws if [Link]() < 4
- Librarian
- Inherits LibraryUser, implements Borrowable and Returnable
- Field: String shift
- Overload borrowBook(String department)
- checkCondition() throws if section == null
File:
"library_log.txt"
Question 37: Fitness Tracking Application
**Context**: Build an application to track users and trainers in a fitness platform.
Interfaces:
- Trackable: void logWorkout()
- Advisable: String giveAdvice()
Abstract class: FitnessUser
Fields: String username, int age
Abstract method: void displayInfo()
Concrete method: void baseMethod() -> "Fitness account active."
Concrete classes:
- User
- Inherits FitnessUser, implements Trackable and Advisable
- Field: ArrayList<String> workoutHistory
- Overload logWorkout(String type)
- checkCondition() throws if age < 10
- Trainer
- Inherits FitnessUser, implements Trackable and Advisable
- Field: String specialization
- Overload logWorkout(String clientName)
- checkCondition() throws if username == null
File:
"fitness_log.txt"
Question 38: Online Banking System
**Context**: Create a digital banking system for customers and bank employees.
Interfaces:
- Transactable: void transact()
- Verifiable: String verifyAccount()
Abstract class: BankUser
Fields: String accountNumber, double balance
Abstract method: void displayInfo()
Concrete method: void baseMethod() -> "Bank session started."
Concrete classes:
- Customer
- Inherits BankUser, implements Transactable and Verifiable
- Field: ArrayList<Double> transactionHistory
- Overload transact(double amount)
- checkCondition() throws if balance < 0
- Employee
- Inherits BankUser, implements Transactable and Verifiable
- Field: String department
- Overload transact(String account)
- checkCondition() throws if accountNumber == null
File:
"banking_log.txt"
Question 39: University Enrollment System
**Context**: Design a university system to manage students and faculty enrollments.
Interfaces:
- EnrollAble: void enroll()
- TeachAble: String teach()
Abstract class: UniversityUser
Fields: String id, String department
Abstract method: void displayInfo()
Concrete method: void baseMethod() -> "University access approved."
Concrete classes:
- Student
- Inherits UniversityUser, implements EnrollAble and TeachAble
- Field: ArrayList<String> enrolledCourses
- Overload enroll(String course)
- checkCondition() throws if [Link]() != 8
- Faculty
- Inherits UniversityUser, implements EnrollAble and TeachAble
- Field: String title
- Overload teach(String subject)
- checkCondition() throws if department == null
File:
"university_log.txt"
Question 40: Online Streaming Subscription System
**Context**: Model a system to manage viewers and content creators on a streaming platform.
Interfaces:
- Streamable: void stream()
- Subscribable: String subscribe()
Abstract class: StreamUser
Fields: String userId, String planType
Abstract method: void displayInfo()
Concrete method: void baseMethod() -> "Streaming access granted."
Concrete classes:
- Viewer
- Inherits StreamUser, implements Streamable and Subscribable
- Field: ArrayList<String> watchlist
- Overload stream(String genre)
- checkCondition() throws if planType == null
- Creator
- Inherits StreamUser, implements Streamable and Subscribable
- Field: int videoCount
- Overload stream(String title)
- checkCondition() throws if [Link]()
File:
"streaming_log.txt"