From 6dcb9cb01a986af5a6463e776618b41894a5c687 Mon Sep 17 00:00:00 2001 From: Phong141003 Date: Fri, 15 Nov 2024 22:54:18 +0300 Subject: [PATCH 1/4] Hoang Xuan Phong lab 1-22 --- students/23L0908/23L0908-p01/pom.xml | 13 ++ .../ru/mirea/practice/s23l0908/Task3.java | 27 +++ .../ru/mirea/practice/s23l0908/Task4.java | 43 ++++ .../ru/mirea/practice/s23l0908/Task5.java | 19 ++ .../ru/mirea/practice/s23l0908/Task6.java | 20 ++ .../ru/mirea/practice/s23l0908/Task7.java | 33 +++ students/23L0908/23L0908-p02/pom.xml | 13 ++ .../mirea/practice/s23l0908/task/Author.java | 54 +++++ .../mirea/practice/s23l0908/task/Circle.java | 66 ++++++ .../practice/s23l0908/task/TestAuthor.java | 20 ++ .../mirea/practice/s23l0908/task10/Main.java | 27 +++ .../mirea/practice/s23l0908/task2/Ball.java | 42 ++++ .../practice/s23l0908/task2/Testball.java | 19 ++ .../mirea/practice/s23l0908/task3/Circle.java | 66 ++++++ .../mirea/practice/s23l0908/task3/Point.java | 34 +++ .../mirea/practice/s23l0908/task3/Tester.java | 37 ++++ .../practice/s23l0908/task4/Computer.java | 57 +++++ .../mirea/practice/s23l0908/task4/Shop.java | 88 ++++++++ .../mirea/practice/s23l0908/task4/Tester.java | 56 +++++ .../mirea/practice/s23l0908/task56/Dog.java | 22 ++ .../practice/s23l0908/task56/DogKennel.java | 31 +++ .../mirea/practice/s23l0908/task6/Circle.java | 55 +++++ .../mirea/practice/s23l0908/task6/Tester.java | 27 +++ .../practice/s23l0908/task6789/Book.java | 73 +++++++ .../practice/s23l0908/task6789/BookShelf.java | 68 ++++++ .../practice/s23l0908/task6789/Tester.java | 52 +++++ .../mirea/practice/s23l0908/task8/Main.java | 36 ++++ .../mirea/practice/s23l0908/task9/Poker.java | 68 ++++++ students/23L0908/23L0908-p03/pom.xml | 13 ++ .../java/ru/mirea/practice/s23l0908/Main.java | 46 +++++ .../s23l0908/outputline/task1/Main.java | 63 ++++++ .../s23l0908/outputline/task3/Agency.java | 26 +++ .../s23l0908/outputline/task3/Employee.java | 29 +++ .../s23l0908/outputline/task3/Report.java | 29 +++ .../s23l0908/outputline/task3/Tester.java | 18 ++ .../mirea/practice/s23l0908/task2/Circle.java | 60 ++++++ .../mirea/practice/s23l0908/task2/Point.java | 34 +++ .../mirea/practice/s23l0908/task2/Tester.java | 45 ++++ .../mirea/practice/s23l0908/task3/Main.java | 36 ++++ .../mirea/practice/s23l0908/task4/Main.java | 41 ++++ .../practice/s23l0908/taskclass/Main.java | 34 +++ students/23L0908/23L0908-p04/pom.xml | 13 ++ .../java/ru/mirea/practice/s23l0908/Main.java | 82 ++++++++ .../practice/s23l0908/task2/Atelier.java | 13 ++ .../practice/s23l0908/task2/Clothes.java | 27 +++ .../practice/s23l0908/task2/ClothingSize.java | 36 ++++ .../practice/s23l0908/task2/MenClothing.java | 5 + .../mirea/practice/s23l0908/task2/Pants.java | 17 ++ .../mirea/practice/s23l0908/task2/Skirt.java | 13 ++ .../mirea/practice/s23l0908/task2/TShirt.java | 17 ++ .../mirea/practice/s23l0908/task2/Tester.java | 27 +++ .../ru/mirea/practice/s23l0908/task2/Tie.java | 12 ++ .../s23l0908/task2/WomenClothing.java | 5 + .../mirea/practice/s23l0908/task3/Cart.java | 40 ++++ .../mirea/practice/s23l0908/task3/Main.java | 135 ++++++++++++ .../practice/s23l0908/task3/Operation.java | 10 + .../practice/s23l0908/task3/Product.java | 25 +++ .../mirea/practice/s23l0908/task3/User.java | 15 ++ .../practice/s23l0908/task4/Computer.java | 35 ++++ .../s23l0908/task4/ComputerBrand.java | 11 + .../mirea/practice/s23l0908/task4/Main.java | 17 ++ .../mirea/practice/s23l0908/task4/Memory.java | 21 ++ .../practice/s23l0908/task4/Monitor.java | 21 ++ .../practice/s23l0908/task4/Processor.java | 28 +++ students/23L0908/23L0908-p05/pom.xml | 13 ++ .../java/ru/mirea/practice/s23l0908/Main.java | 44 ++++ .../ru/mirea/practice/s23l0908/task2/App.java | 54 +++++ .../mirea/practice/s23l0908/task2/Circle.java | 18 ++ .../mirea/practice/s23l0908/task2/Main.java | 13 ++ .../practice/s23l0908/task2/Rectangle.java | 22 ++ .../mirea/practice/s23l0908/task2/Shape.java | 20 ++ .../ru/mirea/practice/s23l0908/task3/App.java | 26 +++ .../mirea/practice/s23l0908/task3/Main.java | 17 ++ .../ru/mirea/practice/s23l0908/task4/App.java | 48 +++++ .../mirea/practice/s23l0908/task4/Main.java | 14 ++ students/23L0908/23L0908-p06/pom.xml | 13 ++ .../mirea/practice/s23l0908/task10/Brand.java | 5 + .../practice/s23l0908/task10/Computer.java | 51 +++++ .../mirea/practice/s23l0908/task10/Fshop.java | 11 + .../practice/s23l0908/task10/Memory.java | 34 +++ .../practice/s23l0908/task10/Monitor.java | 44 ++++ .../practice/s23l0908/task10/Processor.java | 43 ++++ .../mirea/practice/s23l0908/task10/Shop.java | 64 ++++++ .../practice/s23l0908/task10/Tester.java | 100 +++++++++ .../practice/s23l0908/task11/Convert.java | 35 ++++ .../s23l0908/task11/Iconvertable.java | 5 + .../practice/s23l0908/task11/Tester.java | 50 +++++ .../mirea/practice/s23l0908/task12/Main.java | 194 ++++++++++++++++++ .../ru/mirea/practice/s23l0908/task3/Car.java | 14 ++ .../practice/s23l0908/task3/Nameable.java | 5 + .../mirea/practice/s23l0908/task3/Plane.java | 14 ++ .../practice/s23l0908/task3/TestNameable.java | 18 ++ .../practice/s23l0908/task4/Computer.java | 66 ++++++ .../practice/s23l0908/task4/Priceable.java | 5 + .../practice/s23l0908/task4/Telephone.java | 68 ++++++ .../s23l0908/task4/TestPriceable.java | 18 ++ .../practice/s23l0908/task56/Movable.java | 12 ++ .../s23l0908/task56/MovableCircle.java | 42 ++++ .../s23l0908/task56/MovablePoint.java | 50 +++++ .../mirea/practice/s23l0908/task56/Test.java | 19 ++ .../practice/s23l0908/task6789/Book.java | 15 ++ .../practice/s23l0908/task6789/Printable.java | 5 + .../practice/s23l0908/task6789/Shop.java | 32 +++ .../practice/s23l0908/task6789/Test.java | 16 ++ students/23L0908/23L0908-p07/pom.xml | 13 ++ .../ru/mirea/practice/s23l0908/Movable.java | 12 ++ .../mirea/practice/s23l0908/MovablePoint.java | 53 +++++ .../practice/s23l0908/MovableRectangle.java | 53 +++++ .../ru/mirea/practice/s23l0908/Tester.java | 23 +++ .../s23l0908/task4/MathCalculable.java | 9 + .../practice/s23l0908/task4/MathFunc.java | 34 +++ .../mirea/practice/s23l0908/task4/Tester.java | 14 ++ .../practice/s23l0908/task56/IString.java | 10 + .../s23l0908/task56/ProcessStrings.java | 45 ++++ .../practice/s23l0908/task56/Tester.java | 21 ++ .../mirea/practice/s23l0908/task78/Book.java | 16 ++ .../practice/s23l0908/task78/Magazine.java | 14 ++ .../practice/s23l0908/task78/Printable.java | 13 ++ .../practice/s23l0908/task78/Tester.java | 21 ++ students/23L0908/23L0908-p08/pom.xml | 13 ++ .../mirea/practice/s23l0908/task2/Main.java | 24 +++ .../mirea/practice/s23l0908/task3/Main.java | 29 +++ .../mirea/practice/s23l0908/task4/Main.java | 38 ++++ .../mirea/practice/s23l0908/task5/Main.java | 27 +++ students/23L0908/23L0908-p09/pom.xml | 13 ++ .../java/ru/mirea/practice/s23l0908/Main.java | 177 ++++++++++++++++ students/23L0908/23L0908-p10/pom.xml | 13 ++ .../java/ru/mirea/practice/s23l0908/Main.java | 138 +++++++++++++ .../ru/mirea/practice/s23l0908/Student.java | 43 ++++ students/23L0908/23L0908-p11/pom.xml | 13 ++ .../mirea/practice/s23l0908/task2/Main.java | 38 ++++ .../practice/s23l0908/task3/Student.java | 84 ++++++++ .../mirea/practice/s23l0908/task4/Main.java | 35 ++++ students/23L0908/23L0908-p12/pom.xml | 13 ++ .../mirea/practice/s23l0908/task1/Shape.java | 106 ++++++++++ .../practice/s23l0908/task2/Imageload.java | 24 +++ .../s23l0908/task2/ImagesLoading.java | 78 +++++++ .../s23l0908/task3/AnimationFrame.java | 46 +++++ .../s23l0908/task3/DemoAnimation.java | 102 +++++++++ students/23L0908/23L0908-p13/pom.xml | 13 ++ .../mirea/practice/s23l0908/task1/Main.java | 46 +++++ .../mirea/practice/s23l0908/task2/Person.java | 26 +++ .../practice/s23l0908/task3/Address.java | 67 ++++++ .../mirea/practice/s23l0908/task4/Shirt.java | 53 +++++ .../s23l0908/task5/FormatNumberTelephone.java | 25 +++ .../mirea/practice/s23l0908/task6/Main.java | 61 ++++++ students/23L0908/23L0908-p14/pom.xml | 13 ++ .../mirea/practice/s23l0908/task1/Main.java | 25 +++ .../mirea/practice/s23l0908/task2/Main.java | 14 ++ .../mirea/practice/s23l0908/task3/Main.java | 21 ++ .../mirea/practice/s23l0908/task4/Main.java | 15 ++ .../mirea/practice/s23l0908/task5/Main.java | 21 ++ .../mirea/practice/s23l0908/task6/Main.java | 24 +++ .../mirea/practice/s23l0908/task7/Main.java | 19 ++ students/23L0908/23L0908-p15/pom.xml | 13 ++ .../mirea/practice/s23l0908/task1/Main.java | 47 +++++ .../mirea/practice/s23l0908/task2/Main.java | 22 ++ .../mirea/practice/s23l0908/task3/Main.java | 85 ++++++++ .../practice/s23l0908/task4/Calculator.java | 100 +++++++++ students/23L0908/23L0908-p16/pom.xml | 13 ++ .../mirea/practice/s23l0908/task2/Main.java | 76 +++++++ .../mirea/practice/s23l0908/task3/Main.java | 72 +++++++ students/23L0908/23L0908-p18/pom.xml | 13 ++ .../mirea/practice/s23l0908/task123/Demo.java | 22 ++ .../mirea/practice/s23l0908/task4/Demo.java | 24 +++ .../mirea/practice/s23l0908/task6/Main.java | 35 ++++ .../mirea/practice/s23l0908/task7/Main.java | 29 +++ .../mirea/practice/s23l0908/task8/Main.java | 44 ++++ students/23L0908/23L0908-p19/pom.xml | 13 ++ .../practice/s23l0908/task123/Client.java | 32 +++ .../practice/s23l0908/task123/Error.java | 8 + .../mirea/practice/s23l0908/task123/Main.java | 29 +++ .../s23l0908/task2/Emptystringexception.java | 8 + .../practice/s23l0908/task2/Labclass.java | 36 ++++ .../s23l0908/task2/Labclassdriver.java | 29 +++ .../practice/s23l0908/task2/Labclassui.java | 9 + .../practice/s23l0908/task2/Student.java | 81 ++++++++ .../task2/Studentnotfoundexception.java | 9 + students/23L0908/23L0908-p20/pom.xml | 13 ++ .../practice/s23l0908/task123/Animal.java | 4 + .../mirea/practice/s23l0908/task123/Cat.java | 18 ++ .../mirea/practice/s23l0908/task123/Main.java | 43 ++++ .../practice/s23l0908/task4/Calculator.java | 32 +++ .../mirea/practice/s23l0908/task4/MinMax.java | 45 ++++ students/23L0908/23L0908-p22/pom.xml | 13 ++ .../practice/s23l0908/task1/Calculator.java | 57 +++++ .../mirea/practice/s23l0908/task1/Stack.java | 49 +++++ .../s23l0908/task4/CalculatorController.java | 8 + .../s23l0908/task4/CalculatorModel.java | 141 +++++++++++++ .../s23l0908/task4/CalculatorView.java | 26 +++ .../practice/s23l0908/task4/MCalculator.java | 13 ++ students/23L0908/README.adoc | 2 + students/23L0908/pom.xml | 38 ++++ 193 files changed, 6801 insertions(+) create mode 100644 students/23L0908/23L0908-p01/pom.xml create mode 100644 students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task3.java create mode 100644 students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task4.java create mode 100644 students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task5.java create mode 100644 students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task6.java create mode 100644 students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task7.java create mode 100644 students/23L0908/23L0908-p02/pom.xml create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task/Author.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task/Circle.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task/TestAuthor.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task10/Main.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task2/Ball.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task2/Testball.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task3/Circle.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task3/Point.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task3/Tester.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task4/Computer.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task4/Shop.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task4/Tester.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task56/Dog.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task56/DogKennel.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6/Circle.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6/Tester.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6789/Book.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6789/BookShelf.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6789/Tester.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task8/Main.java create mode 100644 students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task9/Poker.java create mode 100644 students/23L0908/23L0908-p03/pom.xml create mode 100644 students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/Main.java create mode 100644 students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task1/Main.java create mode 100644 students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task3/Agency.java create mode 100644 students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task3/Employee.java create mode 100644 students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task3/Report.java create mode 100644 students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task3/Tester.java create mode 100644 students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task2/Circle.java create mode 100644 students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task2/Point.java create mode 100644 students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task2/Tester.java create mode 100644 students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java create mode 100644 students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java create mode 100644 students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/taskclass/Main.java create mode 100644 students/23L0908/23L0908-p04/pom.xml create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/Main.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Atelier.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Clothes.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/ClothingSize.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/MenClothing.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Pants.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Skirt.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/TShirt.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Tester.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Tie.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/WomenClothing.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/Cart.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/Operation.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/Product.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/User.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Computer.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/ComputerBrand.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Memory.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Monitor.java create mode 100644 students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Processor.java create mode 100644 students/23L0908/23L0908-p05/pom.xml create mode 100644 students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/Main.java create mode 100644 students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/App.java create mode 100644 students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/Circle.java create mode 100644 students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java create mode 100644 students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/Rectangle.java create mode 100644 students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/Shape.java create mode 100644 students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task3/App.java create mode 100644 students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java create mode 100644 students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task4/App.java create mode 100644 students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java create mode 100644 students/23L0908/23L0908-p06/pom.xml create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Brand.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Computer.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Fshop.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Memory.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Monitor.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Processor.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Shop.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Tester.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task11/Convert.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task11/Iconvertable.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task11/Tester.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task12/Main.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task3/Car.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task3/Nameable.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task3/Plane.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task3/TestNameable.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task4/Computer.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task4/Priceable.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task4/Telephone.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task4/TestPriceable.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task56/Movable.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task56/MovableCircle.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task56/MovablePoint.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task56/Test.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task6789/Book.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task6789/Printable.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task6789/Shop.java create mode 100644 students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task6789/Test.java create mode 100644 students/23L0908/23L0908-p07/pom.xml create mode 100644 students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/Movable.java create mode 100644 students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/MovablePoint.java create mode 100644 students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/MovableRectangle.java create mode 100644 students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/Tester.java create mode 100644 students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task4/MathCalculable.java create mode 100644 students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task4/MathFunc.java create mode 100644 students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task4/Tester.java create mode 100644 students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task56/IString.java create mode 100644 students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task56/ProcessStrings.java create mode 100644 students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task56/Tester.java create mode 100644 students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task78/Book.java create mode 100644 students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task78/Magazine.java create mode 100644 students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task78/Printable.java create mode 100644 students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task78/Tester.java create mode 100644 students/23L0908/23L0908-p08/pom.xml create mode 100644 students/23L0908/23L0908-p08/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java create mode 100644 students/23L0908/23L0908-p08/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java create mode 100644 students/23L0908/23L0908-p08/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java create mode 100644 students/23L0908/23L0908-p08/src/main/java/ru/mirea/practice/s23l0908/task5/Main.java create mode 100644 students/23L0908/23L0908-p09/pom.xml create mode 100644 students/23L0908/23L0908-p09/src/main/java/ru/mirea/practice/s23l0908/Main.java create mode 100644 students/23L0908/23L0908-p10/pom.xml create mode 100644 students/23L0908/23L0908-p10/src/main/java/ru/mirea/practice/s23l0908/Main.java create mode 100644 students/23L0908/23L0908-p10/src/main/java/ru/mirea/practice/s23l0908/Student.java create mode 100644 students/23L0908/23L0908-p11/pom.xml create mode 100644 students/23L0908/23L0908-p11/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java create mode 100644 students/23L0908/23L0908-p11/src/main/java/ru/mirea/practice/s23l0908/task3/Student.java create mode 100644 students/23L0908/23L0908-p11/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java create mode 100644 students/23L0908/23L0908-p12/pom.xml create mode 100644 students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task1/Shape.java create mode 100644 students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task2/Imageload.java create mode 100644 students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task2/ImagesLoading.java create mode 100644 students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task3/AnimationFrame.java create mode 100644 students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task3/DemoAnimation.java create mode 100644 students/23L0908/23L0908-p13/pom.xml create mode 100644 students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java create mode 100644 students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task2/Person.java create mode 100644 students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task3/Address.java create mode 100644 students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task4/Shirt.java create mode 100644 students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task5/FormatNumberTelephone.java create mode 100644 students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task6/Main.java create mode 100644 students/23L0908/23L0908-p14/pom.xml create mode 100644 students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java create mode 100644 students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java create mode 100644 students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java create mode 100644 students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java create mode 100644 students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task5/Main.java create mode 100644 students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task6/Main.java create mode 100644 students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task7/Main.java create mode 100644 students/23L0908/23L0908-p15/pom.xml create mode 100644 students/23L0908/23L0908-p15/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java create mode 100644 students/23L0908/23L0908-p15/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java create mode 100644 students/23L0908/23L0908-p15/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java create mode 100644 students/23L0908/23L0908-p15/src/main/java/ru/mirea/practice/s23l0908/task4/Calculator.java create mode 100644 students/23L0908/23L0908-p16/pom.xml create mode 100644 students/23L0908/23L0908-p16/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java create mode 100644 students/23L0908/23L0908-p16/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java create mode 100644 students/23L0908/23L0908-p18/pom.xml create mode 100644 students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task123/Demo.java create mode 100644 students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task4/Demo.java create mode 100644 students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task6/Main.java create mode 100644 students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task7/Main.java create mode 100644 students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task8/Main.java create mode 100644 students/23L0908/23L0908-p19/pom.xml create mode 100644 students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task123/Client.java create mode 100644 students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task123/Error.java create mode 100644 students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task123/Main.java create mode 100644 students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Emptystringexception.java create mode 100644 students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Labclass.java create mode 100644 students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Labclassdriver.java create mode 100644 students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Labclassui.java create mode 100644 students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Student.java create mode 100644 students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Studentnotfoundexception.java create mode 100644 students/23L0908/23L0908-p20/pom.xml create mode 100644 students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task123/Animal.java create mode 100644 students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task123/Cat.java create mode 100644 students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task123/Main.java create mode 100644 students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task4/Calculator.java create mode 100644 students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task4/MinMax.java create mode 100644 students/23L0908/23L0908-p22/pom.xml create mode 100644 students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task1/Calculator.java create mode 100644 students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task1/Stack.java create mode 100644 students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task4/CalculatorController.java create mode 100644 students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task4/CalculatorModel.java create mode 100644 students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task4/CalculatorView.java create mode 100644 students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task4/MCalculator.java create mode 100644 students/23L0908/README.adoc create mode 100644 students/23L0908/pom.xml diff --git a/students/23L0908/23L0908-p01/pom.xml b/students/23L0908/23L0908-p01/pom.xml new file mode 100644 index 000000000..865f2cafd --- /dev/null +++ b/students/23L0908/23L0908-p01/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p01 + Массивы + diff --git a/students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task3.java b/students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task3.java new file mode 100644 index 000000000..4caea5a30 --- /dev/null +++ b/students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task3.java @@ -0,0 +1,27 @@ +package ru.mirea.practice.s23l0908; + +import java.util.Scanner; + +public final class Task3 { + private Task3() { + } + + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + System.out.print("Enter n: "); + int n = scanner.nextInt(); + int[] arr = new int[n]; + int sum = 0; + for (int i = 0; i < n; i++) { + System.out.print("arr[" + (i + 1) + "] = "); + arr[i] = scanner.nextInt(); + } + for (int i = 0; i < n; i++) { + sum += arr[i]; + } + double average = (double) sum / n; + System.out.println("Sum: " + sum); + System.out.println("Average: " + average); + } + } +} diff --git a/students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task4.java b/students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task4.java new file mode 100644 index 000000000..4d4ccb745 --- /dev/null +++ b/students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task4.java @@ -0,0 +1,43 @@ +package ru.mirea.practice.s23l0908; + +import java.util.Scanner; + +public final class Task4 { + + private Task4() { + } + + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + System.out.print("Enter n: "); + int n = scanner.nextInt(); + int[] arr = new int[n]; + int i = 0; + int sum = 0; + do { + System.out.print("arr[" + i + "] = "); + arr[i] = scanner.nextInt(); + sum += arr[i]; + i++; + } while (i < n); + + i = 0; + int min = arr[0]; + int max = arr[0]; + while (i < n) { + if (arr[i] < min) { + min = arr[i]; + } + if (arr[i] > max) { + max = arr[i]; + } + i++; + } + + System.out.println("Sum = " + sum); + System.out.println("Min = " + min); + System.out.println("Max = " + max); + } + } +} + diff --git a/students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task5.java b/students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task5.java new file mode 100644 index 000000000..c186a56d9 --- /dev/null +++ b/students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task5.java @@ -0,0 +1,19 @@ +package ru.mirea.practice.s23l0908; + +public final class Task5 { + + private Task5() { + } + + public static void main(String[] args) { + if (args.length > 0) { + System.out.println("Doi so dong lenh duoc truyen vao:"); + for (int i = 0; i < args.length; i++) { + System.out.println("Doi so " + i + " = " + args[i]); + } + } else { + System.out.println("Doi so khong duoc truyen"); + } + } +} + diff --git a/students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task6.java b/students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task6.java new file mode 100644 index 000000000..d3453bd72 --- /dev/null +++ b/students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task6.java @@ -0,0 +1,20 @@ +package ru.mirea.practice.s23l0908; + +public final class Task6 { + + private Task6() { + // Private constructor to prevent instantiation + } + + public static void main(String[] args) { + int n = 10; + double sum = 0.0; + System.out.println("10 number:"); + for (int i = 1; i <= n; i++) { + sum += 1.0 / i; + System.out.printf("H%d = %.4f%n", i, sum); + } + System.out.println("Result: " + sum); + } +} + diff --git a/students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task7.java b/students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task7.java new file mode 100644 index 000000000..aa134f6b3 --- /dev/null +++ b/students/23L0908/23L0908-p01/src/main/java/ru/mirea/practice/s23l0908/Task7.java @@ -0,0 +1,33 @@ +package ru.mirea.practice.s23l0908; + +import java.util.Scanner; + +public final class Task7 { + + private Task7() { + // Private constructor to prevent instantiation + } + + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + System.out.println("Enter n: "); + int n = scanner.nextInt(); + long result = giaithua(n); + System.out.print("Result: " + result); + } + } + + public static long giaithua(int n) { + if (n < 0) { + System.out.println("Cannot calculate factorial for negative numbers!"); + return -1; + } else { + long fact = 1; + for (int i = 1; i <= n; i++) { + fact *= i; + } + return fact; + } + } +} + diff --git a/students/23L0908/23L0908-p02/pom.xml b/students/23L0908/23L0908-p02/pom.xml new file mode 100644 index 000000000..163219430 --- /dev/null +++ b/students/23L0908/23L0908-p02/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p02 + Массивы + diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task/Author.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task/Author.java new file mode 100644 index 000000000..bbdcec389 --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task/Author.java @@ -0,0 +1,54 @@ +package ru.mirea.practice.s23l0908.task; + +public class Author { + private String name; + private String email; + private char gender; + + public Author(String name, String email, char gender) { + this.name = name; + this.email = email; + this.gender = gender; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public char getGender() { + return gender; + } + + public void setGender(char gender) { + this.gender = gender; + } + + @Override + public String toString() { + return "Author{" + + + "name='" + name + + '\'' + + + ", email='" + + email + + '\'' + + + ", gender=" + + gender + + + '}'; + } +} diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task/Circle.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task/Circle.java new file mode 100644 index 000000000..9d4660ab3 --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task/Circle.java @@ -0,0 +1,66 @@ +package ru.mirea.practice.s23l0908.task; + +@SuppressWarnings("unused") +public class Circle { + private double x; + private double y; + private double r; + private String colour; + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } + + public double getR() { + return r; + } + + public void setR(double r) { + this.r = r; + } + + public String getColour() { + return colour; + } + + public void setColour(String colour) { + this.colour = colour; + } + + // Calculates and returns the perimeter of the circle + public double getPerimeter() { + return 2 * Math.PI * this.r; + } + + @Override + public String toString() { + return "Circle{" + + + "x=" + + x + + + ", y=" + + y + + + ", r=" + + r + + + ", colour='" + + colour + + '\'' + + + '}'; + } +} diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task/TestAuthor.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task/TestAuthor.java new file mode 100644 index 000000000..d32345f66 --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task/TestAuthor.java @@ -0,0 +1,20 @@ +package ru.mirea.practice.s23l0908.task; + +public final class TestAuthor { + + private TestAuthor() { + } + + public static void main(String[] args) { + Author author = new Author("Nguyen", "ok.com", 'm'); + System.out.println(author); + author.setEmail("hoangpphong11@gmail.com"); + author.setName("Hoang Xuan Phong"); + author.setGender('m'); + System.out.println("Updated name: " + author.getName()); + System.out.println("Updated email: " + author.getEmail()); + System.out.println("Updated gender: " + author.getGender()); + System.out.println(author); + } +} + diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task10/Main.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task10/Main.java new file mode 100644 index 000000000..9ff65c47c --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task10/Main.java @@ -0,0 +1,27 @@ +package ru.mirea.practice.s23l0908.task10; + +import java.util.Scanner; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { // Sử dụng try-with-resources để tự động đóng tài nguyên + System.out.println("Enter a line of text:"); + String input = scanner.nextLine(); + + if (input.trim().isEmpty()) { + System.out.println("You entered 0 words."); + } else { + String[] words = input.trim().split("\\s+"); + System.out.println("Number of words entered: " + words.length); + } + } + } +} + + + diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task2/Ball.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task2/Ball.java new file mode 100644 index 000000000..1f62294ce --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task2/Ball.java @@ -0,0 +1,42 @@ +package ru.mirea.practice.s23l0908.task2; + +public class Ball { + private float x; + private float y; + private float xspeed; + private float yspeed; + + @SuppressWarnings("unused") + public Ball() { + this.x = 0.0f; + this.y = 0.0f; + this.xspeed = 1.0f; + this.yspeed = 1.0f; + } + + public Ball(float x, float y, float xspeed, float yspeed) { + this.x = x; + this.y = y; + this.xspeed = xspeed; + this.yspeed = yspeed; + } + + public void move() { + x += xspeed; + y += yspeed; + } + + public void reverse() { + xspeed = -xspeed; + yspeed = -yspeed; + } + + public String toString() { + return "Ball {" + + "x= " + x + + ", y= " + y + + ",xSpeed=" + xspeed + + ",ySpeed=" + yspeed + + "}"; + } +} diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task2/Testball.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task2/Testball.java new file mode 100644 index 000000000..184178bd1 --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task2/Testball.java @@ -0,0 +1,19 @@ +package ru.mirea.practice.s23l0908.task2; + +public final class Testball { + + private Testball() { + + } + + public static void main(String[] args) { + Ball ball = new Ball(0, 0, 4, 6); + System.out.println("Begin: " + ball); + ball.move(); + System.out.println("After move: " + ball); + ball.reverse(); + ball.move(); + System.out.println("After reverse move: " + ball); + } +} + diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task3/Circle.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task3/Circle.java new file mode 100644 index 000000000..89fee5850 --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task3/Circle.java @@ -0,0 +1,66 @@ +package ru.mirea.practice.s23l0908.task3; + +public class Circle { + private final Point center; // Đảm bảo 'center' không bị thay đổi + private double radius; + private char colour; + + @SuppressWarnings("unused") + public Circle(double x, double y, double radius, char colour) { + this.center = new Point(x, y); + this.radius = radius; + this.colour = colour; + } + + @SuppressWarnings("unused") + public Circle(double radius, char colour) { + this.center = new Point(); + this.radius = radius; + this.colour = colour; + } + + @SuppressWarnings("unused") + public Circle(double radius) { + this.center = new Point(); + this.radius = radius; + this.colour = '-'; + } + + @SuppressWarnings("unused") + public double getRadius() { + return radius; + } + + + @SuppressWarnings("unused") + public void setRadius(double radius) { + this.radius = radius; + } + + + @SuppressWarnings("unused") + public char getColour() { + return colour; + } + + + @SuppressWarnings("unused") + public void setColour(char colour) { + this.colour = colour; + } + + @Override + public String toString() { + return "Circle{" + + "center={" + center.getX() + + ", " + + center.getY() + + "}" + + ", radius=" + + radius + + ", colour=" + + colour + + '}'; + } +} + diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task3/Point.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task3/Point.java new file mode 100644 index 000000000..58311eba2 --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task3/Point.java @@ -0,0 +1,34 @@ +package ru.mirea.practice.s23l0908.task3; + +public class Point { + private double x; + private double y; + + public Point(double x, double y) { + this.x = x; + this.y = y; + } + + public Point() { + this.x = 0.0; + this.y = 0.0; + } + + public double getX() { + return x; + } + + @SuppressWarnings("unused") + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + @SuppressWarnings("unused") + public void setY(double y) { + this.y = y; + } +} diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task3/Tester.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task3/Tester.java new file mode 100644 index 000000000..f76afb6f8 --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task3/Tester.java @@ -0,0 +1,37 @@ +package ru.mirea.practice.s23l0908.task3; + +import java.util.Random; + +public final class Tester { // Marking as final + private static final int MIN_RANDOM_AVERAGE = 2; + private static final int MAX_RANDOM_AVERAGE = 13; + private static final double POSITION_RANGE = 20.0; + private static final double RADIUS_RANGE = 10.0; + private static final int CHAR_OFFSET = 97; + private static final int CHAR_RANGE = 26; + + // Private constructor to prevent instantiation (utility class) + private Tester() { + throw new IllegalStateException("Utility class"); + } + + public static void main(String[] args) { + Random random = new Random(); + int average = random.nextInt(MAX_RANDOM_AVERAGE) + MIN_RANDOM_AVERAGE; + Circle[] balls = new Circle[average]; + for (int i = 0; i < average; ++i) { + balls[i] = new Circle( + random.nextDouble() * POSITION_RANGE - POSITION_RANGE / 2, + random.nextDouble() * POSITION_RANGE - POSITION_RANGE / 2, + random.nextDouble() * RADIUS_RANGE, + (char) (random.nextInt(CHAR_RANGE) + CHAR_OFFSET) + ); + System.out.println(balls[i].toString()); + } + } +} + + + + + diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task4/Computer.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task4/Computer.java new file mode 100644 index 000000000..7657b081e --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task4/Computer.java @@ -0,0 +1,57 @@ +package ru.mirea.practice.s23l0908.task4; + +public class Computer { + private final String model; + private short rate; + + /** + * Constructs a Computer with the specified model and an initial rate of 0. + * + * @param model the model of the computer + */ + public Computer(String model) { + this.model = model; + this.rate = 0; + } + + /** + * Returns the model of the computer. + * + * @return the model of the computer + */ + public String getModel() { + return model; + } + + /** + * Returns the rate of the computer. + * + * @return the rate as a short value + */ + public short getRate() { + return rate; + } + + /** + * Sets the rate for the computer. + * + * @param rate the new rate to set + */ + public void setRate(short rate) { + this.rate = rate; + } + + /** + * Returns a string representation of the computer. + * + * @return a string with model and rate information + */ + @Override + public String toString() { + return "Computer {" + + "model = " + model + + ", rate = " + rate + "%" + + "}"; + } +} + diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task4/Shop.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task4/Shop.java new file mode 100644 index 000000000..d0420ee50 --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task4/Shop.java @@ -0,0 +1,88 @@ +package ru.mirea.practice.s23l0908.task4; + +import java.util.ArrayList; +import java.util.List; + +public class Shop { + private final List computers = new ArrayList<>(); + + /** + * Adds a new computer model to the shop if it does not already exist. + * + * @param model the model of the computer to add + * @return true if the model was added, false if it already exists + */ + public boolean add(String model) { + for (Computer computer : computers) { + if (computer.getModel().equals(model)) { + return false; // Model already exists + } + } + computers.add(new Computer(model)); + return true; // Model added successfully + } + + /** + * Deletes a computer model from the shop. + * + * @param model the model of the computer to delete + * @return true if the model was deleted, false if it was not found + */ + public boolean delete(String model) { + for (Computer computer : computers) { + if (computer.getModel().equals(model)) { + computers.remove(computer); + return true; // Model found and deleted + } + } + return false; // Model not found + } + + /** + * Increases the rating of a specified computer model by 1 if it exists. + * + * @param model the model of the computer to rate + */ + public void rateModel(String model) { + for (Computer computer : computers) { + if (computer.getModel().equals(model)) { + computer.setRate((short) (computer.getRate() + 1)); + break; + } + } + } + + /** + * Checks if a computer model exists in the shop. + * + * @param model the model of the computer to find + * @return true if the model is found, false otherwise + */ + public boolean find(String model) { + for (Computer computer : computers) { + if (computer.getModel().equals(model)) { + return true; + } + } + return false; + } + + /** + * Returns a string representation of all computers in the shop. + * + * @return a list of all computers or a message if the shop is empty + */ + @Override + public String toString() { + if (computers.isEmpty()) { + return "Nothing to show.\n"; + } + + StringBuilder list = new StringBuilder(); + for (Computer computer : computers) { + list.append(computer.toString()).append("\n"); + } + + return list.toString(); + } +} diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task4/Tester.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task4/Tester.java new file mode 100644 index 000000000..24988ab28 --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task4/Tester.java @@ -0,0 +1,56 @@ +package ru.mirea.practice.s23l0908.task4; + +import java.util.Scanner; + +public final class Tester { + + private Tester() { + throw new UnsupportedOperationException("Tester class cannot be instantiated"); + } + + public static void main(String[] args) { + try (Scanner input = new Scanner(System.in)) { + Shop shop = new Shop(); + System.out.println("You can /add to shop or /delete .\n" + + "After adding a few computers, you'll be able to /search or /rate .\n" + + "Type /show to see the whole list of computers. Type /end to exit."); + + String cmd = ""; + while (!"/end".equals(cmd)) { + cmd = input.nextLine().trim(); + + if (cmd.startsWith("/add ")) { + String model = cmd.substring(5).trim(); + if (shop.add(model)) { + System.out.println("Successfully added."); + } else { + System.out.println("Model already exists."); + } + } else if (cmd.startsWith("/delete ")) { + String model = cmd.substring(8).trim(); + if (shop.delete(model)) { + System.out.println("Successfully deleted."); + } else { + System.out.println("Model doesn't exist."); + } + } else if (cmd.startsWith("/search ")) { + String model = cmd.substring(8).trim(); + if (shop.find(model)) { + System.out.println("You can buy it right now."); + } else { + System.out.println("You'd better search for another shop..."); + } + } else if ("/show".equals(cmd)) { + System.out.print(shop); + } else if (cmd.startsWith("/rate ")) { + String model = cmd.substring(6).trim(); + shop.rateModel(model); + System.out.println("Your opinion matters."); + } else if (!"/end".equals(cmd)) { + System.out.println("Unrecognized command. Please, try again."); + } + } + } + } +} + diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task56/Dog.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task56/Dog.java new file mode 100644 index 000000000..eeb62b667 --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task56/Dog.java @@ -0,0 +1,22 @@ +package ru.mirea.practice.s23l0908.task56; + +public class Dog { + private final String name; + private final int age; + + public Dog(String name, int age) { + this.name = name; + this.age = age; + } + + public int getHumanAge() { + return age * 7; + } + + @Override + public String toString() { + return "Dog name=" + name + ", age=" + age + + "\nHuman age=" + getHumanAge(); + } +} + diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task56/DogKennel.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task56/DogKennel.java new file mode 100644 index 000000000..4871d08dc --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task56/DogKennel.java @@ -0,0 +1,31 @@ +package ru.mirea.practice.s23l0908.task56; + +import java.util.List; +import java.util.ArrayList; + +public class DogKennel { + private final List dogs; + + public DogKennel() { + dogs = new ArrayList<>(); + } + + public void addDog(Dog dog) { + dogs.add(dog); + } + + public void displayDogs() { + System.out.println("Displaying all dogs in the kennel:"); + for (Dog dog : dogs) { + System.out.println(dog); + } + } + + public static void main(String[] args) { + DogKennel kennel = new DogKennel(); + kennel.addDog(new Dog("Tyson", 3)); + kennel.addDog(new Dog("Hell", 4)); + + kennel.displayDogs(); + } +} diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6/Circle.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6/Circle.java new file mode 100644 index 000000000..61efc5c1d --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6/Circle.java @@ -0,0 +1,55 @@ +package ru.mirea.practice.s23l0908.task6; + +public class Circle { + private double radius; + + /** + * Constructs a Circle with a specified radius. + * + * @param radius the radius of the circle + */ + public Circle(double radius) { + this.radius = radius; + } + + @SuppressWarnings("unused") + + public Circle() { + this.radius = 1.0; + } + + @SuppressWarnings("unused") + public double getRadius() { + return radius; + } + + public void setRadius(double radius) { + if (radius > 0) { + this.radius = radius; + } else { + System.out.println("Radius must be greater than 0"); + } + } + + public double calculateArea() { + return Math.PI * radius * radius; + } + + public double calculateCircumference() { + return 2 * Math.PI * radius; + } + + public boolean isEqual(Circle otherCircle) { + return this.radius == otherCircle.radius; + } + + @Override + public String toString() { + return "Circle{" + + "radius=" + radius + + ", area=" + calculateArea() + + ", circumference=" + calculateCircumference() + + '}'; + } +} + diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6/Tester.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6/Tester.java new file mode 100644 index 000000000..3523ab76b --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6/Tester.java @@ -0,0 +1,27 @@ +package ru.mirea.practice.s23l0908.task6; + +public final class Tester { + + // Private constructor to indicate no instantiation for utility purposes. + private Tester() { + + } + + public static void main(String[] args) { + Circle circle1 = new Circle(5.0); + Circle circle2 = new Circle(3.0); + Circle circle3 = new Circle(5.0); + + System.out.println("Circle 1: " + circle1); + System.out.println("Circle 2: " + circle2); + System.out.println("Circle 3: " + circle3); + System.out.println("Circle 1 is equal to Circle 2: " + circle1.isEqual(circle2)); + System.out.println("Circle 1 is equal to Circle 3: " + circle1.isEqual(circle3)); + + circle2.setRadius(5.0); + + System.out.println("\nAfter changing radius of Circle 2: " + circle2); + System.out.println("Circle 1 is equal to Circle 2: " + circle1.isEqual(circle2)); + } +} + diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6789/Book.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6789/Book.java new file mode 100644 index 000000000..45ae5b5ca --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6789/Book.java @@ -0,0 +1,73 @@ +package ru.mirea.practice.s23l0908.task6789; + +public class Book implements Comparable { + private String author; + private String name; + private final String publishinghouse; + private int released; + + public Book(String author, String name, String publishinghouse, int released) { + this.author = author; + this.name = name; + this.publishinghouse = publishinghouse; + this.released = released; + } + + public String getAuthor() { + return author; + } + + @SuppressWarnings("unused") + public void setAuthor(String author) { + this.author = author; + } + + public String getName() { + return name; + } + + @SuppressWarnings("unused") + public void setName(String name) { + this.name = name; + } + + public String getPublishingHouse() { + return publishinghouse; + } + + public int getReleased() { + return released; + } + + @SuppressWarnings("unused") + public void setReleased(int released) { + this.released = released; + } + + @Override + public int compareTo(Book obj) { + return this.released - obj.released; + } + + @Override + public String toString() { + return "Book{" + + + "author='" + + author + + '\'' + + + ", name='" + + name + + '\'' + + + ", publishingHouse='" + + publishinghouse + + '\'' + + + ", released=" + + released + + + '}'; + } +} diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6789/BookShelf.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6789/BookShelf.java new file mode 100644 index 000000000..72b96de64 --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6789/BookShelf.java @@ -0,0 +1,68 @@ +package ru.mirea.practice.s23l0908.task6789; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class BookShelf { + int amount; + List books; + + public BookShelf(int amount) { + this.amount = amount; + this.books = new ArrayList<>(); + } + + public boolean add(String author, String name, String publishinghouse, int released) { + if (books.size() == this.amount) { + return false; + } + + boolean status = false; + + for (Book book : books) { + if (book.getName().equals(name) + && book.getPublishingHouse().equals(publishinghouse) + && book.getAuthor().equals(author) + && book.getReleased() == released) { + status = true; + break; + } + } + if (!status) { + books.add(new Book(author, name, publishinghouse, released)); + } + return !status; + } + + + public Book getEarliest() { + List copy = new ArrayList<>(books); + Collections.sort(copy); + return copy.get(0); + } + + public Book getLatest() { + List copy = new ArrayList<>(books); + Collections.sort(copy); + return copy.get(copy.size() - 1); + } + + public void sort() { + Collections.sort(books); + } + + @Override + public String toString() { + if (books.isEmpty()) { + return "There isn't any books yet.\n"; + } + + StringBuilder line = new StringBuilder("There is " + books.size() + " books on your shelf:\n"); + for (Book book : books) { + line.append(book.toString()).append("\n"); + } + + return line.toString(); + } +} diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6789/Tester.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6789/Tester.java new file mode 100644 index 000000000..98813afdb --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task6789/Tester.java @@ -0,0 +1,52 @@ +package ru.mirea.practice.s23l0908.task6789; + +import java.util.Scanner; + +public final class Tester { + private Tester() { + } + + public static void main(String[] args) { + try (Scanner input = new Scanner(System.in)) { + System.out.print("How many books we'll put on the shelf? "); + int average = input.nextInt(); + BookShelf shelf = new BookShelf(average); + + System.out.println("You can /add book to the bookshelf. " + + "After adding a few books, you'll be able to get /earliest and /latest book from the shelf.\n" + + "You also could /sort books on your shelf. Type /show to see the whole list of books."); + String cmd = ""; + while (!"/end".equals(cmd)) { + cmd = input.nextLine(); + if (cmd.startsWith("/add")) { + System.out.print("name: "); + final String name = input.nextLine(); + System.out.print("author: "); + final String author = input.nextLine(); + System.out.print("published by: "); + final String publishedBy = input.nextLine(); + System.out.print("released: "); + final int released = input.nextInt(); + input.nextLine(); // Consume newline + + if (shelf.add(name, author, publishedBy, released)) { + System.out.println("Successfully added."); + } else { + System.out.println("Your shelf is full, or you already have this book."); + } + } else if (cmd.startsWith("/earliest")) { + System.out.println(shelf.getEarliest()); + } else if (cmd.startsWith("/latest")) { + System.out.println(shelf.getLatest()); + } else if (cmd.startsWith("/show")) { + System.out.print(shelf); + } else if (cmd.startsWith("/sort")) { + shelf.sort(); + System.out.println("SORTED!"); + System.out.print(shelf); + } + } + } + } +} + diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task8/Main.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task8/Main.java new file mode 100644 index 000000000..913a8755d --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task8/Main.java @@ -0,0 +1,36 @@ +package ru.mirea.practice.s23l0908.task8; + +public final class Main { + private Main() { + + } + + public static void main(String[] args) { + String[] array = {"apple", "banana", "cherry", "blue berry"}; + System.out.println("Array from the begin:"); + printArray(array); + reverseArray(array); + System.out.println("Array after the reverse"); + printArray(array); + } + + public static void reverseArray(String[] array) { + int left = 0; + int right = array.length - 1; + while (left < right) { + String temp = array[left]; + array[left] = array[right]; + array[right] = temp; + + left++; + right--; + } + } + + public static void printArray(String[] array) { + for (String element : array) { + System.out.print(element + " "); + } + System.out.println(); + } +} diff --git a/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task9/Poker.java b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task9/Poker.java new file mode 100644 index 000000000..401cfd670 --- /dev/null +++ b/students/23L0908/23L0908-p02/src/main/java/ru/mirea/practice/s23l0908/task9/Poker.java @@ -0,0 +1,68 @@ +package ru.mirea.practice.s23l0908.task9; + +import java.util.Scanner; +import java.util.Random; + +public final class Poker { + + private Poker() { + + } + + public static void main(String[] args) { + try (Scanner input = new Scanner(System.in)) { + String[] suits = {"Spades", "Hearts", "Diamonds", "Clubs"}; + String[] ranks = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "Jacks", "Queens", "Kings", "Aces"}; + int cardAmount = suits.length * ranks.length; + int playerCardsAmount = 5; + + System.out.print("Enter the number of players: "); + int players = input.nextInt(); + + if (players * playerCardsAmount > cardAmount) { + System.out.println("Too many players for the available deck."); + return; + } + if (players <= 0) { + System.out.println("Sorry, the number of players must be greater than 0."); + return; + } + + String[] deck = new String[cardAmount]; + for (int i = 0; i < suits.length; i++) { + for (int j = 0; j < ranks.length; j++) { + deck[i * ranks.length + j] = ranks[j] + " of " + suits[i]; + } + } + + final Random random = new Random(); + for (int i = 0; i < deck.length; i++) { + int index = random.nextInt(cardAmount); + String temp = deck[i]; + deck[i] = deck[index]; + deck[index] = temp; + } + + String[][] playersCard = new String[players][playerCardsAmount]; + for (int i = 0; i < players; i++) { + for (int j = 0; j < playerCardsAmount; j++) { + playersCard[i][j] = deck[playerCardsAmount * i + j]; + } + } + + for (int i = 0; i < players; ++i) { + System.out.println("Player " + (i + 1) + "'s cards:"); + printDeck(playersCard[i]); + } + } + } + + public static void printDeck(String[] deck) { + for (String card : deck) { + System.out.print(card + "\t"); + } + System.out.println("\n"); + } +} + + diff --git a/students/23L0908/23L0908-p03/pom.xml b/students/23L0908/23L0908-p03/pom.xml new file mode 100644 index 000000000..d3758b3c1 --- /dev/null +++ b/students/23L0908/23L0908-p03/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p03 + Массивы + diff --git a/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/Main.java b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/Main.java new file mode 100644 index 000000000..35a4dd9dd --- /dev/null +++ b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/Main.java @@ -0,0 +1,46 @@ +package ru.mirea.practice.s23l0908; + +import java.util.Arrays; +import java.util.Random; + +public final class Main { + + private Main() { + throw new UnsupportedOperationException("Utility class"); + } + + public static void main(String[] args) { + int size = 10; + + double[] array1 = new double[size]; + System.out.println("Array 1 generated using Math.random():"); + for (int i = 0; i < size; i++) { + array1[i] = Math.random() * 100; + System.out.print(array1[i] + " "); + } + + Arrays.sort(array1); + System.out.println("\nSorted array 1 using Math.random():"); + for (double num : array1) { + System.out.print(num + " "); + } + + System.out.println("\n---------------------------"); + + // Array 2 generation using Random class + double[] array2 = new double[size]; + Random random = new Random(); + System.out.println("Array 2 generated using Random class:"); + for (int i = 0; i < size; i++) { + array2[i] = random.nextDouble() * 100; + System.out.print(array2[i] + " "); + } + + Arrays.sort(array2); + System.out.println("\nSorted array 2 using Random class:"); + for (double num : array2) { + System.out.print(num + " "); + } + } +} + diff --git a/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task1/Main.java b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task1/Main.java new file mode 100644 index 000000000..2dfff08af --- /dev/null +++ b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task1/Main.java @@ -0,0 +1,63 @@ +package ru.mirea.practice.s23l0908.outputline.task1; + +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +public class Main { + private final Map exchangeRates; + + public Main() { + exchangeRates = new HashMap<>(); + exchangeRates.put("USD", 1.0); + exchangeRates.put("EUR", 0.85); + exchangeRates.put("GBP", 0.75); + exchangeRates.put("JPY", 110.0); // 1 USD = 110 JPY + exchangeRates.put("VND", 23000.0); // 1 USD = 23000 VND + } + + public void addOrUpdateRate(String currency, double rate) { + exchangeRates.put(currency.toUpperCase(Locale.ROOT), rate); + } + + public double convert(double amount, String fromCurrency, String toCurrency) { + fromCurrency = fromCurrency.toUpperCase(Locale.ROOT); + toCurrency = toCurrency.toUpperCase(Locale.ROOT); + + if (!exchangeRates.containsKey(fromCurrency)) { + throw new IllegalArgumentException("Unsupported currency: " + fromCurrency); + } + if (!exchangeRates.containsKey(toCurrency)) { + throw new IllegalArgumentException("Unsupported currency: " + toCurrency); + } + + double baseAmount = amount / exchangeRates.get(fromCurrency); + return baseAmount * exchangeRates.get(toCurrency); + } + + public void printExchangeRates() { + System.out.println("Exchange Rates (Base: USD):"); + for (String currency : exchangeRates.keySet()) { + System.out.println(currency + ": " + exchangeRates.get(currency)); + } + } + + public static void main(String[] args) { + Main converter = new Main(); + converter.printExchangeRates(); + + double amountInUsd = 100.0; + String fromCurrency = "USD"; + String toCurrency = "EUR"; + + double convertedAmount = converter.convert(amountInUsd, fromCurrency, toCurrency); + System.out.printf("%.2f %s is %.2f %s\n", amountInUsd, fromCurrency, convertedAmount, toCurrency); + + converter.addOrUpdateRate("AUD", 1.35); + System.out.println("Added AUD exchange rate."); + + double amountInAud = converter.convert(100, "USD", "AUD"); + System.out.printf("100 USD is %.2f AUD\n", amountInAud); + + } +} diff --git a/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task3/Agency.java b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task3/Agency.java new file mode 100644 index 000000000..dc9f82db5 --- /dev/null +++ b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task3/Agency.java @@ -0,0 +1,26 @@ +package ru.mirea.practice.s23l0908.outputline.task3; + +import java.util.ArrayList; +import java.util.List; + +public class Agency { + private final String name; + private final List employees; + + public Agency(String name) { + this.name = name; + this.employees = new ArrayList<>(); + } + + public void addEmployees(String name, int salary) { + this.employees.add(new Employee(name, salary)); + } + + public List getEmployees() { // Return List instead of ArrayList + return this.employees; + } + + public String getName() { + return this.name; + } +} diff --git a/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task3/Employee.java b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task3/Employee.java new file mode 100644 index 000000000..eef243897 --- /dev/null +++ b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task3/Employee.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s23l0908.outputline.task3; + +public class Employee { + private String fullName; + private int salary; + + public Employee(String fullName, int salary) { + this.fullName = fullName; + this.salary = salary; + } + + public String getFullName() { + return fullName; + } + + @SuppressWarnings("unused") + public void setFullName(String fullName) { + this.fullName = fullName; + } + + public int getSalary() { + return salary; + } + + @SuppressWarnings("unused") + public void setSalary(int salary) { + this.salary = salary; + } +} diff --git a/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task3/Report.java b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task3/Report.java new file mode 100644 index 000000000..aadb1c6a8 --- /dev/null +++ b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task3/Report.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s23l0908.outputline.task3; + +import java.text.NumberFormat; +import java.util.Locale; + +public final class Report { + private Report() { + + } + + static void generateReport(Agency agency) { + int i = 1; + System.out.printf("%40s\n", "Report: Agency " + agency.getName()); + + NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance(new Locale("ru", "RU")); + + for (Employee employee : agency.getEmployees()) { + if (employee.getSalary() == 0) { + System.out.printf("%-4s%-45s%16s\n", i + ".", employee.getFullName(), "intern"); + } else { + System.out.printf("%-4s%-45s%16s\n", i + ".", employee.getFullName(), + currencyFormatter.format((double) employee.getSalary())); + } + ++i; + } + } +} + + diff --git a/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task3/Tester.java b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task3/Tester.java new file mode 100644 index 000000000..7a090a973 --- /dev/null +++ b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/outputline/task3/Tester.java @@ -0,0 +1,18 @@ +package ru.mirea.practice.s23l0908.outputline.task3; + +public final class Tester { + private Tester() { + throw new UnsupportedOperationException("Utility class"); + } + + public static void main(String[] args) { + Agency agency = new Agency("Raiffensen"); + + agency.addEmployees("ABC", 0); + agency.addEmployees("DEF", 250_000); + agency.addEmployees("XYZ", 100_000); + + Report.generateReport(agency); + } +} + diff --git a/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task2/Circle.java b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task2/Circle.java new file mode 100644 index 000000000..67f2f8442 --- /dev/null +++ b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task2/Circle.java @@ -0,0 +1,60 @@ +package ru.mirea.practice.s23l0908.task2; + +public class Circle implements Comparable { + Point center; + double radius; + char colour; + + public Circle(double x, double y, double radius, char colour) { + this.center = new Point(x, y); + this.radius = radius; + this.colour = colour; + } + + @SuppressWarnings("unused") + public Circle(double radius, char colour) { + this.center = new Point(); + this.radius = radius; + this.colour = colour; + } + + public double getRadius() { + return radius; + } + + @SuppressWarnings("unused") + public void setRadius(double radius) { + this.radius = radius; + } + + @SuppressWarnings("unused") + public char getColour() { + return colour; + } + + @SuppressWarnings("unused") + public void setColour(char colour) { + this.colour = colour; + } + + @Override + public int compareTo(Circle object) { + return (int) (this.radius * 1000) - (int) (object.getRadius() * 100); + } + + @Override + public String toString() { + return "Circle{" + + "center ={" + + center.getX() + + "," + + center.getY() + + "}" + + ", radius = " + + radius + + ", colour = " + + colour + + "}"; + + } +} diff --git a/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task2/Point.java b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task2/Point.java new file mode 100644 index 000000000..01fae9214 --- /dev/null +++ b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task2/Point.java @@ -0,0 +1,34 @@ +package ru.mirea.practice.s23l0908.task2; + +public class Point { + private double x; + private double y; + + public Point(double x, double y) { + this.x = x; + this.y = y; + } + + public Point() { + this.x = 0.0; + this.y = 0.0; + } + + public double getX() { + return x; + } + + @SuppressWarnings("unused") + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + @SuppressWarnings("unused") + public void setY(double y) { + this.y = y; + } +} diff --git a/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task2/Tester.java b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task2/Tester.java new file mode 100644 index 000000000..5bd4a3cc3 --- /dev/null +++ b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task2/Tester.java @@ -0,0 +1,45 @@ +package ru.mirea.practice.s23l0908.task2; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Random; + + +public final class Tester { + + private Tester() { + throw new UnsupportedOperationException("Utility class"); + } + + public static void main(String[] args) { + Random random = new Random(); + int average = random.nextInt(2, 8); + + List balls = new ArrayList<>(); + for (int i = 0; i < average; i++) { + balls.add(new Circle(random.nextDouble(-10, 10), random.nextDouble(-10, 10), random.nextDouble(0, 10), (char) random.nextInt(97, 122))); + System.out.println(balls.get(i).toString()); + } + sorted(balls); + System.out.println("Sorted: "); + for (Circle ball : balls) { + System.out.println(ball.toString()); + } + System.out.println("The smallest ball: " + getMin(balls)); + System.out.println("The biggest ball: " + getMax(balls)); + } + + public static Circle getMax(List balls) { + return Collections.max(balls); + } + + public static Circle getMin(List balls) { + return Collections.min(balls); + } + + public static void sorted(List balls) { + Collections.sort(balls); + } +} + diff --git a/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java new file mode 100644 index 000000000..4e33de7f6 --- /dev/null +++ b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java @@ -0,0 +1,36 @@ +package ru.mirea.practice.s23l0908.task3; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public final class Main { + private Main() { + throw new UnsupportedOperationException("Utility class"); + } + + public static void main(String[] args) { + Random random = new Random(); + List nums = new ArrayList<>(); + for (int i = 0; i < 4; ++i) { + nums.add(random.nextInt(10, 100)); + } + + System.out.println("Nums: " + nums); + if (isSorted(nums)) { + System.out.println("Nums already sorted."); + System.exit(0); + } + System.out.println("Nums not sorted."); + } + + private static boolean isSorted(List list) { + for (int i = 1; i < list.size(); i++) { + if (list.get(i - 1) > list.get(i)) { + return false; + } + } + return true; + } +} + diff --git a/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java new file mode 100644 index 000000000..6584390b1 --- /dev/null +++ b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java @@ -0,0 +1,41 @@ +package ru.mirea.practice.s23l0908.task4; + +import java.util.Arrays; +import java.util.Random; +import java.util.Scanner; + +public final class Main { + + private Main() { + throw new UnsupportedOperationException("Utility class"); + } + + public static void main(String[] args) { + try (Scanner input = new Scanner(System.in)) { + Random random = new Random(); + int n; + + do { + System.out.println("Number must be bigger than zero."); + System.out.print("Input your number: "); + n = input.nextInt(); + } while (n <= 0); + + int[] nums = new int[n]; + for (int i = 0; i < n; ++i) { + nums[i] = random.nextInt(0, n + 1); // Works for Java 17+ + } + System.out.println("First: " + Arrays.toString(nums)); + + int[] nums2 = new int[n >> 1]; + for (int i = 0; i < nums2.length; ++i) { + nums2[i] = nums[(i << 1) + 1]; + } + + if (nums2.length != 0) { + System.out.println("Second: " + Arrays.toString(nums2)); + } + } + } +} + diff --git a/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/taskclass/Main.java b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/taskclass/Main.java new file mode 100644 index 000000000..6180ae090 --- /dev/null +++ b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/taskclass/Main.java @@ -0,0 +1,34 @@ +package ru.mirea.practice.s23l0908.taskclass; + +public final class Main { + + private Main() { + throw new UnsupportedOperationException("Utility class"); + } + + public static void main(String[] args) { + String str = "9.42"; + double primitive = Double.parseDouble(str); + System.out.println("Converted String to double: " + primitive); + + double doubleObj = 7.56; + byte byteValue = (byte) doubleObj; + short shortValue = (short) doubleObj; + int intValue = (int) doubleObj; + long longValue = (long) doubleObj; + float floatValue = (float) doubleObj; + double doubleValue = doubleObj; + + + System.out.println("Double to byte: " + byteValue); + System.out.println("Double to short: " + shortValue); + System.out.println("Double to int: " + intValue); + System.out.println("Double to long: " + longValue); + System.out.println("Double to float: " + floatValue); + System.out.println("Double to double: " + doubleValue); + + String d = Double.toString(3.14); + System.out.println("Double literal to String: " + d); + } +} + diff --git a/students/23L0908/23L0908-p04/pom.xml b/students/23L0908/23L0908-p04/pom.xml new file mode 100644 index 000000000..5257de43c --- /dev/null +++ b/students/23L0908/23L0908-p04/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p04 + Массивы + diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/Main.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/Main.java new file mode 100644 index 000000000..2dcceaad3 --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/Main.java @@ -0,0 +1,82 @@ +package ru.mirea.practice.s23l0908; + +public final class Main { + + private Main() { + + } + + enum Season { //Холодное время года + WINTER(-5) { + @Override + public String getDescription() { + return "Winter- Cold season"; + } + }, + SPRING(10) { + @Override + public String getDescription() { + return "Spring - время обновления"; + } + }, + + SUMMER(25) { + @Override + public String getDescription() { + return "Summer- warm season"; + } + }, + AUTUMN(10) { + @Override + public String getDescription() { + return "Autumn- cold season"; + } + }; + + private final int averageTemperature; + + Season(int averageTemperature) { + this.averageTemperature = averageTemperature; + } + + public int getAverageTemperature() { + return averageTemperature; + } + + public String getDescription() { + return "Холодное время года"; + } + } + + public static void main(String[] args) { + // 1) Create a variable containing your favorite season and print all information about it + Season favoriteSeason = Season.SUMMER; + System.out.println("Любимое время года: " + favoriteSeason); + System.out.println("Средняя температура: " + favoriteSeason.getAverageTemperature() + "°C"); + System.out.println("Описание: " + favoriteSeason.getDescription()); + printSeasonMessage(favoriteSeason); + for (Season season : Season.values()) { + System.out.println(season + " - Средняя температура: " + season.getAverageTemperature() + "°C - " + season.getDescription()); + } + } + + public static void printSeasonMessage(Season season) { + switch (season) { + case WINTER: + System.out.println("Я люблю зиму"); + break; + case SPRING: + System.out.println("Я люблю весну"); + break; + case SUMMER: + System.out.println("Я люблю лето"); + break; + case AUTUMN: + System.out.println("Я люблю осень"); + break; + default: + throw new IllegalArgumentException("Unexpected season: " + season); + } + } + +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Atelier.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Atelier.java new file mode 100644 index 000000000..e92f7da85 --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Atelier.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s23l0908.task2; + +class Atelier { + public void dressWomen(Clothes clothes) { + System.out.println("Clothes for women:"); + ((WomenClothing) clothes).dressWomen(); + } + + public void dressMan(Clothes clothes) { + System.out.println("Clothes for men:"); + ((MenClothing) clothes).dressMan(); + } +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Clothes.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Clothes.java new file mode 100644 index 000000000..e140be3f3 --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Clothes.java @@ -0,0 +1,27 @@ +package ru.mirea.practice.s23l0908.task2; + +abstract class Clothes { + private final ClothingSize size; + private final double cost; + private final String color; + + public Clothes(ClothingSize size, double cost, String color) { + this.size = size; + this.cost = cost; + this.color = color; + } + + public ClothingSize getSize() { + return size; + } + + @SuppressWarnings("unused") + public double getCost() { + return cost; + } + + @SuppressWarnings("unused") + public String getColor() { + return color; + } +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/ClothingSize.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/ClothingSize.java new file mode 100644 index 000000000..657fc146e --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/ClothingSize.java @@ -0,0 +1,36 @@ +package ru.mirea.practice.s23l0908.task2; + + +enum ClothingSize { + XXS(32), + @SuppressWarnings("unused") + XS(34), + S(36), + M(38), + L(40); + + private final int euroSize; + + ClothingSize(int euroSize) { + this.euroSize = euroSize; + } + + @SuppressWarnings("unused") + public int getEuroSize() { + return euroSize; + } + + @SuppressWarnings("unused") + public String getDescription() { + String sizeDescription; + switch (this) { + case XXS: + sizeDescription = "children size"; + break; + default: + sizeDescription = "adult size"; + break; + } + return sizeDescription; + } +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/MenClothing.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/MenClothing.java new file mode 100644 index 000000000..e50948459 --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/MenClothing.java @@ -0,0 +1,5 @@ +package ru.mirea.practice.s23l0908.task2; + +interface MenClothing { + void dressMan(); +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Pants.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Pants.java new file mode 100644 index 000000000..3088bec5c --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Pants.java @@ -0,0 +1,17 @@ +package ru.mirea.practice.s23l0908.task2; + +class Pants extends Clothes implements MenClothing, WomenClothing { + public Pants(ClothingSize size, double cost, String color) { + super(size, cost, color); + } + + @Override + public void dressMan() { + System.out.println("Dress men in the pants sized " + getSize()); + } + + @Override + public void dressWomen() { + System.out.println("Dress women in the pants sized " + getSize()); + } +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Skirt.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Skirt.java new file mode 100644 index 000000000..769829fdf --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Skirt.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s23l0908.task2; + +@SuppressWarnings("unused") +class Skirt extends Clothes implements WomenClothing { + public Skirt(ClothingSize size, double cost, String color) { + super(size, cost, color); + } + + @Override + public void dressWomen() { + System.out.println("Dress women in the skirt sized " + getSize()); + } +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/TShirt.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/TShirt.java new file mode 100644 index 000000000..7c5f144b3 --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/TShirt.java @@ -0,0 +1,17 @@ +package ru.mirea.practice.s23l0908.task2; + +class TShirt extends Clothes implements MenClothing, WomenClothing { + public TShirt(ClothingSize size, double cost, String color) { + super(size, cost, color); + } + + @Override + public void dressMan() { + System.out.println("Dress men in the TShirt sized " + getSize()); + } + + @Override + public void dressWomen() { + System.out.println("Dress women in the TShirt sized " + getSize()); + } +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Tester.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Tester.java new file mode 100644 index 000000000..5b04b0112 --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Tester.java @@ -0,0 +1,27 @@ +package ru.mirea.practice.s23l0908.task2; + +public final class Tester { + private Tester() { + + } + + public static void main(String[] args) { + Clothes[] c = new Clothes[4]; + c[0] = new TShirt(ClothingSize.XXS, 29.99, "Red"); + c[1] = new Pants(ClothingSize.M, 59.99, "Blue"); + c[2] = new Pants(ClothingSize.S, 39.99, "Black"); + // Skirt skirt = new Skirt(ClothingSize.S, 39.99, "Black"); + c[3] = new Tie(ClothingSize.L, 19.99, "Gray"); + + Atelier atelier = new Atelier(); + + for (Clothes cc : c) { + if (cc instanceof WomenClothing) { + atelier.dressWomen(cc); + } else { + atelier.dressMan(cc); + } + System.out.println(); + } + } +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Tie.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Tie.java new file mode 100644 index 000000000..853171053 --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/Tie.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s23l0908.task2; + +class Tie extends Clothes implements MenClothing { + public Tie(ClothingSize size, double cost, String color) { + super(size, cost, color); + } + + @Override + public void dressMan() { + System.out.println("Dress men in the tie sized " + getSize()); + } +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/WomenClothing.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/WomenClothing.java new file mode 100644 index 000000000..c36a8da5a --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task2/WomenClothing.java @@ -0,0 +1,5 @@ +package ru.mirea.practice.s23l0908.task2; + +interface WomenClothing { + void dressWomen(); +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/Cart.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/Cart.java new file mode 100644 index 000000000..9bbe6d54f --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/Cart.java @@ -0,0 +1,40 @@ +package ru.mirea.practice.s23l0908.task3; + +import java.util.ArrayList; +import java.util.List; + +class Cart { + private final List items; + + public Cart() { + items = new ArrayList<>(); + } + + public void addProduct(Product product) { + items.add(product); + } + + public void showCart() { + if (items.isEmpty()) { + System.out.println("Your cart is empty."); + } else { + System.out.println("Your cart:"); + double total = 0; + for (Product product : items) { + System.out.println("- " + product); + total += product.getPrice(); + } + System.out.println("Total: $" + total); + } + } + + public void checkout() { + if (items.isEmpty()) { + System.out.println("Your cart is empty. Add products to proceed to checkout."); + } else { + showCart(); + System.out.println("Thank you for your purchase!"); + items.clear(); // Empty the cart after purchase + } + } +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java new file mode 100644 index 000000000..f23580040 --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java @@ -0,0 +1,135 @@ +package ru.mirea.practice.s23l0908.task3; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Scanner; + +public final class Main { + + private Main() { + + } + + private static Map> catalogMap; + private static Cart cart; + + public static void main(String[] args) { + initializeCatalog(); + + + try (Scanner scanner = new Scanner(System.in)) { + System.out.println("Welcome to the Online Store!"); + System.out.print("Enter your username: "); + String username = scanner.nextLine(); + System.out.print("Enter your password: "); + String password = scanner.nextLine(); + + User user = new User("admin", "password123"); + if (!user.authenticate(username, password)) { + System.out.println("Invalid username or password."); + return; + } + } + System.out.println("Successfully authenticated!"); + + cart = new Cart(); + boolean running = true; + try (Scanner scanner = new Scanner(System.in)) { + while (running) { + showMenu(); + int choice = scanner.nextInt(); + scanner.nextLine(); + switch (Operation.values()[choice]) { + case VIEW_CATALOGS: + viewCatalogs(); + break; + case VIEW_PRODUCTS: + viewProducts(scanner); + break; + case ADD_TO_CART: + addToCart(scanner); + break; + case VIEW_CART: + cart.showCart(); + break; + case CHECKOUT: + cart.checkout(); + break; + case EXIT: + running = false; + System.out.println("Thank you for visiting the Online Store. Goodbye!"); + break; + default: + System.out.println("Invalid option. Please try again."); + break; + } + } + } + } + + private static void showMenu() { + System.out.println("\nPlease choose an option:"); + System.out.println("0 - View Catalogs"); + System.out.println("1 - View Products"); + System.out.println("2 - Add to Cart"); + System.out.println("3 - View Cart"); + System.out.println("4 - Checkout"); + System.out.println("5 - Exit"); + } + + private static void initializeCatalog() { + catalogMap = new HashMap<>(); + List electronics = new ArrayList<>(); + electronics.add(new Product("Smartphone", 699.99)); + electronics.add(new Product("Laptop", 1199.99)); + catalogMap.put("Electronics", electronics); + + List books = new ArrayList<>(); + books.add(new Product("Java Programming", 39.99)); + books.add(new Product("Design Patterns", 49.99)); + catalogMap.put("Books", books); + } + + private static void viewCatalogs() { + System.out.println("Available catalogs:"); + for (String catalog : catalogMap.keySet()) { + System.out.println("- " + catalog); + } + } + + private static void viewProducts(Scanner scanner) { + System.out.print("Enter catalog name: "); + String catalogName = scanner.nextLine(); + List products = catalogMap.get(catalogName); + + if (products != null) { + System.out.println("Products in " + catalogName + ":"); + for (int i = 0; i < products.size(); i++) { + System.out.println(i + " - " + products.get(i)); + } + } else { + System.out.println("Catalog not found."); + } + } + + private static void addToCart(Scanner scanner) { + System.out.print("Enter catalog name: "); + String catalogName = scanner.nextLine(); + List products = catalogMap.get(catalogName); + + if (products != null) { + System.out.print("Enter product index to add to cart: "); + int index = scanner.nextInt(); + if (index >= 0 && index < products.size()) { + cart.addProduct(products.get(index)); + System.out.println("Product added to cart."); + } else { + System.out.println("Invalid product index."); + } + } else { + System.out.println("Catalog not found."); + } + } +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/Operation.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/Operation.java new file mode 100644 index 000000000..cc00be921 --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/Operation.java @@ -0,0 +1,10 @@ +package ru.mirea.practice.s23l0908.task3; + +enum Operation { + VIEW_CATALOGS, + VIEW_PRODUCTS, + ADD_TO_CART, + VIEW_CART, + CHECKOUT, + EXIT +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/Product.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/Product.java new file mode 100644 index 000000000..d96159b4f --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/Product.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s23l0908.task3; + +class Product { + private final String name; + private final double price; + + public Product(String name, double price) { + this.name = name; + this.price = price; + } + + @SuppressWarnings("unused") + public String getName() { + return name; + } + + public double getPrice() { + return price; + } + + @Override + public String toString() { + return name + " ($" + price + ")"; + } +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/User.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/User.java new file mode 100644 index 000000000..3867423c7 --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task3/User.java @@ -0,0 +1,15 @@ +package ru.mirea.practice.s23l0908.task3; + +class User { + private final String username; + private final String password; + + public User(String username, String password) { + this.username = username; + this.password = password; + } + + public boolean authenticate(String inputUsername, String inputPassword) { + return username.equals(inputUsername) && password.equals(inputPassword); + } +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Computer.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Computer.java new file mode 100644 index 000000000..a1b52efd2 --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Computer.java @@ -0,0 +1,35 @@ +package ru.mirea.practice.s23l0908.task4; + +public class Computer { + private final ComputerBrand brand; + private final Processor processor; + private final Memory memory; + private final Monitor monitor; + + public Computer(ComputerBrand brand, Processor processor, Memory memory, Monitor monitor) { + this.brand = brand; + this.processor = processor; + this.memory = memory; + this.monitor = monitor; + } + + @SuppressWarnings("unused") + public ComputerBrand getBrand() { + return brand; + } + + @SuppressWarnings("unused") + public Processor getProcessor() { + return processor; + } + + @SuppressWarnings("unused") + public Memory getMemory() { + return memory; + } + + @SuppressWarnings("unused") + public Monitor getMonitor() { + return monitor; + } +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/ComputerBrand.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/ComputerBrand.java new file mode 100644 index 000000000..8b78529e7 --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/ComputerBrand.java @@ -0,0 +1,11 @@ +package ru.mirea.practice.s23l0908.task4; + +@SuppressWarnings("unused") +public enum ComputerBrand { + DELL, + HP, + ASUS, + APPLE, + LENOVO, + ACER +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java new file mode 100644 index 000000000..0e2e6a1a3 --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java @@ -0,0 +1,17 @@ +package ru.mirea.practice.s23l0908.task4; + + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + Processor processor = new Processor("Intel i7", 8, 3.8); + Memory memory = new Memory("DDR4", 16); + Monitor monitor = new Monitor("1920x1080", 24.0); + new Computer(ComputerBrand.DELL, processor, memory, monitor); // no assignment + } + +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Memory.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Memory.java new file mode 100644 index 000000000..1f0665d09 --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Memory.java @@ -0,0 +1,21 @@ +package ru.mirea.practice.s23l0908.task4; + +public class Memory { + private final String type; + private final int size; + + public Memory(String type, int size) { + this.type = type; + this.size = size; + } + + @SuppressWarnings("unused") + public String getType() { + return type; + } + + @SuppressWarnings("unused") + public int getSize() { + return size; + } +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Monitor.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Monitor.java new file mode 100644 index 000000000..a9e6bac3e --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Monitor.java @@ -0,0 +1,21 @@ +package ru.mirea.practice.s23l0908.task4; + +public class Monitor { + private final String resolution; + private final double size; + + public Monitor(String resolution, double size) { + this.resolution = resolution; + this.size = size; + } + + @SuppressWarnings("unused") + public String getResolution() { + return resolution; + } + + @SuppressWarnings("unused") + public double getSize() { + return size; + } +} diff --git a/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Processor.java b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Processor.java new file mode 100644 index 000000000..1d9004b07 --- /dev/null +++ b/students/23L0908/23L0908-p04/src/main/java/ru/mirea/practice/s23l0908/task4/Processor.java @@ -0,0 +1,28 @@ +package ru.mirea.practice.s23l0908.task4; + +public class Processor { + private final String model; + private final int cores; + private final double speed; + + public Processor(String model, int cores, double speed) { + this.model = model; + this.cores = cores; + this.speed = speed; + } + + @SuppressWarnings("unused") + public String getModel() { + return model; + } + + @SuppressWarnings("unused") + public int getCores() { + return cores; + } + + @SuppressWarnings("unused") + public double getSpeed() { + return speed; + } +} diff --git a/students/23L0908/23L0908-p05/pom.xml b/students/23L0908/23L0908-p05/pom.xml new file mode 100644 index 000000000..4b86032fb --- /dev/null +++ b/students/23L0908/23L0908-p05/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p05 + Массивы + diff --git a/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/Main.java b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/Main.java new file mode 100644 index 000000000..634074b67 --- /dev/null +++ b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/Main.java @@ -0,0 +1,44 @@ +package ru.mirea.practice.s23l0908; + +import java.util.Arrays; +import java.util.Random; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + int size = 10; + double[] array1 = new double[size]; + + System.out.println("Array 1 generated using Math.random():"); + for (int i = 0; i < size; i++) { + array1[i] = Math.random() * 100; + System.out.print(array1[i] + " "); + } + Arrays.sort(array1); + System.out.println("\nSorted array 1 using Math.random():"); + for (double num : array1) { + System.out.print(num + " "); + } + + System.out.println("\n---------------------------"); + + // Declare array2 closer to its usage + double[] array2 = new double[size]; + Random random = new Random(); + System.out.println("Array 2 generated using Random class:"); + for (int i = 0; i < size; i++) { + array2[i] = random.nextDouble() * 100; + System.out.print(array2[i] + " "); + } + Arrays.sort(array2); + System.out.println("\nSorted array 2 using Random class:"); + for (double num : array2) { + System.out.print(num + " "); + } + } +} + diff --git a/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/App.java b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/App.java new file mode 100644 index 000000000..38276be46 --- /dev/null +++ b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/App.java @@ -0,0 +1,54 @@ +package ru.mirea.practice.s23l0908.task2; + +import javax.swing.JFrame; +import javax.swing.JPanel; +import java.awt.Color; +import javax.swing.WindowConstants; +import java.awt.Graphics; +import java.util.Random; + + +public class App extends JPanel { + private static final int WIDTH = 800; + private static final int HEIGHT = 600; + private static final int MIN_SIZE = 25; + private static final int AVERAGE = 20; + private final Shape[] shapes; + + public App() { + Random random = new Random(); + this.shapes = new Shape[AVERAGE]; + for (int i = 0; i < AVERAGE; ++i) { + int x = random.nextInt(0, WIDTH - MIN_SIZE); + int y = random.nextInt(0, HEIGHT - MIN_SIZE); + + if (random.nextBoolean()) { + int width = random.nextInt(MIN_SIZE, Math.min(150, WIDTH - x)); + int height = random.nextInt(MIN_SIZE, Math.min(150, HEIGHT - y)); + shapes[i] = new Rectangle(x, y, width, height); + } else { + int radius = random.nextInt(MIN_SIZE / 2, Math.min(75, Math.min(WIDTH - x, HEIGHT - y))); + shapes[i] = new Circle(Math.max(x, radius), Math.max(y, radius), radius); + } + } + } + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + for (Shape shape : this.shapes) { + shape.draw(g); + } + } + + public void run() { + JFrame frame = new JFrame("Shapes"); + frame.setBackground(new Color(255, 255, 255)); + frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + frame.setSize(WIDTH, HEIGHT); + + frame.add(this); + frame.setResizable(false); + frame.setVisible(true); + } +} diff --git a/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/Circle.java b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/Circle.java new file mode 100644 index 000000000..1a65ddfec --- /dev/null +++ b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/Circle.java @@ -0,0 +1,18 @@ +package ru.mirea.practice.s23l0908.task2; + +import java.awt.Graphics; + +public class Circle extends Shape { + private final int radius; + + public Circle(int x, int y, int radius) { + super(x, y); + this.radius = radius; + } + + @Override + public void draw(Graphics g) { + g.setColor(this.color); + g.fillOval(x - radius, y - radius, radius * 2, radius * 2); + } +} diff --git a/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java new file mode 100644 index 000000000..e6e5d1370 --- /dev/null +++ b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s23l0908.task2; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + App app = new App(); + app.run(); + } +} diff --git a/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/Rectangle.java b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/Rectangle.java new file mode 100644 index 000000000..2b90b5d88 --- /dev/null +++ b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/Rectangle.java @@ -0,0 +1,22 @@ +package ru.mirea.practice.s23l0908.task2; + + +import java.awt.Graphics; + + +public class Rectangle extends Shape { + protected int width; + protected int height; + + Rectangle(int x, int y, int width, int height) { + super(x, y); + this.width = width; + this.height = height; + } + + @Override + public void draw(Graphics g) { + g.setColor(this.color); + g.fillRect(x, y, width, height); + } +} diff --git a/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/Shape.java b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/Shape.java new file mode 100644 index 000000000..e799287f7 --- /dev/null +++ b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task2/Shape.java @@ -0,0 +1,20 @@ +package ru.mirea.practice.s23l0908.task2; + +import java.awt.Color; +import java.awt.Graphics; +import java.util.Random; + +public abstract class Shape { + protected Color color; + protected int x; + protected int y; + + public Shape(int x, int y) { + this.x = x; + this.y = y; + Random random = new Random(); + this.color = new Color(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256)); + } + + public abstract void draw(Graphics g); +} diff --git a/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task3/App.java b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task3/App.java new file mode 100644 index 000000000..f7cad1bcd --- /dev/null +++ b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task3/App.java @@ -0,0 +1,26 @@ +package ru.mirea.practice.s23l0908.task3; + +import javax.swing.JFrame; +import javax.swing.WindowConstants; +import javax.swing.JLabel; +import javax.swing.ImageIcon; +import java.awt.BorderLayout; + +public class App extends JFrame { + App(String filename) { + this.setTitle("Image"); + this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + //"files/example.jpg" + ImageIcon image = new ImageIcon(filename); + this.setSize(image.getIconWidth(), image.getIconHeight() + 50); + this.setIconImage(image.getImage()); + JLabel display = new JLabel(); + display.setIcon(image); + getContentPane().add(display, BorderLayout.CENTER); + } + + public void run() { + this.setResizable(false); + this.setVisible(true); + } +} diff --git a/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java new file mode 100644 index 000000000..af1c1ad6f --- /dev/null +++ b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java @@ -0,0 +1,17 @@ +package ru.mirea.practice.s23l0908.task3; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + if (args.length == 0) { + System.out.println("Nothing was given, file path expected."); + System.exit(0); + } + App app = new App(args[0]); + app.run(); + } +} diff --git a/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task4/App.java b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task4/App.java new file mode 100644 index 000000000..ffbdc84ef --- /dev/null +++ b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task4/App.java @@ -0,0 +1,48 @@ +package ru.mirea.practice.s23l0908.task4; + +import javax.swing.JFrame; +import javax.swing.WindowConstants; +import javax.swing.JLabel; +import javax.swing.ImageIcon; +import java.awt.BorderLayout; +import java.awt.FlowLayout; + +public class App implements Runnable { + private final ImageIcon[] frames; + private final JLabel display; + private int current; + + App() { + current = 0; + frames = new ImageIcon[]{ + new ImageIcon("files/meo.webp"), + new ImageIcon("files/cat.jpg") + }; + display = new JLabel(); + JFrame frame = new JFrame("Animation"); + frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + frame.setSize(400, 400); + + frame.setLayout(new FlowLayout()); + frame.getContentPane().add(display, BorderLayout.CENTER); + frame.setResizable(false); + frame.setVisible(true); + } + + @Override + public void run() { + while (true) { + display.setIcon(frames[current++]); + if (current == frames.length) { + current = 0; + } + + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + System.exit(0); + } + } + } +} diff --git a/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java new file mode 100644 index 000000000..00df2c4a2 --- /dev/null +++ b/students/23L0908/23L0908-p05/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java @@ -0,0 +1,14 @@ +package ru.mirea.practice.s23l0908.task4; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + App app = new App(); + Thread animation = new Thread(app); + animation.start(); + } +} diff --git a/students/23L0908/23L0908-p06/pom.xml b/students/23L0908/23L0908-p06/pom.xml new file mode 100644 index 000000000..9c050e543 --- /dev/null +++ b/students/23L0908/23L0908-p06/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p06 + Массивы + diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Brand.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Brand.java new file mode 100644 index 000000000..ce5ca8aa8 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Brand.java @@ -0,0 +1,5 @@ +package ru.mirea.practice.s23l0908.task10; + +public enum Brand { + Acer, Asus, Lenovo, Gigabyte +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Computer.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Computer.java new file mode 100644 index 000000000..1bc64dcf4 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Computer.java @@ -0,0 +1,51 @@ +package ru.mirea.practice.s23l0908.task10; + +public class Computer { + private final String name; + private final Memory memory; + private final Monitor monitor; + private final Processor processor; + + public Computer(String name, int ram, int rom, int hz, int size, String panel, double clockSpeed, int core, int threads) { + this.name = name; + memory = new Memory(ram, rom); + monitor = new Monitor(hz, size, panel); + processor = new Processor(clockSpeed, core, threads); + } + + public Memory getMemory() { + return memory; + } + + public Monitor getMonitor() { + return monitor; + } + + public Processor getProcessor() { + return processor; + } + + public String getName() { + return name; + } + + @Override + public String toString() { + return "Computer{" + + + "name='" + + name + + '\'' + + + ", memory=" + + memory + + + ", monitor=" + + monitor + + + ", processor=" + + processor + + + '}'; + } +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Fshop.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Fshop.java new file mode 100644 index 000000000..b18359a5a --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Fshop.java @@ -0,0 +1,11 @@ +package ru.mirea.practice.s23l0908.task10; + +@SuppressWarnings("unused") +public interface Fshop { + Computer searchComputer(String name, int ram, int rom, int hz, int size, String panel, double clockSpeed, int core, int threads); + + @SuppressWarnings("unused") + void delComputer(String name); + + int addComputer(String name, int ram, int rom, int hz, int size, String panel, double clockSpeed, int core, int threads); +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Memory.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Memory.java new file mode 100644 index 000000000..067616ed1 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Memory.java @@ -0,0 +1,34 @@ +package ru.mirea.practice.s23l0908.task10; + +public class Memory { + private final int ram; + private final int rom; + + public Memory(int ram, int rom) { + this.ram = ram; + this.rom = rom; + } + + public int getRam() { + return ram; + } + + @SuppressWarnings("unused") + public int getRom() { + return rom; + } + + @Override + public String toString() { + return "Memory{" + + + "ram=" + + ram + + + ", rom=" + + rom + + + '}'; + } +} + diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Monitor.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Monitor.java new file mode 100644 index 000000000..1c598b730 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Monitor.java @@ -0,0 +1,44 @@ +package ru.mirea.practice.s23l0908.task10; + +public class Monitor { + private final int hertz; + private final int size; + private final String panel; + + public Monitor(int hertz, int size, String panel) { + this.hertz = hertz; + this.size = size; + this.panel = panel; + } + + public int getHertz() { + return hertz; + } + + @SuppressWarnings("unused") + public int getSize() { + return size; + } + + @SuppressWarnings("unused") + public String getPanel() { + return panel; + } + + @Override + public String toString() { + return "Monitor{" + + + "hertz=" + + hertz + + + ", size=" + + size + + + ", panel='" + + panel + + '\'' + + + '}'; + } +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Processor.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Processor.java new file mode 100644 index 000000000..83904a375 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Processor.java @@ -0,0 +1,43 @@ +package ru.mirea.practice.s23l0908.task10; + +public class Processor { + private final double clockSpeed; + private final int core; + private final int threads; + + public Processor(double clockSpeed, int core, int threads) { + this.clockSpeed = clockSpeed; + this.core = core; + this.threads = threads; + } + + public double getClockSpeed() { + return clockSpeed; + } + + @SuppressWarnings("unused") + public int getCore() { + return core; + } + + @SuppressWarnings("unused") + public int getThreads() { + return threads; + } + + @Override + public String toString() { + return "Processor{" + + + "clockSpeed=" + + clockSpeed + + + ", core=" + + core + + + ", threads=" + + threads + + + '}'; + } +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Shop.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Shop.java new file mode 100644 index 000000000..a476d225b --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Shop.java @@ -0,0 +1,64 @@ +package ru.mirea.practice.s23l0908.task10; + +public class Shop { + private final Computer[] computers; + private int top; + private final int capacity; + + public Shop(int size) { + this.capacity = size; + top = -1; + computers = new Computer[size]; + } + + public boolean isFull() { + return this.top == capacity - 1; + } + + @SuppressWarnings("unused") + public boolean isEmpty() { + return this.top == -1; + } + + public void addComputer(String name, int ram, int rom, int hz, int size, String panel, double clockSpeed, int core, int threads) { + if (!isFull()) { + computers[++top] = new Computer(name, ram, rom, hz, size, panel, clockSpeed, core, threads); + } else { + System.out.println("Cannot add computer: storage is full."); + } + } + + public void delComputer(String name) { + for (int i = 0; i <= top; i++) { + if (computers[i].getName().equals(name)) { + top--; + for (int j = i; j <= top; j++) { + computers[j] = computers[j + 1]; + } + } + } + } + + @SuppressWarnings("unused") + public Computer searchComputer(String name, int ram, int rom, int hz, int size, String panel, double clockSpeed, int core, int threads) { + Computer temp = new Computer(name, ram, rom, hz, size, panel, clockSpeed, core, threads); + for (int i = 0; i <= top; i++) { + if (computers[i] == temp) { + return computers[i]; + } + } + return null; + } + + public Computer searchComputer(int ram, int hz, double clockSpeed) { + for (int i = 0; i <= top; i++) { + if (computers[i].getMemory().getRam() == ram + && computers[i].getMonitor().getHertz() == hz + && computers[i].getProcessor().getClockSpeed() == clockSpeed) { + return computers[i]; + } + } + return null; + } + +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Tester.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Tester.java new file mode 100644 index 000000000..52bcb0d52 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task10/Tester.java @@ -0,0 +1,100 @@ +package ru.mirea.practice.s23l0908.task10; + +import java.util.Scanner; + +public final class Tester { + + private Tester() { + } + + public static void main(String[] args) { + try (Scanner in = new Scanner(System.in)) { + System.out.print("Enter number of Computers: "); + int n = in.nextInt(); + Shop shop = new Shop(n); + int menu; + do { + System.out.println("1. Add Computer"); + System.out.println("2. Delete Computer"); + System.out.println("3. Search Computer"); + menu = in.nextInt(); + switch (menu) { + case 1: { + System.out.println("Enter information of computer: "); + System.out.println("Brand: 1. Acer, 2. Asus, 3. Lenovo, 4. Gigabyte"); + System.out.print("Please choose: "); + int choose = in.nextInt(); + String brand = null; + if (choose == 1) { + brand = Brand.Acer.toString(); + } else if (choose == 2) { + brand = Brand.Asus.toString(); + } else if (choose == 3) { + brand = Brand.Lenovo.toString(); + } else if (choose == 4) { + brand = Brand.Gigabyte.toString(); + } + + // Move variable declarations closer to usage + System.out.print("Ram of memory: "); + final int ram = in.nextInt(); + + System.out.print("Rom of memory: "); + final int rom = in.nextInt(); + + System.out.print("Hz of monitor: "); + final int hz = in.nextInt(); + + System.out.print("Size of monitor: "); + final int size = in.nextInt(); + + System.out.print("Panel of monitor: "); + in.nextLine(); // Consume newline + final String panel = in.nextLine(); + + System.out.print("Clock speed of processor: "); + final double clockSpeed = in.nextDouble(); + + System.out.print("Core of processor: "); + final int core = in.nextInt(); + + System.out.print("Threads of processor: "); + final int threads = in.nextInt(); + + shop.addComputer(brand, ram, rom, hz, size, panel, clockSpeed, core, threads); + break; + } + case 2: { + System.out.println("Choose the brand of the computer to be deleted: "); + System.out.println("Brand: 1. Acer, 2. Asus, 3. Lenovo, 4. Gigabyte"); + System.out.print("Please choose: "); + int choose = in.nextInt(); + String brand = null; + if (choose == 1) { + brand = Brand.Acer.toString(); + } else if (choose == 2) { + brand = Brand.Asus.toString(); + } else if (choose == 3) { + brand = Brand.Lenovo.toString(); + } else if (choose == 4) { + brand = Brand.Gigabyte.toString(); + } + shop.delComputer(brand); + break; + } + case 3: { + System.out.println("Enter the ram, hz, clock speed of the computer you are looking for: "); + final int ram = in.nextInt(); + final int hz = in.nextInt(); + final double clockSpeed = in.nextDouble(); + System.out.println(shop.searchComputer(ram, hz, clockSpeed)); + break; + } + default: + System.out.println("Invalid option. Please select a valid menu option."); + break; + } + } while (menu != 0); + } + } +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task11/Convert.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task11/Convert.java new file mode 100644 index 000000000..7f23ea57a --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task11/Convert.java @@ -0,0 +1,35 @@ +package ru.mirea.practice.s23l0908.task11; + +public class Convert implements Iconvertable { + private double c; + private double f; + private double k; + + public void convert(double temple, String type) { + if ("C".equals(type)) { + this.c = temple; + this.f = this.c * 1.8 + 32; + this.k = this.c + 213.15; + } else if ("F".equals(type)) { + this.f = temple; + this.c = (this.f - 32) * (5.0 / 9.0); + this.k = this.c + 213.15; + } else { + this.k = temple; + this.c = this.k - 213.15; + this.f = this.c * 1.8 + 32; + } + } + + public double getC() { + return c; + } + + public double getF() { + return f; + } + + public double getK() { + return k; + } +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task11/Iconvertable.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task11/Iconvertable.java new file mode 100644 index 000000000..692e7df34 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task11/Iconvertable.java @@ -0,0 +1,5 @@ +package ru.mirea.practice.s23l0908.task11; + +public interface Iconvertable { + void convert(double temple, String type); +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task11/Tester.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task11/Tester.java new file mode 100644 index 000000000..2eca57fbd --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task11/Tester.java @@ -0,0 +1,50 @@ +package ru.mirea.practice.s23l0908.task11; + +import java.util.Scanner; + +public final class Tester { + + private Tester() { + } + + public static void main(String[] args) { + try (Scanner in = new Scanner(System.in)) { + System.out.print("1. C, 2. F, 3. K: "); + int x = in.nextInt(); + String type; + if (x == 1) { + type = "C"; + } else if (x == 2) { + type = "F"; + } else { + type = "K"; + } + System.out.println("Enter temperature: "); + double temp = in.nextDouble(); + Convert convert = new Convert(); + convert.convert(temp, type); + do { + System.out.println("Convert to: "); + System.out.println("1. C"); + System.out.println("2. F"); + System.out.println("3. K"); + x = in.nextInt(); + switch (x) { + case 1: + System.out.println(convert.getC()); + break; + case 2: + System.out.println(convert.getF()); + break; + case 3: + System.out.println(convert.getK()); + break; + default: + break; + } + } while (x != 0); + // in.close(); + } + } +} + diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task12/Main.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task12/Main.java new file mode 100644 index 000000000..988b62b9f --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task12/Main.java @@ -0,0 +1,194 @@ +package ru.mirea.practice.s23l0908.task12; + +public final class Main { + + private Main() { + } + + public static void main(String[] args) { + IMovable m1 = new MovablePoint(5, 6, 10, 15); + System.out.println(m1); + m1.moveLeft(); + System.out.println(m1); + IMovable m2 = new MovableCircle(1, 2, 3, 4, 20); + System.out.println(m2); + m2.moveDown(); + System.out.println(m2); + + IMovable m3 = new MovableRectangle(2, 3, 1, 5, 4, 9); + System.out.println(m3); + m3.moveUp(); + System.out.println(m3); + m3.moveRight(); + System.out.println(m3); + } + + interface IMovable { + void moveUp(); + + void moveDown(); + + void moveLeft(); + + void moveRight(); + } + + public static class MovablePoint implements IMovable { + protected int x; + protected int y; + protected int xspeed; + protected int yspeed; + + public MovablePoint(int x, int y, int xspeed, int yspeed) { + this.x = x; + this.y = y; + this.xspeed = xspeed; + this.yspeed = yspeed; + } + + @Override + public String toString() { + return "MovablePoint{" + + + "x=" + + x + + + ", y=" + + y + + + ", xSpeed=" + + xspeed + + + ", ySpeed=" + + yspeed + + + '}'; + } + + @Override + public void moveUp() { + System.out.println("Move Up!"); + y += yspeed; + } + + @Override + public void moveDown() { + System.out.println("Move Down!"); + y -= yspeed; + } + + @Override + public void moveLeft() { + System.out.println("Move Left!"); + x -= xspeed; + } + + @Override + public void moveRight() { + System.out.println("Move Right!"); + x += xspeed; + } + } + + public static class MovableCircle implements IMovable { + MovablePoint center; + private final int radius; + + public MovableCircle(int x, int y, int xspeed, int yspeed, int radius) { + center = new MovablePoint(x, y, xspeed, yspeed); + this.radius = radius; + } + + @Override + public String toString() { + return "MovableCircle{" + + "radius=" + + radius + + ", center=" + + center + + + '}'; + } + + @Override + public void moveDown() { + System.out.print("Circle move down!"); + center.y -= center.yspeed; + } + + @Override + public void moveLeft() { + System.out.print("Circle move left!"); + center.x -= center.xspeed; + } + + @Override + public void moveUp() { + System.out.print("Circle move up!"); + center.y += center.yspeed; + } + + @Override + public void moveRight() { + System.out.print("Circle move right!"); + center.x += center.xspeed; + } + } + + public static class MovableRectangle implements IMovable { + private final MovablePoint topLeft; + private final MovablePoint bottomRight; + + public MovableRectangle(int x1, int y1, int x2, int y2, int xspeed, int yspeed) { + topLeft = new MovablePoint(x1, y1, xspeed, yspeed); + bottomRight = new MovablePoint(x2, y2, xspeed, yspeed); + } + + @Override + public String toString() { + return "MovableRectangle{" + + + "topLeft=" + + topLeft + + + ", bottomRight=" + + bottomRight + + + '}'; + } + + @Override + public void moveDown() { + System.out.println("Rectangle move down!"); + topLeft.y -= topLeft.yspeed; + bottomRight.y -= bottomRight.yspeed; + } + + @Override + public void moveRight() { + System.out.println("Rectangle move right!"); + topLeft.x += topLeft.xspeed; + bottomRight.x += bottomRight.xspeed; + } + + @Override + public void moveUp() { + System.out.println("Rectangle move up!"); + topLeft.y += topLeft.yspeed; + bottomRight.y += bottomRight.yspeed; + } + + @Override + public void moveLeft() { + System.out.println("Rectangle move left!"); + topLeft.x -= topLeft.xspeed; + bottomRight.x -= bottomRight.xspeed; + } + + @SuppressWarnings("unused") + public boolean sameSpeed() { + return topLeft.xspeed == bottomRight.xspeed && topLeft.yspeed == bottomRight.yspeed; + } + } + +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task3/Car.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task3/Car.java new file mode 100644 index 000000000..faf2efbdd --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task3/Car.java @@ -0,0 +1,14 @@ +package ru.mirea.practice.s23l0908.task3; + +public class Car implements Nameable { + private final String name; + + Car(String name) { + this.name = name; + } + + @Override + public void getName() { + System.out.println("The car is: " + this.name); + } +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task3/Nameable.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task3/Nameable.java new file mode 100644 index 000000000..d47da21e9 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task3/Nameable.java @@ -0,0 +1,5 @@ +package ru.mirea.practice.s23l0908.task3; + +public interface Nameable { + void getName(); +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task3/Plane.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task3/Plane.java new file mode 100644 index 000000000..9dabf100f --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task3/Plane.java @@ -0,0 +1,14 @@ +package ru.mirea.practice.s23l0908.task3; + +public class Plane implements Nameable { + private final String name; + + Plane(String name) { + this.name = name; + } + + @Override + public void getName() { + System.out.println("This plane is : " + this.name); + } +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task3/TestNameable.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task3/TestNameable.java new file mode 100644 index 000000000..255e7e23b --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task3/TestNameable.java @@ -0,0 +1,18 @@ +package ru.mirea.practice.s23l0908.task3; + +public final class TestNameable { + + private TestNameable() { + } + + public static void main(String[] args) { + Nameable n1 = new Car("Vinfast"); + n1.getName(); + + n1 = new Plane("Boeing 747"); + n1.getName(); + + Car x1 = new Car("Tesla"); + x1.getName(); + } +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task4/Computer.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task4/Computer.java new file mode 100644 index 000000000..da000d66d --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task4/Computer.java @@ -0,0 +1,66 @@ +package ru.mirea.practice.s23l0908.task4; + +public class Computer implements Priceable { + private double price; + private int hdd; + private int sdd; + private String monitor; + + Computer(double price, int hdd, int sdd, String monitor) { + this.price = price; + this.hdd = hdd; + this.sdd = sdd; + this.monitor = monitor; + } + + @SuppressWarnings("unused") + public void setPrice(double price) { + this.price = price; + } + + @SuppressWarnings("unused") + public double getPrice(double price) { + return price; + } + + @Override + public void getPrice() { + System.out.println("This computer is" + this.price + "USD\n" + + this.hdd + + "gb HDD " + + this.sdd + + " gb RAM, and made by " + + this.monitor); + } + + @SuppressWarnings("unused") + public void setHdd(int hdd) { + this.hdd = hdd; + } + + @SuppressWarnings("unused") + public int getHdd(int hdd) { + return hdd; + } + + @SuppressWarnings("unused") + public void setSdd(int sdd) { + this.sdd = sdd; + } + + @SuppressWarnings("unused") + public int getSdd(int sdd) { + return sdd; + } + + @SuppressWarnings("unused") + public void setMonitor(String monitor) { + this.monitor = monitor; + } + + @SuppressWarnings("unused") + public String getMonitor(String monitor) { + return monitor; + } + +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task4/Priceable.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task4/Priceable.java new file mode 100644 index 000000000..b5583e6e0 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task4/Priceable.java @@ -0,0 +1,5 @@ +package ru.mirea.practice.s23l0908.task4; + +public interface Priceable { + void getPrice(); +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task4/Telephone.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task4/Telephone.java new file mode 100644 index 000000000..dc4d92fa8 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task4/Telephone.java @@ -0,0 +1,68 @@ +package ru.mirea.practice.s23l0908.task4; + +public class Telephone implements Priceable { + private double price; + private int size; + private String brand; + private String color; + + Telephone(double price, int size, String brand, String color) { + this.price = price; + this.size = size; + this.brand = brand; + this.color = color; + } + + @SuppressWarnings("unused") + public void setPrice(double price) { + this.price = price; + } + + @SuppressWarnings("unused") + public double getPrice(double price) { + return price; + } + + public void getPrice() { + System.out.println("The telephone is " + + this.price + + " USD\n" + + this.size + + " inches, made by " + + this.brand + + "and have " + + this.color); + } + + @SuppressWarnings("unused") + public void setSize(int size) { + this.size = size; + } + + @SuppressWarnings("unused") + + public int getSize(int size) { + return size; + } + + @SuppressWarnings("unused") + public void setBrand(String brand) { + this.brand = brand; + } + + @SuppressWarnings("unused") + public String getBrand(String brand) { + return brand; + } + + @SuppressWarnings("unused") + public void setColor(String color) { + this.color = color; + } + + @SuppressWarnings("unused") + public String getColor() { + return color; + } + +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task4/TestPriceable.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task4/TestPriceable.java new file mode 100644 index 000000000..86a671755 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task4/TestPriceable.java @@ -0,0 +1,18 @@ +package ru.mirea.practice.s23l0908.task4; + +public final class TestPriceable { + + private TestPriceable() { + } + + public static void main(String[] args) { + Priceable p1 = new Computer(800, 512, 16, "lenovo"); + p1.getPrice(); + + p1 = new Telephone(400, 5, "Samsung", "red"); + p1.getPrice(); + + Telephone n1 = new Telephone(200, 6, "Huawei", "yellow"); + n1.getPrice(); + } +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task56/Movable.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task56/Movable.java new file mode 100644 index 000000000..6efac512d --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task56/Movable.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s23l0908.task56; + +@SuppressWarnings("unused") +public interface Movable { + void moveUp(); + + void moveDown(); + + void moveRight(); + + void moveLeft(); +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task56/MovableCircle.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task56/MovableCircle.java new file mode 100644 index 000000000..f9bf58f82 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task56/MovableCircle.java @@ -0,0 +1,42 @@ +package ru.mirea.practice.s23l0908.task56; + +public class MovableCircle implements Movable { + private final int radius; + MovablePoint center; + + public MovableCircle(int x, int y, int xspeed, int yspeed, int radius) { + center = new MovablePoint(x, y, xspeed, yspeed); + this.radius = radius; + } + + @Override + public String toString() { + return "Movable Circle{" + + "radius =" + + radius + + " center{" + + center + + "}}"; + } + + @Override + public void moveUp() { + System.out.print("Circle move up"); + center.y += center.yspeed; + } + + public void moveDown() { + System.out.print("Circle move down"); + center.y -= center.yspeed; + } + + public void moveRight() { + System.out.print("Circle move right"); + center.x += center.xspeed; + } + + public void moveLeft() { + System.out.print("Circle move up"); + center.x -= center.xspeed; + } +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task56/MovablePoint.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task56/MovablePoint.java new file mode 100644 index 000000000..6808bf725 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task56/MovablePoint.java @@ -0,0 +1,50 @@ +package ru.mirea.practice.s23l0908.task56; + +public class MovablePoint implements Movable { + protected int x; + protected int y; + protected int xspeed; + protected int yspeed; + + public MovablePoint(int x, int y, int xspeed, int yspeed) { + this.x = x; + this.y = y; + this.xspeed = xspeed; + this.yspeed = yspeed; + } + + @Override + public String toString() { + return "Movable Point{ " + + "x=" + + x + + " y=" + + y + + " xSpeed=" + + xspeed + + " ySpeed=" + + yspeed + + "}"; + } + + @Override + public void moveUp() { + System.out.print("Move up"); + y += yspeed; + } + + public void moveDown() { + System.out.print("Move down"); + y -= yspeed; + } + + public void moveRight() { + System.out.print("Move right"); + x += xspeed; + } + + public void moveLeft() { + System.out.print("Move Left"); + x -= xspeed; + } +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task56/Test.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task56/Test.java new file mode 100644 index 000000000..736504843 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task56/Test.java @@ -0,0 +1,19 @@ +package ru.mirea.practice.s23l0908.task56; + +public final class Test { + + private Test() { + } + + public static void main(String[] args) { + Movable p1 = new MovablePoint(4, 5, 6, 7); + System.out.println(p1); + p1.moveUp(); + System.out.println(p1); + Movable c1 = new MovableCircle(5, 7, 3, 1, 6); + System.out.println(c1); + c1.moveLeft(); + c1.moveUp(); + System.out.println(c1); + } +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task6789/Book.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task6789/Book.java new file mode 100644 index 000000000..1bb0b7e28 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task6789/Book.java @@ -0,0 +1,15 @@ +package ru.mirea.practice.s23l0908.task6789; + +public class Book implements Printable { + private final double price; + private final String name; + + public Book(double price, String name) { + this.price = price; + this.name = name; + } + + public void print() { + System.out.println("This book is " + this.price + "USD and called: " + this.name); + } +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task6789/Printable.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task6789/Printable.java new file mode 100644 index 000000000..fca872739 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task6789/Printable.java @@ -0,0 +1,5 @@ +package ru.mirea.practice.s23l0908.task6789; + +public interface Printable { + void print(); +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task6789/Shop.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task6789/Shop.java new file mode 100644 index 000000000..3ede2d9d6 --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task6789/Shop.java @@ -0,0 +1,32 @@ +package ru.mirea.practice.s23l0908.task6789; + +@SuppressWarnings("unused") +public class Shop implements Printable { + private String name; + private int taxcode; + + Shop(String name, int taxcode) { + this.name = name; + this.taxcode = taxcode; + } + + public void setName(String name) { + this.name = name; + } + + public String getNane(String name) { + return name; + } + + public void setTaxcode(int taxcode) { + this.taxcode = taxcode; + } + + public int getTaxCode(int taxCode) { + return taxCode; + } + + public void print() { + System.out.println("This shop is called " + this.name + " and has a tax code of " + this.taxcode); + } +} diff --git a/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task6789/Test.java b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task6789/Test.java new file mode 100644 index 000000000..129bdc33f --- /dev/null +++ b/students/23L0908/23L0908-p06/src/main/java/ru/mirea/practice/s23l0908/task6789/Test.java @@ -0,0 +1,16 @@ +package ru.mirea.practice.s23l0908.task6789; + +public final class Test { + + private Test() { + } + + public static void main(String[] args) { + Printable[] printables = new Printable[4]; + printables[0] = new Book(2000, "Sherlock Holmes"); + printables[1] = new Shop("Games", 11111); + for (int i = 0; i < 2; i++) { + printables[i].print(); + } + } +} diff --git a/students/23L0908/23L0908-p07/pom.xml b/students/23L0908/23L0908-p07/pom.xml new file mode 100644 index 000000000..82295195b --- /dev/null +++ b/students/23L0908/23L0908-p07/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p07 + Массивы + diff --git a/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/Movable.java b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/Movable.java new file mode 100644 index 000000000..00573ad86 --- /dev/null +++ b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/Movable.java @@ -0,0 +1,12 @@ +package ru.mirea.practice.s23l0908; + +public interface Movable { + void moveUp(); + + void moveDown(); + + void moveLeft(); + + void moveRight(); +} + diff --git a/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/MovablePoint.java b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/MovablePoint.java new file mode 100644 index 000000000..80af8eefd --- /dev/null +++ b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/MovablePoint.java @@ -0,0 +1,53 @@ +package ru.mirea.practice.s23l0908; + +public class MovablePoint implements Movable { + protected int x; + protected int y; + protected int xspeed; + protected int yspeed; + + public MovablePoint(int x, int y, int xspeed, int yspeed) { + this.x = x; + this.y = y; + this.xspeed = xspeed; + this.yspeed = yspeed; + } + + @Override + public String toString() { + return "MovablePoint{" + + "x=" + + x + + ", y=" + + y + + ", xSpeed=" + + xspeed + + ", ySpeed=" + + yspeed + + '}'; + } + + @Override + public void moveUp() { + System.out.println("Move Up!"); + y += yspeed; + } + + @Override + public void moveDown() { + System.out.println("Move Down!"); + y -= yspeed; + } + + @Override + public void moveLeft() { + System.out.println("Move Left!"); + x -= xspeed; + } + + @Override + public void moveRight() { + System.out.println("Move Right!"); + x += xspeed; + } +} diff --git a/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/MovableRectangle.java b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/MovableRectangle.java new file mode 100644 index 000000000..a52f4fed9 --- /dev/null +++ b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/MovableRectangle.java @@ -0,0 +1,53 @@ +package ru.mirea.practice.s23l0908; + +public class MovableRectangle implements Movable { + private final MovablePoint topLeft; + private final MovablePoint bottomRight; + + public MovableRectangle(int x1, int y1, int x2, int y2, int xspeed, int yspeed) { + topLeft = new MovablePoint(x1, y1, xspeed, yspeed); + bottomRight = new MovablePoint(x2, y2, xspeed, yspeed); + } + + @Override + public String toString() { + return "MovableRectangle{" + + "topLeft=" + + topLeft + + ", bottomRight=" + + bottomRight + + '}'; + } + + @Override + public void moveDown() { + System.out.println("Rectangle move down!"); + topLeft.y -= topLeft.yspeed; + bottomRight.y -= bottomRight.yspeed; + } + + @Override + public void moveRight() { + System.out.println("Rectangle move right!"); + topLeft.x += topLeft.xspeed; + bottomRight.x += bottomRight.xspeed; + } + + @Override + public void moveUp() { + System.out.println("Rectangle move up!"); + topLeft.y += topLeft.yspeed; + bottomRight.y += bottomRight.yspeed; + } + + @Override + public void moveLeft() { + System.out.println("Rectangle move left!"); + topLeft.x -= topLeft.xspeed; + bottomRight.x -= bottomRight.xspeed; + } + + public boolean speedtest() { + return topLeft.xspeed == topLeft.yspeed & bottomRight.xspeed == bottomRight.yspeed; + } +} diff --git a/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/Tester.java b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/Tester.java new file mode 100644 index 000000000..0afde64e1 --- /dev/null +++ b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/Tester.java @@ -0,0 +1,23 @@ +package ru.mirea.practice.s23l0908; + +public final class Tester { + + private Tester() { + } + + public static void main(String[] args) { + Movable m1 = new MovablePoint(5, 6, 10, 15); + System.out.println(m1); + m1.moveLeft(); + System.out.println(m1); + MovableRectangle m2 = new MovableRectangle(1, 2, 3, 4, 20, 20); + System.out.println(m2); + m2.moveDown(); + System.out.println(m2); + if (m2.speedtest()) { + System.out.println("Points have the same speed!"); + } else { + System.out.println("Points do not have the same speed!"); + } + } +} diff --git a/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task4/MathCalculable.java b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task4/MathCalculable.java new file mode 100644 index 000000000..cc98f4c4b --- /dev/null +++ b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task4/MathCalculable.java @@ -0,0 +1,9 @@ +package ru.mirea.practice.s23l0908.task4; + +public interface MathCalculable { + double pow(double x, double y); + + double module(double x, double y); + + double pi(); +} diff --git a/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task4/MathFunc.java b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task4/MathFunc.java new file mode 100644 index 000000000..85ab45538 --- /dev/null +++ b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task4/MathFunc.java @@ -0,0 +1,34 @@ +package ru.mirea.practice.s23l0908.task4; + +public class MathFunc implements MathCalculable { + + @SuppressWarnings("unused") + public double sqrt(int number) { + double epsilon = 0.0001; + double result = 1.0f; + while (Math.abs(result * result - number) / number >= epsilon) { + result = (number / result - result) / 2 + result; + } + return result; + } + + @Override + public double pow(double x, double y) { + for (int i = 1; i < y; i++) { + x *= x; + } + return x; + } + + @Override + public double module(double x, double y) { + return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); + } + + @Override + public double pi() { + return 3.14; + } +} + + diff --git a/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task4/Tester.java b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task4/Tester.java new file mode 100644 index 000000000..1848b413c --- /dev/null +++ b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task4/Tester.java @@ -0,0 +1,14 @@ +package ru.mirea.practice.s23l0908.task4; + +public final class Tester { + + private Tester() { + } + + public static void main(String[] args) { + MathCalculable math = new MathFunc(); + System.out.println("7^2= " + math.pow(7, 2)); + System.out.println("Module x = 2+3i" + math.module(2, 3)); + System.out.println("The circumference of a circle has R = 3: " + 2 * math.pi() * 3); + } +} diff --git a/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task56/IString.java b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task56/IString.java new file mode 100644 index 000000000..283b15e7a --- /dev/null +++ b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task56/IString.java @@ -0,0 +1,10 @@ +package ru.mirea.practice.s23l0908.task56; + +@SuppressWarnings("unused") +public interface IString { + int length(); + + String strOdd(); + + void reserveString(); +} diff --git a/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task56/ProcessStrings.java b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task56/ProcessStrings.java new file mode 100644 index 000000000..48afd1992 --- /dev/null +++ b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task56/ProcessStrings.java @@ -0,0 +1,45 @@ +package ru.mirea.practice.s23l0908.task56; + +public class ProcessStrings { + String str; + + ProcessStrings(String str) { + this.str = str; + } + + public String getStr() { + return str; + } + + public int length() { + int length = 0; + String tmp = ""; + for (int i = 0; !this.str.equals(tmp); i++) { + length++; + tmp += this.str.charAt(i); + } + + return length; + } + + public String strOdd() { + int len = this.length(); + StringBuilder tmp = new StringBuilder(); + for (int i = 0; i < len; i++) { + if (i % 2 != 0) { + tmp.append(this.str.charAt(i)); + } + } + return tmp.toString(); + } + + + public void reserveString() { + int len = this.length(); + StringBuilder tmp = new StringBuilder(len); + for (int i = len - 1; i >= 0; i--) { + tmp.append(this.str.charAt(i)); + } + this.str = tmp.toString(); + } +} diff --git a/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task56/Tester.java b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task56/Tester.java new file mode 100644 index 000000000..8df8a2f73 --- /dev/null +++ b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task56/Tester.java @@ -0,0 +1,21 @@ +package ru.mirea.practice.s23l0908.task56; + +import java.util.Scanner; + +public final class Tester { + + private Tester() { + } + + public static void main(String[] args) { + try (Scanner in = new Scanner(System.in)) { + System.out.println("Enter String: "); + String string = in.nextLine(); + ProcessStrings str = new ProcessStrings(string); + System.out.println("Length: " + str.length()); + System.out.println("Odd String: " + str.strOdd()); + str.reserveString(); + System.out.println("Reserve String: " + str.getStr()); + } + } +} diff --git a/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task78/Book.java b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task78/Book.java new file mode 100644 index 000000000..b4104c87f --- /dev/null +++ b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task78/Book.java @@ -0,0 +1,16 @@ +package ru.mirea.practice.s23l0908.task78; + +public final class Book { + + private Book() { + } + + public static void printBook(Printable[] printables) { + for (Printable printable : printables) { + if (printable != null) { + System.out.println(printable.getName()); + } + } + } +} + diff --git a/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task78/Magazine.java b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task78/Magazine.java new file mode 100644 index 000000000..67156d910 --- /dev/null +++ b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task78/Magazine.java @@ -0,0 +1,14 @@ +package ru.mirea.practice.s23l0908.task78; + +public final class Magazine { + + private Magazine() { + } + + public static void printMagazines(Printable[] printables) { + for (Printable printable : printables) { + System.out.println(printable.getName()); + } + } +} + diff --git a/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task78/Printable.java b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task78/Printable.java new file mode 100644 index 000000000..13b8586e0 --- /dev/null +++ b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task78/Printable.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s23l0908.task78; + +public class Printable { + private final String name; + + Printable(String name) { + this.name = name; + } + + public String getName() { + return name; + } +} diff --git a/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task78/Tester.java b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task78/Tester.java new file mode 100644 index 000000000..d294c78e5 --- /dev/null +++ b/students/23L0908/23L0908-p07/src/main/java/ru/mirea/practice/s23l0908/task78/Tester.java @@ -0,0 +1,21 @@ +package ru.mirea.practice.s23l0908.task78; + +public final class Tester { + + private Tester() { + } + + public static void main(String[] args) { + Printable[] printables = new Printable[3]; + printables[0] = new Printable("auchan"); + printables[1] = new Printable("pere"); + printables[2] = new Printable("ozon\n"); + Magazine.printMagazines(printables); + + Printable[] printabless = new Printable[3]; + printabless[0] = new Printable("nature"); + printabless[1] = new Printable("family"); + printabless[2] = new Printable("computer"); + Book.printBook(printabless); + } +} diff --git a/students/23L0908/23L0908-p08/pom.xml b/students/23L0908/23L0908-p08/pom.xml new file mode 100644 index 000000000..67144ef03 --- /dev/null +++ b/students/23L0908/23L0908-p08/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p08 + Массивы + diff --git a/students/23L0908/23L0908-p08/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java b/students/23L0908/23L0908-p08/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java new file mode 100644 index 000000000..1345f0a3d --- /dev/null +++ b/students/23L0908/23L0908-p08/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java @@ -0,0 +1,24 @@ +package ru.mirea.practice.s23l0908.task2; + +import java.util.Scanner; + +public final class Main { + private Main() { + } + + public static void printRecursively(int n) { + if (n == 1) { + return; + } + printRecursively(--n); + System.out.print(n + " "); + } + + public static void main(String[] args) { + try (Scanner in = new Scanner(System.in)) { + System.out.print("Enter value n: "); + int n = in.nextInt(); + printRecursively(n + 1); // Start from n+1 to print down to 1 + } + } +} diff --git a/students/23L0908/23L0908-p08/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java b/students/23L0908/23L0908-p08/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java new file mode 100644 index 000000000..202a42ec5 --- /dev/null +++ b/students/23L0908/23L0908-p08/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s23l0908.task3; + +import java.util.Scanner; + +public final class Main { + + private Main() { + } + + public static void recursion(int a, int b) { + if (a > b) { + System.out.print(a + " "); + recursion(--a, b); + } else if (a < b) { + recursion(a, --b); + System.out.print(b + " "); + } + } + + public static void main(String[] args) { + try (Scanner in = new Scanner(System.in)) { + System.out.print("Enter value a,b: "); + int a = in.nextInt(); + int b = in.nextInt(); + b += a < b ? 1 : -1; + recursion(a, b); + } + } +} diff --git a/students/23L0908/23L0908-p08/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java b/students/23L0908/23L0908-p08/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java new file mode 100644 index 000000000..8f5c1b30a --- /dev/null +++ b/students/23L0908/23L0908-p08/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java @@ -0,0 +1,38 @@ +package ru.mirea.practice.s23l0908.task4; + +import java.util.Scanner; + +public final class Main { + + private Main() { + } + + public static int recursion(int k, int s, int value) { + if (value == Math.pow(10, k)) { + return 0; + } + int sum = 0; + int temp = value; + for (int i = 0; i < k; i++) { + sum += value % 10; + value /= 10; + } + if (sum == s) { + System.out.println(temp); + return 1 + recursion(k, s, ++temp); + } + return recursion(k, s, ++temp); + } + + public static void main(String[] args) { + try (Scanner in = new Scanner(System.in)) { + System.out.print("Enter k: "); + int k = in.nextInt(); + System.out.print("Enter s: "); + int s = in.nextInt(); + System.out.println("There are " + + recursion(k, s, (int) Math.pow(10, k - 1)) + " " + + k + "-digit numbers whose sum of digits is " + s + "."); + } + } +} diff --git a/students/23L0908/23L0908-p08/src/main/java/ru/mirea/practice/s23l0908/task5/Main.java b/students/23L0908/23L0908-p08/src/main/java/ru/mirea/practice/s23l0908/task5/Main.java new file mode 100644 index 000000000..086c2d422 --- /dev/null +++ b/students/23L0908/23L0908-p08/src/main/java/ru/mirea/practice/s23l0908/task5/Main.java @@ -0,0 +1,27 @@ +package ru.mirea.practice.s23l0908.task5; + +import java.util.Scanner; + +public final class Main { + + private Main() { + } + + public static void recursion(int current, int n) { + if (current > n) { + return; + } + for (int i = 0; i < current; i++) { + System.out.print(current + " "); + } + recursion(++current, n); + } + + public static void main(String[] args) { + try (Scanner in = new Scanner(System.in)) { + System.out.print("Enter value n: "); + int n = in.nextInt(); + recursion(0, n); + } + } +} diff --git a/students/23L0908/23L0908-p09/pom.xml b/students/23L0908/23L0908-p09/pom.xml new file mode 100644 index 000000000..a2b598bd8 --- /dev/null +++ b/students/23L0908/23L0908-p09/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p09 + Массивы + diff --git a/students/23L0908/23L0908-p09/src/main/java/ru/mirea/practice/s23l0908/Main.java b/students/23L0908/23L0908-p09/src/main/java/ru/mirea/practice/s23l0908/Main.java new file mode 100644 index 000000000..9fc0ef84c --- /dev/null +++ b/students/23L0908/23L0908-p09/src/main/java/ru/mirea/practice/s23l0908/Main.java @@ -0,0 +1,177 @@ +package ru.mirea.practice.s23l0908; + +import java.util.Comparator; + +public final class Main { + + private Main() { + } + + public static class Student { + private final String name; + private final int age; + private final int idnumber; + private final int gpa; + + public Student(String name, int age, int idnumber, int gpa) { + this.name = name; + this.age = age; + this.idnumber = idnumber; + this.gpa = gpa; + } + + public int getGpa() { + return this.gpa; + } + + @Override + public String toString() { + return "Student{" + + "name='" + + name + + '\'' + + ", age=" + + age + + ", iDNumber=" + + idnumber + + + ", gpa=" + + gpa + + + '}'; + } + } + + public static class Sortingstudentsbygpa implements Comparator { + @Override + public int compare(Student s1, Student s2) { + return s1.getGpa() - s2.getGpa(); + } + } + + + public static Student[] insertionSort(Student[] students) { + int size = students.length; + for (int i = 1; i < size; i++) { + Student key = students[i]; + int j = i - 1; + while (j >= 0 && students[j].gpa > key.gpa) { + students[j + 1] = students[j]; + j--; + } + students[j + 1] = key; + } + return students; + } + + public static void swap(Student[] students, int l, int r) { + Student temp = students[l]; + students[l] = students[r]; + students[r] = temp; + } + + public static Student[] quickSort(Student[] students, int left, int right, Comparator comparator) { + int l = left; + int r = right; + if (r > l) { + Student temp = students[(l + r) / 2]; + while (l <= r) { + while (l < right && comparator.compare(students[l], temp) < 0) { + l++; + } + while (r > left && comparator.compare(students[r], temp) > 0) { + r--; + } + if (l <= r) { + swap(students, l++, r--); + } + } + if (left < r) { + quickSort(students, left, r, comparator); + } + if (l < right) { + quickSort(students, l, right, comparator); + } + } + return students; + } + + public static void merge(Student[] students, int start, int mid, int end, Comparator comparator) { + Student[] temp = new Student[students.length]; + int spot = start; + int pos1 = start; + int pos2 = mid + 1; + + while (!(pos1 > mid && pos2 > end)) { + if (pos1 > mid || pos2 <= end && comparator.compare(students[pos2], students[pos1]) < 0) { + temp[spot++] = students[pos2++]; + } else { + temp[spot++] = students[pos1++]; + } + } + + for (int i = start; i <= end; i++) { + students[i] = temp[i]; + } + } + + public static void mergeSort(Student[] students, int start, int end, Comparator comparator) { + if (start < end) { + int mid = (start + end) / 2; + mergeSort(students, start, mid, comparator); + mergeSort(students, mid + 1, end, comparator); + merge(students, start, mid, end, comparator); + } + } + + public static Student[] mergeArr(Student[] s1, Student[] s2, Student[] s3, int n, int m, Comparator comparator) { + int i = 0; + int j = 0; + int k = 0; + while (i < n) { + s3[k++] = s1[i++]; + } + while (j < m) { + s3[k++] = s2[j++]; + } + mergeSort(s3, 0, s3.length - 1, comparator); + return s3; + } + + public static void main(String[] args) { + Student[] students = new Student[3]; + students[0] = new Student("Thang", 18, 106, 4); + students[1] = new Student("Bang", 14, 103, 2); + students[2] = new Student("Bao", 26, 102, 5); + System.out.println("Array before insertion sorting:"); + for (int i = 0; i < 3; i++) { + System.out.println(students[i]); + } + insertionSort(students); + System.out.println("\nArray after insertion sorting:"); + for (int i = 0; i < 3; i++) { + System.out.println(students[i]); + } + Student[] students1 = new Student[3]; + final Comparator comparator = new Sortingstudentsbygpa(); + students1[0] = new Student("Tuan", 22, 105, 1); + students1[1] = new Student("Vinh", 20, 103, 7); + students1[2] = new Student("Hoang", 26, 102, 3); + System.out.println("\nArray before quick sorting:"); + for (int i = 0; i < 3; i++) { + System.out.println(students1[i]); + } + quickSort(students1, 0, students1.length - 1, comparator); + System.out.println("\nArray after quick sorting:"); + for (int i = 0; i < 3; i++) { + System.out.println(students1[i]); + } + Student[] students2 = new Student[students.length + students1.length]; + mergeArr(students, students1, students2, students.length, students1.length, comparator); + System.out.println("\nArray after merge sorting:"); + for (int i = 0; i < 6; i++) { + System.out.println(students2[i]); + } + + } +} diff --git a/students/23L0908/23L0908-p10/pom.xml b/students/23L0908/23L0908-p10/pom.xml new file mode 100644 index 000000000..4089b0609 --- /dev/null +++ b/students/23L0908/23L0908-p10/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p10 + Массивы + diff --git a/students/23L0908/23L0908-p10/src/main/java/ru/mirea/practice/s23l0908/Main.java b/students/23L0908/23L0908-p10/src/main/java/ru/mirea/practice/s23l0908/Main.java new file mode 100644 index 000000000..19e358df1 --- /dev/null +++ b/students/23L0908/23L0908-p10/src/main/java/ru/mirea/practice/s23l0908/Main.java @@ -0,0 +1,138 @@ +package ru.mirea.practice.s23l0908; + +import java.util.List; +import java.util.ArrayList; +import java.util.Comparator; + +public final class Main { + + private Main() { + } + + public List idnumber = new ArrayList<>(); + + + @SuppressWarnings("unused") + public void setArray(Student student) { + this.idnumber.add(student); + } + + public static void swap(Student[] students, int l, int r) { + Student temp = students[l]; + students[l] = students[r]; + students[r] = temp; + } + + public static class Sortingstudentsbygpa implements Comparator { + public int compare(Student s1, Student s2) { + return s1.getgpa() - s2.getgpa(); + } + } + + public static Student[] quickSort(Student[] students, int left, int right, Comparator comparator) { + int l = left; + int r = right; + if (r > l) { + Student temp = students[(l + r) / 2]; + while (l < r) { + while (l < right && comparator.compare(students[l], temp) < 0) { + l++; + } + while (r > left && comparator.compare(students[r], temp) > 0) { + r--; + } + if (l <= r) { + swap(students, l++, r--); + } + } + if (left < r) { + quickSort(students, left, r, comparator); + } + if (l < right) { + quickSort(students, l, right, comparator); + } + } + return students; + } + + @SuppressWarnings("unused") + public void outArray() { + System.out.println(idnumber); + } + + public static void merge(Student[] student, int start, int mid, int end, Comparator comparator) { + Student[] temp = new Student[student.length]; + int spot = start; + int pos1 = start; + int pos2 = mid + 1; + while (!(pos1 > mid && pos2 > end)) { + if (pos1 > mid || pos2 <= end && comparator.compare(student[pos2], student[pos1]) < 0) { + temp[spot++] = student[pos2++]; + } else { + temp[spot++] = student[pos1++]; + } + } + for (int i = start; i <= end; i++) { + student[i] = temp[i]; + } + } + + public static void mergeSort(Student[] student, int start, int end, Comparator comparator) { + if (start < end) { + int mid = (start + end) / 2; + mergeSort(student, start, mid, comparator); + mergeSort(student, mid + 1, end, comparator); + merge(student, start, mid, end, comparator); + } + } + + public static Student[] mergeArr(Student[] s1, Student[] s2, Student[] s3, int n, int m, Comparator comparator) { + int i = 0; + int j = 0; + int k = 0; + while (i < n) { + s3[k++] = s1[i++]; + } + while (j < m) { + s3[k++] = s2[j++]; + } + mergeSort(s3, 0, s3.length - 1, comparator); + return s3; + } + + public static void main(String[] args) { + Student[] students1 = new Student[3]; + final Comparator comparator = new Sortingstudentsbygpa(); + students1[0] = new Student("Vuong", "Thanh", "AI", 2, "ИКБО-42-23", 4); + students1[1] = new Student("Hoang", "Phong", "AI", 2, "КАБО-02-23", 3); + students1[2] = new Student("Le", "Nhan", "Radio", 2, "БАБО-01-23", 5); + System.out.println("\n Array 1 before sorting:"); + for (Student student : students1) { + System.out.println(student); + } + students1 = quickSort(students1, 0, students1.length - 1, comparator); + System.out.println("\nArray 1 after quick sorting:"); + for (int i = 0; i < 3; i++) { + System.out.println(students1[i]); + } + Student[] students2 = new Student[3]; + students2[0] = new Student("Vinh", "Nghiem", "AI", 4, "ИКБО-04-21", 3); + students2[1] = new Student("Tuan", "Mai", "Game", 2, "ИКБО-33-21", 5); + students2[2] = new Student("Vinh", "Pham", "Web", 2, "ИКБО-30-21", 4); + System.out.println("\n Array 2 before sorting:"); + for (Student student : students2) { + System.out.println(student); + } + mergeSort(students2, 0, students2.length - 1, comparator); + System.out.println("\nArray after quick sorting:"); + for (int i = 0; i < 3; i++) { + System.out.println(students2[i]); + } + Student[] students3 = new Student[students2.length + students1.length]; + students3 = mergeArr(students1, students2, students3, students1.length, students2.length, comparator); + System.out.println("\n Array after merge sorting: "); + for (Student student : students3) { + System.out.println(student); + } + } +} diff --git a/students/23L0908/23L0908-p10/src/main/java/ru/mirea/practice/s23l0908/Student.java b/students/23L0908/23L0908-p10/src/main/java/ru/mirea/practice/s23l0908/Student.java new file mode 100644 index 000000000..fd9546908 --- /dev/null +++ b/students/23L0908/23L0908-p10/src/main/java/ru/mirea/practice/s23l0908/Student.java @@ -0,0 +1,43 @@ +package ru.mirea.practice.s23l0908; + + +public class Student { + + private final String firstname; + private final String lastname; + private final String speciality; + private final int course; + private final String group; + private final int gpa; + + public Student(String firstname, String lastname, String speciality, int course, String group, int gpa) { + this.firstname = firstname; + this.lastname = lastname; + this.speciality = speciality; + this.course = course; + this.group = group; + this.gpa = gpa; + } + + public int getgpa() { + return gpa; + } + + @Override + public String toString() { + return "Student{ " + + "First name :" + + firstname + + ", Last name: " + + lastname + + ", Speciality: " + + speciality + + ", Course: " + + course + + ", Group: " + + group + + ", GPA = " + + gpa + + "}"; + } +} diff --git a/students/23L0908/23L0908-p11/pom.xml b/students/23L0908/23L0908-p11/pom.xml new file mode 100644 index 000000000..229ec2ae1 --- /dev/null +++ b/students/23L0908/23L0908-p11/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p11 + Массивы + diff --git a/students/23L0908/23L0908-p11/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java b/students/23L0908/23L0908-p11/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java new file mode 100644 index 000000000..0da50def6 --- /dev/null +++ b/students/23L0908/23L0908-p11/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java @@ -0,0 +1,38 @@ +package ru.mirea.practice.s23l0908.task2; + +import java.text.SimpleDateFormat; +import java.text.ParseException; +import java.util.Date; +import java.util.Calendar; +import java.util.Scanner; + +public final class Main { + + private Main() { + } + + public static void main(String[] args) { + try (Scanner in = new Scanner(System.in)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + System.out.println("Enter date (yyyy-MM-DD): "); + String dateStr = in.nextLine(); + Calendar cal1 = Calendar.getInstance(); + Calendar cal2 = Calendar.getInstance(); + cal1.setTime(new Date()); + try { + Date date = sdf.parse(dateStr); + cal2.setTime(date); + + if (cal1.after(cal2)) { + System.out.println(sdf.format(cal1.getTime()) + " is after " + sdf.format(cal2.getTime())); + } else if (cal2.after(cal1)) { + System.out.println(sdf.format(cal1.getTime()) + " is before " + sdf.format(cal2.getTime())); + } else { + System.out.println(sdf.format(cal1.getTime()) + " is equal to " + sdf.format(cal2.getTime())); + } + } catch (ParseException e) { + System.out.println("Invalid date format."); + } + } + } +} diff --git a/students/23L0908/23L0908-p11/src/main/java/ru/mirea/practice/s23l0908/task3/Student.java b/students/23L0908/23L0908-p11/src/main/java/ru/mirea/practice/s23l0908/task3/Student.java new file mode 100644 index 000000000..81bddc4c6 --- /dev/null +++ b/students/23L0908/23L0908-p11/src/main/java/ru/mirea/practice/s23l0908/task3/Student.java @@ -0,0 +1,84 @@ +package ru.mirea.practice.s23l0908.task3; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Scanner; + +public class Student { + private final String firstname; + private final String lastname; + private final String speciality; + private final int course; + private final String group; + private final int gpa; + private final Calendar dateofbirth; + + public Student(String firstname, String lastname, String speciality, int course, String group, int gpa, int year, int month, int day) { + this.firstname = firstname; + this.lastname = lastname; + this.speciality = speciality; + this.course = course; + this.group = group; + this.gpa = gpa; + this.dateofbirth = Calendar.getInstance(); + dateofbirth.set(Calendar.YEAR, year); + dateofbirth.set(Calendar.MONTH, month); + dateofbirth.set(Calendar.DAY_OF_MONTH, day); + } + + public Student(int year, int month, int day) { + this("Hoang", "Phong", "AI", 2, "KABO-02-23", 5, year, month, day); + } + + @SuppressWarnings("unused") + + public int getGpa() { + return gpa; + } + + public String toString(String typeDate) { + SimpleDateFormat dateFormat = new SimpleDateFormat(typeDate); + return "Student{" + + "firstName='" + + firstname + + '\'' + + ", lastName='" + + lastname + + '\'' + + ", speciality='" + + speciality + + '\'' + + ", course=" + + course + + ", group='" + + group + + '\'' + + ", gpa=" + + gpa + + ", DateOfBirth='" + + dateFormat.format(this.dateofbirth.getTime()) + + '\'' + + '}'; + } + + public static void main(String[] args) { + try (Scanner in = new Scanner(System.in)) { + System.out.print("Enter\ndate of birth: "); + final int date = in.nextInt(); + + System.out.print("month of birth: "); + final int month = in.nextInt(); + + System.out.print("year of birth: "); + int year = in.nextInt(); + + System.out.println("Enter date of birth format: "); + in.nextLine(); + String typeDate = in.nextLine(); + + Student student = new Student(year, month, date); // Sử dụng ngay các biến + System.out.println(student.toString(typeDate)); + } + } + +} diff --git a/students/23L0908/23L0908-p11/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java b/students/23L0908/23L0908-p11/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java new file mode 100644 index 000000000..9b0d3841c --- /dev/null +++ b/students/23L0908/23L0908-p11/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java @@ -0,0 +1,35 @@ +package ru.mirea.practice.s23l0908.task4; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Scanner; + +public final class Main { + + private Main() { + } + + public static void main(String[] args) { + try (Scanner in = new Scanner(System.in)) { + System.out.print("Enter year: "); + final int year = in.nextInt(); + System.out.print("Enter month: "); + final int month = in.nextInt(); + System.out.print("Enter date: "); + final int date = in.nextInt(); + System.out.print("Enter hours: "); + final int hours = in.nextInt(); + System.out.print("Enter minute: "); + final int minute = in.nextInt(); + final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd\nHH:mm"); + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.YEAR, year); + calendar.set(Calendar.MONTH, month); + calendar.set(Calendar.DAY_OF_MONTH, date); + calendar.set(Calendar.HOUR, hours); + calendar.set(Calendar.MINUTE, minute); + System.out.println(dateFormat.format(calendar.getTime())); + } + } +} + diff --git a/students/23L0908/23L0908-p12/pom.xml b/students/23L0908/23L0908-p12/pom.xml new file mode 100644 index 000000000..ec79576c0 --- /dev/null +++ b/students/23L0908/23L0908-p12/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p12 + Массивы + diff --git a/students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task1/Shape.java b/students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task1/Shape.java new file mode 100644 index 000000000..14e742ae5 --- /dev/null +++ b/students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task1/Shape.java @@ -0,0 +1,106 @@ +package ru.mirea.practice.s23l0908.task1; + +import javax.swing.JFrame; +import java.awt.Graphics; +import java.awt.Color; + +public class Shape extends JFrame { + public Shape() { + setSize(1300, 500); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setLocationRelativeTo(null); + setVisible(true); + } + + public static void main(String[] a) { + new Shape(); + } + + public void paint(Graphics graphics) { + graphics.setColor(Color.RED); + graphics.fillRect(10, 50, 100, 100); + graphics.setColor(Color.BLACK); + graphics.drawRect(10, 50, 100, 100); + graphics.setColor(Color.BLUE); + graphics.fillOval(120, 50, 100, 100); + graphics.setColor(Color.BLACK); + graphics.drawOval(120, 50, 100, 100); + graphics.setColor(Color.CYAN); + graphics.fillRect(230, 50, 150, 100); + graphics.setColor(Color.BLACK); + graphics.drawRect(230, 50, 150, 100); + graphics.setColor(Color.GREEN); + graphics.fillArc(400, 50, 110, 100, 5, 150); + graphics.setColor(Color.BLACK); + graphics.drawArc(400, 50, 110, 100, 5, 150); + graphics.setColor(Color.MAGENTA); + graphics.fillRect(520, 50, 100, 150); + graphics.setColor(Color.BLACK); + graphics.drawRect(1100, 50, 150, 100); + graphics.setColor(Color.BLACK); + graphics.drawOval(950, 50, 100, 150); + graphics.setColor(Color.darkGray); + graphics.fillRect(1100, 50, 150, 100); + graphics.setColor(Color.lightGray); + graphics.fillRect(10, 250, 100, 100); + graphics.setColor(Color.BLACK); + graphics.drawRect(10, 250, 100, 100); + graphics.setColor(Color.black); + graphics.fillOval(120, 250, 100, 100); + graphics.setColor(Color.BLACK); + graphics.drawOval(120, 250, 100, 100); + graphics.setColor(Color.GREEN); + graphics.fillRect(230, 250, 150, 100); + graphics.setColor(Color.BLACK); + graphics.drawRect(230, 250, 150, 100); + graphics.setColor(Color.darkGray); + graphics.fillArc(400, 250, 110, 100, 5, 150); + graphics.setColor(Color.BLACK); + graphics.drawArc(400, 250, 110, 100, 5, 150); + graphics.setColor(Color.RED); + graphics.fillRect(520, 250, 100, 150); + graphics.setColor(Color.BLACK); + graphics.drawRect(520, 250, 100, 150); + graphics.setColor(Color.PINK); + graphics.fillOval(630, 250, 150, 100); + graphics.setColor(Color.BLACK); + graphics.drawOval(630, 250, 150, 100); + graphics.setColor(Color.ORANGE); + graphics.fillOval(820, 280, 100, 100); + graphics.setColor(Color.BLACK); + graphics.drawOval(820, 280, 100, 100); + graphics.setColor(Color.ORANGE); + graphics.fillOval(810, 240, 50, 50); + graphics.setColor(Color.BLACK); + graphics.drawOval(810, 240, 50, 50); + graphics.setColor(Color.ORANGE); + graphics.fillOval(880, 240, 50, 50); + graphics.setColor(Color.BLACK); + graphics.drawOval(880, 240, 50, 50); + graphics.setColor(Color.BLUE); + graphics.fillOval(950, 250, 100, 150); + graphics.setColor(Color.BLACK); + graphics.drawOval(950, 250, 100, 150); + graphics.setColor(Color.MAGENTA); + graphics.fillRect(1100, 250, 150, 100); + graphics.setColor(Color.BLACK); + graphics.drawRect(1100, 250, 150, 100); + graphics.setColor(Color.BLACK); + graphics.drawOval(630, 50, 150, 100); + graphics.setColor(Color.PINK); + graphics.fillOval(820, 100, 100, 100); + graphics.setColor(Color.BLACK); + graphics.drawOval(820, 100, 100, 100); + graphics.setColor(Color.PINK); + graphics.fillOval(810, 60, 50, 50); + graphics.setColor(Color.BLACK); + graphics.drawOval(810, 60, 50, 50); + graphics.setColor(Color.PINK); + graphics.fillOval(880, 60, 50, 50); + graphics.setColor(Color.BLACK); + graphics.drawOval(880, 60, 50, 50); + graphics.setColor(Color.lightGray); + graphics.fillOval(950, 50, 100, 150); + + } +} diff --git a/students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task2/Imageload.java b/students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task2/Imageload.java new file mode 100644 index 000000000..438f18acb --- /dev/null +++ b/students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task2/Imageload.java @@ -0,0 +1,24 @@ +package ru.mirea.practice.s23l0908.task2; + +import java.awt.Canvas; +import java.awt.Image; +import java.awt.Graphics; +import java.awt.Color; + +class Imageload extends Canvas { + Image img; + + public Imageload(Image img) { + this.img = img; + } + + public void paint(Graphics g) { + if (img != null) { + g.drawImage(img, 10, 100, Color.BLACK, this); + } + } + + public void setImage(Image img) { + this.img = img; + } +} diff --git a/students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task2/ImagesLoading.java b/students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task2/ImagesLoading.java new file mode 100644 index 000000000..c4fe98963 --- /dev/null +++ b/students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task2/ImagesLoading.java @@ -0,0 +1,78 @@ +package ru.mirea.practice.s23l0908.task2; + +import java.awt.Image; +import java.awt.Color; +import java.awt.Label; +import java.awt.Button; +import java.awt.FileDialog; +import java.awt.FlowLayout; +import java.awt.Toolkit; +import java.awt.event.ActionListener; +import java.awt.event.ActionEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import javax.swing.JFrame; + +public class ImagesLoading implements ActionListener { + JFrame fr = new JFrame("Image Loading Program using AWT"); + Label label1 = new Label("Choose your image"); + Button button1 = new Button("Select"); + Image image1; + Imageload canvas1; + FileDialog fd; + + void initialize() { + fd = new FileDialog(fr, "Open", FileDialog.LOAD); + fr.setSize(500, 500); + fr.setLocation(200, 200); + fr.setBackground(Color.LIGHT_GRAY); + fr.setLayout(new FlowLayout()); + fr.add(label1); + fr.add(button1); + fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + button1.addActionListener(this); + + canvas1 = new Imageload(null); + canvas1.setSize(400, 400); // Set a reasonable size + fr.add(canvas1); + + fr.addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent e) { + System.exit(0); + } + }); + + fr.setVisible(true); + } + + void imageload() { + fd.setVisible(true); + if (fd.getFile() == null) { + label1.setText("You have not selected any file"); + } else { + String d = fd.getDirectory() + fd.getFile(); + Toolkit toolkit = Toolkit.getDefaultToolkit(); + image1 = toolkit.getImage(d); + if (image1 != null) { + canvas1.setImage(image1); + canvas1.repaint(); + } else { + label1.setText("Failed to load image"); + } + } + } + + @Override + public void actionPerformed(ActionEvent event) { + Button b = (Button) event.getSource(); + if (b.equals(button1)) { + imageload(); + } + } + + public static void main(String[] args) { + ImagesLoading app = new ImagesLoading(); + app.initialize(); + } +} diff --git a/students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task3/AnimationFrame.java b/students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task3/AnimationFrame.java new file mode 100644 index 000000000..598dec59a --- /dev/null +++ b/students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task3/AnimationFrame.java @@ -0,0 +1,46 @@ +package ru.mirea.practice.s23l0908.task3; + +import java.awt.Image; +import java.awt.Color; +import java.awt.FlowLayout; +import java.awt.Toolkit; +import javax.swing.JFrame; + +class AnimationFrame extends JFrame { + Image img1; + Image img2; + Image img3; + Image img4; + Image img5; + Image img6; + Image img7; + Image img8; + DemoAnimation demoAnimation; + + public AnimationFrame() { + setTitle("Image Animation Program using AWT"); + setSize(1000, 1000); + setLocation(200, 200); + setBackground(Color.LIGHT_GRAY); + setLayout(new FlowLayout()); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + Toolkit toolkit = Toolkit.getDefaultToolkit(); + img1 = toolkit.getImage("C:\\Users\\user\\IdeaProjects\\ads\\prak12-task2\\1.jpg"); + img2 = toolkit.getImage("C:\\Users\\user\\IdeaProjects\\ads\\prak12-task2\\2.jpg"); + img3 = toolkit.getImage("C:\\Users\\user\\IdeaProjects\\ads\\prak12-task2\\3.jpg"); + img4 = toolkit.getImage("C:\\Users\\user\\IdeaProjects\\ads\\prak12-task2\\4.jpg"); + img5 = toolkit.getImage("C:\\Users\\user\\IdeaProjects\\ads\\prak12-task2\\5.jpg"); + img6 = toolkit.getImage("C:\\Users\\user\\IdeaProjects\\ads\\prak12-task2\\6.jpg"); + img7 = toolkit.getImage("C:\\Users\\user\\IdeaProjects\\ads\\prak12-task2\\7.jpg"); + img8 = toolkit.getImage("C:\\Users\\user\\IdeaProjects\\ads\\prak12-task2\\8.jpg"); + demoAnimation = new DemoAnimation(img1, img2, img3, img4, img5, img6, img7, img8); + demoAnimation.setSize(1500, 1500); // Đặt kích thước cho canvas + add(demoAnimation); + setVisible(true); + demoAnimation.repaint(); + } + + public static void main(String[] args) { + new AnimationFrame(); + } +} diff --git a/students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task3/DemoAnimation.java b/students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task3/DemoAnimation.java new file mode 100644 index 000000000..10aeb6a56 --- /dev/null +++ b/students/23L0908/23L0908-p12/src/main/java/ru/mirea/practice/s23l0908/task3/DemoAnimation.java @@ -0,0 +1,102 @@ +package ru.mirea.practice.s23l0908.task3; + +import java.awt.Canvas; +import java.awt.Image; +import java.awt.Graphics; +import java.util.logging.Logger; +import java.util.logging.Level; + + +public class DemoAnimation extends Canvas { + Image img1; + Image img2; + Image img3; + Image img4; + Image img5; + Image img6; + Image img7; + Image img8; + + // Constructor nhận 3 hình ảnh + public DemoAnimation(Image img1, Image img2, Image img3, Image img4, Image img5, Image img6, Image img7, Image img8) { + this.img1 = img1; + this.img2 = img2; + this.img3 = img3; + this.img4 = img4; + this.img5 = img5; + this.img6 = img6; + this.img7 = img7; + this.img8 = img8; + } + + private static final Logger logger = Logger.getLogger(DemoAnimation.class.getName()); + + public void paint(Graphics g) { + if (img1 != null) { + g.drawImage(img1, 400, 100, this); + try { + Thread.sleep(250); + } catch (InterruptedException e) { + logger.log(Level.SEVERE, "Thread was interrupted", e); + } + + g.drawImage(img2, 400, 100, this); + try { + Thread.sleep(250); + } catch (InterruptedException e) { + logger.log(Level.SEVERE, "Thread was interrupted", e); + } + + g.drawImage(img3, 400, 100, this); + try { + Thread.sleep(250); + } catch (InterruptedException e) { + logger.log(Level.SEVERE, "Thread was interrupted", e); + } + + g.drawImage(img4, 400, 100, this); + try { + Thread.sleep(250); + } catch (InterruptedException e) { + logger.log(Level.SEVERE, "Thread was interrupted", e); + } + g.drawImage(img5, 400, 100, this); + try { + Thread.sleep(250); + } catch (InterruptedException e) { + logger.log(Level.SEVERE, "Thread was interrupted", e); + } + g.drawImage(img6, 400, 100, this); + try { + Thread.sleep(250); + } catch (InterruptedException e) { + logger.log(Level.SEVERE, "Thread was interrupted", e); + } + g.drawImage(img7, 400, 100, this); + try { + Thread.sleep(250); + } catch (InterruptedException e) { + logger.log(Level.SEVERE, "Thread was interrupted", e); + } + g.drawImage(img8, 400, 100, this); + try { + Thread.sleep(250); + } catch (InterruptedException e) { + logger.log(Level.SEVERE, "Thread was interrupted", e); + } + repaint(); + } + } + + @SuppressWarnings("unused") + public void setImage(Image img1, Image img2, Image img3, Image img4, Image img5, Image img6, Image img7, Image img8) { + this.img1 = img1; + this.img2 = img2; + this.img3 = img3; + this.img4 = img4; + this.img5 = img5; + this.img6 = img6; + this.img7 = img7; + this.img8 = img8; + } +} diff --git a/students/23L0908/23L0908-p13/pom.xml b/students/23L0908/23L0908-p13/pom.xml new file mode 100644 index 000000000..10608d3c0 --- /dev/null +++ b/students/23L0908/23L0908-p13/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p13 + Массивы + diff --git a/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java b/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java new file mode 100644 index 000000000..09af5a5a2 --- /dev/null +++ b/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java @@ -0,0 +1,46 @@ +package ru.mirea.practice.s23l0908.task1; + +import java.util.Locale; + +public final class Main { + + private Main() { + } + + public static String func(String str) { + return str; + } + + public static void main(String[] args) { + //1. + String s = "I like Java!!!"; + System.out.println(func(s)); + //2. + String st = "The weather is cold"; + System.out.println(st.charAt(st.length() - 1)); + //3. + + if (s.endsWith("!!!")) { + System.out.println("The Strings end with \"!!!\""); + } + //4. + if (s.startsWith("I like")) { + System.out.println("The Strings start with\"I like\""); + } + //5. + if (s.contains("Java")) { + System.out.println("The Strings containing \"Java\""); + } + //6. + System.out.println(s.indexOf("Java")); + //7. + System.out.println(s.replace('a', 'o')); + //8. + System.out.println(s.toUpperCase(Locale.ROOT)); + //9. + System.out.println(s.toLowerCase(Locale.ROOT)); + //10. + String str = s.substring(7); + System.out.println(str); + } +} diff --git a/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task2/Person.java b/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task2/Person.java new file mode 100644 index 000000000..68db3c7f1 --- /dev/null +++ b/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task2/Person.java @@ -0,0 +1,26 @@ +package ru.mirea.practice.s23l0908.task2; + +public class Person { + private final String firstname; + private final String middlename; + private final String lastname; + + public Person(String firstname, String middlename, String lastname) { + this.firstname = firstname; + this.middlename = middlename; + this.lastname = lastname; + } + + public Person(String firstname) { + this(firstname, "Xuan", "Phong"); + } + + public static void main(String[] args) { + Person person = new Person("Hoang"); + System.out.println(person.getName()); + } + + public String getName() { + return firstname + " " + middlename + " " + lastname; + } +} diff --git a/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task3/Address.java b/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task3/Address.java new file mode 100644 index 000000000..3cef6db5f --- /dev/null +++ b/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task3/Address.java @@ -0,0 +1,67 @@ +package ru.mirea.practice.s23l0908.task3; + +import java.util.StringTokenizer; + +public class Address { + private final String country; + private final String region; + private final String city; + private final String street; + private final String house; + private final String korpus; + private final String room; + + public Address(String format) { + String[] arrStr = format.split(","); + if (arrStr.length >= 2) { + this.country = arrStr[0]; + this.region = arrStr[1]; + this.city = arrStr[2]; + this.street = arrStr[3]; + this.house = arrStr[4]; + this.korpus = arrStr[5]; + this.room = arrStr[6]; + } else { + StringTokenizer st = new StringTokenizer(format, ";", false); + this.country = st.nextToken(); + this.region = st.nextToken(); + this.city = st.nextToken(); + this.street = st.nextToken(); + this.house = st.nextToken(); + this.korpus = st.nextToken(); + this.room = st.nextToken(); + } + } + + public static void main(String[] args) { + String format = "Russia; Russia; Moscow; Vernadskogo; D86;KPP2;5B"; + Address address = new Address(format); + System.out.print(address); + } + + public String toString() { + return "Address{" + + "country='" + + country + + '\'' + + ", region='" + + region + + '\'' + + ", city='" + + city + + '\'' + + ", street='" + + street + + '\'' + + ", house='" + + house + + '\'' + + ", korpus='" + + korpus + + '\'' + + ", room='" + + room + + '\'' + + '}'; + } +} diff --git a/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task4/Shirt.java b/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task4/Shirt.java new file mode 100644 index 000000000..10e29aec1 --- /dev/null +++ b/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task4/Shirt.java @@ -0,0 +1,53 @@ +package ru.mirea.practice.s23l0908.task4; + +public class Shirt { + private final String code; + private final String type; + private final String color; + private final String size; + + public Shirt(String str) { + String[] arr = str.split(","); + this.code = arr[0]; + this.type = arr[1]; + this.color = arr[2]; + this.size = arr[3]; + } + + @Override + public String toString() { + return "Shirt{" + + "code='" + + code + + '\'' + + ", type='" + + type + + '\'' + + ", color='" + + color + + '\'' + + ", size='" + + size + + '\'' + + '}'; + } + + public static void main(String[] args) { + String[] shirts = new String[11]; + shirts[0] = "S001,Black Polo Shirt,Black,XL"; + shirts[1] = "S002,Black Polo Shirt,Black,L"; + shirts[2] = "S003,Blue Polo Shirt,Blue,XL"; + shirts[3] = "S004,Blue Polo Shirt,Blue,M"; + shirts[4] = "S005,Tan Polo Shirt,Tan,XL"; + shirts[5] = "S006,Black T-Shirt,Black,XL"; + shirts[6] = "S007,White T-Shirt,White,XL"; + shirts[7] = "S008,White T-Shirt,White,L"; + shirts[8] = "S009,Green T-Shirt,Green,S"; + shirts[9] = "S010,Orange T-Shirt,Orange,S"; + shirts[10] = "S011,Maroon Polo Shirt,Maroon,S"; + for (String s : shirts) { + Shirt shirt = new Shirt(s); + System.out.println(shirt); + } + } +} diff --git a/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task5/FormatNumberTelephone.java b/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task5/FormatNumberTelephone.java new file mode 100644 index 000000000..a6460c9a9 --- /dev/null +++ b/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task5/FormatNumberTelephone.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s23l0908.task5; + +public final class FormatNumberTelephone { + + private FormatNumberTelephone() { + } + + public static String format(String numberTelephone) { + StringBuilder last = new StringBuilder(numberTelephone.substring(numberTelephone.length() - 10)); + String code; + last.insert(3, '-'); + last.insert(7, '-'); + if (numberTelephone.charAt(0) == '+') { + code = String.valueOf(numberTelephone.charAt(1)); + } else { + code = "7"; + } + return "+" + code + last; + } + + public static void main(String[] args) { + String phone = "89998657010"; + System.out.println(format(phone)); + } +} diff --git a/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task6/Main.java b/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task6/Main.java new file mode 100644 index 000000000..90e6a9607 --- /dev/null +++ b/students/23L0908/23L0908-p13/src/main/java/ru/mirea/practice/s23l0908/task6/Main.java @@ -0,0 +1,61 @@ +package ru.mirea.practice.s23l0908.task6; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Scanner; +import java.util.Locale; + +public final class Main { + + private Main() { + } + + @SuppressWarnings("unused") + public static void main(String[] args) { + try (Scanner sc = new Scanner(System.in)) { + String fileName = "Киев Нью-Йорк Амстердам Вена Мельбурн"; + System.out.println("String: " + fileName); + String[] arr = fileName.split(" "); + getLine(0, arr); + } + } + + public static void getLine(int q, String... words) { + if (q == words.length) { + return; + } + StringBuilder result = new StringBuilder(); + List list = new ArrayList<>(Arrays.asList(words)); + result.append(list.get(q)).append(" "); + String word = list.get(q); + list.remove(q); + int max = list.size(); + int count = 0; + + while (!list.isEmpty() && count < max) { + boolean found = false; + for (int i = 0; i < list.size(); i++) { + if (list.get(i).toLowerCase(Locale.ROOT).charAt(0) == word.toLowerCase(Locale.ROOT).charAt(word.length() - 1)) { + result.append(list.get(i)).append(" "); + word = list.get(i); + list.remove(i); + found = true; + break; + } + } + count++; + if (!found) { + break; + } + } + + + for (String text : list) { + result.append(text).append(" "); + } + System.out.println(result); + getLine(++q, words); + } +} + diff --git a/students/23L0908/23L0908-p14/pom.xml b/students/23L0908/23L0908-p14/pom.xml new file mode 100644 index 000000000..f58a37c50 --- /dev/null +++ b/students/23L0908/23L0908-p14/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p14 + Массивы + diff --git a/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java b/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java new file mode 100644 index 000000000..23546b1e8 --- /dev/null +++ b/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s23l0908.task1; + +import java.util.Scanner; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public final class Main { + + private Main() { + } + + public static void main(String[] args) { + try (Scanner in = new Scanner(System.in)) { + System.out.print("Enter string: "); + String input = in.nextLine(); + System.out.print("Enter regex: "); + String regex = in.nextLine(); + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(input); + while (matcher.find()) { + System.out.println(matcher.group()); + } + } + } +} diff --git a/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java b/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java new file mode 100644 index 000000000..9472ff9d3 --- /dev/null +++ b/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java @@ -0,0 +1,14 @@ +package ru.mirea.practice.s23l0908.task2; + +public final class Main { + + private Main() { + } + + public static void main(String[] args) { + System.out.println("\"abcdefghijklmnopqrstuv18340\": " + + "abcdefghijklmnopqrstuv18340".matches("^abcdefghijklmnopqrstuv18340$")); + System.out.println("\"abcdefghijklmnoasdfasdpqrstuv18340\": " + + "abcdefghijklmnoasdfasdpqrstuv18340".matches("^abcdefghijklmnopqrstuv18340$")); + } +} diff --git a/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java b/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java new file mode 100644 index 000000000..98eee138f --- /dev/null +++ b/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java @@ -0,0 +1,21 @@ +package ru.mirea.practice.s23l0908.task3; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public final class Main { + + private Main() { + } + + public static void main(String[] args) { + String regex = "(\\d+\\.?\\d*\\s)(RUB|USD|EU)"; + String s = "Цены 30.06 USD 50.30 RUB 60.12 CHF 11,23"; + Pattern p1 = Pattern. compile(regex); + Matcher m1 = p1.matcher(s); + while (m1.find()) { + System.out.println("Список цен: " + m1.group()); + } + } +} + diff --git a/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java b/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java new file mode 100644 index 000000000..d1861fb3c --- /dev/null +++ b/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java @@ -0,0 +1,15 @@ +package ru.mirea.practice.s23l0908.task4; + + +public final class Main { + + private Main() { + } + + public static void main(String[] args) { + String regex = "(.*\\++.*)"; + System.out.println("(1 + 8) – 9 / 4: " + "(1 + 8) – 9 / 4".matches(regex)); + System.out.println("6 / 5 – 2 * 9: " + "(6 / 5 – 2 * 9".matches(regex)); + + } +} diff --git a/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task5/Main.java b/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task5/Main.java new file mode 100644 index 000000000..a1ece7d52 --- /dev/null +++ b/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task5/Main.java @@ -0,0 +1,21 @@ +package ru.mirea.practice.s23l0908.task5; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public final class Main { + + private Main() { + } + + public static void main(String[] args) { + String regex = "(([0-2]\\d)|(3[01]))/[01]\\d/[1-9]\\d{3}"; + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher("29/02/2000, 30/04/2003, 01/01/2003, 30-04-2003, 1/1/1899"); + System.out.println("String: 29/02/2000, 30/04/2003, 01/01/2003, 30-04-2003, 1/1/1899"); + System.out.println("Regex: (([0-2]\\d)|(3[01]))/[01]\\d/[1-9]\\d{3}"); + while (matcher.find()) { + System.out.println(matcher.group()); + } + } +} diff --git a/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task6/Main.java b/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task6/Main.java new file mode 100644 index 000000000..f84dff0e2 --- /dev/null +++ b/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task6/Main.java @@ -0,0 +1,24 @@ +package ru.mirea.practice.s23l0908.task6; + +import java.util.regex.Pattern; +import java.util.regex.Matcher; + +public final class Main { + + private Main() { + } + + public static void main(String[] args) { + // Đơn giản hóa '[\\w]' thành '\\w' + String regex = "\\w[-_.]+@\\w+(\\.\\w+)*"; + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher("user@example.com, root@localhost, myhost@@@com.ru"); + System.out.println("String: user@example.com, root@localhost, myhost@@@com.ru"); + System.out.println("Regex: \\w[-_.]+@\\w+(\\.\\w+)*"); + while (matcher.find()) { + System.out.println(matcher.group()); + } + } +} + + diff --git a/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task7/Main.java b/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task7/Main.java new file mode 100644 index 000000000..dfd4e8362 --- /dev/null +++ b/students/23L0908/23L0908-p14/src/main/java/ru/mirea/practice/s23l0908/task7/Main.java @@ -0,0 +1,19 @@ +package ru.mirea.practice.s23l0908.task7; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public final class Main { + + private Main() { + } + + public static void main(String[] args) { + String regex = "(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)\\w{8,}"; + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher("F032_Password, TrySpy1, Smart_pass, A007"); + while (matcher.find()) { + System.out.println(matcher.group()); + } + } +} diff --git a/students/23L0908/23L0908-p15/pom.xml b/students/23L0908/23L0908-p15/pom.xml new file mode 100644 index 000000000..5996353fc --- /dev/null +++ b/students/23L0908/23L0908-p15/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p15 + Массивы + diff --git a/students/23L0908/23L0908-p15/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java b/students/23L0908/23L0908-p15/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java new file mode 100644 index 000000000..86f2dfddc --- /dev/null +++ b/students/23L0908/23L0908-p15/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java @@ -0,0 +1,47 @@ +package ru.mirea.practice.s23l0908.task1; + +import java.awt.Font; +import java.awt.FlowLayout; +import javax.swing.JFrame; +import javax.swing.JTextField; +import javax.swing.JButton; +import javax.swing.JLabel; +import javax.swing.JOptionPane; + +public class Main extends JFrame { + JTextField jta1 = new JTextField(10); + JTextField jta2 = new JTextField(10); + JButton button = new JButton(" Add themup"); + @SuppressWarnings("unused") + Font fnt = new Font("Times new roman", Font.BOLD, 20); + + Main() { + super("Example"); + setLayout(new FlowLayout()); + setSize(250, 150); + add(new JLabel("1st Number")); + add(jta1); + add(new JLabel("2nd Number")); + add(jta2); + add(button); + button.addActionListener(ae -> { + try { + double x1 = Double.parseDouble(jta1.getText().trim()); + double x2 = Double.parseDouble(jta2.getText().trim()); + JOptionPane.showMessageDialog(null, x1 + " + " + + x2 + " = " + (x1 + x2) + + "\n" + + x1 + " - " + x2 + " = " + (x1 - x2) + + "\n" + x1 + " * " + x2 + " = " + (x1 * x2) + + "\n" + x1 + " / " + x2 + " = " + (x1 / x2), "Alert", JOptionPane.INFORMATION_MESSAGE); + } catch (Exception e) { + JOptionPane.showMessageDialog(null, "Error in Numbers !", " alert ", JOptionPane.ERROR_MESSAGE); + } + }); + + } + + public static void main(String[] args) { + new Main().setVisible(true); + } +} diff --git a/students/23L0908/23L0908-p15/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java b/students/23L0908/23L0908-p15/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java new file mode 100644 index 000000000..cd11c0439 --- /dev/null +++ b/students/23L0908/23L0908-p15/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java @@ -0,0 +1,22 @@ +package ru.mirea.practice.s23l0908.task2; + +import javax.swing.JFrame; +import javax.swing.JComboBox; + +public class Main extends JFrame { + String[] ct = {"Australia", "China", "England", "Russia", "Viet Nam"}; + JComboBox cb = new JComboBox<>(ct); + + + Main() { + super("JCOMBOBOX"); + setLayout(null); + setSize(400, 300); + cb.setBounds(100, 50, 150, 20); + add(cb); + } + + public static void main(String[] args) { + new Main().setVisible(true); + } +} diff --git a/students/23L0908/23L0908-p15/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java b/students/23L0908/23L0908-p15/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java new file mode 100644 index 000000000..2d847bc59 --- /dev/null +++ b/students/23L0908/23L0908-p15/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java @@ -0,0 +1,85 @@ +package ru.mirea.practice.s23l0908.task3; + +import java.awt.Button; +import java.awt.TextField; +import java.awt.EventQueue; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.KeyEvent; +import javax.swing.JFrame; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; + +public class Main extends JFrame { + + public Main() { + init(); + } + + private void init() { + final JMenuBar menubar = new JMenuBar(); + final JMenu file = new JMenu("File"); + final JMenu edit = new JMenu("Edit"); + final JMenu help = new JMenu("Help"); + file.setMnemonic(KeyEvent.VK_F); + edit.setMnemonic(KeyEvent.VK_F); + help.setMnemonic(KeyEvent.VK_F); + + JMenuItem eMenuItem = new JMenuItem("Exit"); + eMenuItem.setMnemonic(KeyEvent.VK_E); + eMenuItem.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + System.exit(0); + } + }); + JMenuItem saveMenuItem = new JMenuItem("Save"); + saveMenuItem.setActionCommand("Save"); + JMenuItem cutMenuItem = new JMenuItem("Cut"); + cutMenuItem.setActionCommand("Cut"); + JMenuItem copyMenuItem = new JMenuItem("Copy"); + copyMenuItem.setActionCommand("Copy"); + JMenuItem pasteMenuItem = new JMenuItem("Paste"); + pasteMenuItem.setActionCommand("Paste"); + + file.add(saveMenuItem); + file.add(eMenuItem); + edit.add(copyMenuItem); + edit.add(cutMenuItem); + edit.add(pasteMenuItem); + menubar.add(file); + menubar.add(edit); + menubar.add(help); + setJMenuBar(menubar); + + Button button1 = new Button("Button 1"); + button1.setBounds(10, 50, 60, 30); + button1.setSize(100, 50); + add(button1); + Button button2 = new Button("Button 2"); + button2.setBounds(170, 50, 60, 30); + button2.setSize(100, 50); + add(button2); + TextField tf = new TextField("This is the area you can write text"); + tf.setBounds(100, 50, 250, 20); + add(tf); + + + setTitle("Menu Example"); + setSize(300, 300); + setLocationRelativeTo(null); + setDefaultCloseOperation(EXIT_ON_CLOSE); + } + + public static void main(String[] args) { + + EventQueue.invokeLater(new Runnable() { + + @Override + public void run() { + new Main().setVisible(true); + } + }); + } +} diff --git a/students/23L0908/23L0908-p15/src/main/java/ru/mirea/practice/s23l0908/task4/Calculator.java b/students/23L0908/23L0908-p15/src/main/java/ru/mirea/practice/s23l0908/task4/Calculator.java new file mode 100644 index 000000000..8bc5aea45 --- /dev/null +++ b/students/23L0908/23L0908-p15/src/main/java/ru/mirea/practice/s23l0908/task4/Calculator.java @@ -0,0 +1,100 @@ +package ru.mirea.practice.s23l0908.task4; + +import javax.swing.JFrame; +import javax.swing.JTextField; +import java.awt.BorderLayout; +import java.awt.Panel; +import java.awt.GridLayout; +import java.awt.Button; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; + +public class Calculator extends JFrame implements ActionListener { + private final JTextField tfResult; + private double kq = 0; + private String phep = "="; + private boolean click = true; + + public Calculator() { + setTitle("Calculator"); + setSize(400, 500); + setLayout(new BorderLayout()); + + tfResult = new JTextField("0"); + tfResult.setEditable(false); + add(tfResult, "North"); + Panel panel = new Panel(); + panel.setLayout(new GridLayout(4, 4)); + String[] arr = {"7", "8", "9", "/", + "4", "5", "6", "*", + "1", "2", "3", "-", + "0", ".", "=", "+"}; + for (String label : arr) { + Button button = new Button(label); + panel.add(button); + button.addActionListener(this); + } + add(panel, "Center"); + + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent e) { + System.exit(0); + } + }); + } + + @Override + public void actionPerformed(ActionEvent e) { + String s = e.getActionCommand(); + + if ('0' <= s.charAt(0) && s.charAt(0) <= '9' + || ".".equals(s)) { + if (click) { + tfResult.setText(s); + } else { + tfResult.setText(tfResult.getText() + s); + } + + click = false; + } else { + if (click) { + if ("-".equals(s)) { + tfResult.setText(s); + click = false; + } else { + phep = s; + } + } else { + double x = Double.parseDouble(tfResult.getText()); + calculator(x); + phep = s; + click = true; + } + } + } + + public void calculator(double n) { + if ("+".equals(phep)) { + kq += n; + } else if ("-".equals(phep)) { + kq -= n; + } else if ("*".equals(phep)) { + kq *= n; + } else if ("/".equals(phep)) { + kq /= n; + } else if ("=".equals(phep)) { + kq = n; + } + + tfResult.setText(kq + ""); + } + + public static void main(String[] args) { + new Calculator().setVisible(true); + } +} + + diff --git a/students/23L0908/23L0908-p16/pom.xml b/students/23L0908/23L0908-p16/pom.xml new file mode 100644 index 000000000..6afff2f83 --- /dev/null +++ b/students/23L0908/23L0908-p16/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p16 + Массивы + diff --git a/students/23L0908/23L0908-p16/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java b/students/23L0908/23L0908-p16/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java new file mode 100644 index 000000000..eed5cf139 --- /dev/null +++ b/students/23L0908/23L0908-p16/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java @@ -0,0 +1,76 @@ +package ru.mirea.practice.s23l0908.task2; + +import javax.swing.JFrame; +import javax.swing.JTextArea; +import javax.swing.DefaultComboBoxModel; +import javax.swing.JComboBox; +import javax.swing.JButton; +import java.awt.GridLayout; +import java.awt.Font; +import java.awt.Color; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; + +public class Main extends JFrame { + JTextArea jTextArea = new JTextArea("Text"); + final DefaultComboBoxModel color = new DefaultComboBoxModel<>(); + final DefaultComboBoxModel font = new DefaultComboBoxModel<>(); + + JComboBox jComboBox1 = new JComboBox<>(color); + JComboBox jComboBox2 = new JComboBox<>(font); + JButton showButton = new JButton("Show"); + + public Main() { + super("task_2"); + setSize(400, 500); + setLayout(new GridLayout(4, 1)); + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent windowEvent) { + System.exit(0); + } + }); + final Font font1 = new Font("Times New Roman", Font.BOLD, 20); + final Font font2 = new Font("MS Sans Serif", Font.BOLD, 20); + final Font font3 = new Font("Courier New", Font.BOLD, 20); + jTextArea.setFont(font1); + jTextArea.setForeground(Color.BLUE); + color.addElement("Blue"); + color.addElement("Red"); + color.addElement("Black"); + font.addElement("Times New Roman"); + font.addElement("MS Sans Serif"); + font.addElement("Courier New"); + jComboBox1.setSelectedIndex(0); + jComboBox2.setSelectedIndex(0); + add(jTextArea); + add(jComboBox1); + add(jComboBox2); + add(showButton); + showButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + if (jComboBox1.getSelectedIndex() == 0) { + jTextArea.setForeground(Color.BLUE); + } else if (jComboBox1.getSelectedIndex() == 1) { + jTextArea.setForeground(Color.RED); + } else { + jTextArea.setForeground(Color.BLACK); + } + if (jComboBox2.getSelectedIndex() == 0) { + jTextArea.setFont(font1); + } else if (jComboBox2.getSelectedIndex() == 1) { + jTextArea.setFont(font2); + } else { + jTextArea.setFont(font3); + } + } + }); + } + + public static void main(String[] args) { + new Main().setVisible(true); + } +} + diff --git a/students/23L0908/23L0908-p16/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java b/students/23L0908/23L0908-p16/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java new file mode 100644 index 000000000..2110abe44 --- /dev/null +++ b/students/23L0908/23L0908-p16/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java @@ -0,0 +1,72 @@ +package ru.mirea.practice.s23l0908.task3; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JTextField; +import javax.swing.JPasswordField; +import javax.swing.JButton; +import javax.swing.JPanel; +import java.awt.Container; +import java.awt.GridLayout; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class Main extends JFrame implements ActionListener { + JLabel lbService = new JLabel("Service: "); + JLabel lbUser = new JLabel("Username: "); + JLabel lbPassword = new JLabel("Password: "); + JTextField txtService = new JTextField(); + JTextField txtUser = new JTextField(); + JPasswordField txtPassword = new JPasswordField(); + JButton btnSave = new JButton("Log in"); + JButton btnCancel = new JButton("Cancel"); + + public Main(String title) { + super(title); + final Container con = this.getContentPane(); + + JPanel panel1 = new JPanel(); + panel1.setLayout(new GridLayout(3, 2)); + panel1.add(lbService); + panel1.add(txtService); + panel1.add(lbUser); + panel1.add(txtUser); + panel1.add(lbPassword); + panel1.add(txtPassword); + + JPanel panel2 = new JPanel(); + panel2.setLayout(new FlowLayout()); + panel2.add(btnSave); + panel2.add(btnCancel); + + btnSave.addActionListener(this); + btnCancel.addActionListener(this); + + con.add(panel1); + + con.add(panel2, "South"); + + + this.pack(); + this.setSize(400, 200); + this.setVisible(true); + } + + @Override + public void actionPerformed(ActionEvent e) { + if ("Save".equals(e.getActionCommand())) { + String userName = txtUser.getText(); + String passWord = txtPassword.getText(); + System.out.println("Username: " + userName); + System.out.println("Password: " + passWord); + } else { + this.dispose(); + } + } + + public static void main(String[] args) { + new Main("Sign Up"); + } +} + diff --git a/students/23L0908/23L0908-p18/pom.xml b/students/23L0908/23L0908-p18/pom.xml new file mode 100644 index 000000000..603f69034 --- /dev/null +++ b/students/23L0908/23L0908-p18/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p18 + Массивы + diff --git a/students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task123/Demo.java b/students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task123/Demo.java new file mode 100644 index 000000000..4a323e833 --- /dev/null +++ b/students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task123/Demo.java @@ -0,0 +1,22 @@ +package ru.mirea.practice.s23l0908.task123; + +import java.util.Scanner; + +public final class Demo { + + private Demo() { + } + + public static void main(String[] args) { + try (Scanner myScanner = new Scanner(System.in)) { + System.out.print("Enter an integer: "); + String intString = myScanner.next(); + try { + int i = Integer.parseInt(intString); + System.out.println(2 / i); + } catch (Exception e) { + System.out.println("Not int!"); + } + } + } +} diff --git a/students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task4/Demo.java b/students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task4/Demo.java new file mode 100644 index 000000000..692a1c5b7 --- /dev/null +++ b/students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task4/Demo.java @@ -0,0 +1,24 @@ +package ru.mirea.practice.s23l0908.task4; + +import java.util.Scanner; + +public final class Demo { + + private Demo() { + } + + public static void main(String[] args) { + try (Scanner myScanner = new Scanner(System.in)) { + System.out.print("Enter an integer: "); + String intString = myScanner.next(); + try { + int i = Integer.parseInt(intString); + System.out.println(2 / i); + } catch (Exception e) { + System.out.println("Not int!"); + } finally { + System.out.println("finally block is always executed"); + } + } + } +} diff --git a/students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task6/Main.java b/students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task6/Main.java new file mode 100644 index 000000000..c26f364b7 --- /dev/null +++ b/students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task6/Main.java @@ -0,0 +1,35 @@ +package ru.mirea.practice.s23l0908.task6; + +import java.util.Scanner; + +public final class Main { + + private Main() { + } + + public static void printMessage(String key) { + String message; + try { + message = getDetails(key); + } catch (Exception e) { + System.out.println("key is null!"); + return; + } + System.out.println(message); + } + + public static String getDetails(String key) { + if (key == null) { + throw new NullPointerException("null key in getDetails"); + } + return "data for " + key; + } + + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + System.out.print("Enter key: "); + String key = scanner.nextLine(); + printMessage(key); + } + } +} diff --git a/students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task7/Main.java b/students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task7/Main.java new file mode 100644 index 000000000..d4c324f7c --- /dev/null +++ b/students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task7/Main.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s23l0908.task7; + +import java.util.Scanner; + +public final class Main { + + private Main() { + } + + public static void getKey() { + try (Scanner myScanner = new Scanner(System.in)) { + String key = myScanner.next(); + printDetails(key); + } + } + + public static void printDetails(String key) { + String message = getDetails(key); + System.out.println(message); + } + + private static String getDetails(String key) { + return "data for " + key; + } + + public static void main(String[] args) { + getKey(); + } +} diff --git a/students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task8/Main.java b/students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task8/Main.java new file mode 100644 index 000000000..99c59cc1a --- /dev/null +++ b/students/23L0908/23L0908-p18/src/main/java/ru/mirea/practice/s23l0908/task8/Main.java @@ -0,0 +1,44 @@ +package ru.mirea.practice.s23l0908.task8; + + +import java.util.Scanner; + +public final class Main { + + private Main() { + } + + public static void getKey() { + Scanner scanner = new Scanner(System.in); + String key = ""; + try { + System.out.print("Enter key: "); + key = scanner.nextLine(); + if (key.isEmpty()) { + throw new ArithmeticException("Key is empty!"); + } + } catch (ArithmeticException arithmeticException) { + System.out.println(arithmeticException.getMessage()); + } finally { + scanner.close(); + } + printDetails(key); + } + + public static void printDetails(String key) { + try { + String message = getDetails(key); + System.out.println(message); + } catch (Exception e) { + System.out.println("An error occurred: " + e.getMessage()); + } + } + + private static String getDetails(String key) { + return "data for " + key; + } + + public static void main(String[] args) { + getKey(); + } +} diff --git a/students/23L0908/23L0908-p19/pom.xml b/students/23L0908/23L0908-p19/pom.xml new file mode 100644 index 000000000..dbc58914a --- /dev/null +++ b/students/23L0908/23L0908-p19/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p19 + Массивы + diff --git a/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task123/Client.java b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task123/Client.java new file mode 100644 index 000000000..1ea9454a2 --- /dev/null +++ b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task123/Client.java @@ -0,0 +1,32 @@ +package ru.mirea.practice.s23l0908.task123; + +public class Client { + private String name; + private int inn; + + public Client() { + this.name = "Phong"; + this.inn = 123; + } + + public String getName() { + return name; + } + + public int getInn() { + return inn; + } + + @SuppressWarnings("unused") + + public void setName(String name) { + this.name = name; + } + + @SuppressWarnings("unused") + + public void setInn(int inn) { + this.inn = inn; + } +} + diff --git a/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task123/Error.java b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task123/Error.java new file mode 100644 index 000000000..260140049 --- /dev/null +++ b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task123/Error.java @@ -0,0 +1,8 @@ +package ru.mirea.practice.s23l0908.task123; + +public class Error extends Exception { + public Error(String msg) { + super(msg); + } +} + diff --git a/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task123/Main.java b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task123/Main.java new file mode 100644 index 000000000..67cb2f5e3 --- /dev/null +++ b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task123/Main.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s23l0908.task123; + +import java.util.Scanner; + +public final class Main { + + private Main() { + } + + public static void main(String[] args) { + try (Scanner in = new Scanner(System.in)) { + Client client = new Client(); + System.out.println("Enter name: "); + String name = in.nextLine(); + System.out.println("Enter inn: "); + try { + int inn = in.nextInt(); + if (!client.getName().equals(name) || client.getInn() != inn) { + throw new RuntimeException("Invalid client information!"); + } else { + System.out.println("Success!"); + } + } catch (RuntimeException error) { + System.out.println(error.getMessage()); + } + } + } +} + diff --git a/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Emptystringexception.java b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Emptystringexception.java new file mode 100644 index 000000000..d2b8da76f --- /dev/null +++ b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Emptystringexception.java @@ -0,0 +1,8 @@ +package ru.mirea.practice.s23l0908.task2; + +@SuppressWarnings("unused") +public class Emptystringexception extends Exception { + public Emptystringexception(String msg) { + super(msg); + } +} diff --git a/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Labclass.java b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Labclass.java new file mode 100644 index 000000000..97729dc92 --- /dev/null +++ b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Labclass.java @@ -0,0 +1,36 @@ +package ru.mirea.practice.s23l0908.task2; + +import java.util.Scanner; + +public final class Labclass { + + private Labclass() { + } + + public static void main(String[] args) { + Student[] students = new Student[4]; + students[0] = new Student("Phong", 22, "IKBO-03-23", 4.3); + students[1] = new Student("The", 22, "IKBO-30-23", 4.3); + students[2] = new Student("Vinh", 20, "IKBO-04-23", 4); + students[3] = new Student("Bang", 20, "IKBO-36-23", 4.2); + + Labclassdriver labClassDriver = new Labclassdriver(); + + try (Scanner in = new Scanner(System.in)) { + System.out.print("Enter the name to search: "); + Student temp = labClassDriver.search(in.nextLine(), students); + System.out.println(temp); + + System.out.println("\nArray before sorting:"); + for (int i = 0; i < 3; i++) { + System.out.println(students[i]); + } + students = labClassDriver.sort(students); + System.out.println("\nArray after sorting:"); + for (int i = 0; i < 3; i++) { + System.out.println(students[i]); + } + } + } +} + diff --git a/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Labclassdriver.java b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Labclassdriver.java new file mode 100644 index 000000000..8cd2241cb --- /dev/null +++ b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Labclassdriver.java @@ -0,0 +1,29 @@ +package ru.mirea.practice.s23l0908.task2; + +public class Labclassdriver implements Labclassui { + + @Override + public Student search(String name, Student... students) { + for (Student student : students) { + if (name.equals(student.getName())) { + return student; + } + } + return null; + } + + @Override + public Student[] sort(Student... students) { + int size = students.length; + for (int i = 1; i < size; i++) { + Student key = students[i]; + int j = i - 1; + while (j >= 0 && students[j].getGpa() > key.getGpa()) { + students[j + 1] = students[j]; + j--; + } + students[j + 1] = key; + } + return students; + } +} diff --git a/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Labclassui.java b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Labclassui.java new file mode 100644 index 000000000..32c6fe94b --- /dev/null +++ b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Labclassui.java @@ -0,0 +1,9 @@ +package ru.mirea.practice.s23l0908.task2; + +public interface Labclassui { + + Student search(String name, Student...students); + + Student[] sort(Student...students); + +} diff --git a/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Student.java b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Student.java new file mode 100644 index 000000000..052496916 --- /dev/null +++ b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Student.java @@ -0,0 +1,81 @@ +package ru.mirea.practice.s23l0908.task2; + +public class Student { + private String name; + private int age; + private String group; + private double gpa; + + public Student(String name, int age, String group, double gpa) { + this.name = name; + this.age = age; + this.group = group; + this.gpa = gpa; + } + + @SuppressWarnings("unused") + + public void setName(String name) { + this.name = name; + } + + @SuppressWarnings("unused") + + public void setAge(int age) { + this.age = age; + } + + @SuppressWarnings("unused") + + public void setGroup(String group) { + this.group = group; + } + + @SuppressWarnings("unused") + + public String getName() { + return name; + } + + @SuppressWarnings("unused") + + public void setGpa(double gpa) { + this.gpa = gpa; + } + + @SuppressWarnings("unused") + + public int getAge() { + return age; + } + + @SuppressWarnings("unused") + + public String getGroup() { + return group; + } + + public double getGpa() { + return gpa; + } + + @Override + public String toString() { + return "Student{" + + "name='" + + name + + '\'' + + + ", age=" + + age + + + ", group='" + + group + + '\'' + + + ", gpa=" + + gpa + + + '}'; + } +} diff --git a/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Studentnotfoundexception.java b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Studentnotfoundexception.java new file mode 100644 index 000000000..e893327ed --- /dev/null +++ b/students/23L0908/23L0908-p19/src/main/java/ru/mirea/practice/s23l0908/task2/Studentnotfoundexception.java @@ -0,0 +1,9 @@ +package ru.mirea.practice.s23l0908.task2; + +@SuppressWarnings("unused") + +public class Studentnotfoundexception extends Exception { + public Studentnotfoundexception(String msg) { + super(msg); + } +} diff --git a/students/23L0908/23L0908-p20/pom.xml b/students/23L0908/23L0908-p20/pom.xml new file mode 100644 index 000000000..b3dd02db7 --- /dev/null +++ b/students/23L0908/23L0908-p20/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p20 + Массивы + diff --git a/students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task123/Animal.java b/students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task123/Animal.java new file mode 100644 index 000000000..046c41c32 --- /dev/null +++ b/students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task123/Animal.java @@ -0,0 +1,4 @@ +package ru.mirea.practice.s23l0908.task123; + +public class Animal { +} diff --git a/students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task123/Cat.java b/students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task123/Cat.java new file mode 100644 index 000000000..06d62baac --- /dev/null +++ b/students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task123/Cat.java @@ -0,0 +1,18 @@ +package ru.mirea.practice.s23l0908.task123; + +import java.io.Serializable; + +public class Cat extends Animal implements Serializable { + private static final String name = "meo"; + + @Override + public String toString() { + return "Cat{" + + + "name='" + + name + + '\'' + + + '}'; + } +} diff --git a/students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task123/Main.java b/students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task123/Main.java new file mode 100644 index 000000000..25e8bcbcc --- /dev/null +++ b/students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task123/Main.java @@ -0,0 +1,43 @@ +package ru.mirea.practice.s23l0908.task123; + +public class Main { + private final T type; + private final V value; + private final K key; + + public Main(T type, V value, K key) { + this.type = type; + this.value = value; + this.key = key; + } + + public K getKey() { + return key; + } + + public T getType() { + return type; + } + + public V getValue() { + return value; + } + + @Override + public String toString() { + return "task_1{" + + "type=" + + type + + ", value=" + + value + + ", key=" + + key + + + '}'; + } + + public static void main(String[] args) { + Main task = new Main<>("Cat",new Cat(),15); + System.out.println(task); + } +} diff --git a/students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task4/Calculator.java b/students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task4/Calculator.java new file mode 100644 index 000000000..09d38d649 --- /dev/null +++ b/students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task4/Calculator.java @@ -0,0 +1,32 @@ +package ru.mirea.practice.s23l0908.task4; + +public final class Calculator { + + private Calculator() { + } + + public static double sum(T a, V b) { + return a.doubleValue() + b.doubleValue(); + } + + public static double multiply(T a, V b) { + return a.doubleValue() * b.doubleValue(); + } + + public static double subtraction(T a, V b) { + return a.doubleValue() - b.doubleValue(); + } + + public static double divide(T a, V b) { + return a.doubleValue() / b.doubleValue(); + } + + public static void main(String[] args) { + int a = 10; + int b = 2; + System.out.println("Divide: " + Calculator.divide(a,b)); + System.out.println("Sum: " + Calculator.sum(a,b)); + System.out.println("Sub: " + Calculator.subtraction(a,b)); + System.out.println("Multiply: " + Calculator.multiply(a,b)); + } +} diff --git a/students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task4/MinMax.java b/students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task4/MinMax.java new file mode 100644 index 000000000..28f4e1c1c --- /dev/null +++ b/students/23L0908/23L0908-p20/src/main/java/ru/mirea/practice/s23l0908/task4/MinMax.java @@ -0,0 +1,45 @@ +package ru.mirea.practice.s23l0908.task4; + +public class MinMax> { + private final T[] arr; + + public MinMax(T[] arr) { + this.arr = arr; + } + + public T getMin() { + if (arr.length > 0) { + T min = this.arr[0]; + for (T i : this.arr) { + if (i.compareTo(min) < 0) { + min = i; + } + } + return min; + } + return null; + } + + public T getMax() { + if (arr.length > 0) { + T max = this.arr[0]; + for (T i : this.arr) { + if (i.compareTo(max) > 0) { + max = i; + } + } + return max; + } + return null; + } + + public String printMinMax() { + return "Max: " + this.getMax() + ", Min: " + this.getMin(); + } + + public static void main(String[] args) { + MinMax inter = new MinMax<>(new Integer[]{1,4,3,6,4,8}); + System.out.println(inter.printMinMax()); + } + +} diff --git a/students/23L0908/23L0908-p22/pom.xml b/students/23L0908/23L0908-p22/pom.xml new file mode 100644 index 000000000..1b2b7a60c --- /dev/null +++ b/students/23L0908/23L0908-p22/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p22 + Массивы + diff --git a/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task1/Calculator.java b/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task1/Calculator.java new file mode 100644 index 000000000..1524a4661 --- /dev/null +++ b/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task1/Calculator.java @@ -0,0 +1,57 @@ +package ru.mirea.practice.s23l0908.task1; + +import java.util.Scanner; + +public final class Calculator { + + private Calculator() { + } + + private static boolean isoperand(char ch) { + return ch >= '0' && ch <= '9'; + } + + public static float evaluatepostfix(String postfix) { + Stack stack = new Stack(postfix.length()); + float result = 0; + float temp = 0; + int i = 0; + while (i != postfix.length()) { + while (postfix.charAt(i) == ' ' || postfix.charAt(i) == '\t') { + i++; + } + if (isoperand(postfix.charAt(i))) { + int num = 0; + while (isoperand(postfix.charAt(i))) { + num = num * 10 + postfix.charAt(i) - 48; + i++; + } + stack.push(num); + } else { + float op1 = stack.pop(); + float op2 = stack.pop(); + if (postfix.charAt(i) == '+') { + result = op2 + op1; + } else if (postfix.charAt(i) == '-') { + result = op2 - op1; + } else if (postfix.charAt(i) == '/') { + result = op2 / op1; + } else if (postfix.charAt(i) == '*') { + result = op2 * op1; + } + stack.push(result); + temp += result; + } + i++; + } + result = stack.pop(); + return result; + } + + public static void main(String[] args) { + try (Scanner in = new Scanner(System.in)) { + System.out.println("Enter postfix: "); //1 2 + 3 * 6 + + System.out.println("Result: " + evaluatepostfix(in.nextLine())); + } + } +} diff --git a/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task1/Stack.java b/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task1/Stack.java new file mode 100644 index 000000000..7373788d4 --- /dev/null +++ b/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task1/Stack.java @@ -0,0 +1,49 @@ +package ru.mirea.practice.s23l0908.task1; + +public class Stack { + private final float[] arr; + private int top; + private final int capacity; + + Stack(int size) { + arr = new float[size]; + capacity = size; + top = -1; + } + + public void push(float x) { + if (isFull()) { + System.out.println("Stack OverFlow"); + System.exit(1); + } + arr[++top] = x; + } + + public float pop() { + if (isEmpty()) { + System.out.println("STACK EMPTY"); + System.exit(1); + } + return arr[top--]; + } + + @SuppressWarnings("unused") + public int getSize() { + return top + 1; + } + + public Boolean isEmpty() { + return top == -1; + } + + public Boolean isFull() { + return top == capacity - 1; + } + + @SuppressWarnings("unused") + public void printStack() { + for (int i = 0; i <= top; i++) { + System.out.print(arr[i] + ", "); + } + } +} diff --git a/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task4/CalculatorController.java b/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task4/CalculatorController.java new file mode 100644 index 000000000..b60eb2c1f --- /dev/null +++ b/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task4/CalculatorController.java @@ -0,0 +1,8 @@ +package ru.mirea.practice.s23l0908.task4; + +public class CalculatorController { + public CalculatorController() { + + new CalculatorModel().setVisible(true); + } +} diff --git a/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task4/CalculatorModel.java b/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task4/CalculatorModel.java new file mode 100644 index 000000000..b9f9e60a7 --- /dev/null +++ b/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task4/CalculatorModel.java @@ -0,0 +1,141 @@ +package ru.mirea.practice.s23l0908.task4; + +import javax.swing.JFrame; +import javax.swing.JTextField; +import java.awt.Panel; +import java.awt.Button; +import java.awt.GridLayout; +import java.awt.BorderLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; + +public class CalculatorModel extends JFrame implements ActionListener { + private final JTextField tfResult; + private double result = 0; + private String operator = "="; + private boolean click = true; + + private Panel panel; + + public CalculatorModel() { + super("Calculator"); + setSize(400,500); + setLayout(new BorderLayout()); + tfResult = new JTextField("0"); + tfResult.setEditable(false); + add(tfResult,"North"); + Panel panel = new Panel(); + panel.setLayout(new GridLayout(4,4)); + String[] arr = {"7", "8", "9", "/", + "4", "5", "6", "*", + "1", "2", "3", "-", + "0", ".", "=", "+"}; + for (String element : arr) { + Button button = new Button(element); + panel.add(button); + button.addActionListener(this); + } + add(panel,"Center"); + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent e) { + System.exit(0); + } + }); + } + + @Override + public void actionPerformed(ActionEvent e) { + String s = e.getActionCommand(); + + if ('0' <= s.charAt(0) && s.charAt(0) <= '9' + || ".".equals(s)) { + if (click) { + tfResult.setText(s); + } else { + tfResult.setText(tfResult.getText() + s); + } + + click = false; + } else { + if (click) { + if ("-".equals(s)) { + tfResult.setText(s); + click = false; + } else { + operator = s; + } + } else { + double x = Double.parseDouble(tfResult.getText()); + calculator(x); + operator = s; + click = true; + } + } + } + + public void calculator(double n) { + if ("+".equals(operator)) { + result += n; + } else if ("-".equals(operator)) { + result -= n; + } else if ("*".equals(operator)) { + result *= n; + } else if ("/".equals(operator)) { + result /= n; + } else if ("=".equals(operator)) { + result = n; + } + + tfResult.setText(result + ""); + } + + public double getResult() { + return result; + } + + @SuppressWarnings("unused") + public JTextField getTfResult() { + return tfResult; + } + + public String getOperator() { + return operator; + } + + @SuppressWarnings("unused") + public boolean isClick() { + return click; + } + + @SuppressWarnings("unused") + public void setClick(boolean click) { + this.click = click; + } + + @SuppressWarnings("unused") + public void setTfResult(String text) { + this.tfResult.setText(text); + } + + @SuppressWarnings("unused") + public void setOperator(String operator) { + this.operator = operator; + } + + public void setResult(double result) { + this.result = result; + } + + @SuppressWarnings("unused") + public Panel getPanel() { + return panel; + } + + @SuppressWarnings("unused") + public void setPanel(Panel panel) { + this.panel = panel; + } +} diff --git a/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task4/CalculatorView.java b/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task4/CalculatorView.java new file mode 100644 index 000000000..0947a12f3 --- /dev/null +++ b/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task4/CalculatorView.java @@ -0,0 +1,26 @@ +package ru.mirea.practice.s23l0908.task4; + +@SuppressWarnings("unused") +public final class CalculatorView { + + private CalculatorView() { + } + + @SuppressWarnings("unused") + public static void calculator(double n, CalculatorModel calculatorModel) { + if ("+".equals(calculatorModel.getOperator())) { + calculatorModel.setResult(calculatorModel.getResult() + n); + } else if ("-".equals(calculatorModel.getOperator())) { + calculatorModel.setResult(calculatorModel.getResult() - n); + } else if ("*".equals(calculatorModel.getOperator())) { + calculatorModel.setResult(calculatorModel.getResult() * n); + } else if ("/".equals(calculatorModel.getOperator())) { + calculatorModel.setResult(calculatorModel.getResult() / n); + } else if ("=".equals(calculatorModel.getOperator())) { + calculatorModel.setResult(n); + } + calculatorModel.setResult(Double.parseDouble(calculatorModel.getResult() + "")); + } + +} + diff --git a/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task4/MCalculator.java b/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task4/MCalculator.java new file mode 100644 index 000000000..39faae9c1 --- /dev/null +++ b/students/23L0908/23L0908-p22/src/main/java/ru/mirea/practice/s23l0908/task4/MCalculator.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s23l0908.task4; + +public final class MCalculator { + + private MCalculator() { + } + + @SuppressWarnings("unused") + public static void main(String[] args) { + + CalculatorController controller = new CalculatorController(); + } +} diff --git a/students/23L0908/README.adoc b/students/23L0908/README.adoc new file mode 100644 index 000000000..c8e97acda --- /dev/null +++ b/students/23L0908/README.adoc @@ -0,0 +1,2 @@ +Хоанг Суан Фонг +КАБО-02-23 diff --git a/students/23L0908/pom.xml b/students/23L0908/pom.xml new file mode 100644 index 000000000..e713e84c1 --- /dev/null +++ b/students/23L0908/pom.xml @@ -0,0 +1,38 @@ + + + 4.0.0 + + algorithms-and-data-structures + ru.mirea.practice + 2024.1 + ../../pom.xml + + 23L0908 + pom + Практическая работа Хоанг + + + 23L0908-p01 + 23L0908-p02 + 23L0908-p03 + 23L0908-p04 + 23L0908-p05 + 23L0908-p06 + 23L0908-p07 + 23L0908-p08 + 23L0908-p09 + 23L0908-p10 + 23L0908-p11 + 23L0908-p12 + 23L0908-p13 + 23L0908-p14 + 23L0908-p15 + 23L0908-p16 + 23L0908-p18 + 23L0908-p19 + 23L0908-p20 + 23L0908-p22 + + + From 28c0387e985e69997a84ac1264fbe0b5cd7d0f71 Mon Sep 17 00:00:00 2001 From: Phong141003 Date: Fri, 15 Nov 2024 22:58:05 +0300 Subject: [PATCH 2/4] Hoang Xuan Phong lab 1-22 --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index 1b510e5a0..b34c420b4 100644 --- a/pom.xml +++ b/pom.xml @@ -81,6 +81,7 @@ students/23K0186 students/23K0755 students/23K1292 + students/23L0908 From 2922e7a8d0d5ead9d193c63607db6c879b59cbff Mon Sep 17 00:00:00 2001 From: Phong141003 Date: Fri, 6 Dec 2024 05:23:26 +0300 Subject: [PATCH 3/4] Hoang Xuan Phong lab 23-28 --- students/23L0908/23L0908-p23/pom.xml | 13 ++ .../s23l0908/task1/Arrayqueueadt.java | 5 + .../s23l0908/task1/Arrayqueuemodule.java | 114 +++++++++ .../s23l0908/task2/AbstractQueue.java | 47 ++++ .../practice/s23l0908/task2/Linkedqueue.java | 171 ++++++++++++++ .../mirea/practice/s23l0908/task2/Queue.java | 25 ++ students/23L0908/23L0908-p24/pom.xml | 13 ++ .../mirea/practice/s23l0908/task1/Main.java | 71 ++++++ .../mirea/practice/s23l0908/task2/Main.java | 93 ++++++++ .../mirea/practice/s23l0908/task3/Main.java | 216 ++++++++++++++++++ students/23L0908/23L0908-p25/pom.xml | 13 ++ .../mirea/practice/s23l0908/task1/Main.java | 40 ++++ .../mirea/practice/s23l0908/task2/Main.java | 31 +++ .../mirea/practice/s23l0908/task3/Main.java | 32 +++ .../mirea/practice/s23l0908/task4/Main.java | 28 +++ students/23L0908/23L0908-p26/pom.xml | 13 ++ .../mirea/practice/s23l0908/task1/Main.java | 38 +++ .../s23l0908/task2/CustomListIterator.java | 66 ++++++ students/23L0908/23L0908-p27/pom.xml | 13 ++ .../practice/s23l0908/task2/Hashnode.java | 11 + .../practice/s23l0908/task2/Hashtab.java | 83 +++++++ .../practice/s23l0908/task2/Hashtable.java | 96 ++++++++ students/23L0908/23L0908-p28/pom.xml | 13 ++ .../mirea/practice/s23l0908/task1/Main.java | 27 +++ .../mirea/practice/s23l0908/task2/Name.java | 52 +++++ 25 files changed, 1324 insertions(+) create mode 100644 students/23L0908/23L0908-p23/pom.xml create mode 100644 students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task1/Arrayqueueadt.java create mode 100644 students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task1/Arrayqueuemodule.java create mode 100644 students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task2/AbstractQueue.java create mode 100644 students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task2/Linkedqueue.java create mode 100644 students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task2/Queue.java create mode 100644 students/23L0908/23L0908-p24/pom.xml create mode 100644 students/23L0908/23L0908-p24/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java create mode 100644 students/23L0908/23L0908-p24/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java create mode 100644 students/23L0908/23L0908-p24/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java create mode 100644 students/23L0908/23L0908-p25/pom.xml create mode 100644 students/23L0908/23L0908-p25/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java create mode 100644 students/23L0908/23L0908-p25/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java create mode 100644 students/23L0908/23L0908-p25/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java create mode 100644 students/23L0908/23L0908-p25/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java create mode 100644 students/23L0908/23L0908-p26/pom.xml create mode 100644 students/23L0908/23L0908-p26/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java create mode 100644 students/23L0908/23L0908-p26/src/main/java/ru/mirea/practice/s23l0908/task2/CustomListIterator.java create mode 100644 students/23L0908/23L0908-p27/pom.xml create mode 100644 students/23L0908/23L0908-p27/src/main/java/ru/mirea/practice/s23l0908/task2/Hashnode.java create mode 100644 students/23L0908/23L0908-p27/src/main/java/ru/mirea/practice/s23l0908/task2/Hashtab.java create mode 100644 students/23L0908/23L0908-p27/src/main/java/ru/mirea/practice/s23l0908/task2/Hashtable.java create mode 100644 students/23L0908/23L0908-p28/pom.xml create mode 100644 students/23L0908/23L0908-p28/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java create mode 100644 students/23L0908/23L0908-p28/src/main/java/ru/mirea/practice/s23l0908/task2/Name.java diff --git a/students/23L0908/23L0908-p23/pom.xml b/students/23L0908/23L0908-p23/pom.xml new file mode 100644 index 000000000..9563c445d --- /dev/null +++ b/students/23L0908/23L0908-p23/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p23 + Массивы + diff --git a/students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task1/Arrayqueueadt.java b/students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task1/Arrayqueueadt.java new file mode 100644 index 000000000..e96c353a7 --- /dev/null +++ b/students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task1/Arrayqueueadt.java @@ -0,0 +1,5 @@ +package ru.mirea.practice.s23l0908.task1; + +@SuppressWarnings("unused") +public final class Arrayqueueadt { +} diff --git a/students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task1/Arrayqueuemodule.java b/students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task1/Arrayqueuemodule.java new file mode 100644 index 000000000..2f6a62249 --- /dev/null +++ b/students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task1/Arrayqueuemodule.java @@ -0,0 +1,114 @@ +package ru.mirea.practice.s23l0908.task1; + +public final class Arrayqueuemodule { + private static final int MINIMAL_CAPACITY = 16; + private static Object[] array; + private static int capacity; + private static int size; + private static int head; + private static int tail; + + private Arrayqueuemodule() { + } + + static { + size = 0; + head = 0; + tail = 0; + capacity = MINIMAL_CAPACITY; + array = new Object[MINIMAL_CAPACITY]; + } + + private static void resize(int newCapacity) { + Object[] oldqueue = array; + array = new Object[newCapacity]; + capacity = newCapacity; + if (size > 0) { + if (head >= tail) { + System.arraycopy(oldqueue, head, array, 0, size - tail); + System.arraycopy(oldqueue, 0, array, size - tail, tail); + } else { + System.arraycopy(oldqueue, head, array, 0, size); + } + } + head = 0; + tail = size; + } + + public static void enqueue(Object elem) { + if (size == capacity) { + resize(capacity * 2); + } + array[tail] = elem; + tail = (tail + 1) % capacity; + size++; + } + + @SuppressWarnings("unused") + public static void push(Object elem) { + if (size == capacity) { + resize(capacity * 2); + } + head--; + if (head < 0) { + head = capacity - 1; + } + array[head] = elem; + size++; + } + + public static Object element() { + assert size > 0; + return array[head]; + } + + @SuppressWarnings("unused") + public static Object peek() { + assert size > 0; + return array[tail == 0 ? capacity - 1 : tail - 1]; + } + + public static Object dequeue() { + assert size > 0; + Object r = element(); + head = (head + 1) % capacity; + size--; + return r; + } + + public static int size() { + return size; + } + + @SuppressWarnings("unused") + public static boolean isEmpty() { + return size == 0; + } + + @SuppressWarnings("unused") + public static void clear() { + size = 0; + head = 0; + tail = 0; + } + + public static void display() { + for (int i = 0; i < size(); i++) { + System.out.print(array[(head + i) % capacity] + " "); + } + } + + public static void main(String[] args) { + // Không tạo đối tượng nữa, gọi thẳng phương thức static. + Arrayqueuemodule.enqueue(1); + Arrayqueuemodule.enqueue(2); + Arrayqueuemodule.enqueue(3); + System.out.print("Queue: "); + Arrayqueuemodule.display(); + + Arrayqueuemodule.dequeue(); // dequeue trả về giá trị, có thể in ra nếu cần + System.out.print("\nQueue: "); + Arrayqueuemodule.display(); + } + +} diff --git a/students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task2/AbstractQueue.java b/students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task2/AbstractQueue.java new file mode 100644 index 000000000..6ba517e83 --- /dev/null +++ b/students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task2/AbstractQueue.java @@ -0,0 +1,47 @@ +package ru.mirea.practice.s23l0908.task2; + +@SuppressWarnings("unused") +public abstract class AbstractQueue implements Queue { + // inv: size >= 0 + protected int size = 0; + + @Override + public abstract void enqueue(Object elem); + + @Override + public abstract Object element(); + + @Override + public abstract Object dequeue(); + + @Override + public abstract Object peek(); + + @Override + public abstract void push(Object elem); + + @Override + public abstract Object remove(); + + @Override + public abstract Object get(int index); + + @Override + public int size() { + return size; + } + + @Override + public boolean isEmpty() { + return size == 0; + } + + @Override + public void clear() { + while (!isEmpty()) { + dequeue(); + } + } +} + + diff --git a/students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task2/Linkedqueue.java b/students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task2/Linkedqueue.java new file mode 100644 index 000000000..5d0f66f19 --- /dev/null +++ b/students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task2/Linkedqueue.java @@ -0,0 +1,171 @@ +package ru.mirea.practice.s23l0908.task2; + +import java.util.Iterator; +import java.util.NoSuchElementException; + +public class Linkedqueue implements Iterable { + private int n; // number of elements on queue + private Node first; // beginning of queue + private Node last; // end of queue + + // helper linked list class + private class Node { + private T item; + private Node next; + } + + public Linkedqueue() { + first = null; + last = null; + n = 0; + assert check(); + } + + public boolean isEmpty() { + return first == null; + } + + @SuppressWarnings("unused") + public int size() { + return n; + } + + public T peek() { + if (isEmpty()) { + throw new NoSuchElementException("Queue underflow"); + } + return first.item; + } + + public void enqueue(T elem) { + final Node oldlast = last; // Đánh dấu final + last = new Node(); + last.item = elem; + last.next = null; + if (isEmpty()) { + first = last; + } else { + oldlast.next = last; + } + n++; + assert check(); + } + + + public T dequeue() { + if (isEmpty()) { + throw new NoSuchElementException("Queue underflow"); + } + final T dequeuedItem = first.item; + first = first.next; + n--; + if (isEmpty()) { + last = null; + } + assert check(); + return dequeuedItem; + } + + + public String toString() { + StringBuilder s = new StringBuilder(); + for (T item : this) { + s.append(item + " "); + } + return s.toString(); + } + + private boolean check() { + if (n < 0) { + return false; + } else if (n == 0) { + if (first != null) { + return false; + } + if (last != null) { + return false; + } + } else if (n == 1) { + if (first == null || last == null) { + return false; + } + if (first != last) { + return false; + } + if (first.next != null) { + return false; + } + } else { + if (first == null || last == null) { + return false; + } + if (first == last) { + return false; + } + if (first.next == null) { + return false; + } + if (last.next != null) { + return false; + } + + // check internal consistency of instance variable n + int numberOfNodes = 0; + for (Node x = first; x != null && numberOfNodes <= n; x = x.next) { + numberOfNodes++; + } + if (numberOfNodes != n) { + return false; + } + Node lastNode = first; + while (lastNode.next != null) { + lastNode = lastNode.next; + } + if (last != lastNode) { + return false; + } + } + + return true; + } + + + public Iterator iterator() { + return new LinkedIterator(); + } + + // an iterator, doesn't implement remove() since it's optional + private class LinkedIterator implements Iterator { + private Node current = first; + + public boolean hasNext() { + return current != null; + } + + public void remove() { + throw new UnsupportedOperationException(); + } + + public T next() { + if (!hasNext()) { + throw new NoSuchElementException(); + } + T item = current.item; + current = current.next; + return item; + } + } + + public static void main(String[] args) { + Linkedqueue queue = new Linkedqueue<>(); + queue.enqueue(1); + queue.enqueue(2); + queue.enqueue(3); + System.out.println("Queue: " + queue); + int removedNumber = queue.dequeue(); + System.out.println("Removed Element: " + + removedNumber); + System.out.println("Queue after deletion: " + + queue); + } +} diff --git a/students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task2/Queue.java b/students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task2/Queue.java new file mode 100644 index 000000000..da82bbe36 --- /dev/null +++ b/students/23L0908/23L0908-p23/src/main/java/ru/mirea/practice/s23l0908/task2/Queue.java @@ -0,0 +1,25 @@ +package ru.mirea.practice.s23l0908.task2; + +@SuppressWarnings("unused") +public interface Queue { + void enqueue(Object elem); + + Object element(); + + Object dequeue(); + + Object peek(); + + void push(Object elem); + + Object remove(); + + int size(); + + boolean isEmpty(); + + void clear(); + + Object get(int index); + +} diff --git a/students/23L0908/23L0908-p24/pom.xml b/students/23L0908/23L0908-p24/pom.xml new file mode 100644 index 000000000..d2244f494 --- /dev/null +++ b/students/23L0908/23L0908-p24/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p24 + Массивы + diff --git a/students/23L0908/23L0908-p24/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java b/students/23L0908/23L0908-p24/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java new file mode 100644 index 000000000..ccbb58db4 --- /dev/null +++ b/students/23L0908/23L0908-p24/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java @@ -0,0 +1,71 @@ +package ru.mirea.practice.s23l0908.task1; + +public final class Main { + + // Private constructor to prevent instantiation + private Main() { + } + + @SuppressWarnings("unused") + public interface ComplexAbstractFactory { + Complex createComplex(); + + Complex createComplex(int real, int image); + + } + + // Class representing a complex number + public static class Complex { + private final int real; + private final int image; + + public Complex(int real, int image) { + this.real = real; + this.image = image; + } + + @Override + public String toString() { + return "Complex{" + + + "real=" + + real + + ", image=" + + image + + + '}'; + } + } + + + // Concrete factory for creating Complex objects + public static class ConcreteFactory implements ComplexAbstractFactory { + + private static final int DEFAULT_REAL = 12; + private static final int DEFAULT_IMAGE = 23; + + @Override + public Complex createComplex() { + return new Complex(DEFAULT_REAL, DEFAULT_IMAGE); + } + + @Override + public Complex createComplex(int real, int image) { + return new Complex(real, image); + } + } + + // Entry point + public static void main(String[] args) { + ConcreteFactory concreteFactory = new ConcreteFactory(); + + // Create Complex objects using the factory + Complex complex1 = concreteFactory.createComplex(); + Complex complex2 = concreteFactory.createComplex(20, 67); + + // Print the created objects + System.out.println("Complex_1: " + complex1); + System.out.println("Complex_2: " + complex2); + } +} + diff --git a/students/23L0908/23L0908-p24/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java b/students/23L0908/23L0908-p24/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java new file mode 100644 index 000000000..cce107754 --- /dev/null +++ b/students/23L0908/23L0908-p24/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java @@ -0,0 +1,93 @@ +package ru.mirea.practice.s23l0908.task2; + +public final class Main { + + private Main() { + } + + @SuppressWarnings("unused") + public interface AbstractChairFactory { + VictorianChair createVictorianChair(); + + MagicChair createMagicChair(); + + FunctionalChair createFunctionalChair(); + + } + + public static class Chair { + } + + public static class VictorianChair extends Chair { + private final int age; + + public VictorianChair(int age) { + this.age = age; + } + + @SuppressWarnings("unused") + public int getAge() { + return age; + } + + } + + public static class MagicChair extends Chair { + @SuppressWarnings("unused") + void doMagic() { + + System.out.println("Magic!!"); + } + } + + public static class FunctionalChair extends Chair { + @SuppressWarnings("unused") + public int sum(int a, int b) { + return a + b; + } + } + + public static class ChairFactory implements AbstractChairFactory { + + @Override + public VictorianChair createVictorianChair() { + return new VictorianChair(20); + } + + @Override + public MagicChair createMagicChair() { + return new MagicChair(); + } + + @Override + public FunctionalChair createFunctionalChair() { + return new FunctionalChair(); + } + + } + + public static class Client { + Chair chair; + + public void sit() { + System.out.println("Sitting on " + chair.getClass().getSimpleName()); + } + + public void setChair(Chair chair) { + this.chair = chair; + } + } + + public static void main(String[] args) { + Chair chair1 = new ChairFactory().createVictorianChair(); + Chair chair2 = new ChairFactory().createMagicChair(); + Chair chair3 = new ChairFactory().createFunctionalChair(); + Client client = new Client(); + client.setChair(chair1); + client.sit(); + client.setChair(chair2); + client.sit(); + client.setChair(chair3); + client.sit(); + } +} diff --git a/students/23L0908/23L0908-p24/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java b/students/23L0908/23L0908-p24/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java new file mode 100644 index 000000000..ebd4eecfd --- /dev/null +++ b/students/23L0908/23L0908-p24/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java @@ -0,0 +1,216 @@ +package ru.mirea.practice.s23l0908.task3; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public final class Main { + + private Main() { + } + + public interface IDocument { + + String getTypeDocument(); + + String getTitleDocument(); + + String getPathDocument(); + } + + @SuppressWarnings("unused") + public interface ICreateDocument { + + IDocument createNew(String type, String title, String path); // Fixed method name to match conventions + + IDocument createOpen(String type, String title, String path); // Fixed method name to match conventions + } + + public static class Document { + private String type; + private String title; + private String path; + + public Document(String type, String title, String path) { + this.type = type; + this.title = title; + this.path = path; + } + + public String getType() { + return type; + } + + @SuppressWarnings("unused") + + public void setType(String type) { + this.type = type; + } + + public String getTitle() { + return title; + } + + @SuppressWarnings("unused") + public void setTitle(String title) { + this.title = title; + } + + public String getPath() { + return path; + } + + @SuppressWarnings("unused") + + public void setPath(String path) { + this.path = path; + } + } + + public static class TextDocument extends Document implements IDocument { + + public TextDocument(String typeDocument, String titleDocument, String path) { + super(typeDocument, titleDocument, path); + } + + @Override + public String getTypeDocument() { + return this.getType(); + } + + @Override + public String getTitleDocument() { + return this.getTitle(); + } + + @Override + public String getPathDocument() { + return this.getPath(); + } + } + + public static class ImageDocument extends Document implements IDocument { + + public ImageDocument(String typeDocument, String titleDocument, String path) { + super(typeDocument, titleDocument, path); + } + + @Override + public String getTypeDocument() { + return this.getType(); + } + + @Override + public String getTitleDocument() { + return this.getTitle(); + } + + @Override + public String getPathDocument() { + return this.getPath(); + } + } + + public static class MusicDocument extends Document implements IDocument { + + public MusicDocument(String typeDocument, String titleDocument, String path) { + super(typeDocument, titleDocument, path); + } + + @Override + public String getTypeDocument() { + return this.getType(); + } + + @Override + public String getTitleDocument() { + return this.getTitle(); + } + + @Override + public String getPathDocument() { + return this.getPath(); + } + } + + public static class FactoryDocument implements ICreateDocument { + + @Override + public IDocument createNew(String type, String title, String path) { // Fixed method name + if ("Text".equalsIgnoreCase(type)) { + return new TextDocument(type, title, path); + } else if ("Image".equalsIgnoreCase(type)) { + return new ImageDocument(type, title, path); + } else { + return new MusicDocument(type, title, path); + } + } + + @Override + public IDocument createOpen(String type, String title, String path) { // Fixed method name + if ("Text".equalsIgnoreCase(type)) { + return new TextDocument(type, title, path); + } else if ("Image".equalsIgnoreCase(type)) { + return new ImageDocument(type, title, path); + } else { + return new MusicDocument(type, title, path); + } + } + } + + public static void main(String[] args) { + try (Scanner in = new Scanner(System.in)) { + List list = new ArrayList<>(); + int menu; + do { + System.out.println("File"); + System.out.println("1. New"); + System.out.println("2. Open"); + menu = in.nextInt(); + in.nextLine(); + switch (menu) { + case 1: { + System.out.print("Enter the document type: "); + String type = in.nextLine(); + System.out.print("Enter the document title: "); + String title = in.nextLine(); + System.out.print("Enter the document path: "); + String path = in.nextLine(); + list.add(new FactoryDocument().createNew(type, title, path)); + System.out.println("Document created successfully!"); + break; + } + case 2: { // Open an existing document + if (list.isEmpty()) { + System.out.println("No documents available to open."); + } else { + System.out.print("Enter the path of the document to open: "); + String path = in.nextLine(); + boolean found = false; + for (var doc : list) { + if (doc.getPathDocument().equalsIgnoreCase(path)) { + System.out.println(doc.getTypeDocument() + " Document:"); + System.out.println("Title: " + doc.getTitleDocument()); + System.out.println("Path: " + doc.getPathDocument()); + found = true; + break; + } + } + if (!found) { + System.out.println("No document found with the specified path."); + } + } + break; + } + case 0: // Exit + System.out.println("Exiting the application. Goodbye!"); + break; + default: // Invalid menu option + System.out.println("Invalid menu option. Please try again."); + break; + } + } while (menu != 0); + } + } +} + diff --git a/students/23L0908/23L0908-p25/pom.xml b/students/23L0908/23L0908-p25/pom.xml new file mode 100644 index 000000000..2aa85f98b --- /dev/null +++ b/students/23L0908/23L0908-p25/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p25 + Массивы + diff --git a/students/23L0908/23L0908-p25/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java b/students/23L0908/23L0908-p25/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java new file mode 100644 index 000000000..382a019f5 --- /dev/null +++ b/students/23L0908/23L0908-p25/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java @@ -0,0 +1,40 @@ +package ru.mirea.practice.s23l0908.task1; + +import java.util.regex.Pattern; +import java.util.regex.Matcher; +import java.util.ArrayList; +import java.util.List; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + String text = "The prices are as follows: " + + + "25.98 USD, 3000 RUB, 44 ERR, 12.99 EUR, 0.004 EU, and 15.5 USD. " + + + "Please review these values."; + + String regex = "\\b\\d{1,6}(\\.\\d{1,2})?\\s*(USD|RUB|EUR)\\b"; + + Pattern pattern = Pattern.compile(regex); + + Matcher matcher = pattern.matcher(text); + + List prices = new ArrayList<>(); + + while (matcher.find()) { + prices.add(matcher.group()); + } + + // Print extracted prices + System.out.println("Extracted prices:"); + for (String price : prices) { + System.out.println(price); + } + } +} + diff --git a/students/23L0908/23L0908-p25/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java b/students/23L0908/23L0908-p25/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java new file mode 100644 index 000000000..afe1a744a --- /dev/null +++ b/students/23L0908/23L0908-p25/src/main/java/ru/mirea/practice/s23l0908/task2/Main.java @@ -0,0 +1,31 @@ +package ru.mirea.practice.s23l0908.task2; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + String text = "(1 + 8) – 9 / 4, 6 / 5 – 2 * 9"; + + String regex = "\\b\\d+(?!\\s*\\+)"; + + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(text); + + boolean found = false; + System.out.println("Найдены цифры без знака '+':"); + while (matcher.find()) { + System.out.println("Число: " + matcher.group() + ", позиция: " + matcher.start()); + found = true; + } + + if (!found) { + System.out.println("Все числа сопровождаются знаком '+'."); + } + } +} diff --git a/students/23L0908/23L0908-p25/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java b/students/23L0908/23L0908-p25/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java new file mode 100644 index 000000000..df92c3be3 --- /dev/null +++ b/students/23L0908/23L0908-p25/src/main/java/ru/mirea/practice/s23l0908/task3/Main.java @@ -0,0 +1,32 @@ +package ru.mirea.practice.s23l0908.task3; + +import java.util.regex.Pattern; + +public final class Main { + + private Main() { + + } + + public static void main(String[] args) { + String[] dates = { + "29/02/2000", "30/04/2003", "01/01/2003", + "29/02/2001", "30-04-2003", "1/1/1899" + }; + + String regex = "^(?:(?:31/(?:0[13578]|1[02]))" + + "|(?:30/(?:0[13-9]|1[0-2]))" + + "|(?:0[1-9]|1\\d|2[0-8])/(?:0[1-9]|1[0-2]))/(19\\d{2}|[2-9]\\d{3})$" + + "|^29/02/(?:(?:19|[2-9]\\d)(?:0[48]|[2468][048]|[13579][26])" + + "|(?:[2-9]\\d{2}(? корректная дата."); + } else { + System.out.println(date + " -> некорректная дата."); + } + } + } +} + diff --git a/students/23L0908/23L0908-p25/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java b/students/23L0908/23L0908-p25/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java new file mode 100644 index 000000000..1e9d5828a --- /dev/null +++ b/students/23L0908/23L0908-p25/src/main/java/ru/mirea/practice/s23l0908/task4/Main.java @@ -0,0 +1,28 @@ +package ru.mirea.practice.s23l0908.task4; + +import java.util.regex.Pattern; + +public final class Main { + + private Main() { + } + + public static void main(String[] args) { + String[] emails = { + "user@example.com", "root@localhost", "myhost@@@com.ru", + "@my.ru", "Julia String", "test.email+alex@leetcode.com", "user.name@sub.domain.com" + }; + + String regex = "^(?!\\.)([a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]" + + "+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*)@([a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)" + + "+[a-zA-Z]{2,}$"; + + for (String email : emails) { + if (Pattern.matches(regex, email)) { + System.out.println(email + " -> корректный email."); + } else { + System.out.println(email + " -> некорректный email."); + } + } + } +} diff --git a/students/23L0908/23L0908-p26/pom.xml b/students/23L0908/23L0908-p26/pom.xml new file mode 100644 index 000000000..b6fe559f7 --- /dev/null +++ b/students/23L0908/23L0908-p26/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p26 + Массивы + diff --git a/students/23L0908/23L0908-p26/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java b/students/23L0908/23L0908-p26/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java new file mode 100644 index 000000000..00c1de449 --- /dev/null +++ b/students/23L0908/23L0908-p26/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java @@ -0,0 +1,38 @@ +package ru.mirea.practice.s23l0908.task1; + +import java.util.Stack; + +public final class Main { + + private Main() { + + } + + public static void invertArray(int[] array) { + Stack stack = new Stack<>(); + + for (int num : array) { + stack.push(num); + } + for (int i = 0; i < array.length; i++) { + array[i] = stack.pop(); + } + } + + public static void main(String[] args) { + // Пример массива + int[] array = {1, 2, 3, 4, 5}; + + System.out.println("Исходный массив:"); + for (int num : array) { + System.out.print(num + " "); + } + + invertArray(array); + + System.out.println("\nИнвертированный массив:"); + for (int num : array) { + System.out.print(num + " "); + } + } +} diff --git a/students/23L0908/23L0908-p26/src/main/java/ru/mirea/practice/s23l0908/task2/CustomListIterator.java b/students/23L0908/23L0908-p26/src/main/java/ru/mirea/practice/s23l0908/task2/CustomListIterator.java new file mode 100644 index 000000000..f1e86cdf1 --- /dev/null +++ b/students/23L0908/23L0908-p26/src/main/java/ru/mirea/practice/s23l0908/task2/CustomListIterator.java @@ -0,0 +1,66 @@ +package ru.mirea.practice.s23l0908.task2; + +import java.util.Iterator; +import java.util.List; +import java.util.ArrayList; +import java.util.NoSuchElementException; + +public class CustomListIterator implements Iterator { + private final List list; // Список, который будет итерироваться + private int currentIndex = 0; // Текущий индекс + + // Конструктор принимает список + public CustomListIterator(List list) { + this.list = list; + } + + // Проверяет, есть ли следующий элемент + @Override + public boolean hasNext() { + return currentIndex < list.size(); + } + + // Возвращает следующий элемент + @Override + public T next() { + if (!hasNext()) { + throw new NoSuchElementException("Больше нет элементов в списке."); + } + return list.get(currentIndex++); + } + + // Удаляет текущий элемент (опционально) + @Override + public void remove() { + if (currentIndex <= 0) { + throw new IllegalStateException("Удаление элемента возможно только после вызова next()."); + } + list.remove(--currentIndex); + } + + // Тестирование пользовательского итератора + public static void main(String[] args) { + // Пример списка + List myList = new ArrayList<>(List.of("Element1", "Element2", "Element3", "Element4")); + + // Создаем пользовательский итератор + CustomListIterator customIterator = new CustomListIterator<>(myList); + + // Используем итератор для прохода по элементам списка + System.out.println("Элементы списка:"); + while (customIterator.hasNext()) { + System.out.println(customIterator.next()); + } + + // Тест удаления элемента + customIterator = new CustomListIterator<>(myList); + if (customIterator.hasNext()) { + customIterator.next(); + customIterator.remove(); // Удаляем первый элемент + } + System.out.println("Список после удаления первого элемента:"); + for (String item : myList) { + System.out.println(item); + } + } +} diff --git a/students/23L0908/23L0908-p27/pom.xml b/students/23L0908/23L0908-p27/pom.xml new file mode 100644 index 000000000..431db5284 --- /dev/null +++ b/students/23L0908/23L0908-p27/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p27 + Массивы + diff --git a/students/23L0908/23L0908-p27/src/main/java/ru/mirea/practice/s23l0908/task2/Hashnode.java b/students/23L0908/23L0908-p27/src/main/java/ru/mirea/practice/s23l0908/task2/Hashnode.java new file mode 100644 index 000000000..6c1613c8d --- /dev/null +++ b/students/23L0908/23L0908-p27/src/main/java/ru/mirea/practice/s23l0908/task2/Hashnode.java @@ -0,0 +1,11 @@ +package ru.mirea.practice.s23l0908.task2; + +class Hashnode { + String key; + int value; + + Hashnode(String key, int value) { + this.key = key; + this.value = value; + } +} diff --git a/students/23L0908/23L0908-p27/src/main/java/ru/mirea/practice/s23l0908/task2/Hashtab.java b/students/23L0908/23L0908-p27/src/main/java/ru/mirea/practice/s23l0908/task2/Hashtab.java new file mode 100644 index 000000000..554eb6732 --- /dev/null +++ b/students/23L0908/23L0908-p27/src/main/java/ru/mirea/practice/s23l0908/task2/Hashtab.java @@ -0,0 +1,83 @@ +package ru.mirea.practice.s23l0908.task2; + +import java.util.LinkedList; + +public class Hashtab { + private static final int TABLE_SIZE = 128; + private LinkedList[] table; + + private static class Entry { + String key; + String value; + + Entry(String key, String value) { + this.key = key; + this.value = value; + } + } + + // Функция хеширования (hashtabHash) + private int hashtabHash(String key) { + int hash = 0; + for (char c : key.toCharArray()) { + hash = (31 * hash + c) % TABLE_SIZE; // Простая хеш-функция + } + return hash; + } + + // Инициализация таблицы (hashtabInit) + @SuppressWarnings("unchecked") + public void hashtabInit() { + table = new LinkedList[TABLE_SIZE]; // Предупреждение здесь + for (int i = 0; i < TABLE_SIZE; i++) { + table[i] = new LinkedList<>(); + } + } + + // Добавление элемента в таблицу (hashtabAdd) + public void hashtabAdd(String key, String value) { + int hash = hashtabHash(key); + for (Entry entry : table[hash]) { + if (entry.key.equals(key)) { + entry.value = value; // Обновление значения, если ключ уже существует + return; + } + } + table[hash].add(new Entry(key, value)); // Добавление новой записи + } + + // Поиск элемента по ключу (hashtabLookup) + public String hashtabLookup(String key) { + int hash = hashtabHash(key); + for (Entry entry : table[hash]) { + if (entry.key.equals(key)) { + return entry.value; + } + } + return null; + } + + public void hashtabDelete(String key) { + int hash = hashtabHash(key); + table[hash].removeIf(entry -> entry.key.equals(key)); // Удаление записи + } + + // Тестирование работы хеш-таблицы + public static void main(String[] args) { + Hashtab hashtab = new Hashtab(); + hashtab.hashtabInit(); + + // Добавление данных + hashtab.hashtabAdd("key1", "value1"); + hashtab.hashtabAdd("key2", "value2"); + hashtab.hashtabAdd("key3", "value3"); + + // Поиск + System.out.println("key1: " + hashtab.hashtabLookup("key1")); // Ожидается value1 + System.out.println("key4: " + hashtab.hashtabLookup("key4")); // Ожидается null + + // Удаление + hashtab.hashtabDelete("key2"); + System.out.println("key2 после удаления: " + hashtab.hashtabLookup("key2")); // Ожидается null + } +} diff --git a/students/23L0908/23L0908-p27/src/main/java/ru/mirea/practice/s23l0908/task2/Hashtable.java b/students/23L0908/23L0908-p27/src/main/java/ru/mirea/practice/s23l0908/task2/Hashtable.java new file mode 100644 index 000000000..2f26f6840 --- /dev/null +++ b/students/23L0908/23L0908-p27/src/main/java/ru/mirea/practice/s23l0908/task2/Hashtable.java @@ -0,0 +1,96 @@ +package ru.mirea.practice.s23l0908.task2; + +import java.util.LinkedList; + +public class Hashtable { + private static final int tablesize = 10; + private LinkedList[] table; + + // Инициализация хеш-таблицы + public void hashtabInit() { + table = new LinkedList[tablesize]; + for (int i = 0; i < tablesize; i++) { + table[i] = new LinkedList<>(); + } + } + + // Хеш-функция + private int hashtabHash(String key) { + return Math.abs(key.hashCode() % tablesize); + } + + // Добавление элемента + public void hashtabAdd(String key, int value) { + int hashIndex = hashtabHash(key); + for (Hashnode node : table[hashIndex]) { + if (node.key.equals(key)) { + node.value = value; // Обновление значения, если ключ уже существует + return; + } + } + table[hashIndex].add(new Hashnode(key, value)); + } + + // Поиск элемента по ключу + public Integer hashtabLookup(String key) { + int hashIndex = hashtabHash(key); + for (Hashnode node : table[hashIndex]) { + if (node.key.equals(key)) { + return node.value; + } + } + return null; // Элемент не найден + } + + // Удаление элемента по ключу + public boolean hashtabDelete(String key) { + int hashIndex = hashtabHash(key); + for (Hashnode node : table[hashIndex]) { + if (node.key.equals(key)) { + table[hashIndex].remove(node); + return true; + } + } + return false; + } + + public void printHashTable() { + for (int i = 0; i < tablesize; i++) { + System.out.print("Index " + i + ": "); + for (Hashnode node : table[i]) { + System.out.print("[" + node.key + ": " + node.value + "] "); + } + System.out.println(); + } + } + + public static void main(String[] args) { + Hashtable ht = new Hashtable(); + ht.hashtabInit(); + + // Добавление 10 элементов + ht.hashtabAdd("Key1", 10); + ht.hashtabAdd("Key2", 20); + ht.hashtabAdd("Key3", 30); + ht.hashtabAdd("Key4", 40); + ht.hashtabAdd("Key5", 50); + ht.hashtabAdd("Key6", 60); + ht.hashtabAdd("Key7", 70); + ht.hashtabAdd("Key8", 80); + ht.hashtabAdd("Key9", 90); + ht.hashtabAdd("Key10", 100); + + System.out.println("Хеш-таблица после добавления элементов:"); + ht.printHashTable(); + + String searchKey = "Key5"; + Integer value = ht.hashtabLookup(searchKey); + System.out.println("\nЗначение для ключа " + searchKey + ": " + value); + String deleteKey = "Key3"; + boolean isDeleted = ht.hashtabDelete(deleteKey); + System.out.println("\nУдаление ключа " + deleteKey + ": " + (isDeleted ? "успешно" : "не найден")); + + System.out.println("\nХеш-таблица после удаления элемента:"); + ht.printHashTable(); + } +} diff --git a/students/23L0908/23L0908-p28/pom.xml b/students/23L0908/23L0908-p28/pom.xml new file mode 100644 index 000000000..d076df3da --- /dev/null +++ b/students/23L0908/23L0908-p28/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p28 + Массивы + diff --git a/students/23L0908/23L0908-p28/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java b/students/23L0908/23L0908-p28/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java new file mode 100644 index 000000000..6457266cf --- /dev/null +++ b/students/23L0908/23L0908-p28/src/main/java/ru/mirea/practice/s23l0908/task1/Main.java @@ -0,0 +1,27 @@ +package ru.mirea.practice.s23l0908.task1; + +import java.util.HashSet; +import java.util.Set; +import java.util.TreeSet; + +public final class Main { + + private Main() { + } + + public static Set convertToTreeSet(Set hashSet) { + return new TreeSet<>(hashSet); + } + + public static void main(String[] args) { + Set hashSet = new HashSet<>(); + + hashSet.add("CAR"); + hashSet.add("HOUSE"); + hashSet.add("COMPUTER"); + + Set treeSet = convertToTreeSet(hashSet); + System.out.println(treeSet); + } +} + diff --git a/students/23L0908/23L0908-p28/src/main/java/ru/mirea/practice/s23l0908/task2/Name.java b/students/23L0908/23L0908-p28/src/main/java/ru/mirea/practice/s23l0908/task2/Name.java new file mode 100644 index 000000000..c73839665 --- /dev/null +++ b/students/23L0908/23L0908-p28/src/main/java/ru/mirea/practice/s23l0908/task2/Name.java @@ -0,0 +1,52 @@ +package ru.mirea.practice.s23l0908.task2; + +import java.util.HashMap; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public final class Name { + + private Name() { + } + + public static Map createMap() { + Map name = new HashMap<>(); + name.put("Bui", "Van Thanh"); + name.put("Nguyen", "The Vinh"); + name.put("Nghiem", "Vu Vinh"); + name.put("Mai", "Khanh Huyen"); + name.put("Hoang", "Xuan Nam"); + name.put("Le", "Van Tuan"); + name.put("Hoang", "Xuan Phong"); + name.put("Phan", "Thi Mai"); + name.put("Dinh", "Van Tuan"); + name.put("Mai", "Van Tuan"); + return name; + } + + public static int getSameFirstNameCount(Map name) { + return 11 - name.size(); + } + + public static int getSameLastNameCount(Map name) { + int mount = 1; + List lastName = new ArrayList<>(); + lastName.addAll(name.values()); + for (int i = 0; i < lastName.size(); i++) { + for (int j = i + 1; j < lastName.size(); j++) { + if (lastName.get(i).equals(lastName.get(j))) { + lastName.remove(j--); + mount++; + } + } + } + return mount; + } + + public static void main(String[] args) { + Map map = createMap(); + System.out.println("The number of first name is the same: " + getSameFirstNameCount(map)); + System.out.println("The number of last name is the same: " + getSameLastNameCount(map)); + } +} From 8f9029357457d683c0d6e01e883d25d88c9e43f3 Mon Sep 17 00:00:00 2001 From: Phong141003 Date: Fri, 13 Dec 2024 02:27:52 +0300 Subject: [PATCH 4/4] Hoang Xuan Phong lab 29-32 --- .../practice/s23l0908/task4/OnlineStore.java | 67 +++++++++ students/23L0908/23L0908-p29/pom.xml | 13 ++ .../java/ru/mirea/practice/s23l0908/Main.java | 30 ++++ students/23L0908/23L0908-p30/pom.xml | 13 ++ .../mirea/practice/s23l0908/Binarytree.java | 111 +++++++++++++++ .../java/ru/mirea/practice/s23l0908/Main.java | 43 ++++++ .../java/ru/mirea/practice/s23l0908/Node.java | 13 ++ students/23L0908/23L0908-p31/pom.xml | 13 ++ .../java/ru/mirea/practice/s23l0908/Main.java | 70 +++++++++ .../java/ru/mirea/practice/s23l0908/PROCS.txt | 4 + .../practice/s23l0908/ProcessorRecord.java | 42 ++++++ .../ru/mirea/practice/s23l0908/Treenode.java | 134 ++++++++++++++++++ .../mirea/practice/s23l0908/TwoThreeTree.java | 72 ++++++++++ students/23L0908/23L0908-p32/pom.xml | 13 ++ .../practice/s23l0908/JohnsonTrotter.java | 80 +++++++++++ 15 files changed, 718 insertions(+) create mode 100644 students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task4/OnlineStore.java create mode 100644 students/23L0908/23L0908-p29/pom.xml create mode 100644 students/23L0908/23L0908-p29/src/main/java/ru/mirea/practice/s23l0908/Main.java create mode 100644 students/23L0908/23L0908-p30/pom.xml create mode 100644 students/23L0908/23L0908-p30/src/main/java/ru/mirea/practice/s23l0908/Binarytree.java create mode 100644 students/23L0908/23L0908-p30/src/main/java/ru/mirea/practice/s23l0908/Main.java create mode 100644 students/23L0908/23L0908-p30/src/main/java/ru/mirea/practice/s23l0908/Node.java create mode 100644 students/23L0908/23L0908-p31/pom.xml create mode 100644 students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/Main.java create mode 100644 students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/PROCS.txt create mode 100644 students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/ProcessorRecord.java create mode 100644 students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/Treenode.java create mode 100644 students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/TwoThreeTree.java create mode 100644 students/23L0908/23L0908-p32/pom.xml create mode 100644 students/23L0908/23L0908-p32/src/main/java/ru/mirea/practice/s23l0908/JohnsonTrotter.java diff --git a/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task4/OnlineStore.java b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task4/OnlineStore.java new file mode 100644 index 000000000..a34c7587e --- /dev/null +++ b/students/23L0908/23L0908-p03/src/main/java/ru/mirea/practice/s23l0908/task4/OnlineStore.java @@ -0,0 +1,67 @@ +package ru.mirea.practice.s23l0908.task4; + +import java.util.Scanner; + +public abstract class OnlineStore { + + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + String[] products = new String[]{"Телефон", "Ноутбук", "Наушники"}; + double[] prices = new double[]{300.0, 1000.0, 50.0}; + + final double usdToRub = 100.0; + final double usdToEur = 0.85; + final double usdToGbp = 0.75; + + System.out.println("Добро пожаловать в интернет-магазин!"); + System.out.println("Выберите товар:"); + + int productChoice; + for (productChoice = 0; productChoice < products.length; ++productChoice) { + System.out.println(productChoice + 1 + ". " + products[productChoice] + " - $" + prices[productChoice]); + } + + System.out.print("Введите номер товара: "); + productChoice = scanner.nextInt() - 1; + if (productChoice >= 0 && productChoice < products.length) { + double priceInUsd = prices[productChoice]; + System.out.println("Вы выбрали: " + products[productChoice] + " за $" + priceInUsd); + System.out.println("Выберите валюту для оплаты:"); + System.out.println("1. Доллары США (USD)"); + System.out.println("2. Рубли (RUB)"); + System.out.println("3. Евро (EUR)"); + System.out.println("4. Фунты стерлингов (GBP)"); + System.out.print("Введите номер валюты: "); + int currencyChoice = scanner.nextInt(); + double finalPrice = 0.0; + String currency = ""; + + switch (currencyChoice) { + case 1: + finalPrice = priceInUsd; + currency = "USD"; + break; + case 2: + finalPrice = priceInUsd * usdToRub; + currency = "RUB"; + break; + case 3: + finalPrice = priceInUsd * usdToEur; + currency = "EUR"; + break; + case 4: + finalPrice = priceInUsd * usdToGbp; + currency = "GBP"; + break; + default: + System.out.println("Неверный выбор валюты."); + return; + } + + System.out.printf("Итоговая стоимость товара: %.2f %s\n", finalPrice, currency); + } else { + System.out.println("Неверный выбор товара."); + } + } + } +} diff --git a/students/23L0908/23L0908-p29/pom.xml b/students/23L0908/23L0908-p29/pom.xml new file mode 100644 index 000000000..639c9728b --- /dev/null +++ b/students/23L0908/23L0908-p29/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p29 + Массивы + diff --git a/students/23L0908/23L0908-p29/src/main/java/ru/mirea/practice/s23l0908/Main.java b/students/23L0908/23L0908-p29/src/main/java/ru/mirea/practice/s23l0908/Main.java new file mode 100644 index 000000000..1c8825f57 --- /dev/null +++ b/students/23L0908/23L0908-p29/src/main/java/ru/mirea/practice/s23l0908/Main.java @@ -0,0 +1,30 @@ +package ru.mirea.practice.s23l0908; + +import java.util.Scanner; + +public abstract class Main { + public static void main(String[] args) { + try (Scanner scanner = new Scanner(System.in)) { + int n = scanner.nextInt(); + if (n == 0) { + System.out.println(0); + return; + } + int[][] adjacencyMatrix = new int[n][n]; + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + adjacencyMatrix[i][j] = scanner.nextInt(); + } + } + int roadCount = 0; + for (int i = 0; i < n; i++) { + for (int j = i + 1; j < n; j++) { + roadCount += adjacencyMatrix[i][j]; + } + } + System.out.println(roadCount); + } catch (RuntimeException e) { + throw new RuntimeException(e); + } + } +} diff --git a/students/23L0908/23L0908-p30/pom.xml b/students/23L0908/23L0908-p30/pom.xml new file mode 100644 index 000000000..0d5517c23 --- /dev/null +++ b/students/23L0908/23L0908-p30/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p30 + Массивы + diff --git a/students/23L0908/23L0908-p30/src/main/java/ru/mirea/practice/s23l0908/Binarytree.java b/students/23L0908/23L0908-p30/src/main/java/ru/mirea/practice/s23l0908/Binarytree.java new file mode 100644 index 000000000..f5c60a555 --- /dev/null +++ b/students/23L0908/23L0908-p30/src/main/java/ru/mirea/practice/s23l0908/Binarytree.java @@ -0,0 +1,111 @@ +package ru.mirea.practice.s23l0908; + +public class Binarytree { + Node root; + + public void insert(int value) { + root = insertRec(root, value); + } + + private Node insertRec(Node root, int value) { + if (root == null) { + root = new Node(value); + return root; + } + if (value < root.data) { + root.left = insertRec(root.left, value); + } else if (value > root.data) { + root.right = insertRec(root.right, value); + } + return root; + } + + public boolean lookup(int target) { + return lookupRec(root, target); + } + + private boolean lookupRec(Node node, int target) { + if (node == null) { + return false; + } + if (target == node.data) { + return true; + } else if (target < node.data) { + return lookupRec(node.left, target); + } else { + return lookupRec(node.right, target); + } + } + + public int height() { + return heightRec(root); + } + + private int heightRec(Node node) { + if (node == null) { + return 0; + } + int leftHeight = heightRec(node.left); + int rightHeight = heightRec(node.right); + return Math.max(leftHeight, rightHeight) + 1; + } + + public int getMaxWidth() { + int maxWidth = 0; + int height = height(); + for (int i = 1; i <= height; i++) { + int width = getWidth(root, i); + maxWidth = Math.max(maxWidth, width); + } + return maxWidth; + } + + private int getWidth(Node node, int level) { + if (node == null) { + return 0; + } + if (level == 1) { + return 1; + } else { + return getWidth(node.left, level - 1) + getWidth(node.right, level - 1); + } + } + + public boolean sameTree(Node a, Node b) { + if (a == null && b == null) { + return true; + } + if (a != null && b != null) { + return a.data == b.data && sameTree(a.left, b.left) && sameTree(a.right, b.right); + } + return false; + } + + public void reverse() { + root = reverseRec(root); + } + + private Node reverseRec(Node node) { + if (node != null) { + Node temp = node.left; + node.left = node.right; + node.right = temp; + reverseRec(node.left); + reverseRec(node.right); + } + return node; + } + + public void printInOrder() { + printInOrderRec(root); + System.out.println(); + } + + private void printInOrderRec(Node node) { + if (node != null) { + printInOrderRec(node.left); + System.out.print(node.data + " "); + printInOrderRec(node.right); + } + } +} diff --git a/students/23L0908/23L0908-p30/src/main/java/ru/mirea/practice/s23l0908/Main.java b/students/23L0908/23L0908-p30/src/main/java/ru/mirea/practice/s23l0908/Main.java new file mode 100644 index 000000000..a45ef9086 --- /dev/null +++ b/students/23L0908/23L0908-p30/src/main/java/ru/mirea/practice/s23l0908/Main.java @@ -0,0 +1,43 @@ +package ru.mirea.practice.s23l0908; + +public final class Main { + private Main() { + } + + public static void main(String[] args) { + Binarytree tree = new Binarytree(); + tree.insert(10); + tree.insert(5); + tree.insert(15); + tree.insert(3); + tree.insert(7); + tree.insert(12); + tree.insert(18); + System.out.print("In-Order Traversal: "); + tree.printInOrder(); + int height = tree.height(); + System.out.println("Height of the tree: " + height); + int maxWidth = tree.getMaxWidth(); + System.out.println("Maximum width of the tree: " + maxWidth); + int searchValue1 = 7; + int searchValue2 = 20; + System.out.println("Lookup " + searchValue1 + ": " + tree.lookup(searchValue1)); + System.out.println("Lookup " + searchValue2 + ": " + tree.lookup(searchValue2)); + tree.reverse(); + System.out.print("In-Order Traversal after reversing: "); + tree.printInOrder(); + Binarytree tree2 = new Binarytree(); + tree2.insert(10); + tree2.insert(5); + tree2.insert(15); + tree2.insert(3); + tree2.insert(7); + tree2.insert(12); + tree2.insert(18); + boolean areSame = tree.sameTree(tree.root, tree2.root); + System.out.println("Are the two trees the same? " + areSame); + tree2.insert(20); + areSame = tree.sameTree(tree.root, tree2.root); + System.out.println("Are the two trees the same after modification? " + areSame); + } +} diff --git a/students/23L0908/23L0908-p30/src/main/java/ru/mirea/practice/s23l0908/Node.java b/students/23L0908/23L0908-p30/src/main/java/ru/mirea/practice/s23l0908/Node.java new file mode 100644 index 000000000..9540064e3 --- /dev/null +++ b/students/23L0908/23L0908-p30/src/main/java/ru/mirea/practice/s23l0908/Node.java @@ -0,0 +1,13 @@ +package ru.mirea.practice.s23l0908; + +public class Node { + int data; + Node left; + Node right; + + Node(int value) { + this.data = value; + this.left = null; + this.right = null; + } +} diff --git a/students/23L0908/23L0908-p31/pom.xml b/students/23L0908/23L0908-p31/pom.xml new file mode 100644 index 000000000..9b05b90fb --- /dev/null +++ b/students/23L0908/23L0908-p31/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p31 + Массивы + diff --git a/students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/Main.java b/students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/Main.java new file mode 100644 index 000000000..da9676018 --- /dev/null +++ b/students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/Main.java @@ -0,0 +1,70 @@ +package ru.mirea.practice.s23l0908; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.Scanner; + +public final class Main { + private Main() { + } + + public static void main(String[] args) { + TwoThreeTree tree = new TwoThreeTree(); + + try (BufferedReader reader = new BufferedReader(new FileReader("src/ru/mirea/practice/s00000030/task1/PROCS.TXT"))) { + String line; + while ((line = reader.readLine()) != null) { + ProcessorRecord record = ProcessorRecord.fromString(line); + tree.insert(record); + } + } catch (IOException e) { + System.out.println("Error reading file: " + e.getMessage()); + return; + } + + try (Scanner scanner = new Scanner(System.in)) { + while (true) { + System.out.print("Enter the command (L, D n, A n, S, E): "); + String command = scanner.nextLine().trim(); + + if ("E".equalsIgnoreCase(command)) { + break; + } + + if ("L".equalsIgnoreCase(command)) { + System.out.println("Enter a workaround (1-6): "); + int variant = scanner.nextInt(); + scanner.nextLine(); + tree.print(variant); + } else if (command.startsWith("D")) { + try { + int key = Integer.parseInt(command.substring(2).trim()); + tree.delete(key); + } catch (NumberFormatException e) { + System.out.println("Incorrect key."); + } + } else if (command.startsWith("A")) { + try { + int key = Integer.parseInt(command.substring(2).trim()); + if (!tree.contains(key)) { + System.out.print("Enter processor information (for example: Intel Pentium 4, 2.0, 256, 0.400, 664, 734): "); + String recordInfo = scanner.nextLine().trim(); + ProcessorRecord record = ProcessorRecord.fromString(key + ", " + recordInfo); + tree.insert(record); + } else { + System.out.println("A record with this key already exists."); + } + } catch (NumberFormatException e) { + System.out.println("Incorrect key."); + } + } else if ("S".equalsIgnoreCase(command)) { + tree.saveToFile("src/ru/mirea/practice/s00000030/task1/PROCS.TXT"); + System.out.println("Data saved to file."); + } else { + System.out.println("Unknown team."); + } + } + } + } +} diff --git a/students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/PROCS.txt b/students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/PROCS.txt new file mode 100644 index 000000000..436134baa --- /dev/null +++ b/students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/PROCS.txt @@ -0,0 +1,4 @@ +2, Intel Pentium 4, 2.0, 256, 0.400, 664, 734 +5, Intel Itanium, 0.800, 96, 0.266, 365, 701 +6, AMD Athlon XP, 1.6, 256, 0.266, 701, 634 +1, IBM Power 4, 1.3, 16384, 0.400, 814, 1169 diff --git a/students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/ProcessorRecord.java b/students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/ProcessorRecord.java new file mode 100644 index 000000000..fb3576a39 --- /dev/null +++ b/students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/ProcessorRecord.java @@ -0,0 +1,42 @@ +package ru.mirea.practice.s23l0908; + +public class ProcessorRecord { + private final int key; + private final String name; + private final double frequency; + private final int cacheSize; + private final double busFrequency; + private final int specInt; + private final int specFp; + + public ProcessorRecord(int key, String name, double frequency, int cacheSize, double busFrequency, int specInt, int specFp) { + this.key = key; + this.name = name; + this.frequency = frequency; + this.cacheSize = cacheSize; + this.busFrequency = busFrequency; + this.specInt = specInt; + this.specFp = specFp; + } + + public int getKey() { + return key; + } + + public static ProcessorRecord fromString(String line) { + String[] parts = line.split(", "); + int key = Integer.parseInt(parts[0]); + String name = parts[1]; + double frequency = Double.parseDouble(parts[2]); + int cacheSize = Integer.parseInt(parts[3]); + double busFrequency = Double.parseDouble(parts[4]); + int specInt = Integer.parseInt(parts[5]); + int specFp = Integer.parseInt(parts[6]); + return new ProcessorRecord(key, name, frequency, cacheSize, busFrequency, specInt, specFp); + } + + @Override + public String toString() { + return key + ", " + name + ", " + frequency + ", " + cacheSize + ", " + busFrequency + ", " + specInt + ", " + specFp; + } +} diff --git a/students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/Treenode.java b/students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/Treenode.java new file mode 100644 index 000000000..fde3ccd17 --- /dev/null +++ b/students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/Treenode.java @@ -0,0 +1,134 @@ +package ru.mirea.practice.s23l0908; + +import java.util.ArrayList; +import java.util.List; + +public class Treenode { + private List records; + private List children; + + public Treenode(ProcessorRecord record) { + this.records = new ArrayList<>(); + this.children = new ArrayList<>(); + this.records.add(record); + } + + public Treenode insert(ProcessorRecord record) { + if (record.getKey() < records.get(0).getKey()) { + if (!children.isEmpty()) { // Используем isEmpty() вместо size() == 0 + Treenode leftChild = children.get(0); + leftChild = leftChild.insert(record); + } else { + children.add(new Treenode(record)); + } + } else { + if (children.size() > 1) { // Данный код можно оставить, так как тут проверяется наличие второго дочернего узла + Treenode rightChild = children.get(1); + rightChild = rightChild.insert(record); + } else { + children.add(new Treenode(record)); + } + } + return this; + } + + public Treenode delete(int key) { + if (contains(key)) { + for (int i = 0; i < records.size(); i++) { + if (records.get(i).getKey() == key) { + records.remove(i); + break; + } + } + } else { + for (Treenode child : children) { + child.delete(key); + } + } + return this; + } + + public boolean contains(int key) { + for (ProcessorRecord record : records) { + if (record.getKey() == key) { + return true; + } + } + for (Treenode child : children) { + if (child.contains(key)) { + return true; + } + } + return false; + } + + public final void printBottomToTop() { + for (int i = children.size() - 1; i >= 0; i--) { + children.get(i).printBottomToTop(); + } + for (ProcessorRecord record : records) { + System.out.println(record); + } + } + + public final void printTopToBottom() { + for (ProcessorRecord record : records) { + System.out.println(record); + } + for (Treenode child : children) { + child.printTopToBottom(); + } + } + + public final void printPostOrder() { + for (Treenode child : children) { + child.printPostOrder(); + } + for (ProcessorRecord record : records) { + System.out.println(record); + } + } + + public final void printPreOrder() { + for (ProcessorRecord record : records) { + System.out.println(record); + } + for (Treenode child : children) { + child.printPreOrder(); + } + } + + public final void printPostOrderWithLevels() { + printPostOrderWithLevelsHelper(0); + } + + private void printPostOrderWithLevelsHelper(int level) { + for (Treenode child : children) { + child.printPostOrderWithLevelsHelper(level + 1); + } + for (ProcessorRecord record : records) { + System.out.println("Level " + level + ": " + record); + } + } + + public final void printPreOrderWithLevels() { + printPreOrderWithLevelsHelper(0); + } + + private void printPreOrderWithLevelsHelper(int level) { + for (ProcessorRecord record : records) { + System.out.println("Level " + level + ": " + record); + } + for (Treenode child : children) { + child.printPreOrderWithLevelsHelper(level + 1); + } + } + + public List getAllRecords() { + List allRecords = new ArrayList<>(records); + for (Treenode child : children) { + allRecords.addAll(child.getAllRecords()); + } + return allRecords; + } +} diff --git a/students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/TwoThreeTree.java b/students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/TwoThreeTree.java new file mode 100644 index 000000000..b7c7bb351 --- /dev/null +++ b/students/23L0908/23L0908-p31/src/main/java/ru/mirea/practice/s23l0908/TwoThreeTree.java @@ -0,0 +1,72 @@ +package ru.mirea.practice.s23l0908; + +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.IOException; +import java.util.List; + +public class TwoThreeTree { + private Treenode root; + + public void insert(ProcessorRecord record) { + if (root == null) { + root = new Treenode(record); + } else { + root = root.insert(record); + } + } + + public void delete(int key) { + if (root != null) { + root = root.delete(key); + } + } + + public boolean contains(int key) { + return root != null && root.contains(key); + } + + public void print(int variant) { + if (root == null) { + System.out.println("Дерево пустое."); + return; + } + switch (variant) { + case 1: + root.printBottomToTop(); + break; + case 2: + root.printTopToBottom(); + break; + case 3: + root.printPostOrder(); + break; + case 4: + root.printPreOrder(); + break; + case 5: + root.printPostOrderWithLevels(); + break; + case 6: + root.printPreOrderWithLevels(); + break; + default: + System.out.println("Неверный вариант."); + break; // Добавлен break + } + } + + public void saveToFile(String filename) { + try (BufferedWriter writer = new BufferedWriter(new FileWriter(filename))) { + if (root != null) { + List records = root.getAllRecords(); + for (ProcessorRecord record : records) { + writer.write(record.toString()); + writer.newLine(); + } + } + } catch (IOException e) { + System.out.println("Ошибка записи в файл: " + e.getMessage()); + } + } +} diff --git a/students/23L0908/23L0908-p32/pom.xml b/students/23L0908/23L0908-p32/pom.xml new file mode 100644 index 000000000..00cb9d04f --- /dev/null +++ b/students/23L0908/23L0908-p32/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + 23L0908 + ru.mirea.practice + 2024.1 + ../pom.xml + + 23L0908-p32 + Массивы + diff --git a/students/23L0908/23L0908-p32/src/main/java/ru/mirea/practice/s23l0908/JohnsonTrotter.java b/students/23L0908/23L0908-p32/src/main/java/ru/mirea/practice/s23l0908/JohnsonTrotter.java new file mode 100644 index 000000000..6a6a894ff --- /dev/null +++ b/students/23L0908/23L0908-p32/src/main/java/ru/mirea/practice/s23l0908/JohnsonTrotter.java @@ -0,0 +1,80 @@ +package ru.mirea.practice.s23l0908; + +import java.util.Arrays; + +public final class JohnsonTrotter { + + private JohnsonTrotter() { + } + + static int[] permutation; + static boolean[] direction; + + public static void main(String[] args) { + int n = 4; + permutation = new int[n]; + direction = new boolean[n]; + for (int i = 0; i < n; i++) { + permutation[i] = i + 1; + direction[i] = false; + } + + printPermutation(); + while (generateNext()) { + printPermutation(); + } + } + + static boolean generateNext() { + int mobileIndex = getMobileIndex(); + if (mobileIndex == -1) { + return false; + } + + int d = direction[mobileIndex] ? 1 : -1; + int swapIndex = mobileIndex + d; + swap(mobileIndex, swapIndex); + swap(direction, mobileIndex, swapIndex); + mobileIndex = swapIndex; + + for (int i = 0; i < permutation.length; i++) { + if (permutation[i] > permutation[mobileIndex]) { + direction[i] = false; + } + } + return true; + } + + static int getMobileIndex() { + int mobile = -1; + int mobileIndex = -1; + for (int i = 0; i < permutation.length; i++) { + int d = direction[i] ? 1 : -1; + int nextPos = i + d; + if (nextPos >= 0 && nextPos < permutation.length && permutation[i] > permutation[nextPos]) { + if (permutation[i] > mobile) { + mobile = permutation[i]; + mobileIndex = i; + } + } + } + return mobileIndex; + } + + static void swap(int i, int j) { + int temp = permutation[i]; + permutation[i] = permutation[j]; + permutation[j] = temp; + } + + static void swap(boolean[] arr, int i, int j) { + boolean temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } + + static void printPermutation() { + System.out.println(Arrays.toString(permutation)); + } +} +