Building Real-World Java Applications with Core Java, OOP, File Handling & Software Design
_ __ __ ___ _____ _ ___ _ __ __ _ ____ __ __ _ ___ _______ __
/ \ | \/ |_ _|_ _| | |/ / | | | \/ | / \ | _ \ | \/ | / \ |_ _|_ _\ \ / /
/ _ \ | |\/| || | | | | ' /| | | | |\/| | / _ \ | |_) | | |\/| | / _ \ | | | | \ V /
/ ___ \| | | || | | | | . \| |_| | | | |/ ___ \| _ < | | | |/ ___ \ | | | | | |
/_/ \_\_| |_|___| |_| |_|\_\\___/|_| |_/_/ \_\_| \_\ |_| |_/_/ \_\___| |_| |_|
This repository contains six complete Java console applications developed as part of the SaiKet Systems Java Training Program.
The projects demonstrate:
β Core Java Programming
β Object-Oriented Programming (OOP)
β Collections Framework
β File Handling & Data Persistence
β Exception Handling
β Business Logic Development
β Software Design Principles
β Real-World Application Development
This repository contains six complete Java console applications developed as part of the SaiKet Systems Java Internship Program. Each task progressively builds on the previous, taking learners from basic Java syntax all the way through full object-oriented design with inheritance, polymorphism, and custom exceptions.
SaiketSystems/
β
βββ README.md β This file (master overview)
β
βββ Task1_Calculator/
β βββ Calculator.java
β βββ README.md
β
βββ Task2_TempConverter/
β βββ TemperatureConverter.java
β βββ README.md
β
βββ Task3_TodoList/
β βββ TodoListApp.java
β βββ README.md
β
βββ Task4_NumberGuessing/
β βββ NumberGuessingGame.java
β βββ README.md
β
βββ Task5_TextAnalyzer/
β βββ TextFileAnalyzer.java
β βββ sample.txt β Auto-generated on first run
β βββ README.md
β
βββ Task6_BankingSystem/
βββ BankingSystem.java
βββ README.md
| # | Task | File | Difficulty | Key Concept |
|---|---|---|---|---|
| 1 | Calculator Application | Calculator.java |
β Beginner | Methods, Exception Handling |
| 2 | Temperature Converter | TemperatureConverter.java |
β Beginner | Methods, Math Operations |
| 3 | To-Do List Application | TodoListApp.java |
ββ Intermediate | OOP, ArrayList, Enums |
| 4 | Number Guessing Game | NumberGuessingGame.java |
ββ Intermediate | Random, Loops, Logic |
| 5 | Text File Analyzer | TextFileAnalyzer.java |
βββ Advanced | File I/O, String Manipulation |
| 6 | Basic Banking System | BankingSystem.java |
βββ Advanced | Inheritance, Polymorphism |
TASK 1 βββΊ TASK 2 βββΊ TASK 3 βββββββββββΊ TASK 4 βββΊ TASK 5 βββΊ TASK 6
β β β β β β
Methods Math Ops Classes & Random & File I/O Inheritance
Exceptions Formulas ArrayList Loops Strings Polymorphism
User Input Validation Enums Statistics HashMap Custom Exceptions
Switch-Case Multi-scale CRUD ops Difficulty BufferedIO Abstract Classes
- Java JDK 8 or higher
- Verify:
java -versionandjavac -version
# From the SaiketSystems root folder:
for dir in Task*/; do
echo "=== Compiling $dir ==="
javac "$dir"*.java -d "$dir"
done
echo "All tasks compiled!"for /d %d in (Task*) do (
echo === Compiling %d ===
javac %d\*.java -d %d
)# Task 1
cd Task1_Calculator && javac Calculator.java && java Calculator
# Task 2
cd Task2_TempConverter && javac TemperatureConverter.java && java TemperatureConverter
# Task 3
cd Task3_TodoList && javac TodoListApp.java && java TodoListApp
# Task 4
cd Task4_NumberGuessing && javac NumberGuessingGame.java && java NumberGuessingGame
# Task 5
cd Task5_TextAnalyzer && javac TextFileAnalyzer.java && java TextFileAnalyzer
# Task 6
cd Task6_BankingSystem && javac BankingSystem.java && java BankingSystemGoal: Build an arithmetic calculator with a user-friendly menu.
Features:
- Six operations: Addition, Subtraction, Multiplication, Division, Modulus, Power
- Division-by-zero and modulus-by-zero exception handling
- Non-numeric input recovery (re-prompts without crashing)
- Continuous operation until user exits
Sample Interaction:
Enter choice: 4
Enter first number : 22
Enter second number: 0
[MATH ERROR] Division by zero is not allowed!
Enter choice: 6
Enter first number : 2
Enter second number: 8
Result: 2.00 ^ 8.00 = 256.000000
Core Skills: static methods, switch-case, try-catch, Scanner
Goal: Convert between Celsius, Fahrenheit, and Kelvin.
Features:
- Any-to-any conversion via Celsius pivot
- Absolute zero boundary validation for all scales
- Shows conversion result AND all three scale equivalents
- Continuous conversion loop
Conversion Formulas Used:
Β°C β Β°F : (C Γ 9/5) + 32
Β°F β Β°C : (F β 32) Γ 5/9
Β°C β K : C + 273.15
K β Β°C : K β 273.15
Core Skills: Mathematical operations, method decomposition, input validation
Goal: Build a full task manager with priorities, status tracking, and filtering.
Features:
- Add tasks with title, description, and priority (LOW/MEDIUM/HIGH)
- View all tasks with visual priority icons:
[!!!][ ! ][ ] - Mark tasks as COMPLETE
- Delete with confirmation prompt
- Filter by status or priority
- View detailed task info
- Live summary header (total / pending / completed)
Class Design:
Task (model) β TaskManager (service) β TodoListApp (UI)
Core Skills: OOP classes & objects, ArrayList, enums, encapsulation
Goal: Guess a randomly generated number with feedback and difficulty levels.
Features:
- 4 difficulty levels (Easy / Normal / Hard / Expert) with different ranges
- Hot/Cold proximity hints (Very Hot / Warm / Cool / Very Cold)
- Directional arrow hints (Too High / Too Low)
- Visual progress bar:
[βββββββ] 3/7 used - Warnings at 2 remaining and last attempt
- Cross-round session statistics (win rate, best round, avg guesses)
Core Skills: java.util.Random, while loops, conditionals, static fields
Goal: Analyze any .txt file for comprehensive statistics.
Features:
- Counts: lines, words, sentences, paragraphs
- Counts: characters with and without spaces
- Top-10 most frequent word ranking
- Longest line detection
- Reading level estimate (Elementary β Academic)
- Case-insensitive keyword search with line numbers and occurrence counts
- Built-in sample file creator for instant demo
Core Skills: BufferedReader, FileReader, FileWriter, HashMap, regex
Goal: Simulate a multi-account banking system with full OOP.
Features:
- Open Savings (4% annual interest, βΉ500 min balance) or Current accounts (βΉ10K overdraft)
- Deposit, Withdraw, Transfer between accounts
- Check balance (with withdrawable balance for savings)
- Full timestamped transaction history per account
- List all accounts with totals
- Apply monthly interest to all savings accounts
- 3 pre-seeded demo accounts on launch
Inheritance Hierarchy:
BankAccount (abstract)
βββ SavingsAccount β 4% interest, minimum balance rule
βββ CurrentAccount β overdraft facility, no interest
Custom Exceptions:
InsufficientFundsException(with amount vs available balance detail)AccountNotFoundException
Core Skills: Abstract classes, inheritance, polymorphism, custom exceptions, LocalDateTime
| Java Concept | T1 | T2 | T3 | T4 | T5 | T6 |
|---|---|---|---|---|---|---|
| Static Methods | β | β | β | β | β | |
| Exception Handling | β | β | β | β | ||
| Custom Exceptions | β | |||||
| Scanner / User Input | β | β | β | β | β | β |
| Classes & Objects | β | β | β | |||
| Inheritance | β | |||||
| Abstract Classes | β | |||||
| Polymorphism | β | |||||
| Enums | β | β | β | |||
| ArrayList | β | β | β | |||
| HashMap | β | |||||
| Random | β | |||||
| File I/O | β | |||||
| String Manipulation | β | β | ||||
| Math Operations | β | β | ||||
| Java Time API | β | |||||
| Switch-Case | β | β | β | β | β | |
| Loops (while/for) | β | β | β | β | β | β |
| Test | Input | Expected Output |
|---|---|---|
| Addition | 1, 25, 17 |
42.000000 |
| Division by zero | 4, 10, 0 |
[MATH ERROR] Division by zero is not allowed! |
| Power | 6, 2, 10 |
1024.000000 |
| Invalid input | abc |
[ERROR] Please enter a valid menu number. |
| Test | Input | Expected |
|---|---|---|
| Boiling point | 1 (Β°C), 100 |
212.0000 Β°F |
| Absolute zero | 1 (Β°C), -274 |
Validation error |
| Body temp | 2 (Β°F), 98.6 β K |
310.1500 K |
| Action | Result |
|---|---|
| Add task with empty title | [ERROR] Title cannot be empty. |
| Mark already-complete task | [INFO] Task already completed. |
| Delete β n at confirm | Cancelled. |
| Scenario | Behaviour |
|---|---|
| Out-of-range guess | Re-prompts with range reminder |
| Non-numeric input | [ERROR] Enter a whole number. |
| 2 attempts left | Warning displayed |
| Correct guess | Congratulation + stats update |
| Input | Expected |
|---|---|
| Non-existent file | [ERROR] File not found: ... |
| Option 3 (sample) | Creates + analyzes sample_text.txt |
| Search "java" | All line numbers and counts |
| Action | Result |
|---|---|
| Withdraw > (balance β min) from Savings | InsufficientFundsException |
| Find non-existent account | AccountNotFoundException |
| Current account overdraft | Allowed up to βΉ10,000 |
| Monthly interest | All savings accounts updated |
| Field | Info |
|---|---|
| Organization | SaiKet Systems |
| Program | Java Training Program |
| Language | Java 8+ |
| Paradigm | Procedural β Object-Oriented |
| IDE Recommended | IntelliJ IDEA / VS Code / Eclipse |
Week 1 βββΊ Tasks 1 & 2 (Syntax, methods, math, input)
Week 2 βββΊ Tasks 3 & 4 (OOP basics, collections, game logic)
Week 3 βββΊ Tasks 5 & 6 (File I/O, full OOP, inheritance)
Once comfortable with all 6 tasks, try these upgrades:
- Task 1+: Add scientific calculator functions (sin, cos, log, sqrt)
- Task 3+: Persist tasks to a file between sessions (File I/O)
- Task 4+: Add a leaderboard stored in a file (top 5 scores)
- Task 5+: Generate an HTML report of the analysis
- Task 6+: Add PIN authentication and account locking after 3 wrong attempts
- Combined: Build a CLI that integrates tasks 3 & 6 β a personal finance tracker
β Successfully completed all assigned Java Development tasks.
β Built multiple real-world applications using Java.
β Applied software engineering best practices.
β Demonstrated strong understanding of Core Java and OOP.
β Developed practical solutions for automation and data management.
π§ Email: your-email@example.com
πΌ LinkedIn: https://linkedin.com/in/your-profile
π GitHub: https://github.com/your-github-username
"Code is not just instructions for machines β it's a craft that reflects your thinking." β SaiKet Systems Java Internship Program