IEMS5731 Software Design and Development (Fall 2023) Individual Course Project Specification - GUI Calculator
Expected time: 10 hours
Instructions:
-
Do your own work. You are welcome to discuss the problems with your fellow
classmates. Sharing ideas is great, and do write your own explanations.
-
If you use help from the AI tools, e.g. ChatGPT, write clearly how much you obtain help
from the AI tools. No marks will be taken away for using any AI tools with a clear
declaration.
-
All work should be submitted onto the blackboard before the due date.
-
You are advised to submit a compressed file (.zip/.rar) containing your project. No
reports are required in the individual course project.
-
You only need to submit one project, containing all your work (completed tasks).
-
No submissions for the individual course project will result in failing the course.
-
Due date: 22th November, 2023 (Wednesday) 23:59
Summary of the Tasks
You are advised to implement the calculator based on the steps below.
-
Basic information (10%)
-
Background of the display of the number (10%)
-
Radio button selection (20%)
-
The “Sp” button (20%)
-
Fancy view (20%)
-
Multiply and divide first, then add and subtract (20%)
Learning outcomes: |
|
1
Important reminder: You need to use the provided skeleton. If you rewrite the whole calculator, or put everything into a big class, you will not receive any scores from the individual course project.
Task 1: Basic information (10%)
In this task, you should include all basic components of your project, including:
-
● The submitted project can be executed on eclipse without any errors.
-
● Your name and student ID are filled in the comment of the Calculator.java.
-
● The declaration of academic honesty is filled in the comment of the Calculator.java.
-
● The title of the application is updated to your student ID.
2
Task 2: Background of the display of the number (10%)
In this task, you are going to change the background of the display of the number to an image. The area is indicated by the purple border in the image below.
3
Task 3: Radio button selection (20%)
In this task, you are going to develop the property for the radio buttons at the bottom:
-
● When the application starts, the option “Classic view” is selected.
-
● When the user clicks the “Classic view” while “Classic view” is selected, no changes
occur.
-
● When user chooses the “Fancy view”, “Fancy view” is selected, and “Classic view” is
unselected
-
● Exactly one option is selected.
4
Task 4: The “Sp” button (20%)
In this task, you are going to implement the “Sp” button based on the unit digit of your student ID.
Unit digit of your student ID |
Display on the “Sp” button |
Function |
Number before clicking the button |
Number after clicking the button |
0 or 1 e.g. 1155100000 1155100001 |
inv |
inverse value |
-5731 |
-0.0001744896 |
2 or 3 e.g. 1155100002 1155100003 |
log |
Logarithm base 10 |
5731 |
3.75823040846 |
4 or 5 e.g. 1155100004 1155100005 |
x^2 |
Square value |
-5731 |
32844361 |
6 or 7 e.g. 1155100006 1155100007 |
sqrt |
Square root |
5731 |
75.7033684852 |
8 or 9 e.g. 1155100008 1155100009 |
-ve |
Negative |
-5731 |
5731 |
When a negative number is supplied to square root or logarithm base 10, or 0 is supplied to inverse, output “infinity”, which is the same behaviour as 1/0 implemented in the calculator.
5
Task 5: Fancy view (20%)
In this task, you are going to design the “Fancy view” of the calculator.
-
● When “Fancy view” is selected, the button panel is changed.
-
● When “Classic view” is selected, the button panel is resumed to the original one.
-
● In the “Fancy view”, the position of the buttons are redesigned.
-
● In the “Fancy view”, there are differences in the button size.
-
● In the “Fancy view”, there are visual properties (e.g. colors, shading, font style, ...
etc) on each button.
-
● Switching the view does not affect the procedure of calculation. E.g. you press “1 + 3
+” in the “Classic view”. 4 is shown on the display. Then, when you switch to the “Fancy view”, 4 still appears on the display. Then, you press “5 +”, and 9 is displayed. Then, you switch back to “Classic view”, and press “1 =”. Finally, 10 is displayed.
6
Task 6: Multiply and divide first, then add and subtract (20%)
In this task, you are going to update the model, so that the calculation will follow the rule, “multiply and divide first, then add and subtract”.
To illustrate the rule, study the example: “1 + 2 - 3 * 4 / 6 =”, carefully.
Button pressed |
Display in the original design |
Display in the updated design |
1 |
1 |
1 |
+ |
1.0 |
1.0 |
2 |
2 |
2 |
- |
3.0 |
3.0 |
3 |
3 |
3 |
* |
0.0 |
3.0 |
4 |
4 |
4 |
/ |
0.0 |
12.0 |
6 |
6 |
6 |
= |
0.0 |
1.0 |
< End of Specification >
7