Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions WorkWithJava/ClassesAnimals/Animal.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package WorkWithJava.ClassesAnimals;


public class Animal implements ICommands {
private final String name;

public Animal(String name) {
this.name = name;
}

@Override
public String animalCommand(String command) {
return command;
}

@Override
public String toString() {
return String.format("Это %s. ", name);
}
}
13 changes: 13 additions & 0 deletions WorkWithJava/ClassesAnimals/Camels.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package WorkWithJava.ClassesAnimals;

public class Camels extends PackAnimals {

public Camels(String name) {
super(name);
}

@Override
public String animalCommand(String command) {
return super.animalCommand(command);
}
}
14 changes: 14 additions & 0 deletions WorkWithJava/ClassesAnimals/Cats.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package WorkWithJava.ClassesAnimals;

public class Cats extends Pets {


public Cats(String name) {
super(name);
}

@Override
public String animalCommand(String command) {
return super.animalCommand(command);
}
}
12 changes: 12 additions & 0 deletions WorkWithJava/ClassesAnimals/Dogs.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package WorkWithJava.ClassesAnimals;

public class Dogs extends Pets {
public Dogs(String name) {
super(name);
}

@Override
public String animalCommand(String command) {
return super.animalCommand(command);
}
}
12 changes: 12 additions & 0 deletions WorkWithJava/ClassesAnimals/Donkeys.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package WorkWithJava.ClassesAnimals;

public class Donkeys extends PackAnimals {
public Donkeys(String name) {
super(name);
}

@Override
public String animalCommand(String command) {
return super.animalCommand(command);
}
}
12 changes: 12 additions & 0 deletions WorkWithJava/ClassesAnimals/Hamsters.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package WorkWithJava.ClassesAnimals;

public class Hamsters extends Pets {
public Hamsters(String name) {
super(name);
}

@Override
public String animalCommand(String command) {
return super.animalCommand(command);
}
}
13 changes: 13 additions & 0 deletions WorkWithJava/ClassesAnimals/Horses.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package WorkWithJava.ClassesAnimals;

public class Horses extends PackAnimals {

public Horses(String name) {
super(name);
}

@Override
public String animalCommand(String command) {
return super.animalCommand(command);
}
}
6 changes: 6 additions & 0 deletions WorkWithJava/ClassesAnimals/ICommands.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package WorkWithJava.ClassesAnimals;

public interface ICommands {
public String animalCommand(String command);

}
9 changes: 9 additions & 0 deletions WorkWithJava/ClassesAnimals/PackAnimals.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package WorkWithJava.ClassesAnimals;

import WorkWithJava.ClassesAnimals.Animal;

public class PackAnimals extends Animal {
public PackAnimals(String name) {
super(name);
}
}
9 changes: 9 additions & 0 deletions WorkWithJava/ClassesAnimals/Pets.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package WorkWithJava.ClassesAnimals;

import WorkWithJava.ClassesAnimals.Animal;

public class Pets extends Animal {
public Pets(String name) {
super(name);
}
}
18 changes: 18 additions & 0 deletions WorkWithJava/Counter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package WorkWithJava;

public class Counter implements AutoCloseable {
static int count;
static boolean flag;

public void add() {
count++;
}

@Override
public void close() {
if (!flag) {
throw new IllegalStateException("Работа с объектом типа Счетчик была не в ресурсном try или ресурс остался открыт");
}
}
}

13 changes: 13 additions & 0 deletions WorkWithJava/MVP/Controller.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package WorkWithJava.MVP;

import java.io.IOException;

public class Controller {

Model model = new Model();

public void goProgram() throws IOException {
model.workWithRegistry();
}

}
26 changes: 26 additions & 0 deletions WorkWithJava/MVP/Model.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package WorkWithJava.MVP;

import WorkWithJava.WorkWithFiles.ExtraFunctional;
import WorkWithJava.WorkWithFiles.ReadInfo;
import WorkWithJava.Registry;

import java.io.IOException;

public class Model {

View view = new View();
Registry registry = new Registry();

public void workWithRegistry() throws IOException {

ExtraFunctional extraFunctional = new ExtraFunctional();
int choice = view.menu();
switch (choice) {
case 1 -> registry.countAddAnimal();
case 2 -> ReadInfo.readCommands();
case 3 -> extraFunctional.addCommand();
case 4 -> System.out.println("До свидания!");
}
}
}

20 changes: 20 additions & 0 deletions WorkWithJava/MVP/View.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package WorkWithJava.MVP;

import java.util.Scanner;

public class View {

public int menu() {
Scanner sc = new Scanner(System.in);

System.out.println("Выберите цифру меню: ");
System.out.println("\t1. Завести новое животное\n");
System.out.println("\t2. Увидеть список команд, которое выполняет животное\n");
System.out.println("\t3. Обучить животное новым командам\n");
System.out.println("\t4. Выход\n");
return sc.nextInt();
}

}


15 changes: 15 additions & 0 deletions WorkWithJava/Program.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package WorkWithJava;

import WorkWithJava.MVP.Controller;

import java.io.IOException;

public class Program {

public static void main(String[] args) throws IOException {

Controller controller = new Controller();
controller.goProgram();

}
}
84 changes: 84 additions & 0 deletions WorkWithJava/Registry.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package WorkWithJava;

import WorkWithJava.ClassesAnimals.*;
import WorkWithJava.WorkWithFiles.WriteInfo;
import java.util.NoSuchElementException;
import java.util.Scanner;

public class Registry {
Scanner sc = new Scanner(System.in);
public void countAddAnimal() {
try (Counter counter = new Counter()) {
addNewAnimal();
counter.add();
Counter.flag = true;
} catch (NoSuchElementException e) {
System.out.println("Ошибка ввода данных");
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
private void addNewAnimal() {
String command;
System.out.println("Какое животное вы хотите завести в базу?");
System.out.println("1-Домашнее, 2-Вьючнное, введите в консоль цифру: ");
int flag = sc.nextInt();
if (flag == 1) {
System.out.println("1-Кошка, 2-Собака, 3-Хомяк");
flag = sc.nextInt();
if (flag == 1) {
System.out.println("Введите имя животного: ");
Cats cats = new Cats(sc.next());
sc.nextLine();
System.out.println("Что умеет животное? Введите команду: ");
command = cats.animalCommand(sc.nextLine());
WriteInfo.writeBasicInfo("Кошка: ", cats, command);
}
if (flag == 2) {
System.out.println("Введите имя животного: ");
Dogs dogs = new Dogs(sc.next());
sc.nextLine();
System.out.println("Что умеет животное? Введите команду: ");
command = dogs.animalCommand(sc.nextLine());
WriteInfo.writeBasicInfo("Собака: ", dogs, command);
}
if (flag == 3) {
System.out.println("Введите имя животного: ");
Hamsters hamsters = new Hamsters(sc.next());
sc.nextLine();
System.out.println("Что умеет животное? Введите команду: ");
command = hamsters.animalCommand(sc.nextLine());
WriteInfo.writeBasicInfo("Хомяк: ", hamsters, command);
}
} else if (flag == 2) {
System.out.println("1-Лошадь, 2-Осел, 3-Верблюд");
flag = sc.nextInt();
if (flag == 1) {
System.out.println("Введите имя животного: ");
Horses horses = new Horses(sc.next());
sc.nextLine();
System.out.println("Что умеет животное? Введите команду: ");
command = horses.animalCommand(sc.nextLine());
WriteInfo.writeBasicInfo("Лошадь: ", horses, command);
}
if (flag == 2) {
System.out.println("Введите имя животного: ");
Donkeys donkeys = new Donkeys(sc.next());
sc.nextLine();
System.out.println("Что умеет животное? Введите команду: ");
command = donkeys.animalCommand(sc.nextLine());
WriteInfo.writeBasicInfo("Осел: ", donkeys, command);

}
if (flag == 3) {
System.out.println("Введите имя животного: ");
Camels camels = new Camels(sc.next());
sc.nextLine();
System.out.println("Что умеет животное? Введите команду: ");
command = camels.animalCommand(sc.nextLine());
WriteInfo.writeBasicInfo("Верблюд: ", camels, command);

}
}
}
}
45 changes: 45 additions & 0 deletions WorkWithJava/WorkWithFiles/ExtraFunctional.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package WorkWithJava.WorkWithFiles;

import java.io.*;
import java.util.Scanner;

public class ExtraFunctional {
public void addCommand() throws IOException {

try {
File file = new File("Animals.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
StringBuilder sb = new StringBuilder();
Scanner sc = new Scanner(System.in);
String line;
System.out.println("Введите имя животного, чтобы изменить команду: ");
String name = sc.nextLine();
System.out.println("Введите команду: ");
String command = sc.nextLine();
boolean isLineEdited = false;

while ((line = reader.readLine()) != null) {
if (line.contains(name)) {
line = line + ", " + command;
isLineEdited = true;
}

sb.append(line).append("\n");

}
reader.close();

if (isLineEdited) {
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write(sb.toString());
writer.close();
System.out.println("Файл успешно отредактирован.");
} else {
System.out.println("Строка не была отредактирована.");
}
} catch (IOException e) {
System.out.println("Ошибка при редактировании файла: " + e.getMessage());
}
}
}

31 changes: 31 additions & 0 deletions WorkWithJava/WorkWithFiles/ReadInfo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package WorkWithJava.WorkWithFiles;

import java.io.*;
import java.util.Scanner;

public class ReadInfo {


public static void readCommands() throws IOException {

File file = new File("Animals.txt");
Scanner sc = new Scanner(System.in);

System.out.println("Введите имя животного, чтобы посмотреть, что он умеет : ");
String name = sc.next();

try (BufferedReader bufferedReader = new BufferedReader(new FileReader(file))) {
String line;
while ((line = bufferedReader.readLine()) != null) {
if (line.contains(name)) {
int index = line.indexOf(name) + (name.length() + 2);
String needStr = line.substring(index);
System.out.println(needStr);
}
}

} catch (IOException e) {
e.printStackTrace();
}
}
}
Loading