CSCI 428 – Spring 2021
Final Project100 points + 10 bonus points
Note:This is an individual assignment. Each student MUST complete the work on his/her own.Any code sharing/plagiarism is not tolerated.Overview This project consists of two tasks. The goal is to explore how to design various class through encap-sulation, inheritance, composition, and polymorphism, to examine how to create GUI applicationsusing JavaFX. Glance at “What to Submit” when you start working on a task so that you knowwhat information to provide from each task.Submission ExampleCSCI428-project-XXCSCI428-project-XX.docTask1Person.javaDate.javaAddress.java Existing Person.java AddressBook.java Data.txtTask1XX.javaTask2task2aXX.javatask2bXX.javaREADME.txt What to Submit1. One doc file “CSCI428-project-XX.doc” including the text source code and screenshots of the outputs of all programs. Please replaceXXwith your first name and last name. You cancopy/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 programspassed tests and were well.2. Java class files for all programs. In well-defined programs, proper comments are required. Forprograms without comments, they will be deducted greatly in grade.–For task 1, there are 6 java files (including Person.java, Date.java, Address.java, Existing-Person.java, AddressBook.java, and Task1XX.java) and 1 text file named “Data.txt”.–For task 2, there is just 1 java file, task2XX.java.3. Note that if any program or code does not work, you can explain the status of the program orcode and then attach your explanation and description in a file “README.txt”.4. Optional. Anything you want to attract the attention of instructor in grading.
Task 1 (50 points):(Online Address Book Application) Using classes, design an online addressbook to keep track of the names, addresses, phone numbers, and birthdays of family mem-bers, close friends, and certain business associates. Your program should be able to handle amaximum of 500 entries.(a) Define theclassAddressthat can store a street address, city, state, and zip code. Use theappropriate methods to print and store the address. Also, use constructors to automaticallyinitialize the data members.(b) Define theclassExistingPersonusing theclassPerson(provided in the student folder), theclassDate(provided in the student folder), and the class Address. Add afieldto this classto classify the person as a family member, friend, or business associate. Also, add anotherfieldto store the phone number. Add (or override) methods to print and store the appropriateinformation. Use constructors to automatically initialize the data members.(c) Define theclassAddressBookusing previously defined classes. An object of typeAddress-Bookshould be able to process a maximum of 500 entries.(d) Use the test fileTask1XX.javato guide your design and test your classes, where XX shouldbe replaced with your first name and last name. Note the class Task1XX is not finished in agood shape and you are suggested to add more statements if needed.The program should perform the following operations:(d-i) Load the data into the address book from a disk.(d-ii) Sort the address book by last name.(d-iii) Search for a person by last name.(d-iv) Print the address, phone number, and date of birth (if available) of a given person.(d-v) Print the names of the people whose birthdays are in a given month or between twogiven dates.(d-vi) Print the names of all the people between two last names.Grading Rubric–5 points for each class (e.g. Address, Existing Person, and Address Book) with the functiontoString.–5 points for using the Keyword superin the classes Existing Person in order to accesssuperclass members in theclassPerson.–5 points for meeting the requirement on the capacity (500 entries)–10 points for the test program.Task 2 (50 points):Write two GUI programs using JavaFX to finish the following sub-tasks:(a) Draw a detailed clock: Modify the ClockPane class provided to draw the clock with more details on the hours and minutes, as shown in Figure 1. Save the java file as Task2aXX.java.(a) Displays two clocks. The hour, minute, and second values are 4, 20, 45 for the first clock and22, 46, 15 for the second clock, as shown in Figure 2. Save the java file as Task2bXX.java.The figures below show example GUI of this program for subtask 1 and subtask2.If time allows, you can also create animation for a running clock for 10 bonus points.Grading Rubric
Figure 1: A detailed clock Figure 2: Two clocks–(10 points) for classes with necessary functions and key details–(10 points) for the workable classes and functions without any syntax or runtime errors.–(10 points) for appropriate comments Challenges in This Project1. For 10% extra credit, you are welcome to explore the design of each task. Note: You still haveto finish all tasks required by this project.2. You should install the IntelliJ IDEA to facilitate the development of Task 2.
Such a cheap price for your free time and healthy sleep
All online transactions are done using all major Credit Cards or Electronic Check through PayPal. These are safe, secure, and efficient online payment methods.