Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

This project goal is to develop a rental media system This underneath UML diagram may help you to understand the system requirements MediaRentalManger Media Rentalint

image text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribed

This project goal is to develop a rental media system This underneath UML diagram may help you to understand the system requirements MediaRentalManger Media Rentalint Media Comparable> Customer Game Movie Album Specifications What You Must Implement You must define a class named MediaRental that implements the MediaRentalInt interface functionality (index A). You must define classes that support the functionality specified by the interface. The following specifications are associated with the project: 1. Define a class named MediaRental. Feel free to add any instance variables you understand are needed or any private methods. Do not add any public methods (beyond the ones specified in the Media Rentalint interface). 2. The media rental system keeps track of customers and media (movies ,music albums and games). A customer has a name, address as string , a plan and two lists. One list represent the media the customer is interested in receiving and the second one represents the media already received (rented) by the customer. There are two plans a customer can have: UNLIMITED and LIMITED. UNLIMITED allows a customer to receive as many media as they want; LIMITED restricts the media to a default value of 2 (this value can be change via a media rental class method). A movie has a title, a number of copies available and a rating (e.g., "HR"). An album has a title, number of copies available, an artist and the songs that are part of the album. A game has title, number of copies, and the weight (in grams) is also stored. 3. You must define and use at least four classes (not including MediaRental) as part of your design. At least two of those classes must be in a superclass/subclass relationship (Inheritance Requirement). The other two can be defined as you wish. Feel free to define as many classes as you want. These classes must support the functionality of the system otherwise you will not receive any credit. 4. One of your classes must define an equals method that has as parameter an Object parameter. 5. The database for your system needs to be represented using two ArrayList objects. One ArrayList will represent the customers present in the database; the second will represent the media (movies, albums, and games). 6. Regarding the search Media method: the songs parameter represents a substring (fragment) or the full list of songs associated with the album. If the full list is provided you can assume commas will be part of the string. Hint: you may want to consider using the indexOf method of the String class. 7. Your program should store the results in a file between executions of the program, so that when the program is run again it will start up with the same inventory contents as when it last terminated. 8. Feel free to use Collections.sort to sort your data. 9. Write test driver. 10. Handle expectations where it's needed. 11. Not all the details associated with the project can be fully specified in this description. The sooner you start working on the project the sooner you will be able to address any doubts you may have. Index A: MediaRentalint interface Includes: Method Detail addCustomer void addCustomer (String name, String address, String plan) Adds the specified customer to the database. The address is a physical address (not e-mail). The plan options available are: LIMITED and UNLIMITED. LIMITED defines a default maximum of two media that can be rented. Parameters: name, address plan - addMovie void addMovie (String title, int copiesAvailable, String rating) Adds the specified movie to the database. The possible values for rating are "DR", "HR", "AC". Parameters:title -, copiesAvailable , rating - addGame void addGame (String title, int copiesAvailable, double weight) Adds the specified game to the database. Parameters:title -, copiesAvailable -, weight - addAlbum void addAlbum (String title, int copiesAvailable, String artist, String songs) Adds the specified album to the database. The songs String includes a list of the title of songs in the album (song titles are separated by commas). Parameters: title -, copiesAvailable , artist -, songs setLimitedPlanlimit void setLimitedPlanlimit(int value) This set the number of media associated with the LIMITED plan. Parameters: value getAllCustomers Info String getAllCustomers Info() Returns information about the customers in the database. The information is presented sorted by customer name. Returns: getAllMediaInfo String getA11MediaInfo Returns information about all the media (movies, albums, and games) that are part of the database. The information is presented sorted by media title. Returns: G addToCart boolean addToCart(String customerName, String mediaTitle) Returns: addToCart boolean addToCart (String customerName, String mediaTitle) Adds the specified media title to the cart associated with a customer. Parameters.customerName - , mediaTitle - Returns: false if the mediaTitle is already part of the cart (it will not be added) removeFromCart boolean removeFromCart (String customerName, String mediaTitle) Removes the specified media title from the customer's cart. Parameters:customerName -, mediaTitle - Returns: false if removal failed for any reason (e.8., customerName not found) processRequests String processRequests Processes the requests cart of each customer. The customers will be processed in alphabetical order. For each customer, the requests cart will be checked and media will be added to the rented cart, if the plan associated with the customer allows it, and if there is a copy of the media available. For UNLIMITED plans the media will be added to the rented cart always, as long as there are copies associated with the media available. For LIMITED plans, the number of entries moved from the requests cart to the rented cart will depend on the number of currently rented media, and whether copies associated with the media are available. For each media that is rented, the following message will be generated: "Sending [mediaTitle] to [customerName]" Returns: returnMedia boolean returnMedia (String customerName, String mediaTitle) This is how a customer returns a rented media. This method will remove the item from the rented cart and adjust any G other values that are necessary (.8., copiesAvailable) Parameters.customerName -, mediaTitle - For each media that is rented, the following message will be generated: "Sending [mediaTitle] to (customerName]" Returns: returnkledia boolean returnMedia (String customerName, String mediaTitle) This is how a customer returns a rented media. This method will remove the item from the rented cart and adjust any other values that are necessary (e. g., copiesAvailable) Parameters:customerName - , mediaTitle - Returns: searchMedia ArrayList searchMedia (String title, String rating, String artist, String songs) Returns a SORTED ArrayList with media titles that satisfy the provided parameter values. If null is specified for a parameter, then that parameter should be ignore in the search. Providing null for all parameters will return all media titles. Parameters: title - , rating -, artist, songs Returns: Index B: Public Driver: Method Detail public void testAddingCustomers public void testAddingMedia () public void testingAddingToCart 0 public void testingRemovingFromCart 0 public void test ProcessingRequestsOne) public void testProcessingRequestsTwo () public void testReturnkledia) public void test SearchMedia) Index C: Academic Integrity Academic Integrity Please make sure you read the academic integrity section of the syllabus so you understand what is permissible in our programming projects. We want to remind you that we check your project against other students' projects and any case of academic dishonesty will be referred to fail in the course and the student is referred to a system committee. NOTE: THERE IS PASS OF ( There is a face-to-face discussion) This project goal is to develop a GUI for rental media system Your Project should include Layouts {GridPane StackPane VBox HBox BorderPane } Controls {button labels text filed text area combobox check box radio button } events images Updates Customer class should have new attributes id as string mobile number as string id is unique Media Class should have code as string Your Main Interface of this project should contains the following menu The property of this page size is Maximized primaryStage.setMaximized(true); Button should contains a picture as an icon Hint use www icons com and search for customer icons etc Customer Any Image reflect the content (rent games, movies, and Album) Media Rent Rental Media System When click at one of them it should transfer the user to new window that have more information about it Add new Customer Delete Customer Update Information about Customer Search Customer by id Retrato maine Customer Window page should have Add new Customer Delete Customer Update Information about Customer Search a Customer by id Return to main page When click on any option of above menu (1-5) then a new is opened for user that allow him to submit the needed information about customer Add them here with with buttons only no need icons or images Add new Customer Every texfiled should should be inactive till the user submitted the previous required filed Customer ID: 901211212 Customer Name: Customer Address: Customer Mobile: Add + Back U Delete a Customer Find the customer information by enter the id and press delete button to remove this customer Customer ID: 901211212 Customer Name: Customer Address: Customer Mobile: Find Add Back 5 For others update and search you have to do the same as the above sample GUI Media Window page should have Add new Media Delete Media Update Information about Media Search a Media by code Print All Media information Return to main page When click on any option of above menu (1-5) then a new is opened for user that allow him to submit the needed information about media For All steps [1-6] do same as the above When rental manager add a media he can select a media type from combo box game movie or album Search should display all information about searched media or an error message For step Print All Media information at Text Area Rental Window page should have Store information about customer and their rented media Rent form Customer ID: 901211212 Display Needed Information about customer.... Media Code: AB005 Display Needed Information about Media.... Rented Date: Read current date of system Add to cart Process Cart Back G Print the requested interested media in the cart by give the id of customer Print the rented media in the cart by give the id of customer Return Rented media by give the id of customer and then return the media Return to main page For All steps (2-5) do same as Do the appropriate print them in Text Area Feel free to design an interface from your side view but be careful and apply it as it required

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Spomenik Monument Database

Authors: Donald Niebyl, FUEL, Damon Murray, Stephen Sorrell

1st Edition

0995745536, 978-0995745537

More Books

Students also viewed these Databases questions

Question

Describe the linkages between HRM and strategy formulation. page 74

Answered: 1 week ago