Desktop Calculator

Summary

Mentor(s): Dr. Mike Murphy
Project Type: Software development
Technologies: Python, Qt (PySide6 and Qt Designer), Git
Undergraduate Credit: CSCI 399, CSCI 490
Graduate Credit: Not available
Locality: Main campus and/or remote

Purpose

A standard feature of any desktop environment is a comprehensive calculator application. Typical desktop calculators offer various modes of operation, including basic arithmetic, scientific, financial, and computing/numerical systems. Some desktop calculators also support Reverse Polish Notation (RPN) as an alternative input method from the "normal" algebraic input.

One major consideration for a desktop calculator is that it is not possible to represent fractions of 10 (like 0.1, 0.01, etc.) using a finite number of floating-point bits. Therefore, the floating-point calculation 0.1 + 0.1 + 0.1 will not yield the value a user will expect. Fortunately, the Python standard library contains the decimal module to help with this problem.

Scope of Work

Implement a desktop calculator application using Python and Qt for Python (PySide6). Begin with a standard 4-function calculator, then add scientific, financial, and numerical system modes. Potentially add RPN as a user-selectable alternative to algebraic input. This project is a greenfield project that does not yet have any code written.