- •Введение
- •1 РАЗРАБОТКА И РЕАЛИЗАЦИЯ АЛГОРИТМОВ НА ЯЗЫКЕ С#
- •1.1 Лабораторная работа №1. Циклические программы
- •Код имеет линейную сложность O(N), так как количество итераций циклаК пропорционально введенному числу N.
- •1.2 Лабораторная работа №2. Массивы
- •1.3 Лабораторная работа №3. Функции
- •1.4 Лабораторная работа №4. Обработка текста
- •1.5 Лабораторная работа №5. Структуры
- •1.6 Лабораторная работа №6. Коллекции
- •1.7 Лабораторная работа №7. Основы ООП
- •Заключение
Код имеет общую временную сложность программы — O(n), где n — количество студентов.
1.6 Лабораторная работа №6. Коллекции
Задание 6: создайте консольное приложение, которое будет моделировать систему обработки заказов в интернет-магазине. Реализуйте следующие функции, используя различные типы коллекций:
List: Хранение и управление списком товаров в корзине покупателя. Разрешите добавление, удаление и изменение товаров в корзине.
Stack: Механизм отката последнего действия. Позвольте пользователю отменять последние действия, такие как добавление или удаление товара из корзины.
Queue: Организация очереди заказов на обработку. Когда заказ обрабатывается, он удаляется из очереди. Сценарии: добавление товаров в корзину, отмена действий, обработка заказов и т. д.
Ниже представлен исходный код данной программы на языке программирования C#.
List<string> products = new List<string>(); Stack<List<string>> history = new Stack<List<string>>();
void SaveL()
{
List<string> currentState = new List<string>(products); history.Push(currentState);
}
void AddP(string product)
{
Console.Clear(); SaveL(); products.Add(product);
Console.WriteLine($"Товар <<{product}>> добавлен в корзину.");
31
}
void RemoveP(string product)
{
if (products.Contains(product))
{
Console.Clear(); SaveL(); products.Remove(product);
Console.WriteLine($"Товар <<{product}>> удален из корзины.");
}
else
{
Console.Clear();
Console.WriteLine($"Товар <<{product}>> не найден в корзине.");
}
}
void ShowCart()
{
if (products.Count == 0)
{
Console.Clear(); Console.WriteLine("Корзина пуста.");
}
else
{
Console.Clear(); Console.WriteLine("Товары в корзине:"); foreach (var product in products)
{
Console.WriteLine(product);
}
}
}
void REMLastAction()
{
if (history.Count > 0)
32
{
Console.Clear(); products = history.Pop();
Console.WriteLine("Последнее действие отменено.");
}
else
{
Console.Clear();
Console.WriteLine("Нет действий для отмены.");
}
}
List<string> CheckOrder()
{
Console.Clear();
List<string> orderedProducts = new List<string>(products); products.Clear();
history.Clear(); Console.WriteLine("Заказ оформлен."); return orderedProducts;
}
Queue<List<string>> orderQueue = new Queue<List<string>>(); bool running = true;
while (running)
{
Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("================================"); Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("1. Добавить товар в корзину\n2. Удалить товар из корзины\n3. Показать корзину\n4. Отменить последнее действие\n5. Оформить заказ\n6. Обработать заказ\n7. Выход");
Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("================================"); Console.ForegroundColor = ConsoleColor.DarkCyan; Console.Write("Выберите действие: "); Console.ResetColor();
string choice = Console.ReadLine(); switch (choice)
33
{
case "1":
Console.Write("Введите название товара: "); string product = Console.ReadLine(); AddP(product);
break; case "2":
Console.Write("Введите название товара для удаления: "); string productToRemove = Console.ReadLine(); RemoveP(productToRemove);
break; case "3":
ShowCart(); break;
case "4": REMLastAction(); break;
case "5": orderQueue.Enqueue(CheckOrder()); break;
case "6":
if (orderQueue.Count > 0)
{
List<string> order = orderQueue.Dequeue(); Console.WriteLine("Обработан заказ:"); foreach (var item in order)
{
Console.WriteLine(item);
}
}
else
{
Console.WriteLine("Нет заказов для обработки.");
}
break; case "7":
running = false; break;
default: Console.Clear();
Console.WriteLine("Неверный ввод, попробуйте снова."); break;
34
}
}
Результат работы программы представлен на рисунке 1.35.
Рисунок 1.35 — Результат работы программы задания 6 Далее будут представлены работы каждой функции программы.
Рисунок 1.36 — Функция добавления товара в корзину
Рисунок 1.37 — Функция удаления товара из корзины
Рисунок 1.38 — Удаление товара
35
