ITI 1121. Introduction to Computing II
Assignment 3
Submission deadline: See Brightpsace
Assignment: Group of 2 students Maximum.
Submission: A3_123456_123789.zip the two numbers are the students’numbers.
Reminders: The submitted code must be yours.
You are also responsible to not expose your code to others.
The submission must be done through Brightspace, before the deadline.
- Only submit your java files, do not submit any .class files.
- You must test your programs to make sure they give the correct results.
- A program that gives a compilation error or an execution error will receive a mark of zero.
- You have to put comments in the programs. The comments are not needed for each line of
code. However, they have to explain in simple English what the program does. - Some java files are provided, they should be used and the content already there cannot be modified.
Which means you need to keep the existing code and add your code to it. - Important: one submission per group is enough, however both students are responsible to make sure the
submission was done before the deadline.
Academic Integrity
https://www.uottawa.ca/admini…
https://www.uottawa.ca/vice-p…
By submitting this assignment, you acknowledge the following: - I have read the academic regulations of the University of Ottawa regarding academic fraud.
- I understand the consequences of plagiarism.
- With the exception of the source code provided by the professor for this course, all the source code is mine and my group
partner only.
ITI 1121. Introduction to Computing II
A3Q1
In this question, you will implement PostFixCalculator, a calculator using postfix expressions.
Ask the user to enter a postfix expression. He can use five operators. He can use one or more operators among:
‘plus’,‘minus’,‘multiply’,’divide’,‘squareRoot’. Use spaces as your separators.
Implement your custom exceptions. You need to handle at least the following exceptions: - The user enters an operator not among the five allowed, throw you custom exception
OperatorNotSupportedException - The user enters an expression that involves a division by zero, throw ArithmeticException. Use 1 as a default
operand to divide on. This means replace the operand which is zero by one, and continue. - The user enters an expression that involves the square root of a negative number, throw
ArithmeticException. Display 0 as output to the user and terminate the execution of the current expression.
The ask the user if he wants to enter another expression to evaluate. - The expression is not well formatted, throw your custom exception WrongExpressionFormatException, ask
the user if he wants to enter another expression to evaluate.
Depending on your implementation, you may need to handle other exceptions so that your program doesn’t crash
(Example: if you used an array in your program, handle ArrayIndexOutOfBoundsException).
Catch all of your exceptions, and display a proper message. The message displayed should start with the name of
the exception that was thrown. Example,“WrongExpressionFormatException: The expression you entered has a
wrong format”.
Solve the arithmetic expression entered using a stack. LinkedStack.java is provided for that, don’t change it.
Push the operands encountered in the postfix expression into the stack, and pop the needed operands as soon as an
operator is encountered in the postfix expression.
Do Not let your program crash. Handle all your exceptions properly.
A3Q1.java contains the main program, it gets the user input, uses PostFixHandler, and displays the output.
If no exception occurred: the output should be the correct result of the evaluation of the expression. - After completing an expression, ask the user if they want to enter another expression to evaluate. Both‘Y’
and‘y’mean yes, continue. Any other character can be taken as no.
An example:
Enter your postfix expression: 30 4 minus 25 squareRoot plus
output: 31
Do you want to enter another expression to evaluate? (Y/N):
Test your program for the five operators and combinations of them.
Add your names and student numbers to all the java files.
Submit A3Q1.java, LinkedStack.java, PostFixHandler.java, Stack.java and any java files you added.
ITI 1121. Introduction to Computing II
A3Q2
In this question, you will implement a Linked List of elements of type Item. This is similar to the linked list we
used in class as a stack. In this question, you will use the same structure, but you will not use it as a stack. This
means you can access any element, even if it is not at the top.
An item attributes are: label, quantity, price. - Prompt the user to enter these values, separated by spaces, for each item. After entering each item, ask the
user if there are more items Y/N. Both‘Y’or‘y’mean yes continue, any other character can be taken as no. - Store the items in the Linked List of Items and display them to the user.
- Implement a method to find duplicates and to eliminate the duplicated items in this way:
▪ keep one of the duplicated items,
▪ its quantity will be the sum of the quantities of duplicated items of the same label,
▪ its price will be the minimum price of the duplicates.
When the duplicates are eliminated, display the new list to the user. - Implement a method to calculate the value of the current stock: the quantity of available items * the price.
Display this value to the user. - Implement a method to find the most expensive item, display the label of this item and its price to the user.
- Implement a method to find the least expensive item, display the label of this item and its price to the user.
The program should not crash at runtime, catch your exceptions and handle them by displaying the
corresponding message to the user. Example: if, for an item, the user enters a string/char instead of an int for
quantity, this will cause the exception: NumberFormatException, make sure you handle it. Ignore this item, the
user should re-enter this item. Same for other exceptions.
Use the provided files: Item.java, LinkedItems.java, and A3Q2.java. Add your student numbers and names to all.
Submit all three files.
WX:codehelp