CMPSC 221
Assignment 1
Individual Assignment (100 points)
Assignment Title: Library Management System with OOP in JAVA.
Instructions: In this assignment, you will demonstrate your understanding of core Object-Oriented Programming (OOP) concepts, including objects, classes, methods, loops, and various data types, as well as more advanced concepts such as inheritance and polymorphism. Additionally, you will practice creating classes based on UML diagrams and declaring functions.
Part 1: UML and Class Creation (30 points)
Assume that you have to develop a class diagram that represents a library system with books, members, and librarians. The UML diagram will include:
1. A Book class with attributes such as title, author, ISBN, number of available copies, and other attributes.
2. Create subclasses of the Book class, such as Fiction, Nonfiction, and magazines with additional attributes and methods relevant to their type
3. A Library Member class with attributes such as name, library card number, a list of borrowed books, and other attributes.
4. A librarian class with name, position, email, password, and other attributes
5. Appropriate method names for classes to perform actions. For Example, the book class must check out and return book methods with parameters. Eg: public void checkOut(Member member){}
Other attributes that you think need to be added. Pleaseadd at least 1/2 attribute of your own.
Develop a UML diagram based on the above requirements.
Part 2: Declaration of Classes, Attributes & Methods (30 points)
Create all the classes mentioned in the UML diagram you answered in Part 1 to simulate a library system. Your program should:
• Write all classes, attributes, and methods definitions.
• Write a few methods declaration.
o Allow a user to add books to the library system using Constructor.
o Allow a user to add members to the library system using Constructor.
o Allow a user to checkout books using a method under Book class.
o Allow a user to return books using a method under Book class.
Ensure each function has a printout as the following code. You do not need to have full functionality.
//Constructor
Book(parameter){
System.out.println(“Add book method created and ready for call”);
// code goes here
}
Part 3: Inheritance and Polymorphism (20 points)
Extend the classes from Part 2 to demonstrate inheritance and polymorphism. Create subclasses of the Book class, such as Fiction, Nonfiction Books, and magazines with additional attributes and methods relevant to their type. Implement at least 2 polymorphic behaviors to handle different book types in your library system.
Example of Polymorphic behaviors: Think of your superclass that has a method called checkoutBook() is applicable for 7 days for return for all books. However, Subclasses have their own implementation of the checkoutBook() method with variable length days for return. For Example, magazines can be returned within 14 days.
Part 4: Report (20 points)
The report Should have the following sections:
• UML Class Design (Part 1): Provide the UML diagram you created.
• Declaration of Classes, Attributes & Methods (Part 2): Explain different classes and their methods task in your design. Include code snippets to highlight the key parts of your program.
• Inheritance and Polymorphism (Part 3): Describe how you extended the classes to demonstrate inheritance. Explain how you implemented polymorphism to handle different book types. Include code examples that showcase the inheritance and polymorphism in your program.
Submission Guidelines:
• Submit your Java code files.
• Submit a report as a PDF file.
Total Points: 100 points
Note: Make sure to follow the best practices for OOP. Feel free to seek assistance from Dr. Sayed Reza during office hours if needed. Office hours are available in Syllabus.
请加QQ:99515681 邮箱:99515681@qq.com WX:codehelp