Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

laba

.txt
Скачиваний:
5
Добавлен:
18.10.2022
Размер:
7.47 Кб
Скачать
using System.Threading;
using System;

namespace Laba3
{
public class AVehicle
{
enum Colors
{
красный,
зеленый,
синий,
желтый,
черный,
белый
}
public virtual void VehicleColor()
{
Random random = new Random();
int colorNumber = random.Next(1, 3);
Colors color = (Colors)Enum.GetValues(typeof(Colors)).GetValue(colorNumber);
Console.WriteLine($"Цвет: {color}");

}
public virtual int VehicleNumber()
{
Random random = new Random();
int number1 = random.Next(0, 10);
int number2 = random.Next(0, 10);
int number3 = random.Next(0, 10);
Console.WriteLine($"Номер: {number1}" + $"{number2}" + $"{number3}");
return number1;
}

public virtual void Passager()
{
Random random = new Random();
int passager = random.Next(0, 2);
if (passager == 1)
{
Console.WriteLine("Присутствует пассажир на переднем сидении");
}
else
{
Console.WriteLine("Отсутствует пассажир на переднем сидении");
}
}
public virtual void BodyType()
{

}

public virtual int GetSpeed()
{
Random random = new Random();
int speed = random.Next(90, 151);
Console.WriteLine($"Скорость: {speed}");
return speed;
}

/*public int Checking()
{
VehicleColor();
Passager();
BodyType();
int speed = GetSpeed();
return speed;
}
public int CheckSpeed(int speed, int k)
{
if (speed > 110)
{
k++;
}
return k;
}
public int CheckStolen(AVehicle vehicle, int c)
{
int stolen = vehicle.VehicleNumber();
if (stolen == 6)
{
c++;
}
return c;
}*/
}

public static class AVehicleExtension
{
public static int Checking(this AVehicle vehicle)
{
vehicle.VehicleColor();
vehicle.Passager();
vehicle.BodyType();
int speed = vehicle.GetSpeed();
return speed;
}
public static int CheckSpeed(this AVehicle vehicle,int speed, int k)
{
if (speed > 110)
{
k++;
}
return k;
}
public static int CheckStolen(this AVehicle vehicle, int c)
{
int stolen = vehicle.VehicleNumber();
if (stolen == 6)
{
c++;
}
return c;
}
}
class Car : AVehicle
{
public override int GetSpeed()
{
Random random = new Random();
int speed = random.Next(90, 151);
Console.WriteLine($"Скорость: {speed}");
return speed;
}
public override void BodyType()
{
Console.WriteLine($"Тип: легковой автомобиль");
}
}

class Truck : AVehicle
{
public override int GetSpeed()
{
Random random = new Random();
int speed = random.Next(70, 101);
Console.WriteLine($"Скорость: {speed}");
return speed;
}
public override void BodyType()
{
Console.WriteLine($"Тип: грузовой автомобиль");
}
}

class Bus : AVehicle
{
public override int GetSpeed()
{
Random random = new Random();
int speed = random.Next(80, 111);
Console.WriteLine($"Скорость: {speed}");
return speed;
}
public override void BodyType()
{
Console.WriteLine($"Тип: автобус");
}
}

class Checkpoint
{
/* public int Checking(AVehicle vehicle)
{
vehicle.VehicleColor();
vehicle.Passager();
vehicle.BodyType();
int speed = vehicle.GetSpeed();
return speed;
}
public int CheckSpeed(int speed, int k)
{
if (speed > 110)
{
k++;
}
return k;
}
public int CheckStolen(AVehicle vehicle, int c)
{
int stolen = vehicle.VehicleNumber();
if (stolen == 6)
{
c++;
}
return c;
}*/
}

class Program
{
static void Main(string[] args)
{
var bus = new Bus();
var car = new Car();
var truck = new Truck();
var random = new Random();
int countOverSpeed = 0;
int speed = 0;
int countStolen = 0;
int count = 0;
int countCar = 0;
int countBus = 0;
int countTruck = 0;
while (!Console.KeyAvailable)
{
count++;
int numberOfTask = random.Next(0, 3);
AVehicle vehicle = new AVehicle();
if (numberOfTask == 0)
{
speed = vehicle.Checking();
countOverSpeed = vehicle.CheckSpeed(speed, countOverSpeed);
countStolen = vehicle.CheckStolen(countStolen);
countCar++;
}
else if (numberOfTask == 1)
{
speed = vehicle.Checking();
countOverSpeed = vehicle.CheckSpeed(speed, countOverSpeed);
countStolen = vehicle.CheckStolen(countStolen);
countBus++;
}
else
{
speed = vehicle.Checking();
countOverSpeed = vehicle.CheckSpeed(speed, countOverSpeed);
countStolen = vehicle.CheckStolen(countStolen);
countTruck++;
}
Console.WriteLine();
Thread.Sleep(random.Next(500, 5001));
}
Console.WriteLine();
Console.WriteLine($"Количество автомобилей: {count}");
Console.WriteLine($"Количество легковых автомобилей: {countCar}");
Console.WriteLine($"Количество автобусов: {countBus}");
Console.WriteLine($"Количество грузовых автомобилей: {countTruck}");
Console.WriteLine($"Количество превышений скорости: {countOverSpeed}");
Console.WriteLine($"Количество угнанных автомобилей: {countStolen}");



}
}
}
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]