Uploaded by Liam Laidlaw

final-project

advertisement
CS112 GUI Coding Final Project Specification
150 Points
Spring 2022
1
Objective
In this project you will learn how to build a GUI for a practical purpose.
2
Groups/Collaboration
For this assignment you may have a team of up to 2 students, including yourself, from the
CS112 Spring 2022 class. It is expected that you will commit to equal shares of the work
with those in your team.
While it is possible to be in a team by yourself this is not recommended.
You may collaborate with your fellow students outside your tema.
That being said each team will be responsible for turning in their own work.
The following are things which constitute collaboration:
• Asking a fellow student to explain an approach.
• Asking a fellow student to check a few lines of code for mistakes.
• Discussing potential approaches to solving the problem.
• Distribution of test cases.
Collaboration with a fellow student needs to be documented. This is as simple as mentioning
it in an acknowledgements section in your write up. Please detail the extent of the collaboration as well.
The following are things which do NOT constitute collaboration:
• Copying large chunks of code.
• Copying any part of the write up.
• Using ideas/code without any knowledge of the other party.
• Getting code from a fellow student who is not in this class.
• Getting another student to fix your code.
1
The actions above are outlines of what is and what isn’t collaboration. If you don’t know
if something would be collaboration please email me, but usually if you are wondering if
something would be collaboration it probably isn’t. If you take any of the above actions,
or similar, it will be considered plagiarism and you will receive a 0. Additionally, normal
reporting procedures for academic dishonesty will be followed.
3
Project
The project will be done in the Java language using the Swing and AWT packages. While the
focus of the application is up to each team to decide, each project must have the following:
• Be in the MVC GUI design pattern.
• At least 3 different windows.
• At least 3 different UI elements per window.
• At least 4 different UI element types across the project.
• At least 1 Listener used per window.
• Data stored in a file.
• Data read from that file.
• Data written to that file.
Note: A UI element is determined by it’s class so three labels would not be sufficient for 3
different UI elements.
In addition to writing code you will be required to submit the following documentation:
• UML diagrams for each class.
• A User Manual
These documents will be separate assignments and will need to be submitted electronically.
I will not accept physical copies. You may submit scans or photos of your paper copies,
however.
The user manual must conform to the following style:
• Font Size: 12pt
• Spacing: Single Spaced
• Font: Times New Roman
• Margins: 1” top, bottom, left, and right
2
For each of these projects you will be required to create a presentation which takes no less
than 5 minutes with an upper limit to be determined based on the total number of teams.
This presentation will take place on the last day or two before finals week. The topic will
be your project including the following details:
• Current Functionality
• Remaining Functionality to implement
• Future Functionality (beyond the current scope)
Your presentation is welcome to have visual aids (i.e. a powerpoint presentation,) but that
is not required. It may also include a live demo, but your projects are not required to be
completed before then.
4
Rubric
Item
Points
Presentation
50
Functioning Code
100
5
Deliverables
You a zip file with your code will be submitted to canvas before the day of the final. Each
person in a team must submit to their canvas assignment. Thus, if two people are teamed up
each will submit the team’s work on canvas. This ensures the instructor will have multiple
copies in case something goes wrong. The instructor will only evaluate a single copy.
6
Example Project
An example project you might construct is a bank manager app. This app would keep track
of usernames, accounts, and account balances. It might have the following screens:
• A window for selecting which user to view.
• A window describing the current activities of the user (withdrawals and deposits)
• A window for closing accounts.
• A window for transferring money from one account to another (within the bank.)
3
Download