48024 Applications Programming辅导、讲解Java源文件、Java/CSS程序编程解析、Java讲解
- 首页 >> Java编程48024 Applications Programming
Assignment 2
Topics: OO Design, GUIs, MVC Pattern, Observer Pattern
Learning Outcomes: This assessment task addresses the following subject learning objectives (SLOs):
3, 4 and 5
Due date: 11:59PM Sunday the 14
th of October1
Weight: 20%
1. Individual work
All work is individual. You may discuss ideas, approaches and problems, but you should write every
line of code yourself except for code copied from the lecture notes, lecture code or lab code. You
MUST NOT let another student see your solution code, and you MUST NOT look at another student’s
solution code. More information about Academic Misconduct can be found at:
http://www.gsu.uts.edu.au/rules/student/section-16.html
2. Specification
After the success of Jaime’s computer building business your other friend Guillermo is keen to get in
on the action and has asked you to build him a similar piece of software to that which you provided
for Jaime. Guillermo has higher requirements though, and wants a GUI – no-one types anymore,
clicks are sales!
The specification for this GUI is presented in several parts, being an amazing animator, Guillermo has
produced a video demonstrating the functioning and appearance of the GUI interface (found on
PLATE, with the other assignment 2 material). Guillermo also gives you the following screenshots
(also found full size separately on PLATE):
Main Menu (20%)
The main menu opens when the program starts. It has an image
(provided by Guillermo), a title, two large buttons to open the
catalogue and the build respectively, and a small button to quit.
The title of the window is also set by the program.
1 Note that the subject outline has the due date as Monday the 15th
. This is incorrect. Apologies for any
confusion in this regard.
2
Catalogue Window (30%)
The catalogue window shows the parts currently in the catalogue
and allows the user to filter this list via three input fields, with
accompanying title and labels (see the video for a demonstration of
this functionality). It also has several buttons that allow the user to
add selected parts to the build, add new parts to the catalogue,
remove items from the catalogue and close the catalogue window.
Add Part to Catalogue Window (10%)
Allows the entry of details for a new part to be added to the
catalogue.
Error When Adding to Catalogue (5%)
Pop up informing user of an error in entering the price for a
new part.
Build Window (30%)
Shows the user’s current build. The total cost of the current
build is displayed just below the build, along with three
buttons allowing the user to check the build for basic
completeness, remove unwanted parts and close the
window.
3
Check Build Window (5%)
Shows the status of the current build with respect to basic
completeness.
3. Requirements
Layout
To achieve full marks, your layout must match the screenshots/video as closely as possible. You do
not need to match the OS supplied window frames or widgets, but everything within the window
frame is subject to assessment, along with the window title. All spacings are set at 10 in the model
solution, with preferred window widths at 500 and 300.
Style
A CSS file is provided with the skeleton code. This file contains the necessary style components to
make your program match the model solution. You may not necessarily need to use all the provided
components.
Code
As a starting point for this assignment, you must use the skeleton code provided on PLATE
(https://plate.it.uts.edu.au/) under Assessments->Assignment 2. There are two options, a Netbeans
version, which includes the structure required to import directly into Netbeans, and a plain version
for other IDEs (which tend to be less rigid about their import requirements).
Your solution must satisfy the following code requirements:
? Your solution must employ the MVC architecture.
? Your solution must keep the package and class names provided in the skeleton code.
? The models must notify the views of changes by correctly applying the JavaFX property
patterns and observable lists. Model data that can change must be observable. Model data
that never changes need not be observable.
? The views must be laid out using FXML.
4. Expected workload
The time to do the assignment to a distinction level (i.e. a mark between 75% to 84%) has been
estimated at 25 hours for a student of average ability who has completed all the tutorial and lab
exercises.
5. Online support
The Assignment 2 discussion board has been set up on UTSOnline so that students can ask
questions, and other students can reply. The course coordinator will only post a reply only if the
student response was wrong, or in the case of correcting a mistake in the assignment specification.
4
You must not post or share Java code to the discussion board. The board is there to help you, not
to provide the solution. Posting your code is academic misconduct and will reported. Each time this
rule is violated, the code will be removed and replaced with a comment of the form: “Strike 1:
Posting code”. After 3 strikes, the discussion board will be deleted because it did not work.
FAQs (Frequently Asked Questions) and their answers, if enough are asked, will be posted in the
Assignment 2 forum. If you have a question, check the FAQ first; it may already be answered there.
You should read the FAQ at least once before you hand in your solution, but to be safe check it every
couple of days. Anything posted on the FAQ is considered to be part of the assignment specification.
The FAQ will be frozen (no new entries) two days before the due date; no questions will be
answered after it is frozen.
If anything about the specification is unclear or inconsistent, contact the subject coordinator who
will try to make it clearer by replying to you directly and posting the common questions and answers
to the FAQ. This is similar to working on the job, where you ask your client if you are unsure what
has to be done, but then you write all the code to do the task. Email luke.mathieson@uts.edu.au to
ask for any clarifications or corrections to the assignment.
6. Submission to PLATE
READ THIS ENTIRE SECTION CAREFULLY
Included in the skeleton code is a file called progress.txt which you must fill out as you progress
through the assignment. This file will contain lines such as these:
[?] The Main menu window is at least partially done.
[?] The Main menu window is done.
[?] The Catalogue menu window is at least partially done.
...etc...
As you make progress on your assignment, you must edit this file by changing each [?] into a [y] and
then submit your progress to PLATE. Don’t forget to save this file before submitting. For example,
after you get the main menu window partially done (even if you have only done a small amount),
you edit this file as follows:
[y] The Main menu window is at least partially done.
[?] The Main menu window is done.
[?] The Catalogue menu window is at least partially done.
...etc...
Then you submit your project to PLATE so that there is a record of what your code looked like when
you first started to make progress on your Main menu window. After you complete the Main
window feature, you should again update this file as follows:
[y] The Main menu window is at least
partially done.
[y] The Main menu window is done.
[?] The Catalogue menu window is at least partially done.
...etc...
Then you submit your project to PLATE again so that there is a record of what your code looked like
when you completed this feature.
5
It is not always required that you complete a feature before moving onto the next feature. For
example, your progress.txt file may read:
[y] The Main menu window is at least partially done.
[?] The Main menu window is done.
[y] The Catalogue menu window is at least partially done.
...etc...
This would indicate that you partially completed the Main menu window, then moved on to the
Catalogue menu window. This is allowed, as long as you have completed at least enough of the Main
menu window that will allow you to correctly open the Catalogue menu window.
Important
If you don’t submit your progress on a particular feature, then your marks for that feature won’t
count! That is, you are only marked for those features where you submit evidence of your progress.
Be very careful to always submit your progress as soon as you make progress so that you don’t lose
any marks unnecessarily.
Your solution is to be submitted to PLATE at https://plate.it.uts.edu.au/ to Applications
Programming/Assessments/Assignment 2. Your assignment should be submitted as a JAR file that
includes:
? All Java source files required to compile your assignment.
? All FXML, CSS and image files required to run your assignment.
? The progress.txt file at the top level of your project directory structure.
Based on your submitted progress.txt file, PLATE will calculate a mark. This mark should NOT be
considered in any way as your final mark. Rather, it should be considered as a “potential” mark.
During the week 12 demonstration and peer marking day, the system will try to assign you to peer
mark other students who have a similar potential mark as yourself.
There is no scheduled late submission period. An extension of up to one week may be given by the
subject coordinator before the due date; you must supply documentary evidence of your claim. An
extension CANNOT be given after the due date.
You may also apply for special consideration for reasons including unexpected health, family or work
problems.
More information about how to apply for special consideration can be found at
http://www.sau.uts.edu.au/assessment/consideration.html.
7. Peer marking and demonstration
In your scheduled week 12 lab class you must be prepared to demonstrate your assignment to your
tutor and explain parts of your code to your tutor if requested. If you are unable to explain your
code, it may impact your marks. Your presence is required at this class. Any student who is not
present without being granted prior permission may have up to 50% of their marks for this
assignment deducted.
In addition to demonstrating your assignment, you will also be assigned two other students to peer
mark, and two other students will be assigned to peer mark you. The purpose of this peer marking is
to mark the functionality of your application which cannot be tested by PLATE. Your marks for
6
functionality will be based on these peer marks after they are moderated by the subject coordinator.
Aside from marks for the functionality, the subject coordinator will also check your code to ensure
that all code requirements have been met. If the code requirements have not been met (for
example, the observer pattern not used, marks will be deducted for those components). Note that
you can only be marked for features that can be demonstrated to work.
Marking the code and analysing spoofing, cheating and plagiarism is done in the two weeks
following the due date. If you are suspected of Academic Misconduct, I will forward your case to the
Misconduct Committee and will notify you by email. Your mark will be finalised within 2 weeks of
the due date.
8. Marking scheme
The marks for the assignment are divided into the following functionality components (note that
individual tests may test several functionality components, and a functionality component may be
tested by several tests):
Functionality Component Mark Allocation
Main Window
? Image displayed - 2
? Heading and title correct - 2
? Buttons correctly laid out and formatted. - 6
? Buttons open correct windows. - 8
? Exit button closes entire program. - 2
20
Catalogue Window
? Title correct – 1
? Headings for table correct – 3
? Table correctly laid out – 2
? Filter heading correct – 1
? Filter labels correct – 3
? Filter text fields correctly laid out – 3
? Buttons correctly laid out – 4
? Buttons function correctly – 5
? Table updates correctly using observer
pattern – 8
30
Add Part Window
? Title correct – 1
? Labels correct – 3
? Text fields laid out correctly – 3
? Button laid out correctly – 1
? Button functions correctly – 2
10
Error Window
? Title correct – 1
? Error message correct – 1
? Button laid out correctly – 1
? Button functions correctly – 2
5
Build Window
? Title correct – 1
? Headings for table correct – 3
? Table correctly laid out – 2
30
7
? Price correctly formatted – 1
? Total price shown – 1
? Total price correctly calculated and
updating – 3
? Buttons laid out correctly – 3
? Buttons function correctly – 8
? Table updates correctly using the observer
pattern – 8
Build Check Window
? Title correct – 1
? Correct text show for current build – 2
? Button correctly laid out – 1
? Button functions correctly – 1
5
This adds to a mark out of 100 and makes up 20% of your final assessment mark.