An individual project for Introduction to Computers and Programming, KMITL Software Engineering, Year 1, Semester 1
Introduction
CalcLab is an all-in-one application which includes a scientific calculator with graph plotting capability, date comparator, currency converter (real-time rates), and 12 more converter tools. It is designed to be as easy to use and as straightforward as possible. It also has a beautiful flat-modern GUI which makes it fit seamlessly into any workspace.
Motivation
Generally, when people want to perform conversions or calculations, they must look up on the internet to get the right tools. However, that is inefficient and not so productive as they have to waste their precious time finding the right tools, not to mention some people even have a hard time finding the right tools. This is where CalcLab will solve the problem as it has all the right tools located at their fingertip, and it is very easy to use.
Features
- Calculator (scientific)
- Graph Plotter
- History
- Tools Selection Menu
- Date Comparator
- Currency Converter
- Volume Converter
- Length Converter
- Weight and Mass Converter
- Temperature Converter
- Energy Converter
- Area Converter
- Speed Converter
- Time Converter
- Power Converter
- Data Converter
- Pressure Converter
- Angle Converter
1. Calculator (scientific)
Supports: add, subtract, multiply, divide, percentage, square, cube, square root, cube root, factorial, natural logarithm, common logarithm (base 10), sin, cos, tan, sinh, cosh, tanh, e constant, pi constant
Other features:
- Auto detect invalid input (i.e. contains non-numeric character) and invalid number operations (i.e. dividing by 0)
- Auto prevent user from using more than one decimal point
- If the result is the same as what is currently displayed (i.e. 4/2 = 2), the display will blink, indicating that the result is updated
- Auto conversion to scientific notation when the result is too long
- Able to do continuous calculations, no need to press AC (i.e. pressing 5 + 2 x 2 will give out 14)
- Result will be automatically stored in history
2. Graph Plotter
Supports:
- Straight line
y=mx+c
,x=my
- Parabola
y=mx^2+c
- Cubic graph
y=mx^3+c
- Graph of
n
powery=mx^n+c
; 0 ≤ n ≤ 6
User can also type
/undo
to remove the latest plotted line. Examples of supported equation:
y=20 x=5.23 y=2x y=-2x+10 y=(1/2)x^2-(100/3) f(x)=-0.03x^2.5+20 y=(1/3)**3x^2+(25/2)**1.3
3. History
Everytime user calculates something, it will be stored in a text file history.txt
which user can view it right from the program. User also has an option to clear all history.
4. Tools Selection Menu
When user presses the upper left button, the selection menu will appear. From here, they can select tools they want.
5. Date Comparator
Supports: Calculate date difference and output in year, month, week, day, and sum of day.
Other features:
- Auto detect invalid input (i.e. contains non-numeric character, invalid date number, not entering date completely)
- If the year/month/week/day is 0, it will not be displayed
- Suffix (s) is automatically determined
- “From” date does not have to be less than “To” date
6. Currency Converter
Supports: BTC, AED, AUD, BRL, CAD, CHF, CLP, CNY, COP, CZK, DKK, EUR, GBP, HKD, HUF, IDR, ILS, INR, JPY, KRW, MXN, MYR, NOK, NZD, PHP, PLN, RON, RUB, SAR, SEK, SGD, THB, TRY, TWD, USD, ZAR The rates are obtained real-time right when press the equal button.
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)
- The program will show the current rates, date, and time at the bottom left
- The program will show error if the server is not responding
7. Volume Converter
Supports: Milliliters, Cubic centimeters, Liters, Cubic meters, Teaspoons (US), Tablespoons (US), Fluid ounces (US), Cups (US), Pints (US), Quarts (US), Gallons (US), Cubic inches, Cubic feet, Cubic yards, Teaspoons (UK), Tablespoons (UK), Fluid ounces (UK), Pints (UK), Quarts (UK), Gallons (UK),
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)
8. Length Converter
Supports: Nanometers, Microns, Millimeters, Centimeters, Meters, Kilometers, Inches, Feet, Yards, Miles, Nautical Miles
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)
9. Weight and Mass Converter
Supports: Carats, Milligrams, Centigrams, Decigrams, Grams, Dekagrams, Hectogram, Kilograms, Metric tonnes, Ounces, Pounds, Stone, Short tons (US), Long tons (US)
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)
10. Temperature Converter
Supports: Celsius, Fahrenheit, Kelvin
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)
11. Energy Converter
Supports: Electron volts, Joules, Kilojoules, Thermal calories, Food calories, Foot-pounds, British thermal units
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)
12. Area Converter
Supports: Square millimeters, Square centimeters, Square meters, Hectares, Square kilometers, Square inches, Square feet, Square yards, Acres, Square miles
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)
13. Speed Converter
Supports: Centimeters per second, Meters per second, Kilometers per hour, Feet per second, Miles per hour, Knots, Mach
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)
14. Time Converter
Supports: Microseconds, Milliseconds, Seconds, Minutes, Hours, Days, Weeks, Years
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)
15. Power Converter
Supports: Watts, Kilowats, Horsepower (US), Foot-pounds/minute, BTUs/minute
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)
16. Data Converter
Supports: Bits, Bytes, Kilobits, Kibibits, Kilobytes, Kibibytes, Megabits, Mebibits, Megabytes, Mebibytes, Gigabits, Gibibits, Gigabytes, Gibibytes, Terabits, Tebibits, Terabytes, Tebibytes, Petabits, Pebibits, Petabytes, Pebibytes, Exabits, Exbibits, Exabytes, Exibytes, Zetabits, Zebibits, Zetabytes, Zebibytes, Yottabit, Yobibits, Yottabyte, Yobibytes
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)
17. Pressure Converter
Supports: Atmospheres, Bars, Kilopascals, Millimeters of mercury, Pascals, Pounds per square inch
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)
18. Angle Converter
Supports: Degrees, Radians, Gradians
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)