An individual project for Introduction to Computers and Programming, KMITL Software Engineering, Year 1, Semester 1
Created by Dulapah Vibulsanti (64011388)
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.
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.
- 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
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
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
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.
When user presses the upper left button, the selection menu will appear. From here, they can select tools they want.
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
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
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)
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)
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)
Supports: Celsius, Fahrenheit, Kelvin
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)
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)
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)
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)
Supports: Microseconds, Milliseconds, Seconds, Minutes, Hours, Days, Weeks, Years
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)
Supports: Watts, Kilowats, Horsepower (US), Foot-pounds/minute, BTUs/minute
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)
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)
Supports: Atmospheres, Bars, Kilopascals, Millimeters of mercury, Pascals, Pounds per square inch
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)
Supports: Degrees, Radians, Gradians
Other features:
- Auto detect invalid input (i.e. contains non-numeric character)