0% found this document useful (0 votes)
4 views2 pages

Programming Assignments

The document outlines a programming project for developing a simplified library management system, detailing the required classes such as Book, Member, Library, BorrowedBook, and FineCalculator, along with their attributes and methods. It emphasizes the demonstration of OOP concepts including abstraction, encapsulation, inheritance, and polymorphism. Additional considerations include using appropriate data structures, implementing error handling, and providing clear documentation.

Uploaded by

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

Programming Assignments

The document outlines a programming project for developing a simplified library management system, detailing the required classes such as Book, Member, Library, BorrowedBook, and FineCalculator, along with their attributes and methods. It emphasizes the demonstration of OOP concepts including abstraction, encapsulation, inheritance, and polymorphism. Additional considerations include using appropriate data structures, implementing error handling, and providing clear documentation.

Uploaded by

faryha227
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Arab Academy for Science and Technology and Maritime Transport

College of Computing and Information Technology

Course Title: Object Oriented Programming Course Code: CCS2303


TAs: Eng. Mohammed Osama Badway, Eng. Sara Mohamed

Programming Project

Project Description:

Imagine you are tasked with developing a simplified library management system. This system
should manage books, members, and the process of borrowing and returning books.

Requirements:

1. Design and Implement the following Classes:


o Book Class:
▪ Encapsulate book information:
▪ ISBN (String)
▪ title (String)
▪ author (String)
▪ availableCopies (int)
▪ Implement methods for:
▪ Checking book availability
▪ Increasing or decreasing available copies
o Member Class:
▪ Encapsulate member information:
▪ memberId (String)
▪ name (String)
▪ contact (String)
▪ Implement methods for:
▪ Checking member status (e.g., active, inactive)
o Library Class:
▪ Encapsulate library information:
▪ libraryName (String)
▪ Have an aggregation relationship with Book and Member classes.
▪ Implement methods for:
▪ Adding new books to the library
▪ Adding new members to the library
▪ Borrowing a book for a member
▪ Returning a book to the library
▪ Searching for books by title, author, or ISBN
▪ Displaying a list of all books or members
o BorrowedBook Class:
▪ Encapsulate information about borrowed books:

Page 1 of 2
▪ book (Book object)
▪ member (Member object)
▪ borrowDate (Date object)
▪ dueDate (Date object)
o FineCalculator Class:
▪ Implement an interface named FineCalculationStrategy.
▪ Create concrete classes implementing FineCalculationStrategy for different
fine calculation methods (e.g., per-day fine, fixed fine).
▪ The Library class should use the FineCalculationStrategy interface to
calculate fines for overdue books.
2. Demonstrate the following OOP Concepts:
o Abstraction: The FineCalculationStrategy interface provides an abstract
representation of fine calculation logic.
o Interface: The FineCalculationStrategy interface defines a contract for fine
calculation classes.
o Aggregation: The Library class aggregates Book and Member objects.
o Encapsulation: Data members within each class are private and accessed through public
methods (getters and setters).
o Inheritance: You have to create subclasses of Member (e.g., StudentMember,
FacultyMember) with specific borrowing privileges.
o Polymorphism: The Library class can use different FineCalculationStrategy
implementations interchangeably.
3. Create a Java program to test the functionality of your library management system.

Additional Considerations:

• Use appropriate data structures (e.g., ArrayLists) to store collections of books and members.
• Consider implementing error handling and input validation.
• Write clear and concise Java code with proper documentation.

Bonus:
• When the system starts, it calls the method load which load the data from a saved file named [Link].

• When the user exits the system, it calls the method save which save or overwrite the current saved file.

Rubic

• Program Functionalities [Total: 9 Points]

- [2 Marks] Classes & Encapsulation


- [2 Marks] Inheritance & Interface
- [1 Mark] Abstraction
- [2 Marks] Composition/ Aggregation
- [2 Marks] Polymorphism

• [1 Mark] Report

Page 2 of 2

You might also like