HTW Berlin Medieninformatik

HTW Berlin
Fachbereich 4
Internationaler Bachelor Studiengang
Internationale Medieninformatik (Bachelor)
Info 2: Informatik II
Summer Term 2023


Exercise 6: Fun with Calculators 1

Finger Exercises
 
Please have these completed before coming to the lab.

  1. You all know what a calculator is! Here's some code: calculator-full-solution. Have a look at how it solves the problem of reading in a digit followed by an operator followed by a digit, and how to calculate the value when = is pressed.
  2. Is there anything important missing in this calculator? Beware: do not expect to read and understand this in the first few minutes of the lab! Read it at home, discuss it with others, perhaps over the class forum so that we can join in and help! How does it work?
  3. What are hexadecimal numbers, by the way?

Lab exercise:

These are the required exercises for this week. Work in groups of two, doing pair programming, and turn in the same report for each member of the pair.

  1. Implement the missing functionality for expressions that consist of only single digit numbers and only binary operators discovered in the pre-lab.
  2. Extend your integer calculator without making any changes to your superclasses except for changing privates to protected to include buttons for entering in the hexadecimal digits. Make the calculator do its calculations and display in hexadecimal notation.
  3. Integrate a checkbox for switching between decimal and hexadecimal formats. Do not show the hexadecimal digits (or grey them out) when you have the calculator in decimal mode.
  4. What test cases do you need to test your calculator? If you find errors in your calculator, document them in your report!

For the bored:

  1. Make a whole collection of calculators: binary, octal, decimal, hexadecimal. Maybe make a CalculatorFactory that takes the base as a parameter to the constructor, figures out how to layout the buttons nicely, and calculates in the selected base mode?

Your report is due by 10.00 pm the evening before your next lab! As in Informatics 1, we are more interested in process than in product, although we are now getting more interested in products as well. Your report should include any collaborators, summarize what you learned, and note the time you invested in this exercise. How many lines of code did you write for each exercise? Record this in your report.


Copyright Prof. Dr. Debora Weber-Wulff
Questions or comments: <weberwu@htw-berlin.de>
Some rights reserved. CC-BY-NC-SA - Copyright and Warranty