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
134 changes: 134 additions & 0 deletions src/ru/skypro/Main.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,141 @@
package ru.skypro;

import ru.skypro.exceptions.WrongRightsException;
import ru.skypro.transport.*;

import java.util.*;

public class Main {
public static void main(String[] args){
List<Transport> cars = new ArrayList<>();
List<Sponsor> sponsors = new ArrayList<>();
List<Driver> drivers = new ArrayList<>();

cars.add(new Car("ad1","asd",2.2,CarBody.Универсал));
cars.add(new Car("as2","a6sd",2.2,CarBody.Универсал));
cars.add(new Bus("as3","a7sd",2.2,BusType.малая));
cars.add(new Truck("ag4","8asd",2.2,TruckBody.N2));

sponsors.add(new Sponsor("asdf1", 1234));
sponsors.add(new Sponsor("asdf2", 12345));
sponsors.add(new Sponsor("asdf3", 123465));
sponsors.add(new Sponsor("asdf4", 1234567));
try {
drivers.add(new DriverB("asd1", true, 2, (Car) cars.get(0)));
drivers.add(new DriverB("asd2", true, 2, (Car) cars.get(1)));
drivers.add(new DriverD("asd3", true, 2, (Bus) cars.get(2)));
drivers.add(new DriverC("asd4", true, 2, (Truck) cars.get(3)));
}
catch (WrongRightsException e){
System.out.println(e);
}
Mechanic mech1 = new Mechanic("a","b","asd",List.of("Car"));
Mechanic mech2 = new Mechanic("c","d","dsa",List.of("Bus","Truck"));

cars.get(0).addMechanic(mech1);
cars.get(1).addMechanic(mech1);
cars.get(2).addMechanic(mech1);
cars.get(2).addMechanic(mech2);
cars.get(3).addMechanic(mech2);
cars.get(0).setDriver(drivers.get(0));
cars.get(1).setDriver(drivers.get(1));
cars.get(2).setDriver(drivers.get(2));
cars.get(3).setDriver(drivers.get(3));
cars.get(0).addSponsor(sponsors.get(0));
cars.get(1).addSponsor(sponsors.get(1));
cars.get(2).addSponsor(sponsors.get(0));
cars.get(3).addSponsor(sponsors.get(1));
cars.get(0).addSponsor(sponsors.get(2));
cars.get(1).addSponsor(sponsors.get(3));
var texhStantion = new TechStantion<>();
for (Transport car: cars) {
System.out.println(
"Для машины: " +car.toString()+"\n"+
"Водитель: " + car.getDriver().toString()+"\n"+
"Спонсоры: " + car.getSponsorsList().toString()+"\n"+
"Механики: " + car.getMechanicList().toString()
);
texhStantion.addToQueue(car);
}
texhStantion.doTechOsmotr();
texhStantion.doTechOsmotr();
texhStantion.doTechOsmotr();
texhStantion.doTechOsmotr();
texhStantion.doTechOsmotr();

//Part 2
List<Queue<String>> q1 = new ArrayList<>();
q1.add(new ArrayDeque<>(5));
q1.add(new ArrayDeque<>(5));
q1.get(0).offer("11");
q1.get(0).offer("12");
q1.get(0).offer("13");
q1.get(0).offer("14");
q1.get(0).offer("15");
q1.get(1).offer("16");
addInSomeQueue(q1,"qs1");
addInSomeQueue(q1,"qs2");
addInSomeQueue(q1,"qs3");
addInSomeQueue(q1,"qs4");
addInSomeQueue(q1,"qs5");
addInSomeQueue(q1,"qs6");
addInSomeQueue(q1,"qs7");
addInSomeQueue(q1,"qs8");
addInSomeQueue(q1,"qs9");
removeFromSomeQueue(q1);
removeFromSomeQueue(q1);
removeFromSomeQueue(q1);
removeFromSomeQueue(q1);
for (var qqq: q1
) {
System.out.println(qqq.size());
}

//Часть 3
List<List<String>> biDemArrList = new ArrayList<>();
// int ourNumber = biDemArrList.get(0).get(1)
// List> biDemArrList = new ArrayList<>();
for (int i = 0; i < 8; i++) {
biDemArrList.add(i, new ArrayList<>());
for (int j = 0; j < 8; j++) {
biDemArrList.get(i).add(j, (i+j)%2==1?"●":"◯");
}
}
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
System.out.print(biDemArrList.get(i).get(j) + " ");
}
System.out.println("\n");
}
}

private static void addInSomeQueue(List<Queue<String>> q1, String val){
Queue<String> minindex;
int coun = 99;
boolean addded = false;
minindex=q1.get(0);
for (var qqq: q1
) {
System.out.println(qqq.size());
if (qqq.size()==5) { continue;}
if (coun >= qqq.size()) {
coun = qqq.size();
minindex = qqq;
addded = true;
}
}
if (!addded){
System.out.println("полное заполнение всех очередей");
q1.add(new ArrayDeque<>(5));
minindex = q1.get(q1.size()-1);
}
minindex.offer(val);
// System.out.println(q1.get(0).size());
// System.out.println(q1.get(1).size());
}

private static void removeFromSomeQueue(List<Queue<String>> q1){
int num = (int) Math.round(Math.random()* (q1.size()-1));
q1.get(num).poll();
}
}
50 changes: 50 additions & 0 deletions src/ru/skypro/Mechanic.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package ru.skypro;

import java.util.List;

public class Mechanic {
private final String firstName;
private final String lastName;
private final String companyName;
private final List<String> listCarTypes;

public Mechanic(String firstName, String lastName, String companyName, List<String> listCarTypes) {
this.firstName = firstName;
this.lastName = lastName;
this.companyName = companyName;
this.listCarTypes = listCarTypes;
}

public String getFirstName() {
return firstName;
}

public String getLastName() {
return lastName;
}

public String getCompanyName() {
return companyName;
}

public List<String> getListCarTypes() {
return listCarTypes;
}

private void provestiTechObsluzhivanie(){

}
private void repairCar(){

}

@Override
public String toString() {
return "Mechanic{" +
"firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
", companyName='" + companyName + '\'' +
", listCarTypes=" + listCarTypes +
'}';
}
}
25 changes: 25 additions & 0 deletions src/ru/skypro/Sponsor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package ru.skypro;

public class Sponsor {
private final String name;
private final Integer sumSupport;

public Sponsor(String name, Integer sumSupport) {
this.name = name;
this.sumSupport = sumSupport;
}

public String getName() {
return name;
}

private void sponsirovatZaezd(){}

@Override
public String toString() {
return "Sponsor{" +
"name='" + name + '\'' +
", sumSupport=" + sumSupport +
'}';
}
}
7 changes: 7 additions & 0 deletions src/ru/skypro/exceptions/DiagnosticFailException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package ru.skypro.exceptions;

public class DiagnosticFailException extends Exception{
public DiagnosticFailException() {
super("программа должна выбросить ошибку.");
}
}
8 changes: 8 additions & 0 deletions src/ru/skypro/exceptions/WrongRightsException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package ru.skypro.exceptions;

public class WrongRightsException extends Exception{

public WrongRightsException() {
super("Необходимо указать тип прав!");
}
}
32 changes: 32 additions & 0 deletions src/ru/skypro/transport/Bus.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package ru.skypro.transport;

public class Bus extends Transport implements Competitive {

public Bus(String brand, String model, Double engineVolume, BusType type) {
super(brand, model, engineVolume, type);
}

@Override
public void startMoving() {
super.startMoving();
}

@Override
public void stopMoving() {
super.stopMoving();
}
@Override
public void pitStop() {
System.out.println("false");
}

@Override
public void maxSpeed() {
System.out.println("200");
}

@Override
public void bestTime() {
System.out.println("9.00");
}
}
11 changes: 11 additions & 0 deletions src/ru/skypro/transport/BusType.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package ru.skypro.transport;

public enum BusType {

особо_малая ,
малая ,
средняя,
большая,
особо_большая

}
39 changes: 39 additions & 0 deletions src/ru/skypro/transport/Car.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package ru.skypro.transport;

import ru.skypro.exceptions.DiagnosticFailException;

public class Car extends Transport implements Competitive{
public Car(String brand, String model, Double engineVolume, CarBody type) {
super(brand, model, engineVolume, type);
}

@Override
public void startMoving() {
super.startMoving();
}

@Override
public void stopMoving() {
super.stopMoving();
}

@Override
public void pitStop() {
System.out.println("false");
}

@Override
public void maxSpeed() {
System.out.println("160");
}

@Override
public void bestTime() {
System.out.println("10.00");
}

@Override
public Boolean diagnostic() {
return this.getEngineVolume() >= 2;
}
}
15 changes: 15 additions & 0 deletions src/ru/skypro/transport/CarBody.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package ru.skypro.transport;

public enum CarBody {

Седан,
Хетчбек,
Купе,
Универсал,
Внедорожник,
Кроссовер,
Пикап,
Фургон,
Минивэн

}
7 changes: 7 additions & 0 deletions src/ru/skypro/transport/Competitive.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package ru.skypro.transport;

public interface Competitive {
void pitStop();
void maxSpeed();
void bestTime();
}
43 changes: 43 additions & 0 deletions src/ru/skypro/transport/Driver.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package ru.skypro.transport;

import ru.skypro.exceptions.WrongRightsException;

public abstract class Driver{

private final Transport transport;
private String fio;
private Boolean haveRights;
private Integer stazh;

public Driver(String fio, Boolean haveRights, Integer stazh, Transport transport) throws WrongRightsException {
this.fio = fio;
this.haveRights = haveRights;
this.stazh = stazh;
if (transport == null) {
throw new WrongRightsException();
} else {
this.transport = transport;
};
}

public void startMoving(){
transport.startMoving();
}
public void stopMoving(){
transport.stopMoving();

}
public void refill(){
System.out.println("водитель "+fio+" управляет автомобилем "+transport.getBrand()+" "+transport.getModel()+" и будет участвовать в заезде");
}

@Override
public String toString() {
return "Driver{" +
"transport=" + transport +
", fio='" + fio + '\'' +
", haveRights=" + haveRights +
", stazh=" + stazh +
'}';
}
}
9 changes: 9 additions & 0 deletions src/ru/skypro/transport/DriverB.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package ru.skypro.transport;

import ru.skypro.exceptions.WrongRightsException;

public class DriverB extends Driver{
public DriverB(String fio, Boolean haveRights, Integer stazh, Car transport) throws WrongRightsException {
super(fio, haveRights, stazh, transport);
}
}
Loading