• Октября 23, 2020, 01:47:29 pm
• Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Новости: Вебинар по выбору IT профессии: http://bit.ly/2S4kcC6

Автор Тема: Java_OOP_Alexander_Beresteyka_11_01_2020  (Прочитано 859 раз)

Random

  • Пользователи
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: Java_OOP_Alexander_Beresteyka_11_01_2020
« Ответ #15 : Января 17, 2020, 12:34:41 am »
Задача с телефонами

package com.gmail.iaroslavakorenovska;

public class Phone {

// Fields
private int number;
private String model;
private Network network;

// Constructors

public Phone(int number, Network network) {
super();
this.number = number;
this.network = network;
}

public Phone(int number) {
super();
this.number = number;
}

public Phone() {
super();
}

// Getters&Setters
public int getNumber() {
return number;
}

public void setNumber(int number) {
this.number = number;
}

public String getModel() {
return model;
}

public void setModel(String model) {
this.model = model;
}

public Network getNetwork() {
return network;
}

public void setNetwork(Network network) {
this.network = network;
}

// Methods

public boolean exist(Network network) {
boolean p = false;
for (int i = 0; i < network.getNet().length; i++) {
if (number == network.getNet()[i]) {
p = true;
this.setNetwork(network);
break;
}
}
return p;
}

public void register(Network network) {
if (exist(network) == false) {
int[] newNet = new int[network.getNet().length + 1];
System.arraycopy(network.getNet(), 0, newNet, 0, network.getNet().length);
newNet[network.getNet().length] = number;
network.setNet(newNet);
System.out.println("Your number successfully registered in the Network");
} else {
System.out.println("This number has been already existed in the Network");
}
}

public void inCall(int number) {
System.out.println(number + " is calling to you");
}

public void call(int number, Network network) {
Phone newPhone = new Phone(number);
if (this.number == number) {
System.out.println("You can't call to yourself");
} else {
if (newPhone.exist(network)) {
newPhone.inCall(this.number);
} else {
System.out.println("This number doesn't exist!");
}
}

}


package com.gmail.iaroslavakorenovska;

import java.util.Arrays;

public class Network {

//Fields
private String name;
private int[] net;

// Constructors
public Network(String name, int[] net) {
super();
this.name = name;
this.net = net;
}

public Network() {
super();
}

// Getters&Setters
public String getName() {
return name;
}

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

public int[] getNet() {
return net;
}

public void setNet(int[] net) {
this.net = net;
}

// Methods

public boolean numberInNet(int number) {
boolean p = false;
for (int i = 0; i < this.getNet().length; i++) {
if (number == this.getNet()[i]) {
p = true;
break;
}
}
return p;
}

@Override
public String toString() {
return "Network [name=" + name + ", net=" + Arrays.toString(net) + "]";
}

}

package com.gmail.iaroslavakorenovska;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub

// Create Network1
int[] net1 = new int[1000000000];
for (int i = 0; i < net1.length; i++) {
net1[i] = i;
}

Network network1 = new Network("New Network1", net1);

//Create Network2

int[] net2 = new int[100];
net2[0] = (int) (Math.random() * 10000000000L + 1000000000);
for (int i = 1; i < net2.length; i++) {
net2[i] = net2[i - 1] + 1;
}

Network network2 = new Network("New Network2", net2);
//Create Phones
Phone phone1 = new Phone(1234567);
System.out.println(phone1.exist(network1));
phone1.register(network1);

Phone phone2 = new Phone(1234567870);
System.out.println(phone2.exist(network2));
phone2.register(network2);

Phone phone3 = new Phone(123);
System.out.println(phone3.exist(network1));
phone3.register(network1);

//Lets call
phone1.call(phone3.getNumber(), network1);
phone1.call(phone3.getNumber(), network2);
phone2.call(phone1.getNumber(), network1);
phone3.call(phone1.getNumber(), network1);
phone3.call(phone2.getNumber(), network2);

}

}

Ts.Tatyana

  • Пользователи
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Java_OOP_Alexander_Beresteyka_11_01_2020
« Ответ #16 : Января 17, 2020, 12:12:54 pm »
 Описать класс «Triangle». В качестве свойств возьмите длины сторон треугольника. Реализуйте метод, который будет возвращать площадь этого треугольника. Создайте несколько объектов этого класса и протестируйте их
package com.gmail.ts;

import java.lang.Math;

public class Triangle {
private double a;
private double b;
private double c;

public Triangle(double a, double b, double c) {
super();
this.a = a;
this.b = b;
this.c = c;
}

public double getA() {
return a;
}

public void setA(double a) {
this.a = a;
}

public double getB() {
return b;
}

public void setB(double b) {
this.b = b;
}

public double getC() {
return c;
}

public void setC(double c) {
this.c = c;
}

public double s() {
double p = (a + b + c) / 2;
double s = Math.sqrt(p * (p - a) * (p - b) * (p - c));
return s;
}

@Override
public String toString() {
return "Triangle [a=" + a + ", b=" + b + ", c=" + c + "]";
}
}
package com.gmail.ts;

public class Main {

public static void main(String[] args) {
Triangle a = new Triangle(5, 7, 3);
Triangle b = new Triangle(4, 6, 5);

System.out.println(a);
System.out.println(b);
System.out.println("Sa = " + a.s());
System.out.println("Sb = " + b.s());
}

}

Artem Khmelov

  • Пользователи
  • *
  • Сообщений: 4
    • Просмотр профиля
    • E-mail
Re: Java_OOP_Alexander_Beresteyka_11_01_2020
« Ответ #17 : Января 17, 2020, 09:05:13 pm »
Лекция 1 - Задачи 1-3

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 14222
    • Просмотр профиля
    • E-mail
Re: Java_OOP_Alexander_Beresteyka_11_01_2020
« Ответ #18 : Января 17, 2020, 11:10:31 pm »
Random
И опять вынужден вас расстроить. Как вы помните по условию у метода исходящий звонок должен быть только ОДИН параметр. У вас же:
        public void call(int number, Network network) {
Что не соответствует условию задания
Хотя решение уже весьма неплохое.

Ts.Tatyana
Решение верное

Artem Khmelov
Решение верное

Artem Khmelov

  • Пользователи
  • *
  • Сообщений: 4
    • Просмотр профиля
    • E-mail
Re: Java_OOP_Alexander_Beresteyka_11_01_2020
« Ответ #19 : Января 18, 2020, 12:31:51 am »
Лекция 2 - Задачи 1-3

Ts.Tatyana

  • Пользователи
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Java_OOP_Alexander_Beresteyka_11_01_2020
« Ответ #20 : Января 18, 2020, 12:32:40 am »
1. Создайте абстрактный класс Shape, в котором есть два абстрактных метода double getPerimetr() и double getArea(). 2. Создайте класс Point, в котором есть два свойства double x double y. 3. Создайте классы, которые описывают, как минимум, три геометрические фигуры (они должны быть подклассами Shape). При этом они в качестве свойств должны содержать классы Point.
package com.gmail.ts;

public abstract class Shape{
abstract double getPerimetr();
abstract double getArea();
}
package com.gmail.ts;

public class Point {
private double x;
private double y;

public Point(double x, double y) {
super();
this.x = x;
this.y = y;
}

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 getLength(Point n) {
return Math.sqrt(Math.pow(this.x - n.x, 2) + Math.pow(this.y - n.y, 2));
}

@Override
public String toString() {
return "Point [x=" + x + ", y=" + y + "]";
}

}
package com.gmail.ts;

public class Square extends Shape {
private Point a;
private Point b;
private Point c;
private Point d;

public Square(Point a, Point b, Point c, Point d) {
super();
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}

public Point getA() {
return a;
}

public void setA(Point a) {
this.a = a;
}

public Point getB() {
return b;
}

public void setB(Point b) {
this.b = b;
}

public Point getC() {
return c;
}

public void setC(Point c) {
this.c = c;
}

public Point getD() {
return d;
}

public void setD(Point d) {
this.d = d;
}

@Override
double getPerimetr() {
return a.getLength(b)+b.getLength(c)+c.getLength(d)+d.getLength(a);
}

@Override
double getArea() {
return Math.pow(a.getLength(b), 2);
}

}
package com.gmail.ts;

public class Triangle extends Shape {
private Point a;
private Point b;
private Point c;

public Triangle(Point a, Point b, Point c) {
super();
this.a = a;
this.b = b;
this.c = c;
}

public Point getA() {
return a;
}

public void setA(Point a) {
this.a = a;
}

public Point getB() {
return b;
}

public void setB(Point b) {
this.b = b;
}

public Point getC() {
return c;
}

public void setC(Point c) {
this.c = c;
}

@Override
double getPerimetr() {
return a.getLength(b) + b.getLength(c) + c.getLength(a);
}

@Override
double getArea() {
double p = (a.getLength(b) + b.getLength(c) + c.getLength(a)) / 2;
return Math.sqrt(p * (p - a.getLength(b)) * (p - b.getLength(c)) * (p - c.getLength(a)));
}

}
package com.gmail.ts;

public class Circle extends Shape {
private Point o;
private Point a;

public Circle(Point o, Point a) {
super();
this.o = o;
this.a = a;
}

public Point getO() {
return o;
}

public void setO(Point o) {
this.o = o;
}

public Point getA() {
return a;
}

public void setA(Point a) {
this.a = a;
}

@Override
double getPerimetr() {
return 2 * Math.PI * o.getLength(a);
}

@Override
double getArea() {
return Math.PI * Math.pow(o.getLength(a), 2);
}

}
package com.gmail.ts;

public class Main {

public static void main(String[] args) {

Point a = new Point(3, 3);
Point b = new Point(4, 10);
Point c = new Point(1, 5);
Point d = new Point(2, 8);

Triangle triangle = new Triangle(a, b, c);

System.out.println("S triangle = " + triangle.getArea());
System.out.println("P triangle = " + triangle.getPerimetr());

Square square = new Square(a, b, c, d);

System.out.println("P square = " + square.getPerimetr());
System.out.println("S square = " + square.getArea());

Circle circle = new Circle(a, b);

System.out.println("P circle = " + circle.getPerimetr());
System.out.println("S circle = " + circle.getArea());
}

}

Nikolay30

  • Пользователи
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: Java_OOP_Alexander_Beresteyka_11_01_2020
« Ответ #21 : Января 18, 2020, 10:50:17 am »
1. Создайте абстрактный класс Shape, в котором есть два абстрактных метода double getPerimetr() и double getArea(). 2. Создайте класс Point, в котором есть два свойства double x double y. 3. Создайте классы, которые описывают, как минимум, три геометрические фигуры (они должны быть подклассами Shape). При этом они в качестве свойств должны содержать классы Point.
package net.ukr.FANT0Mas;

public abstract class Shape {
abstract double getPerimetr();

abstract double getArea();

}


package net.ukr.FANT0Mas;

public class Point {
private double x;
private double y;

public Point(double x, double y) {
super();
this.x = x;
this.y = y;

}

public Point() {
super();
}

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 distance(Point X) {
return Math.sqrt(Math.pow(this.x - X.x, 2) + Math.pow(this.y - X.y, 2));
}

}


package net.ukr.FANT0Mas;

public class Triangle extends Shape {
private Point A;
private Point B;
private Point C;

public Triangle(Point A, Point B, Point C) {
super();
this.A = A;
this.B = B;
this.C = C;
}

public Triangle() {
super();
}

public Point getA() {
return A;
}

public void setA(Point a) {
A = a;
}

public Point getB() {
return B;
}

public void setB(Point b) {
B = b;
}

public Point getC() {
return C;
}

public void setC(Point c) {
C = c;
}

@Override
double getPerimetr() {
return A.distance(B) + B.distance(C) + C.distance(A);
}

@Override
double getArea() {
double p = getPerimetr() / 2;
return Math.sqrt(p * (p - A.distance(B)) * (p - B.distance(C)) * (p - C.distance(A)));
}
}


package net.ukr.FANT0Mas;

public class Circle extends Shape {
private Point A;
private Point B;

public Circle(Point A, Point B) {
super();
this.A = A;
this.B = B;
}

public Circle() {
return;
}

public Point getA() {
return A;
}

public void setA(Point a) {
A = a;
}

public Point getB() {
return B;
}

public void setB(Point b) {
B = b;
}

@Override
double getPerimetr() {
return A.distance(B) * 2 * Math.PI;
}

@Override
double getArea() {
return A.distance(B) * 2 * Math.PI * A.distance(B);
}

}


package net.ukr.FANT0Mas;

public class MainTask {

public static void main(String[] args) {
Point A = new Point(2.2, 3.1);
Point B = new Point(4.3, 5.1);
Point C = new Point(1, 7);

Triangle tr = new Triangle(A, B, C);
System.out.println("Perimetr treygolnika = " + tr.getPerimetr());
System.out.println("Ploshad treygolnika = " + tr.getArea());
Circle cr=new Circle(A,B);
System.out.println("Perimetr kruga = "+cr.getPerimetr());
System.out.println("Ploshad kruga = "+cr.getArea());
}

}


e.tulyulyuk

  • Пользователи
  • *
  • Сообщений: 2
    • Просмотр профиля
    • E-mail
Re: Java_OOP_Alexander_Beresteyka_11_01_2020
« Ответ #22 : Января 18, 2020, 12:57:25 pm »
1) Описать класс «Cat» (в качестве образца можно взять домашнего питомца).
Наделить его свойствами и методами. Создать несколько экземпляров объектов
этого класса. Использовать эти объекты

cat.java
package com.gmail.elena;

public class cat {

private String name;
private String sex;
private double age;
private String color;
private String food;

public cat(String name, String sex, double age, String color, String food) {

this.name = name;
this.sex = sex;
this.age = age;
this.color = color;
this.food = food;

}

public cat() {
super();
}

public String getName() {
return name;
}

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

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

public double getAge() {
return age;
}

public void setAge(double age) {
this.age = age;
}

public String getColor() {
return color;
}

public void setColor(String color) {
this.color = color;
}

public String getFood() {
return food;
}

public void setFood(String food) {
this.food = food;
}

public void getVoice() {
System.out.println("Мяу-мяу");
}

@Override
public String toString() {
return "[nameCat=" + name + ", sex=" + sex + ", age=" + age + ", color=" + color + ", food=" + food + "]";
}

}


Main.java
package com.gmail.elena;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub

cat cat1 = new cat("Mur", "Women", 5, "Black", "Milk");
System.out.println(cat1);
cat1.getVoice();

System.out.println();

cat cat2 = new cat("Rizhik", "Men", 2, "Orange", "Feed");
System.out.println(cat2);
cat2.getVoice();
}

}


Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 14222
    • Просмотр профиля
    • E-mail
Re: Java_OOP_Alexander_Beresteyka_11_01_2020
« Ответ #23 : Января 18, 2020, 11:08:12 pm »
Artem Khmelov
Решение верное


Ts.Tatyana
Решение верное

Nikolay30
Имена переменных в Java принято записывать с маленькой буквы. Так что такие имена неудачны:

public class Triangle extends Shape {
        private Point A;
        private Point B;
        private Point C;

Имена стоит записывать с маленькой буквы.
В остальном решение верное

Е.tulyulyuk
Имена классов принято записывать с большой буквы. Так, что такие имена не верны.

public class cat {
Имен классов следует записывать с Большой буквы

В остальном решение верное.

Random

  • Пользователи
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: Java_OOP_Alexander_Beresteyka_11_01_2020
« Ответ #24 : Января 22, 2020, 12:59:11 am »
Задача. Создайте класс, описывающий человека (создайте метод, выводящий информацию о человеке).
На его основе создайте класс студент (переопределите метод вывода информации).
Создайте класс Группа, который содержит массив из 10 объектов класса Студент.
Реализуйте методы добавления, удаления студента и метод поиска студента по фамилии.
В случае попытки добавления 11 студента, создайте собственное исключение и обработайте его.

package com.gmail.iaroslavakorenovska;

public class Human {


//Fields
private String name;
private String surname;
private int age;
private boolean sex;

//Constructors
public Human(String name, String surname, int age, boolean sex) {
super();
this.name = name;
this.surname = surname;
this.age = age;
this.sex = sex;
}

public Human() {
super();
}

//Getters&Setters

public String getName() {
return name;
}

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

public String getSurname() {
return surname;
}

public void setSurname(String surname) {
this.surname = surname;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public boolean isSex() {
return sex;
}

public void setSex(boolean sex) {
this.sex = sex;
}

//Methods

public void info() {
System.out.println("Human: [name=" + name + ", surname= " + surname + ", age= " + age + ", sex= " + sex + "]");
}

@Override
public String toString() {
return "Human [name=" + name + ", surname=" + surname + ", age=" + age + ", sex=" + sex + "]";
}

}

package com.gmail.iaroslavakorenovska;

public class Student extends Human {

// Fields
private int numberOfGroup;
private int numberOfRecordBook;

// Constructors
public Student(String name, String surname, int age, boolean sex, int numberOfGroup, int numberOfRecordBook) {
super(name, surname, age, sex);
this.numberOfGroup = numberOfGroup;
this.numberOfRecordBook = numberOfRecordBook;
}

public Student(String name, String surname, int age, boolean sex) {
super(name, surname, age, sex);
}

public Student() {
super();
}

// Getters&Setters
public int getNumberOfGroup() {
return numberOfGroup;
}

public void setNumberOfGroup(int numberOfGroup) {
this.numberOfGroup = numberOfGroup;
}

public int getNumberOfRecordBook() {
return numberOfRecordBook;
}

public void setNumberOfRecordBook(int numberOfRecordBook) {
this.numberOfRecordBook = numberOfRecordBook;
}

// Methods
@Override
public void info() {
System.out.println("Student: [name=" + super.getName() + ", surname= " + super.getSurname() + ", age= "
+ super.getAge() + ", sex= " + super.isSex() + ", numberOfGroup=" + numberOfGroup
+ ", numberOfRecordBook=" + numberOfRecordBook + "]");
}

@Override
public String toString() {
return "Student: "+ super.toString()+ "[numberOfGroup=" + numberOfGroup + ", numberOfRecordBook=" + numberOfRecordBook + "]";
}
}

package com.gmail.iaroslavakorenovska;

import java.util.Arrays;

public class Group {

//Fields
private Student[] group = new Student[10];

//Constructors
public Group(Student[] group) {
super();
this.group = group;
}

public Group() {
super();
}

// Getters&Setters
public Student[] getGroup() {
return group;
}

public void setGroup(Student[] group) {
this.group = group;
}

// Methods
public int searchStudentInGroup(Student student) {
int numberInGroup = -1;
for (int i = 0; i < 10; i++) {
try {
if (group[i].getNumberOfRecordBook() == student.getNumberOfRecordBook()) {
numberInGroup = i;
break;
}
} catch (NullPointerException e) {
numberInGroup = -1;
continue;
}
}
return numberInGroup;
}

public Student[] addStudentInGroup(Student student) {
try {
if (this.searchStudentInGroup(student) < 0) {
int j = -1;
for (int i = 0; i < 10; i++) {
if (group[i] == null) {
j = i;
group[i] = student;
break;
}
}
if (j < 0) {
throw new MyException();
}
} else {
System.out.println("You can't add this student because he studies in your group");
}
} catch (MyException e) {
System.out.println(e.toString());
}
return group;
}

public Student[] deleteStudentFromGroup(Student student) {
for (int i = 0; i < group.length; i++) {
if (group[i].getNumberOfRecordBook() == student.getNumberOfRecordBook()) {
group[i] = null;
break;
}
}
return group;
}

public Student searchStudentInGroupBySurname(String surname) {
Student student = new Student();
for (int i = 0; i < group.length; i++) {
if (group[i].getSurname().equalsIgnoreCase(surname)) {
student = group[i];
break;
}
}
return student;
}

// Если есть однофамильцы
public Student[] searchStudentsInGroupBySurname(String surname) {
Student[] studentsSameSurname = new Student[10];
for (int i = 0; i < group.length; i++) {
if (group[i].getSurname().equalsIgnoreCase(surname)) {
studentsSameSurname[i] = group[i];
continue;
}
}
return studentsSameSurname;
}

@Override
public String toString() {
return "Group [group=" + Arrays.toString(group) + "]";
}

}

package com.gmail.iaroslavakorenovska;

public class MyException extends Exception{

@Override
public String toString() {
return "Too many students in your group";
}

}

package com.gmail.iaroslavakorenovska;

import java.util.Arrays;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
Human human1 = new Human("Name1", "Surname1", 20, true);
human1.info();

// Create new group
Group group = new Group();

String name = "Name";
String surname = "Surname";
int age = 16;
boolean sex = true;
int numberOfGroup = 1;
int numberOfRecordBook = 1;

for (int i = 0; i < 10; i++) {
group.addStudentInGroup(
new Student(name + i, surname + i, age + i, sex, numberOfGroup, numberOfRecordBook + i));
sex = !sex;
}
System.out.println(group.toString());

// Methods control
group.addStudentInGroup(new Student("B", "Surname7", 16, true, 1, 11));

System.out.println(group.searchStudentInGroupBySurname("Surname7"));
System.out.println(Arrays.toString(group.searchStudentsInGroupBySurname("Surname7")));

group.deleteStudentFromGroup(group.getGroup()[0]);
System.out.println(group.toString());

group.addStudentInGroup(new Student("A", "Surname7", 16, true, 1, 0));
System.out.println(group.toString());

System.out.println(Arrays.toString(group.searchStudentsInGroupBySurname("Surname7")));

group.addStudentInGroup(new Student("A", "Surname7", 16, true, 1, 0));

}

}


Random

  • Пользователи
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: Java_OOP_Alexander_Beresteyka_11_01_2020
« Ответ #25 : Января 23, 2020, 01:23:35 pm »
Часть д\з по интерфейсам
Задача: Реализуйте возможность сортировки списка студентов по фамилии

package com.gmail.iaroslavakorenovska;

import java.util.Comparator;

public class BySurnameComparator implements Comparator {
@Override
public int compare(Object o1, Object o2) {
Student a = (Student) o1;
Student b = (Student) o2;

if (a != null && b == null) {
return 1;
}

if (a == null && b != null) {
return -1;
}
if (a == null && b == null) {
return 0;
}

else {

return a.getSurname().compareToIgnoreCase(b.getSurname());
}
}

}

Задача: Реализуйте интерфейс Военком, который вернет из группы массив студентов - юношей, которым больше 18 лет.

package com.gmail.iaroslavakorenovska;

public interface Voenkom {
public Student[] recrut();
}

package com.gmail.iaroslavakorenovska;

import java.util.Arrays;

public class Group implements Voenkom {

// Fields
private Student[] group = new Student[10];

//Constructors
public Group(Student[] group) {
super();
this.group = group;
}

public Group() {
super();
}

// Getters&Setters
public Student[] getGroup() {
return group;
}

public void setGroup(Student[] group) {
this.group = group;
}

// Methods
public int searchStudentInGroup(Student student) {
int numberInGroup = -1;
for (int i = 0; i < 10; i++) {
try {
if (group[i].getNumberOfRecordBook() == student.getNumberOfRecordBook()) {
numberInGroup = i;
break;
}
} catch (NullPointerException e) {
numberInGroup = -1;
continue;
}
}
return numberInGroup;
}

public Student[] addStudentInGroup(Student student) {
try {
if (this.searchStudentInGroup(student) < 0) {
int j = -1;
for (int i = 0; i < 10; i++) {
if (group[i] == null) {
j = i;
group[i] = student;
break;
}
}
if (j < 0) {
throw new MyException();
}
} else {
System.out.println("You can't add this student because he studies in your group");
}
} catch (MyException e) {
System.out.println(e.toString());
}
return group;
}

public Student[] deleteStudentFromGroup(Student student) {
for (int i = 0; i < group.length; i++) {
if (group[i].getNumberOfRecordBook() == student.getNumberOfRecordBook()) {
group[i] = null;
break;
}
}
return group;
}

public Student searchStudentInGroupBySurname(String surname) {
Student student = new Student();
for (int i = 0; i < group.length; i++) {
if (group[i].getSurname().equalsIgnoreCase(surname)) {
student = group[i];
break;
}
}
return student;
}

// Если есть однофамильцы
public Student[] searchStudentsInGroupBySurname(String surname) {
Student[] studentsSameSurname = new Student[10];
for (int i = 0; i < group.length; i++) {
if (group[i].getSurname().equalsIgnoreCase(surname)) {
studentsSameSurname[i] = group[i];
continue;
}
}
return studentsSameSurname;
}

@Override
public String toString() {
return "Group [group=" + Arrays.toString(group) + "]";
}

@Override
public Student[] recrut() {
Group recrutGroup = new Group();
for (int i = 0; i < this.getGroup().length; i++) {
try {
if ((this.getGroup()[i].getAge() > 18) && (this.getGroup()[i].isSex() == true)) {
recrutGroup.addStudentInGroup(this.getGroup()[i]);
}
} catch (NullPointerException e) {
continue;
}
}
return recrutGroup.getGroup();
}

}

package com.gmail.iaroslavakorenovska;

import java.util.Arrays;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
Human human1 = new Human("Name1", "Surname1", 20, true);
human1.info();

// Create new group
Group group = new Group();

String name = "Name";
String surname = "Surname";
int age = 16;
boolean sex = true;
int numberOfGroup = 1;
int numberOfRecordBook = 1;

for (int i = 0; i < 10; i++) {
group.addStudentInGroup(
new Student(name + i, surname + i, age + i, sex, numberOfGroup, numberOfRecordBook + i));
sex = !sex;
}
System.out.println(group.toString());

// Methods control

System.out.println("Recrut Group: " + Arrays.toString(group.recrut()));

Arrays.sort(group.getGroup(), new BySurnameComparator().reversed());
System.out.println(group.toString());

}

}

Random

  • Пользователи
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: Java_OOP_Alexander_Beresteyka_11_01_2020
« Ответ #26 : Января 23, 2020, 03:07:54 pm »
Задача: Реализуйте возможность сортировки списка студентов по параметру

package com.gmail.iaroslavakorenovska;

import java.util.Comparator;

public class ByParameterComparator implements Comparator {

private String parameter;

// Constructors

public ByParameterComparator() {
super();
}

public ByParameterComparator(String parameter) {
super();
this.parameter = parameter;
}

// Getters&Setters

public String getParameter() {
return parameter;
}

public void setParameter(String parameter) {
this.parameter = parameter;
}

public int compare(Object o1, Object o2) {
Student a = (Student) o1;
Student b = (Student) o2;

if (a != null && b == null) {
return 1;
}

if (a == null && b != null) {
return -1;
}
if (a == null && b == null) {
return 0;
}

if (this.parameter.equalsIgnoreCase("name") | (this.parameter.equalsIgnoreCase("1"))) {
return a.getName().compareToIgnoreCase(b.getName());
} else {
if (this.parameter.equalsIgnoreCase("surname") | (this.parameter.equalsIgnoreCase("2"))) {
return a.getSurname().compareToIgnoreCase(b.getSurname());
}
if (this.parameter.equalsIgnoreCase("age") | (this.parameter.equalsIgnoreCase("3"))) {
Integer aAge = a.getAge();
Integer bAge = b.getAge();
return aAge.compareTo(bAge);
} else {
return 0;

}
}
}

}

package com.gmail.iaroslavakorenovska;

import java.util.Arrays;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub

// Create new group
Group group = new Group();

String name = "Name";
String surname = "Surname";
int age = 16;
boolean sex = true;
int numberOfGroup = 1;
int numberOfRecordBook = 1;

for (int i = 0; i < 10; i++) {
group.addStudentInGroup(
new Student(name + i, surname + i, age + i, sex, numberOfGroup, numberOfRecordBook + i));
sex = !sex;
}
System.out.println(group.toString());

// Methods control

Arrays.sort(group.getGroup(), new ByParameterComparator("1").reversed());
System.out.println(group.toString());

Arrays.sort(group.getGroup(), new ByParameterComparator("SUrname"));
System.out.println(group.toString());

Arrays.sort(group.getGroup(), new ByParameterComparator("3").reversed());
System.out.println(group.toString());

}

}

feynss

  • Пользователи
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Java_OOP_Alexander_Beresteyka_11_01_2020
« Ответ #27 : Января 23, 2020, 04:10:47 pm »
1. Создайте абстрактный класс Shape, в котором есть два абстрактных метода double getPerimetr() и double getArea().
2. Создайте класс Point, в котором есть два свойства double x double y.
3. Создайте классы, которые описывают, как минимум, три геометрические фигуры (они должны быть подклассами Shape). При этом они в качестве свойств должны содержать классы Point.

package com.gmail.feynss;

public abstract class Shape{

abstract double getPerimetr();
abstract double getArea();
}

package com.gmail.feynss;

public class Point {

private double x;
private double y;

public Point(double x, double y) {
super();
this.x = x;
this.y = y;
}

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 getLength(Point n) {
return Math.sqrt(Math.pow(this.x - n.x, 2) + Math.pow(this.y - n.y, 2));
}

@Override
public String toString() {
return "Point [x=" + x + ", y=" + y + "]";
}

}

package com.gmail.feynss;

public class Square extends Shape {

private Point a;
private Point b;
private Point c;
private Point d;

public Square(Point a, Point b, Point c, Point d) {
super();
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}

public Point getA() {
return a;
}

public void setA(Point a) {
this.a = a;
}

public Point getB() {
return b;
}

public void setB(Point b) {
this.b = b;
}

public Point getC() {
return c;
}

public void setC(Point c) {
this.c = c;
}

public Point getD() {
return d;
}

public void setD(Point d) {
this.d = d;
}


package com.gmail.feynss;

public class Triangle extends Shape {

private Point a;
private Point b;
private Point c;

public Triangle(Point a, Point b, Point c) {
super();
this.a = a;
this.b = b;
this.c = c;
}

public Point getA() {
return a;
}

public void setA(Point a) {
this.a = a;
}

public Point getB() {
return b;
}

public void setB(Point b) {
this.b = b;
}

public Point getC() {
return c;
}

public void setC(Point c) {
this.c = c;
}

@Override
double getPerimetr() {
return a.getLength(b) + b.getLength(c) + c.getLength(a);
}

@Override
double getArea() {
double p = (a.getLength(b) + b.getLength(c) + c.getLength(a)) / 2;
return Math.sqrt(p * (p - a.getLength(b)) * (p - b.getLength(c)) * (p - c.getLength(a)));
}

}

package com.gmail.feynss;

public class Circle extends Shape {

private Point o;
private Point a;

public Circle(Point o, Point a) {
super();
this.o = o;
this.a = a;
}

public Point getO() {
return o;
}

public void setO(Point o) {
this.o = o;
}

public Point getA() {
return a;
}

public void setA(Point a) {
this.a = a;
}

@Override
double getPerimetr() {
return 2 * Math.PI * o.getLength(a);
}

@Override
double getArea() {
return Math.PI * Math.pow(o.getLength(a), 2);
}

}

package com.gmail.feynss;

public class Main {

public static void main(String[] args) {

Point a = new Point(3, 3);
Point b = new Point(4, 10);
Point c = new Point(1, 5);
Point d = new Point(2, 8);

Triangle triangle = new Triangle(a, b, c);

System.out.println("S triangle = " + triangle.getArea());
System.out.println("P triangle = " + triangle.getPerimetr());

Square square = new Square(a, b, c, d);

System.out.println("P square = " + square.getPerimetr());
System.out.println("S square = " + square.getArea());

Circle circle = new Circle(a, b);

System.out.println("P circle = " + circle.getPerimetr());
System.out.println("S circle = " + circle.getArea());
}

}

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 14222
    • Просмотр профиля
    • E-mail
Re: Java_OOP_Alexander_Beresteyka_11_01_2020
« Ответ #28 : Января 24, 2020, 12:00:01 am »
Random
А почему у вас метод добавления студента возвращает массив студентов?

        public Student[] addStudentInGroup(Student student) {
Метод
        public Student[] deleteStudentFromGroup(Student student) {
Нестабильный. Добавьте в группу только 3 студентов и попробуйте удалить студента которого в этой группе нет. Ваша программа слетит по исключению NullPointerException так как вы обратитесь к null.

Как и методы поиска

В остальном решение верное.


Feynss
Решение верное

Artem Khmelov

  • Пользователи
  • *
  • Сообщений: 4
    • Просмотр профиля
    • E-mail
Re: Java_OOP_Alexander_Beresteyka_11_01_2020
« Ответ #29 : Января 24, 2020, 12:24:53 am »
Лекция 3 - Задачи 1-3