From d03ae445b5278b6e8e54f7c817eafbbd2dbf801f Mon Sep 17 00:00:00 2001 From: Feruz Gofurov Date: Mon, 6 Oct 2025 10:31:28 +0500 Subject: [PATCH] Completed lesson03 --- .../lessons/lesson03/bankSystem/Account.java | 38 ++++++++++ .../lesson03/bankSystem/BankSystem.java | 59 +++++++++++++++ .../lesson03/bankSystem/MainBankSystem.java | 30 ++++++++ .../lessons/lesson03/basicClasses/Book.java | 30 ++++++++ .../lessons/lesson03/basicClasses/Car.java | 20 +++++ .../lesson03/basicClasses/Library.java | 17 +++++ .../lessons/lesson03/basicClasses/Person.java | 20 +++++ .../lesson03/basicClasses/Rectangle.java | 23 ++++++ .../lessons/lesson03/onlineStore/Main.java | 35 +++++++++ .../lesson03/onlineStore/OnlineStore.java | 75 +++++++++++++++++++ .../lessons/lesson03/onlineStore/Product.java | 38 ++++++++++ .../lesson03/streetFighter/Fighter.java | 47 ++++++++++++ .../lessons/lesson03/streetFighter/Game.java | 63 ++++++++++++++++ .../streetFighter/MainStreetFighter.java | 17 +++++ 14 files changed, 512 insertions(+) create mode 100644 src/main/java/lessons/lesson03/bankSystem/Account.java create mode 100644 src/main/java/lessons/lesson03/bankSystem/BankSystem.java create mode 100644 src/main/java/lessons/lesson03/bankSystem/MainBankSystem.java create mode 100644 src/main/java/lessons/lesson03/basicClasses/Book.java create mode 100644 src/main/java/lessons/lesson03/basicClasses/Car.java create mode 100644 src/main/java/lessons/lesson03/basicClasses/Library.java create mode 100644 src/main/java/lessons/lesson03/basicClasses/Person.java create mode 100644 src/main/java/lessons/lesson03/basicClasses/Rectangle.java create mode 100644 src/main/java/lessons/lesson03/onlineStore/Main.java create mode 100644 src/main/java/lessons/lesson03/onlineStore/OnlineStore.java create mode 100644 src/main/java/lessons/lesson03/onlineStore/Product.java create mode 100644 src/main/java/lessons/lesson03/streetFighter/Fighter.java create mode 100644 src/main/java/lessons/lesson03/streetFighter/Game.java create mode 100644 src/main/java/lessons/lesson03/streetFighter/MainStreetFighter.java diff --git a/src/main/java/lessons/lesson03/bankSystem/Account.java b/src/main/java/lessons/lesson03/bankSystem/Account.java new file mode 100644 index 0000000..5419b68 --- /dev/null +++ b/src/main/java/lessons/lesson03/bankSystem/Account.java @@ -0,0 +1,38 @@ +package lessons.lesson03.bankSystem; + +public class Account { + private int accountNumber; + private String fio; + private double balance; + + public String getFio() { + return fio; + } + + public Account(int accountNumber, String fio, double balance) { + this.accountNumber = accountNumber; + this.fio = fio; + this.balance = balance; + } + + public String getAccountInfo() { + return "AccountNumber: " + accountNumber + "\nFIO: " + fio + "\nBalance: " + balance + "\n"; + } + + public int getAccountNumber() { + return accountNumber; + } + + public void setAccountNumber(int accountNumber) { + this.accountNumber = accountNumber; + } + + public double getBalance() { + return balance; + } + + public void setBalance(double balance) { + this.balance = balance; + } +} + diff --git a/src/main/java/lessons/lesson03/bankSystem/BankSystem.java b/src/main/java/lessons/lesson03/bankSystem/BankSystem.java new file mode 100644 index 0000000..351328a --- /dev/null +++ b/src/main/java/lessons/lesson03/bankSystem/BankSystem.java @@ -0,0 +1,59 @@ +package lessons.lesson03.bankSystem; + +import java.util.ArrayList; + +public class BankSystem { + private ArrayList accounts = new ArrayList<>(); + + public void addAccount(Account account) { + accounts.add(account); + } + + public void deleteAccount(int accountNumber) { + accounts.removeIf(account -> accountNumber == account.getAccountNumber()); + } + + public void replenishAccount(int accountNumber, double amount) { + if (amount < 0) { + System.out.println("You cannot send negative sum!"); + return; + } + for (Account account : accounts) { + if (accountNumber == account.getAccountNumber()) { + account.setBalance(account.getBalance() + amount); + System.out.println(account.getFio() + " balance has been replenished: " + amount); + System.out.println("Current balance: " + account.getBalance() + "\n"); + } + } + } + + public void transferMoneyBetweenAccounts(int from, int to, double amount) { + Account sender = null; + Account receiver = null; + for (Account account : accounts) { + if (account.getAccountNumber() == from) sender = account; + if (account.getAccountNumber() == to) receiver = account; + } + if (sender == null || receiver == null) { + System.out.println("One of the accounts was not found!"); + return; + } + if (sender.getBalance() < amount) { + System.out.println("Not enough money for transfer!"); + return; + } + sender.setBalance(sender.getBalance() - amount); + receiver.setBalance(receiver.getBalance() + amount); + System.out.println("Transfer successful! " + amount + " from " + from + " to " + to + "\n"); + } + + public void getAccounts() { + if (accounts.isEmpty()) { + System.out.println("No accounts found!"); + return; + } + for (Account account : accounts) { + System.out.println(account.getAccountInfo()); + } + } +} diff --git a/src/main/java/lessons/lesson03/bankSystem/MainBankSystem.java b/src/main/java/lessons/lesson03/bankSystem/MainBankSystem.java new file mode 100644 index 0000000..0f45dba --- /dev/null +++ b/src/main/java/lessons/lesson03/bankSystem/MainBankSystem.java @@ -0,0 +1,30 @@ +package lessons.lesson03.bankSystem; + +public class MainBankSystem { + public static void main(String[] args) { + Account accountNew = new Account(1234, "Aleksey Kivovarov", 9022212.5); + Account accountNew1 = new Account(1235, "Aleksey Kavalniy", 123); + BankSystem bankSystem = new BankSystem(); + bankSystem.addAccount(accountNew); + bankSystem.getAccounts(); + System.out.println(); + + bankSystem.transferMoneyBetweenAccounts(1234, 1235, 877); + System.out.println(); + + bankSystem.replenishAccount(1234, -456); + System.out.println(); + + bankSystem.replenishAccount(1234, 0.5); + System.out.println(); + + bankSystem.addAccount(accountNew1); + bankSystem.transferMoneyBetweenAccounts(1234, 1235, 9022212); + bankSystem.getAccounts(); + System.out.println(); + + bankSystem.deleteAccount(1235); + bankSystem.deleteAccount(1234); + bankSystem.getAccounts(); + } +} diff --git a/src/main/java/lessons/lesson03/basicClasses/Book.java b/src/main/java/lessons/lesson03/basicClasses/Book.java new file mode 100644 index 0000000..ef180b3 --- /dev/null +++ b/src/main/java/lessons/lesson03/basicClasses/Book.java @@ -0,0 +1,30 @@ +package lessons.lesson03.basicClasses; + +public class Book { + private final int isbn; + private String title; + private String author; + private int year; + private boolean status; + + public Book(int isbn, String title, String author, int year, boolean status) { + this.isbn = isbn; + this.title = title; + this.author = author; + this.year = year; + this.status = status; + } + + public void getBookInfo() { + System.out.println("Information about " + title + + "\nISBN: " + isbn + + "\nTitle: " + title + + "\nAuthor: " + author + + "\nYear: " + year + + "\nStatus: " + status); + } + + public void reserveBook() { + status = false; + } +} diff --git a/src/main/java/lessons/lesson03/basicClasses/Car.java b/src/main/java/lessons/lesson03/basicClasses/Car.java new file mode 100644 index 0000000..bf0e819 --- /dev/null +++ b/src/main/java/lessons/lesson03/basicClasses/Car.java @@ -0,0 +1,20 @@ +package lessons.lesson03.basicClasses; + +public class Car { + private final String country; + private final String model; + private final int yearOfManufacture; + + public Car(String country, String model, int yearOfManufacture) { + this.country = country; + this.model = model; + this.yearOfManufacture = yearOfManufacture; + } + + public void printInfo() { + System.out.println("Information about car:" + + "\nThe country of a car is " + country + + "\nThe model is " + model + + "\nThe year of made is " + yearOfManufacture); + } +} diff --git a/src/main/java/lessons/lesson03/basicClasses/Library.java b/src/main/java/lessons/lesson03/basicClasses/Library.java new file mode 100644 index 0000000..86e14f6 --- /dev/null +++ b/src/main/java/lessons/lesson03/basicClasses/Library.java @@ -0,0 +1,17 @@ +package lessons.lesson03.basicClasses; + +import java.util.ArrayList; + +public class Library { + private ArrayList books = new ArrayList<>(); + + public void addNewBook(Book book) { + books.add(book); + } + + public void getBooks() { + for (Book book : books) { + book.getBookInfo(); + } + } +} diff --git a/src/main/java/lessons/lesson03/basicClasses/Person.java b/src/main/java/lessons/lesson03/basicClasses/Person.java new file mode 100644 index 0000000..a4cb2ec --- /dev/null +++ b/src/main/java/lessons/lesson03/basicClasses/Person.java @@ -0,0 +1,20 @@ +package lessons.lesson03.basicClasses; + +public class Person { + private String name; + private int age; + + public Person(String name, int age) { + this.age = age; + this.name = name; + } + public void setAge(int age) { + this.age = age; + } + public int getAge() { + return age; + } + public void introduce() { + System.out.println("Hello! My name is " + name + " and I am " + age + " years old."); + } +} diff --git a/src/main/java/lessons/lesson03/basicClasses/Rectangle.java b/src/main/java/lessons/lesson03/basicClasses/Rectangle.java new file mode 100644 index 0000000..be2a444 --- /dev/null +++ b/src/main/java/lessons/lesson03/basicClasses/Rectangle.java @@ -0,0 +1,23 @@ +package lessons.lesson03.basicClasses; + +public class Rectangle { + private final int length; + private final int width; + + public Rectangle(int length, int width) { + this.length = length; + this.width = width; + } + + public void calculateSquare() { + int square = width * length; + System.out.println("Square of rectangle is: " + square); + } + + public void calculatePerimeter() { + double perimeter = (width + length) / 2.0; + System.out.println("Perimeter of rectangle is: " + perimeter); + } + + +} diff --git a/src/main/java/lessons/lesson03/onlineStore/Main.java b/src/main/java/lessons/lesson03/onlineStore/Main.java new file mode 100644 index 0000000..063c66b --- /dev/null +++ b/src/main/java/lessons/lesson03/onlineStore/Main.java @@ -0,0 +1,35 @@ +package lessons.lesson03.onlineStore; + +public class Main { + public static void main(String[] args) { + Product product = new Product(1234,"SAMSUNG A12", 100, 10); + Product product1 = new Product(1234,"SAMSUNG A12", 100, 10); + Product product2 = new Product(1233,"SAMSUNG A11", 80, 30); + Product product3 = new Product(1234,"SAMSUNG A12", 100, 5); + + + OnlineStore onlineStore = new OnlineStore(); + onlineStore.addProduct(product); + + onlineStore.addProduct(product1); + +// onlineStore.addProduct(product2); + + onlineStore.buyProduct(1234, 29); +// onlineStore.getProducts(1233); +// onlineStore.buyProduct(123, 31); +// onlineStore.getProducts(1); +// onlineStore.getProducts(); +// onlineStore.getProducts(1233); +// onlineStore.buyProduct(1233, 31); +// onlineStore.buyProduct(1233, 2); +// onlineStore.getProducts(); + onlineStore.addProduct(product3); + onlineStore.getProducts(); + product3.setPrice(95.0); + onlineStore.getProducts(1234); + onlineStore.addProduct(product3); + onlineStore.getProducts(); + + } +} diff --git a/src/main/java/lessons/lesson03/onlineStore/OnlineStore.java b/src/main/java/lessons/lesson03/onlineStore/OnlineStore.java new file mode 100644 index 0000000..c57b8d5 --- /dev/null +++ b/src/main/java/lessons/lesson03/onlineStore/OnlineStore.java @@ -0,0 +1,75 @@ +package lessons.lesson03.onlineStore; + +import java.util.ArrayList; +import java.util.Scanner; + +public class OnlineStore { + + private ArrayList products = new ArrayList<>(); + + public void addProduct(Product product) { + boolean found = false; + for (Product product1 : products) { + if (product1.getCode() == product.getCode()) { + product1.setCount(product1.getCount() + product.getCount()); + product1.setPrice(product.getPrice()); + found = true; + break; + } + } + if (!found) { + products.add(product); + } + } + + public void buyProduct(int code, int count) { + for (Product product : products) { + if (code != product.getCode()) { + continue; + } + if (product.getCount() == 0) { + System.out.println("Product is not available!"); + return; + } + if (product.getCount() < count) { + System.out.print("Just " + product.getCount() + " products are available!" + + "\nDo you want buy all of them - " + product.getCount() + "? Yes or No - "); + Scanner sc = new Scanner(System.in); + String yesOrNo = sc.next(); + if (yesOrNo.equals("Yes")) { + product.setCount(0); + System.out.println("You bought all of them!\n"); + } else { + System.out.println("Purchase cancelled.\n"); + } + return; + } + product.setCount(product.getCount() - count); + System.out.println("You bought " + count + " products"); + return; + } + System.out.println("The code of product is incorrect. Try again!\n"); + } + + public void getProducts(int code) { + boolean found = false; + for (Product product : products) { + if (product.getCode() == code) { + System.out.println(product.getProductInfo()); + found = true; + } + } + if (!found) { + System.out.println("There is no such Product! Try again.\n"); + } + } + + public void getProducts() { + System.out.println("Information about all of Products in List"); + for (Product product : products) { + System.out.println(product.getProductInfo()); + } + System.out.println("Thats it!\n"); + } + +} diff --git a/src/main/java/lessons/lesson03/onlineStore/Product.java b/src/main/java/lessons/lesson03/onlineStore/Product.java new file mode 100644 index 0000000..1d73ebd --- /dev/null +++ b/src/main/java/lessons/lesson03/onlineStore/Product.java @@ -0,0 +1,38 @@ +package lessons.lesson03.onlineStore; + +public class Product { + private final int code; + private String name; + private double price; + private int count; + + public Product(int code, String name, double price, int count) { + this.code = code; + this.name = name; + this.price = price; + this.count = count; + } + public String getProductInfo() { + return "Code: " + code + "\nName: " + name + "\nPrice: " + price + "\nCount: " + count + "\n"; + } + + public int getCode() { + return code; + } + + public int getCount() { + return count; + } + + public void setCount(int count) { + this.count = count; + } + + public double getPrice() { + return price; + } + + public void setPrice(double price) { + this.price = price; + } +} diff --git a/src/main/java/lessons/lesson03/streetFighter/Fighter.java b/src/main/java/lessons/lesson03/streetFighter/Fighter.java new file mode 100644 index 0000000..5e412ee --- /dev/null +++ b/src/main/java/lessons/lesson03/streetFighter/Fighter.java @@ -0,0 +1,47 @@ +package lessons.lesson03.streetFighter; + +import java.util.Random; + +public class Fighter { + private int code; + private String name; + private double health; + private double attack; + + public int getCode() { + return code; + } + + public Fighter(int code, String name, double health, double attack) { + this.code = code; + this.name = name; + this.health = health; + this.attack = attack; + } + + public void fight(Fighter opponent) { + Random r = new Random(); + double damage = r.nextDouble(this.attack / 2, this.attack + 1); + double roundedDamage = Math.round(damage * 100.0) / 100.0; + opponent.health -= roundedDamage; + System.out.println(this.name + " attacked " + opponent.name + " for " + roundedDamage + " damage!"); + System.out.println(opponent.name + " health: " + opponent.health + "\n"); + } + + public String getFighterInfo() { + return "Name: " + name + "\nHealth: " + health + "\nAttack: " + attack + "\n"; + } + + public double getHealth() { + return health; + } + + public double getAttack() { + return attack; + } + + public String getName() { + return name; + } + +} diff --git a/src/main/java/lessons/lesson03/streetFighter/Game.java b/src/main/java/lessons/lesson03/streetFighter/Game.java new file mode 100644 index 0000000..137b94a --- /dev/null +++ b/src/main/java/lessons/lesson03/streetFighter/Game.java @@ -0,0 +1,63 @@ +package lessons.lesson03.streetFighter; + +import java.util.ArrayList; +import java.util.Random; + +public class Game { + private ArrayList fighters = new ArrayList<>(); + + public void add(Fighter fighter) { + for (Fighter fighter1 : fighters) { + if (fighter1.getCode() == fighter.getCode()) { + System.out.println("Fighter with code " + fighter.getCode() + " already exists!"); + return; + } + } + fighters.add(fighter); + } + + public void startBattle(Fighter f1, Fighter f2) { + Random r = new Random(); + + while (f1.getHealth() > 0 && f2.getHealth() > 0) { + boolean firstAttack = r.nextBoolean(); + + if (firstAttack) { + f1.fight(f2); + System.out.println("------------------------------"); + if (f2.getHealth() <= 0) { + break; + } + f2.fight(f1); + System.out.println("------------------------------"); + } else { + f2.fight(f1); + System.out.println("------------------------------"); + if (f1.getHealth() <= 0) { + break; + } + f1.fight(f2); + System.out.println("------------------------------"); + } + } + if (f1.getHealth() <= 0 && f2.getHealth() <= 0) { + System.out.println("Both fighters are down! It is a draw!"); + return; + } + if (f1.getHealth() > 0) { + System.out.println(f1.getName() + " is winner!"); + System.out.println(f2.getName() + " is removed from game!\n"); + fighters.remove(f2); + } else { + System.out.println(f2.getName() + " is winner!"); + System.out.println(f1.getName() + " is removed from the game!\n"); + fighters.removeIf(fighter -> fighter.equals(f1)); + } + } + + public void getFighters() { + for (Fighter fighter : fighters) { + System.out.println(fighter.getFighterInfo()); + } + } +} diff --git a/src/main/java/lessons/lesson03/streetFighter/MainStreetFighter.java b/src/main/java/lessons/lesson03/streetFighter/MainStreetFighter.java new file mode 100644 index 0000000..77ff8cf --- /dev/null +++ b/src/main/java/lessons/lesson03/streetFighter/MainStreetFighter.java @@ -0,0 +1,17 @@ +package lessons.lesson03.streetFighter; + +public class MainStreetFighter { + public static void main(String[] args) { + Fighter fighter = new Fighter(1234, "Megatron", 1700, 250); + Fighter fighter1 = new Fighter(1235, "Optimus Prime", 1500, 400); + Fighter fighter2 = new Fighter(1235, "Optimus Prime", 1500, 400); + Game game = new Game(); + game.add(fighter); + game.add(fighter1); + game.add(fighter2); + game.getFighters(); + + game.startBattle(fighter, fighter1); + game.getFighters(); + } +}