
ОП_отчет.odt_1
.pdfstatic int CountPassengersAboveAverage(int[] numbers, double average)
{
int count = 0;
foreach (int num in numbers)
{
if (num > average)
{
count++;
}
}
return count;
}
int numberOfPassengers = 10;
int[] numberOfItems = new int[numberOfPassengers]; double[] totalWeight = new double[numberOfPassengers];
for (int i = 0; i < numberOfPassengers; i++)
{
Console.WriteLine($"Пассажир {i + 1}:"); Console.Write("Введите количество вещей: "); numberOfItems[i] = int.Parse(Console.ReadLine()); Console.Write("Введите общий вес вещей: "); totalWeight[i] = double.Parse(Console.ReadLine());
}
double averageNumberOfItems = CalculateAverage(numberOfItems); int passengersAboveAverage =
CountPassengersAboveAverage(numberOfItems, averageNumberOfItems);
31

Console.WriteLine($"Число пассажиров, количество вещей которых превосходит среднее число вещей: {passengersAboveAverage}");
Результат работы программы представлен на рисунке 1.17
Рисунок 1.17 — Результат работы программы 5.1
1.6 Лабораторная работа №6. Коллекции
Задание 6.1:Разработайте консольное приложение на языке программирования C#, которое будет моделировать систему управления транспортными средствами на автостоянке. Реализуйте следующие функции, используя различные типы коллекций: List: Используйте список для хранения информации о транспортных средствах, припаркованных на стоянке. Реализуйте возможность добавления, удаления и поиска транспортных средств в списке. Stack: Создайте стек для моделирования системы стоянки с
32
ограниченным доступом. При добавлении нового транспортного средства на стоянку, его должно быть возможно поместить только вверху стека. При удалении транспортного средства оно должно быть извлечено с вершины стека. Queue: Реализуйте очередь для моделирования ожидания доступного места на стоянке. Когда на стоянке освобождается место, транспортное средство из очереди должно быть автоматически припарковано. Сценарии: добавление новых транспортных средств, их удаление, поиск, а также управление доступом к стоянке через стек и очередь.
Ниже представлен исходный код данной программы на языке программирования С sharp.
using System.Collections; using System.Numerics;
using System.Runtime.CompilerServices;
/// List \\\
static void List()
{
List<Vehicle> parkedVehicles = new List<Vehicle>(); do
{
Console.WriteLine("Выберите действие:"); Console.WriteLine("1. Добавить транспортное средство"); Console.WriteLine("2. Удалить транспортное средство"); Console.WriteLine("3. Найти транспортное средство"); Console.WriteLine("Нажмите Escape для выхода");
string ch = Console.ReadLine(); if (int.Parse(ch) == 1)
{
AddVehicle(parkedVehicles);
}
33
else if (int.Parse(ch) == 2)
{
RemoveVehicle(parkedVehicles);
}
else if (int.Parse(ch) == 3)
{
FindVehicle(parkedVehicles);
}
else if (int.Parse(ch) == 4) { break; }
}
while (true);
static void AddVehicle(List<Vehicle> parkedVehicles)
{
Console.WriteLine("Name: "); string name = Console.ReadLine(); Console.WriteLine("Numb: "); string Numb = Console.ReadLine();
Vehicle newV; newV.Name = name; newV.Numb = Numb;
parkedVehicles.Add(newV);
}
static void RemoveVehicle(List<Vehicle> parkedVehicles)
{
Console.WriteLine("Введите номер: "); string removenum = Console.ReadLine();
34
for (int i = 0; i < parkedVehicles.Count; i++)
{
if (parkedVehicles[i].Numb == removenum)
{
parkedVehicles.RemoveAt(i); return;
}
}
Console.WriteLine("Такого ср-ва нет.");
}
static void FindVehicle(List<Vehicle> parkedVehicles)
{
Console.WriteLine("Введите номер: "); string findnum = Console.ReadLine(); foreach (Vehicle vehicle in parkedVehicles)
{
if (vehicle.Numb == findnum)
{ Console.WriteLine($"{vehicle.Numb},{vehicle.Name}"); return; }
}
Console.WriteLine("Такого ср-ва нет.");
}
}
/// Stack \\\
static void Stack()
{
Stack<Vehicle> parkedVehiclesS = new Stack<Vehicle>();
35
do
{
Console.WriteLine("Выберите действие:"); Console.WriteLine("1. Добавить транспортное средство"); Console.WriteLine("2. Удалить транспортное средство"); Console.WriteLine("3. Найти транспортное средство"); Console.WriteLine("Нажмите Escape для выхода");
string ch = Console.ReadLine(); if (int.Parse(ch) == 1)
{
AddVehicleS(parkedVehiclesS);
}
else if (int.Parse(ch) == 2)
{
RemoveVehicleS(parkedVehiclesS);
}
else if (int.Parse(ch) == 3)
{
FindVehicleS(parkedVehiclesS);
}
else if (int.Parse(ch) == 4) { break; }
}
while (true);
static void AddVehicleS(Stack<Vehicle> parkedVehiclesS)
{
Console.WriteLine("Name: "); string name = Console.ReadLine(); Console.WriteLine("Numb: "); string Numb = Console.ReadLine();
36
Vehicle newV; newV.Name = name; newV.Numb = Numb;
parkedVehiclesS.Push(newV);
}
static void RemoveVehicleS(Stack<Vehicle> parkedVehiclesS)
{
if (parkedVehiclesS.Count > 0)
{ Vehicle removed = parkedVehiclesS.Pop(); Console.WriteLine($"Был убран {removed.Name} с номером {removed.Numb}"); return; }
else
{
Console.WriteLine("Ср-тв на стоянке нет");
}
}
static void FindVehicleS(Stack<Vehicle> parkedVehiclesS)
{
if (parkedVehiclesS.Count > 0)
{ Vehicle f = parkedVehiclesS.Peek(); Console.WriteLine($"Последнее ср-во имеет название {f.Name} и номер {f.Numb}"); return; }
else { Console.WriteLine("Ср-тв на стоянке нет"); }
}
}
/// Queue \\\
static void Queue()
37
{
Queue<Vehicle> parkedVehiclesQ = new Queue<Vehicle>(); Queue<Vehicle> parkedVehiclesAD = new Queue<Vehicle>(); do
{
Console.WriteLine("Выберите действие:"); Console.WriteLine("1. Добавить транспортное средство"); Console.WriteLine("2. Удалить транспортное средство"); Console.WriteLine("3. Найти транспортное средство"); Console.WriteLine("Нажмите Escape для выхода");
string ch = Console.ReadLine(); if (int.Parse(ch) == 1)
{
AddVehicleQ(parkedVehiclesQ, parkedVehiclesAD);
}
else if (int.Parse(ch) == 2)
{
RemoveVehicleQ(parkedVehiclesQ);
}
else if (int.Parse(ch) == 3)
{
FindVehicleQ(parkedVehiclesQ, parkedVehiclesAD);
}
else if (int.Parse(ch) == 4) { break; }
}
while (true);
static void AddVehicleQ(Queue<Vehicle> parkedVehiclesQ, Queue<Vehicle> parkedVehiclesAD)
{
38
Console.WriteLine("Name: "); string name = Console.ReadLine(); Console.WriteLine("Numb: "); string Numb = Console.ReadLine();
Vehicle newV; newV.Name = name; newV.Numb = Numb;
if (parkedVehiclesQ.Count < 1)
{ parkedVehiclesQ.Enqueue(newV); }
else { parkedVehiclesAD.Enqueue(newV); }
}
static void RemoveVehicleQ(Queue<Vehicle> parkedVehiclesQ)
{
if (parkedVehiclesQ.Count > 0)
{ Vehicle removed = parkedVehiclesQ.Dequeue(); Console.WriteLine($"Был убран {removed.Name} с номером {removed.Numb}"); return; }
else
{
Console.WriteLine("Ср-тв на стоянке нет");
}
}
static void FindVehicleQ(Queue<Vehicle> parkedVehiclesQ, Queue<Vehicle> parkedVehiclesAD)
{
if (parkedVehiclesQ.Count == 1)
39
{ Vehicle f = parkedVehiclesQ.Peek(); Console.WriteLine($"Последнее ср-во имеет название {f.Name} и номер {f.Numb}"); return; }
else {; Vehicle removedad = parkedVehiclesAD.Dequeue(); parkedVehiclesQ.Enqueue(removedad); Console.WriteLine($"Имеется свободное место, поэтому было добавлено ср-во с названием {removedad.Name} и номер {removedad.Numb}"); }
}
}
/// Scenario \\\
do
{
Console.WriteLine("Выберите действие:"); Console.WriteLine("1.List"); Console.WriteLine("2.Stack"); Console.WriteLine("3.Queue"); Console.WriteLine("Нажмите Escape для выхода");
string ch = Console.ReadLine(); if (int.Parse(ch) == 1)
{
List();
}
else if (int.Parse(ch) == 2)
{
Stack();
}
else if (int.Parse(ch) == 3)
{
Queue();
40