FACULTY OF ENGINEERING AND INFORMATION SCIENCES
Subject: CSIT121 Object-Oriented Design and Programming
Session: Autumn 2020 (Fe
Programme / Section: Computer Science and IT
Lecturer: Ms. Siti Hawa
(tick appropriate box)
✓ Individual Assignment Group Assignment Project
Lab Task Seminar / Tutorial Paper Others
Coursework Title: FINAL ASSIGNMENT Coursework Percentage: 20%
ectness The applications implemented co
ectly as specified in the specification. 2 marks
ect and complete design and implementation of classes and uses
object-oriented design concepts that includes encapsulation, inheritance,
Include all components specified. Good and creative design. Include all
frames mentioned in the specification.
Event Handling Co
ect listener used and co
ect event handling implemented. 4 marks
Text File Processing Used text file to store user’s records co
ectly. 2 marks
Exceptions Handling Implemented suitable exceptions handling at appropriate places. 2 marks
Extra Features Implemented extra features 2 marks
All completed work should be submitted online through Moodle before or on the due date provided.
SUBMIT AS EARLY AS POSSIBLE. ONLY ONE SUBMISSION IS ALLOWED. IF RE-SUBMISSION IS NECESSARY,
YOU ARE REQUIRED TO REMOVE THE EARLIER SUBMISSION AND THIS MUST BE DONE BEFORE THE DUE
DATE. OTHERWISE YOU WILL BE PENALIZED FOR LATE SUBMISSON.
DUE DATE: Monday, 6th July XXXXXXXXXX:55 pm)
PENALTIES FOR LATE SUBMISSION:
Penalties apply to all late work, except if student academic consideration has been granted. Late submissions will
attract a penalty of 25% of the assessment mark per day including the weekend. Work more than (3) days late will be
awarded a mark of zero.
When you submit an assessment task, you are declaring the following
1. It is your own work and you did not collaborate with or copy from others.
2. You have read and understand your responsibilities under the University of Wollongong's policy on plagiarism.
3. You have not plagiarised from published work (including the internet). Where you have used the work from others,
you have referenced it in the text and provided a reference list at the end ot the assignment.
Plagiarism will not be tolerated. Students are responsible for submitting original work for assessment, without
plagiarising or cheating, abiding by the University’s policies on Plagiarism as set out in the University Handbook
This is a Final Assignment. This assignment is part of the alternative assessment and will contribute 20% to your
overall mark for this subject. This assignment is an individual assignment. You will be given ONE (1) WEEK to
complete this assignment and is required to submit latest by the due date mentioned in this document.
This objective of this assignment is assess your understanding on the following concepts:
GUI Components and Event Handling
Text File Processing
Lambdas and Streams
1. All programs should be able to run on the lab’s computers.
2. You must put the following information on the header of each text and source file you will be submitting in this
Student’s full name:
Purpose of this file (or program):
3. Assignments that are not able to be compiled will result in zero mark given to the assignment.
4. You must only use the Java features that have already been covered in the lectures
Your country is affected by the COVID-19 pandemic. The government has implemented the Movement Control
Order (MCO) to stop the spreading of the virus among the citizens. Due to this, many companies are forced to
close and stop any business that requires face-to-face contact.
To keep its business going, your company has decided to embark on an online business. As the lead programmer
in your company, you are required to produce a prototype to propose a suitable application using GUI and event
handling. The application should allow customers to order products, perform payment, and track the delivery status.
under University Policy Directory and in Faculty handbooks and subject guides. under University Policy Directory and
in Faculty handbooks and subject guides.
1. You are to propose suitable products for this application.
2. The application should be implemented using GUI components and event handling. The following frames
should be available. You may add more frames if necessary.
(i) The Welcome and Login frame
User have options to either login with existing username and password or register as new user.
Use a text file to keep all username and id for verification purposes.
Extra features: maintain two types of users – customer and admin.
(ii) The mainframe
Showing all products together with their prices
Allow user to order by selecting product to be purchased and the quantity desired
Showing the details of all order made together with the total price and delivery charges (may be
shown on a JTextArea)
Allow user to enter delivery details such as mailing address and phone number
Allow user to enter payment details such as using credit card or online payment (only simulation,
no actual connection is required)
(iii) The frame to allow searching and viewing of records
Allow searching and displaying of orders or products using the concept of lambdas and streams.
You may provide options where the user may choose from. For example: All Food that has price
less than RM20.00 or all Drinks under the category of latte.
(iv) Extra feature : The delivery tracking frame
Allow admin to update the status of delivery
Allow user to view the status of delivery
3. The components used must include at least JLabel, JTextField/JCombobox, JButton,
JRadioButton/JCheckBox, JTextArea. You may add other components if necessary
4. The application should also include images displayed on the frame.
5. To implement object-oriented concept, you are required to declare the following classes.
(i) A User class to store a user’s information for login purposes. User objects should be stored temporarily
in an A
and saved permanently on a text file before the program terminates. When
the program starts, the user’s information from the file is loaded back to the A
verification during login.
(ii) A Product class to store the general product’s information. This class will be the superclass for specific
product categories. Include suitable attributes and methods for the class. The class should allow the
quantity in stock to be tracked and updated after purchases have been made. You can declare this class
to be an abstract class.
(iii) At least TWO (2) classes that represent specific product (such as Food, Drink, etc) that inherit from the
Product class declared in (ii). The objects of these classes should be stored in an
ayList. Identify suitable additional attributes and methods for each subclass in
addition to the ones inherit from the superclass. Use text file to store a list of products’ information that
can be read when the program starts to populate the A
Your program should demonstrate the implementation of object-oriented concepts such as encapsulation,
inheritance, and polymorphism.
6. Suitable exceptions handling should be included in your application.