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.