OODP101 Solution to Programming Problem using JAVA Programming Language Assessment 4 Answer
|COURSE: Bachelor of Information Technology|
|Unit:||Object Oriented Design and Programming|
|Type of Assessment:||Assessment 4 – Solution to programming problem by group of 3-4 students|
Unit Learning Outcomes addressed:
|Upon successful completion of this unit students should be able to:|
|Assessment Task:||A group of 3-4 students will work together to provide a quality solution to programming problem using JAVA programming language,|
Your task will be to design and develop a programming solution to a problem using JAVA programming language.
The system that you will create is a Restaurant Menu Management System (RMMS). The RMMS is a tool used by a restaurant that manages multiple menus and for ordering meals. The menus may be used potentially at different venues and for different purposes like breakfast, lunch, dinner and take away.
Each Menu has a unique ID, name and is associated with a particular venue and session time. For each Restaurant menu, there are a number of available meals (menu items) available for ordering by guests. This IT system, RMMS, will enable the manager to customise and save menus to the system as well as view the stored list of menus. It will be possible to inspect details for each menu. The details will include specifics of the menu as well as specific details regarding discounts that may apply to certain meals. It will also be possible to categorise particular meals on each menu. The menu item categorisation will determine the way that prices are calculated for display on the menu. Each menu item will have a number, name, description and basic price associated with it, when the price for display on the menu is calculated, this calculation may involve increasing the price with surcharges (e.g. some special meals might have a surcharge due to the difficulty in sourcing their ingredients locally); or decreasing the price due to a special discount.
There can be a number of possible types of menu items incorporated into your system. Example menu item types are as follows:
- A standard menu item will have the price calculated based exactly on the price entered into the system.
- A premium menu item can be created with a mechanism to indicate that it is to have a surcharge added to the price. The surcharge will increase the price of the meal based on a constant percentage mark up value specified by the manager;
- It is possible to create a discount menu item meal to apply a discount to the given price;
- Drinks menu item whose price will not have any surcharge and discounts.
Customer can order menu items from any one menu at one time. The RMMS will give discount to customers according to their status. When customer place order, system will ask the status of customer and discounts will be given according to following information.
- Active customers are the one who visits restaurant at least once a week and will get 5% discount on every order they made.
- VIP customers are the one who have been visiting restaurant from more than one year and will get 10% discount on all orders.
- New Customers will not get any discounts.
Once an order is placed, RMMS will calculate the total of order and will issue invoice to customer.
Requirement 1: Class Diagram
This section expects you to create a class diagram after reading the coding requirements. Your class diagram should have proper relationships between classes, all possible attributes, constructors and methods that your class files will have. You need to use correct notation which is discussed in class.
Requirement 2: Coding
- Create Menu class which will have basic attributes as given in background information. This class will be super class for four classes which are Lunch, Breakfast, Dinner and Take Away.
- These sub classes will inherit the basic attributes and will have extra attributes representing their menu start time, end time and will have at least ten menu Items in it. (Hint:- There will be an array of menu Items in each of these classes).
- As these classes have array of menu Items so you need to add proper methods to add the items into the array, remove the items and retrieve the item from the array.
- You need to write proper toString() method to display the details of each menu and menu items in it.
- A default constructor which assigns each instance variable a default value.
- A constructor with parameters which assign values to each instance variable. Note that the values to initialise in the objects should be passed in using arguments when the constructor is called.
- Author get and set methods for your classes for instance variables where appropriate.
- Create menu Item class which will have attributes mentioned in background information. As there are different types of menu Items to create sub classes to represent menu Items which are Standard, Premium, Discounted and Drinks. You must provide the following in each particular specialised menu type class.
- All MenuItems have (at least) the following attributes: itemNumber (int), itemName (String), Description (String), itemPrice(double) which will be inherited from super class and one additional attribute of your own choice.
- A default constructor which assigns each instance variable a default value. The String variables (e.g. itemName) should be initialised to “unknown”, the price should be initialised to a minimum default price and any object fields initialised to null.
- A constructor with parameters which assign values to each instance variable. Note that the values to initialise in objects should be passed in using arguments when the constructor is called.
- Author get and set methods for your classes for instance variables where appropriate.
- Write a toString() method in each class that will return a String containing all the relevant data for each of your objects.
- In each of your specialised menu item classes, override the setPrice method to perform an appropriate price calculation based on the data in the object.
- Create a customer class which will have name (String) , discount (double) and status (String) as its attributes.
- A default constructor which assigns a instance variable a default value. Note: You do not want customer to do any manipulations with the discount value. It will be calculated according to the status.
- A constructor with parameters which assign values to each instance variable
- Write get and set methods for your classes for instance variables where appropriate.
- Write a to String() method in each class that will return a String containing all the relevant data for each of your objects
- set Discount() method will calculate and set the discount according to status of customer.
- In Restaurant driver class, create a main method and do as follows:
- Create 10 standard menu items, 10 premium menu items, 10 discounted menu items and 10 drinks menu items.
- Populate each menu with different types of menu items. For example: - Breakfast menu will have 2 standard menu items, 2 premium items, 2 discounted menu items and 2 drink menu items. You can add more if you wish to do so.
- Display a welcome message to screen to show the name of system and details of students who have developed this system.
- Ask user if they want to place order. If yes, ask the name and status of customer and display the different menu names that you have in RMMS.
- Once user make a choice, display the items available in that particular menu and ask user to enter the items they want in their order. User will use the number to add the items and can add one item more than once. Keep asking the user until they wish to finish the order.
- When user wish to finish order, program should calculate the total of all items and deducting customer discount according to the status they entered.
- Display the total amount due with all the details of order.
Document all methods in your code using comments and by following proper coding standards.
Class diagram file and Java project exported from eclipse will be submitted on moodle. This assignment should be submitted online in Moodle .
The assignment MUST be submitted electronically in Microsoft Word format. Other formats may not be readable by markers. Please be aware that any assessments submitted in other formats will be considered LATE and will lose marks until it is presented in Word.
For assistance please speak to our Academic Learning Skills Coordinators, in Sydney (firstname.lastname@example.org) or in Melbourne (email@example.com). They can help you with understanding the task, draft checking, structure, referencing and other assignment-related matters.
GENERAL NOTES FOR ASSESSMENT TASKS
Content for Assessment Task papers should incorporate a formal introduction, main points and conclusion.
Appropriate academic writing and referencing are inevitable academic skills that you must develop and demonstrate in work being presented for assessment. The content of high quality work presented by a student must be fully referenced within-text citations and a Reference List at the end. Kent strongly recommends you refer to the Academic Learning Support Workshop materials available on the Kent Learning Management System (Moodle). This Moodle Site is the location for Workbooks and information that are presented to Kent Students in the ALS Workshops conducted at the beginning of each Trimester.
Kent recommends a minimum of FIVE (5) references in work being presented for assessment. Unless otherwise specifically instructed by your Lecturer or as detailed in the Unit Outline for the specific Assessment Task, any paper with less than five (5) references may be deemed not meeting a satisfactory standard and possibly be failed.
Content in Assessment tasks that includes sources that are not properly referenced according to the
“Harvard Referencing Workbook” will be penalised.
Marks will be deducted for failure to adhere to the word count if this is specifically stated for the Assessment Task in the Unit Outline. As a general rule there is an allowable discretionary variance to the word count in that it is generally accepted that a student may go over or under by 10% than the stated length.
GENERAL NOTES FOR REFERENCING
References are assessed for their quality. Students should draw on quality academic sources, such as books, chapters from edited books, journals etc. The textbook for the Unit of study can be used as a reference, but not the Lecturer Notes. The Assessor will want to see evidence that a student is capable of conducting their own research. Also, in order to help Assessors determine a student’s understanding of the work they cite, all in-text references (not just direct quotes) must include the specific page number(s) if shown in the original. Before preparing your Assessment Task or own contribution, please review this ‘YouTube’ video.
A search for peer-reviewed journal articles may also assist students. These type of journal articles can be located in the online journal databases and can be accessed from the Kent Library homepage. Wikipedia, online dictionaries and online encyclopaedias are acceptable as a starting point to gain knowledge about a topic, but should not be over-used – these should constitute no more than 10% of your total list of references/sources. Additional information and literature can be used where these are produced by legitimate sources, such as government departments, research institutes such as the National Health and Medical Research Council (NHMRC), or international organisations such as the World Health Organisation (WHO). Legitimate organisations and government departments produce peer reviewed reports and articles and are therefore very useful and mostly very current. The content of the following link explains why it is not acceptable to use non-peer reviewed website