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
86 changes: 77 additions & 9 deletions PhoneBook/src/PhoneBook.java
Original file line number Diff line number Diff line change
@@ -1,30 +1,98 @@
import java.util.Scanner;

public class PhoneBook {

public static void main(String[] args) {
//Добавить считывание ввода пользователя в цикле
int i = 0;
String[][] book = new String[20][2];
while (true) {
String name = "";
boolean mark = true;
String number = "";
System.out.println("Введите ФИО");
Scanner scanner = new Scanner(System.in);
boolean isCorrectName = false;
while (!isCorrectName) {
name = scanner.nextLine(); //Считывает строку из System.in
isCorrectName = checkName(name);
if (!isCorrectName) {
System.out.println("Введите корректное ФИО!");
} else {
name = formatName(name);
}
}

for (int r = 0; r < book.length; r++) {
if (name.equals(book[r][0])) {
System.out.println(book[r][0] + ":" + " " + book[r][1]);
mark = false;
break;
}
}
while (mark) {
number = printPhoneNumber(number);
book = add(book, name, number, i);
i++;
mark = false;
}
}
}

public static boolean checkPhoneNumber(String phoneNumber) {
return true;
public static String printPhoneNumber(String number) {
System.out.println("Введите номер");
Scanner scanner = new Scanner(System.in);
boolean isCorrectNumber = false;
while (!isCorrectNumber) {
number = scanner.nextLine(); //Считывает строку из System.in
isCorrectNumber = checkPhoneNumber(number);
if (!isCorrectNumber) {
System.out.println("Введите корректный номер!");
} else {
number = formatPhoneNumber(number);
}
}
return number;
}


public static boolean checkPhoneNumber(String number) {
String check = number.replaceAll("[^0-9]", "");
return check.length() == 11;

}

public static boolean checkName(String name) {
return true;
String[] check = name.split(" ");
return check.length == 3;

}

public static String formatName(String name) {
return "";
String[] format = name.split(" ");
return (format[0].substring(0, 1).toUpperCase() + format[0].substring(1) + " " + format[1].substring(0, 1).toUpperCase()
+ format[1].substring(1) + " " + format[2].substring(0, 1).toUpperCase() + format[2].substring(1));


}

public static String formatPhoneNumber(String number) {
return "";
String format = number.replaceAll("[^0-9]", "");

return ("+7" + " " + format.substring(1, 4) + " " + format.substring(4, 7) + " " + format.substring(7, 9) + " " + format.substring(9));
}

public static void add(String[][] book, String name, String number) {
//add logic
public static String[][] add(String[][] book, String name, String number, int i) {
book[i][0] = name;
book[i][1] = number;
list(book);
return book;
}

public static void list(String[][] book) {
//print phone book
for (int r = 0; r < book.length; r++) {
if (book[r][0] != null) {
System.out.println(book[r][0] + ":" + " " + book[r][1]);
}
}//print phone book
}
}
6 changes: 6 additions & 0 deletions StudentList/src/AutoChecked.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
public interface AutoChecked {

default void checkAutomatically() {
System.out.println("Задание без проверки метором");
}
}
19 changes: 19 additions & 0 deletions StudentList/src/DragAndDrop.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
class DragAndDrop extends Task implements AutoChecked {

private String[][] var;

public DragAndDrop(int numberOfTask, String task) {
super(numberOfTask, task);

// String [] s = new String[2];
// [0] [1]
// String [][] ss = new String[2][3];
// [[0] [1] [2]] [[0] [1] [2]]

this.var = new String[2][2];
var[0][0] = "вариант1";
var[0][1] = "вариант2";
var[1][0] = "вариант3";
var[1][1] = "вариант4";
}
}
82 changes: 55 additions & 27 deletions StudentList/src/Main.java
Original file line number Diff line number Diff line change
@@ -1,35 +1,63 @@
import java.util.Scanner;
import java.util.Random;

public class Main {
private static String addCommand = "add Василий Петров " +
"vasily.petrov@gmail.com +79787775747";
private static String commandExamples = "\t" + addCommand + "\n" +
"\tlist\n\tcount\n\tremove Василий Петров";
private static String commandError = "Wrong command! Available command examples: \n" +
commandExamples;
private static String helpText = "Command examples:\n" + commandExamples;

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
StudentStorage executor = new StudentStorage();
while (true) {
String command = scanner.nextLine();
String[] tokens = command.split("\\s+", 2);
if (tokens[0].equals("add")) {
executor.addStudent(tokens[1]);
} else if (tokens[0].equals("list")) {
executor.listStudent();
} else if (tokens[0].equals("get")) {
executor.getStudentByName(tokens[1]).toString();
} else if (tokens[0].equals("remove")) {
executor.removeStudent(tokens[1]);
} else if (tokens[0].equals("count")) {
System.out.println("There are " + executor.getCount() + " customers");
} else if (tokens[0].equals("help")) {
System.out.println(helpText);
} else {
System.out.println(commandError);
Task[] tasks = generateTasks();

Mentor firstMentor = new Mentor("Egor", 35);
Mentor secondMentor = new Mentor("Igor", 40);

Student[] students = new Student[4];

students[0] = new Student("Antonio", 89, firstMentor);
students[1] = new Student("Andrey", 35, secondMentor);
students[2] = new Student("Eugene", 30, secondMentor);
students[3] = new Student("Viktor", 30, firstMentor);

while (!doesNotEachStudentSolveAllTasks(students)) {
/*for (int i = 0; i < students.length - 1; i++) {
Student students = students[i];
}*/
for (Student student : students) {
int tasksToSolve = randomInt(5, tasks.length - 1);
student.solveTasks(tasks, tasksToSolve);
}
}
}

private static boolean doesNotEachStudentSolveAllTasks(Student[] students) {
boolean done = true;
for (Student student : students) {
boolean d = student.isAreAllTasksDone();
done &= d;
}
return done;

}

private static Task[] generateTasks() {
Task[] tasks = new Task[31];
for (int i = 0; i < 7; i++) {
Task t = new Test(i + 1, "Test Task " + (i + 1) + "text");
tasks[i] = t;
}
for (int i = 7; i < 18; i++) {
Task t = new DragAndDrop(i + 1, "DragAndDrop Task" + (i + 1) + "text");
tasks[i] = t;
}
for (int i = 18; i < 31; i++) {
Task t = new WriteCode(i + 1, "Write Code Task " + (i + 1) + " text");
tasks[i] = t;
}
return tasks;
}

public static int randomInt(int min, int max) {
Random random = new Random();
int diff = max - min;
int result = random.nextInt(diff + 1);
result += min;
return result;
}
}
30 changes: 30 additions & 0 deletions StudentList/src/Mentor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import java.util.Random;

public class Mentor extends Person implements Staff {

private boolean mood; // ?
private Random random = new Random(); // ?

public Mentor(String name, int age) {
super(name, age);
this.mood = true;
}

@Override
public void helpStudent(Student student) {
System.out.println(student.getName() + ", не унывай, все получится");
}

public boolean checkCode(Task task) {
int number = Main.randomInt(0, 2000);
if (number > 1000) {
mood = true;
System.out.println("[" + task.getTask() + "] was checked by [" + getName() + "]");
return true;
}
mood = false;
System.out.println("[" + task.getTask() + "] was not checked by [" + getName() + "]");
return false;
}
}

26 changes: 26 additions & 0 deletions StudentList/src/Person.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
public class Person {

private String name;
private int age;

public Person(String name, int age) {
this.name = name;
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}
}
8 changes: 8 additions & 0 deletions StudentList/src/Staff.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
public interface Staff {

void helpStudent(Student student);

default void addMaterials() {
System.out.println("https://habr.com/ru/all/");
}
}
105 changes: 64 additions & 41 deletions StudentList/src/Student.java
Original file line number Diff line number Diff line change
@@ -1,41 +1,64 @@
import java.util.UUID;

public class Student {

/**
* id студента
*/
private String id;

/**
* Имя студента
*/
private String name;

/**
* Телефон студента
*/
private String phone;

/**
* Почта студента
*/
private String eMail;

public Student(String name, String phone, String eMail) {
this.id = UUID.randomUUID().toString();
this.name = name;
this.phone = phone;
this.eMail = eMail;
}

@Override
public String toString() {
return "Student{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", phone='" + phone + '\'' +
", eMail='" + eMail + '\'' +
'}';
}
}
public class Student extends Person {

public static int tasksSum;

public int solvedTasks;
public Mentor mentor;
public boolean allTasksSolved = false;

public Student(String name, int age, Mentor mentor) {
super(name, age);
this.mentor = mentor;
this.solvedTasks = 0;
}

public int getSolvedTasks() {
return solvedTasks;
}

public void setSolvedTasks(int solvedTasks) {
this.solvedTasks = solvedTasks;
}

public Mentor getMentor() {
return mentor;
}

public void setMentor(Mentor mentor) {
this.mentor = mentor;
}

public boolean isAreAllTasksDone() {
return allTasksSolved;
}

public void solveTasks(Task[] tasks, int tasksToSolve) {
// solvedTasks = 2
// tasksToSolve = 2
// [0] [1] [2] [3] [4] [5]
System.out.println("[" + getName() + "] already solved [" + solvedTasks + "] and [" + tasksToSolve + "] new tasks to solve");
for (int i = solvedTasks; i < solvedTasks + tasksToSolve; i++) {

solveTask(tasks[i]);
if (solvedTasks >= tasks.length) {
allTasksSolved = true;
System.out.println("[" + getName() + "] solved all tasks!");
return;
} else {
allTasksSolved = false;
}
}

}

private void solveTask(Task task) {
if (task instanceof AutoChecked) {
((AutoChecked) task).checkAutomatically();
} else {
while (!mentor.checkCode(task)) {
}
}
solvedTasks++;
tasksSum++;
}
}
Loading