Skip to content

WebCoderLV/ScannerUzdevums

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📟 ScannerUzdevums

A simple Java console calculator application with robust input handling, error management, and modular design. This project demonstrates best practices in Java structure, testing, and documentation.


📁 Project Structure

src/
  main/Main.java                # Entry point for the calculator application
  classes/Kalkulators.java      # Calculator logic and arithmetic operations
  interfaces/KalkInterface.java # Functional interface for result formatting
  interfaces/MathInterface.java # Interface for arithmetic operations

test/
  AppTest.java                  # Tests for main application logic
  KalkulatorsTest.java          # Tests for Kalkulators arithmetic and getters/setters
  KalkulatorsInterfaceTest.java # Tests for Kalkulators interface and constants
run-tests.sh                    # Script to compile and run all tests
lib/                            # JUnit and Lombok libraries

✨ Main Features

Main.java

  • Entry point for the calculator app
  • Interacts with the user via the console
  • Prompts for operation (+, -, *) and two integer operands
  • Validates input and limits allowed mistakes before terminating
  • Delegates calculation logic to the Kalkulators class

Kalkulators.java

  • Implements a simple calculator with addition, subtraction, and multiplication
  • Uses MathInterface for multiplication and default subtraction
  • Uses KalkInterface for result formatting via a lambda expression
  • Annotated with Lombok for getters, setters, and no-args constructor
  • Constant ATLAUTO_KLUDU_SKAITS limits allowed input errors

KalkInterface.java

  • Functional interface for formatting calculation results as strings

MathInterface.java

  • Interface for arithmetic operations
  • Provides default implementation for subtraction

🧪 Testing

AppTest.java

  • Simulates user input and captures output
  • Verifies addition, multiplication, and invalid operation scenarios

KalkulatorsTest.java

  • Verifies correctness of arithmetic operations and getter/setter methods

KalkulatorsInterfaceTest.java

  • Verifies result formatting and constant value

🚀 How to Run

Compile and test

./run-tests.sh
  • Cleans, compiles, and runs all tests with preview features enabled

Run the application

java --enable-preview -cp bin main.Main

📦 Requirements

  • Java 24 (for preview features)
  • JUnit 5 (standalone jar in lib/)
  • Lombok (jar in lib/)

👤 Author

Arturs


This README was generated from Javadoc comments in the source files for clarity and completeness.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published