Date: April 2023
QCalc is a Java-based calculator application aimed at reinforcing Java programming and OOP principles. This project covers the implementation of simple and scientific calculator features while handling exceptions and debugging issues. It’s built and tested with a focus on Java, OOPs Principles, and Unit Testing.
Throughout this project, we:
- Built calculator features following OOP principles.
- Handled exceptions to manage invalid data.
- Debugged and fixed issues in newly introduced calculator features.
- Utilized VSCode IDE to implement and test the code.
Scope of Work:
- Created a Java Gradle Project using Spring Initializer Extension in VSCode IDE.
- Developed basic arithmetic operations with two numbers and verified functionalities using unit tests.
- Added floating point arithmetic operations using method overloading.
Skills Used: Java
, Unit Testing
, JUnit
Scope of Work:
- Managed exceptions for invalid data entries.
- Validated exceptions through unit tests to ensure error handling accuracy.
Skills Used: Java
, Unit Testing
, JUnit
, Exception Handling
Scope of Work:
- Extended existing classes to add scientific calculator functionalities.
- Reused and enhanced pre-existing features to support advanced calculations.
Skills Used: Java
Scope of Work:
- Resolved compilation errors related to syntax/import issues.
- Corrected logical issues within the code and refined behavior for invalid data inputs.
- Implemented unit tests for edge cases initially overlooked.
Skills Used: Java
, Unit Testing
, JUnit
, Exception Handling
- Clone the Repository
git clone https://github.com/govindnathsng/QCalc.git cd QCalc Build the Project bash
./gradlew build
Run the Tests
bash
./gradlew test
⚙️ Technologies & Tools
Programming Language: Java
Testing Framework: JUnit
IDE: VSCode
Build Tool: Gradle
📈 Features
Basic Calculations: Addition, Subtraction, Multiplication, Division
Scientific Calculations: Extended operations like power, square root, etc.
Error Handling: Graceful handling of invalid inputs
Extensive Testing: Unit tests to cover basic functionality and edge cases
🤝 Contributing
We welcome contributions! Please fork the repository and create a pull request to add new features or improve the existing code. 📄 License
This project is licensed under the Apache License 2.0. 📞 Contact
For questions or feedback, feel free to reach out:
GitHub: govindnathsng
Email: govindnathsng[at]gmail[dot]com