CSCI 428 Final Project

CSCI 428 Final Project

CSCI 428 – Fall 2023

Final Project

100 points + 10 bonus points

 Note: This is an individual project. Each student MUST complete the work on his/her own. Any code sharing/plagiarism is not tolerated. Show your name and CWID in the background in your captured image as required in all assignments; not providing your name and CWID information in the captured image may result in zero points.

Overview

In this project, you will design and implement an object-oriented programming project by selecting your own topic [1]. The project should demonstrate your understanding and application of object-oriented programming principles, including encapsulation, inheritance, composition, and polymorphism.

The goal is to explore how to design various classes through encapsulation, inheritance, composition, and polymorphism. Your project should consist of multiple classes that interact with each other through well-defined interfaces. It should have a clear problem statement and provide a well-structured solution that is easy to understand. Your project must include a user interface, which can be console-based, or a graphical user interface (GUI) using JavaFX.Order Now from Course ResearchersWhat to Submit (Deliverables)

− One doc file “CSCI428-project-XX.doc” including one UML class diagram of the final project, the text source code, and screenshots of the outputs of all programs. Please replace XX with your first name and last name. You can copy/paste the text source code from Eclipse, IntelliJIDEA, or other IDEs into the doc file. Hopefully, based on the screen snapshots of the output, you can show that your programs passed tests and were well.

− Java class files for all programs. In well-defined programs, proper comments are required. For programs without comments, they will be deducted greatly in grading.

− Note that if any program or code does not work, you can explain the status of the program or code and then attach your explanation and description in a file “README.txt”.

− Optional. Anything you want to attract the attention of the instructor in grading.

Technical requirements

Provide a clear problem statement and solution.
Use Object-oriented design principles to model the entities in the solution.
You should strive for clean and concise code that is easy to understand and modify.
Implement the project using Java (no other languages)
Use appropriate data structures (e.g., arrays, ArrayList, LinkedList, Set, or Map) to store and manipulate data.
Involve the creation of at least 3 classes that interact with each other.
Design a test program to test your classes and designs. The test program should have a list including all objects of classes you have defined in this project. You should create objects in this program by calling different constructors and prompting the user to enter values. Use a loop to display all the objects of different classes and output their information (values of the data fields).
Draw a UML class diagram with the classes and from an implementation perspective. That is, this diagram contains the details of its respective implementation level [2-4] using one of the online free UML diagram tools [6-8]
Implement a user inference that can be console-based or a graphical user interface. One example JavaFX GUI application is provided for your reference.

Order Now from Course ResearchersGrading Rubric

30 points for the workable classes and functions without any syntax or runtime errors.
15 points for appropriate comments and screenshots of GUI outputs of the programs.
15 points for providing UML diagram showing the dependencies between the defined classes by referring to the examples at [2-4]
5 points for defining default constructors and constructors with multiple parameters to initialize data fields properly.
5 points for using the keywords super, extends, implements, this properly, reading and writing data from/to files correctly.
5 points for calling superclass’s constructors and methods.
5 points for overriding the superclass’s methods.
5 points for using of abstraction (class(s)) and encapsulation (method(s))
5 points for using inheritance (that “is a” relationship) and composition (that “has a” relationship)
5 points for using dynamic binding and proper data structures (arrays and Java collections (like ArrayList, LinkedList, Set, or Map))
5 points for code testing and design validation

Challenges

− 10 bonus points for extending your solution/design. Note: You still must finish all tasks required by this project.

− Implement a user interface using JavaFX [5]

Reference

https://icarus.cs.weber.edu/~dab/cs1410/textbook/10.Multiclass_Programs/inheri tance.html

 Appendix: