Question
Assignment In this assignment, you will be required to write a Java program to create and edit a slide show presentation. The presentation manager application
Assignment
In this assignment, you will be required to write a Java program to create and edit a slide show presentation. The presentation manager application should be able to select each slide individually using a cursor, and should allow the user to insert a slide in the middle of the presentation in constant time. To achieved this, the slides will be stored in a doubly linked list data structure. A sample diagram of the structure is provided below for reference. Your program should implement the following classes and adhere to the specifications defined below.
Required Classes:
1. Slide Class
Write a fully-documented class named Slide which contains the title (String), the array of bullet points (String[]), and the duration of the slide in minutes (double). Each slide should be limited to a maximum of 5 bullet points, which should be reflected in a static constant named MAX_BULLETS. You should provide getter and setter methods for all member variables, with the getter/setter method for bullets taking an additional index parameter (see the provided UML diagram for further detail). In addition, you should provide a constructor as detailed below, though you may create a custom constructor which takes any arguments you see fit. Lastly, you should provide a toString() method that returns a printable representation of the Slide and its data members (title, duration, and bullets).
2. SlideListNode Class
Write a full-documented class named SlideListNode that wraps a Slide object to allow it to be inserted into a doubly linked-list data structure. The Slide object reference should be contained in a field called data, and there should be two SlideListNode references serving as links to the previous and next SlideListNodes in the list
3. SlideList Class
Write a fully-documented class named SlideList which implements a double linked-list data structure. The SlideList should maintain a list of Slides by chaining a series of SlideListNodes between a head and a tailreference. In addition, a cursor should be provided to allow a user to traverse the list, selecting individual SlideListNodes to allow for insertion, deletion, and manipulation of the Slides they contain. Lastly, the class should provide methods to query information about the list, such as its size, the total duration of all Slides in the list, and the total bullet points of all Slides in the list.
4.PresentationManager Class
Write a fully-documented class named PresentationManager which creates an instance of the SlideList class and provides an interface for a user to manipulate the list by adding, removing, and editing slides. The following functionality should be provided:
public static void main(String[] args) Brief:
The main method runs a menu driven application which first creates an empty SlideList and then prompts the user for a menu command selecting the operation. The required information is then requested from the user based on the selected operation. Following is the list of menu options and their required information:
A sample menu is provided below indicating the functionality your SlideList program should support:
F) Move cursor forward B) Move cursor backward D) Display cursor slide E) Edit cursor slide P) Print presentation summary A) Append new slide to tail I) Insert new slide before cursor R) Remove slide at cursor H) Reset cursor to head Q) Quit
5. EndOfListException Class
An Exception class which indicates that the user attempted to access a SlideListNode that does not exist (either before the head node or after the tail node). This exception can also be thrown when an operation is performed on an empty list (i.e. head, tail, and cursor are all equal to null).
Input Format:
Each menu operation is entered on its own line and should be case insensitive (i.e. q and Q are the same). If the user selects either A) Append new slide to tail or I) Insert new slide before cursor, the user should be prompted to construct a new slide before inserting it accordingly (see sample I/O for examples).
Output Format:
All lists must be printed in a nice and tabular form as shown in the sample output. You may use C style formatting as shown in the following example. The example below shows two different ways of displaying the name and address at pre-specified positions 21, 26, 19, and 6 spaces wide. If the - flag is given, then it will be left-justified (padding will be on the right), else the region is right-justified. The s identifier is for strings, the d identifier is for integers. Giving the additional 0 flag pads an integer with additional zeroes in front.
String name = "Doe Jane"; String address = "32 Bayview Dr."; String city = "Fishers Island, NY"; int zip = 6390; System.out.println(String.format("%-21s%-26s%19s%06d", name, address, city, zip)); System.out.printf("%-21s%-26s%19s%06d", name, address, city, zip); // Output Doe Jane 32 Bayview Dr. Fishers Island, NY 06390 Doe Jane 32 Bayview Dr. Fishers Island, NY 06390Wnen rengenend
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started