Главная страница
Навигация по странице:

  • Брянск 202 1 Цель работы

  • Работа с коллекциями. лаба1. Лабораторная работа Работа с коллекциями


    Скачать 130.4 Kb.
    НазваниеЛабораторная работа Работа с коллекциями
    АнкорРабота с коллекциями
    Дата14.12.2021
    Размер130.4 Kb.
    Формат файлаdocx
    Имя файлалаба1.docx
    ТипЛабораторная работа
    #302786




    Факультет информационных технологий

    Кафедра «Компьютерные технологии и системы»
    Дисциплина:

    «Языки программирования»

    Лабораторная работа

    «Работа с коллекциями»
    Вариант № 3

    Выполнил студент

    группы О-20-ИАС-аид-2-С

    Бакун О.Д.

    Проверил преподаватель

    Вдовиченко О. А.

    Брянск 2021

    1. Цель работы

    Целью лабораторной работы является изучение основных классов, предназначенных для работы с коллекциями, а также овладение практическими навыками составления алгоритмов с их использованием.

    1. Ход работы

    Задание:

    Написать программу расписания пассажирских поездов. При желании можно получить информацию на любой временной период, при этом для каждого поезда должен быть установлен статус (прибыл, выехал, задерживается, производится посадка).

    Выполнение:

    namespace лаба1

    {

    public struct RailwayStation

    {

    public DateTime dateStart;

    public DateTime dateStop;

    public string TrainStatus;

    public int TrainNumber;

    public string NameTrain;
    public RailwayStation(DateTime dateStart, DateTime dateStop, string trainStatus, int trainNumber, string nameTrain)

    {

    this.dateStart = dateStart;

    this.dateStop = dateStop;

    TrainStatus = trainStatus;

    TrainNumber = trainNumber;

    NameTrain = nameTrain;

    }

    }

    class Program

    {

    static List list;

    static void Main()

    {

    list = new List();

    list.Add(new RailwayStation(new DateTime(21, 3, 20, 12, 0, 0), new DateTime(21, 3, 21, 13, 0, 0), "прибыл", 21231, "Стриж"));

    list.Add(new RailwayStation(new DateTime(22, 4, 20, 12, 0, 0), new DateTime(21, 3, 21, 13, 0, 0), "прибыл", 32422, "Тарда"));

    Choice();

    }

    static void Choice()

    {
    Console.WriteLine("1 - Посмотреть информацию о поездах" + "\n" + "2 - Удалить" + "\n" + "3 - Добавить" + "\n" + "4 - Редактировать" + "\n" + "5 - Найти поезд");

    Console.WriteLine("Введите цифру: ");

    int n = Int32.Parse(Console.ReadLine());

    switch (n)

    {

    case 1:

    Print();

    Return();

    break;

    case 2:

    Remove();

    Return();

    break;

    case 3:

    Add();

    Print();

    Return();

    break;

    case 4:

    Redact();

    Return();

    break;

    case 5:

    SearchTrain();

    Return();

    break;

    default: Choice(); break;

    }

    static void Print()

    {

    foreach (RailwayStation t in list)

    Console.WriteLine("Название поезда: " + t.NameTrain + "\n" + "Дата отправления: " + t.dateStart.ToString() + "\n" + "Дата прибытия: " + t.dateStop.ToString() + "\n" + "Номер поезда: " + t.TrainNumber + "\n" + "Статус поезда: " + t.TrainStatus + "\n");

    }

    static void Remove()

    {

    Console.WriteLine("Исходный список: ");

    Print();

    Console.WriteLine("Введите название поезда: ");

    try

    {

    var t = Console.ReadLine();

    Delete(t);

    Console.WriteLine("\nОбновленный список: ");

    Print();

    }

    catch

    {

    Console.WriteLine("Название поезда не найдено. Введите снова: ");

    Remove();

    }

    }

    static void Delete(string NameTrain)

    {

    var itemToDelete = list.Where(x => x.NameTrain == NameTrain).Select(x => x).First();

    list.Remove(itemToDelete);

    }

    static void Return()

    {

    Console.WriteLine("0 - назад");

    int n = Convert.ToInt32(Console.ReadLine());

    if (n == 0)

    {

    Console.Clear();

    Choice();

    }

    else

    {

    Console.ReadLine();

    }

    }

    static void Add()

    {

    Console.WriteLine("Введите название поезда: ");

    string trName = Console.ReadLine();

    Console.WriteLine("Введите дату отправления: ");

    DateTime dateStart = Convert.ToDateTime(Console.ReadLine());

    Console.WriteLine("Введите дату прибытия: ");

    DateTime dateStop = Convert.ToDateTime(Console.ReadLine());

    Console.WriteLine("Введите статус поезда: ");

    string status = Console.ReadLine();

    Console.WriteLine("Введите номер поезда:");

    int trNumber = Convert.ToInt32(Console.ReadLine());

    list.Add(new RailwayStation(dateStart, dateStop, status, trNumber, trName));

    Console.WriteLine("\nОбновленный список: ");

    }

    static void FindIndex( out int ind)

    {

    Console.WriteLine("Введите название поезда: ");

    try

    {

    var t = Console.ReadLine();

    ind = list.IndexOf(list.Where(x => x.NameTrain == t).Select(x => x).First());

    }

    catch

    {

    FindIndex(out ind);

    }

    }

    static void Redact()

    {

    Console.WriteLine("Исходный список: ");

    Print();

    Console.WriteLine("1 - изменить название \n2 - изменить дату отправления \n3 - изменить дату прибытия \n4 - изменить статус поезда \n5 - изменить номер поезда \nВведите цифру: ");

    int n = Int32.Parse(Console.ReadLine());

    Rechange( n);

    Console.WriteLine("\nОбновленный список: ");

    Print();

    }

    static void SearchTrain()

    {

    Console.WriteLine("Введите название поезда");

    string t = Console.ReadLine();

    RailwayStation found = list.Find(item => item.NameTrain == t);

    Console.WriteLine("\nНазвание поезда: " + found.NameTrain + "\n" + "Дата отправления: " + found.dateStart.ToString() + "\n" + "Дата прибытия: " + found.dateStop.ToString() + "\n" + "Номер поезда: " + found.TrainNumber + "\n" + "Статус поезда: " + found.TrainStatus + "\n");
    }

    static void Rechange( int n)

    {

    switch (n)

    {

    case 1:

    int ind1;

    FindIndex(out ind1);

    var found1 = list.ElementAt(ind1);

    Console.WriteLine("Введите новое название поезда: ");

    string value1 = Console.ReadLine();

    found1.NameTrain = value1;

    list.Insert(ind1, found1);

    list.RemoveAt(ind1 + 1);

    break;

    case 2:

    int ind2;

    FindIndex(out ind2);

    var found2 = list.ElementAt(ind2);

    Console.WriteLine("Введите новую дату отправления поезда: ");

    DateTime value2 = Convert.ToDateTime(Console.ReadLine());

    found2.dateStart = value2;

    list.Insert(ind2, found2);

    list.RemoveAt(ind2 + 1);

    break;

    case 3:

    int ind3;

    FindIndex( out ind3);

    var found3 = list.ElementAt(ind3);

    Console.WriteLine("Введите новую дату прибытия поезда: ");

    DateTime value3 = Convert.ToDateTime(Console.ReadLine());

    found3.dateStop = value3;

    list.Insert(ind3, found3);

    list.RemoveAt(ind3 + 1);

    break;

    case 4:

    int ind4;

    FindIndex(out ind4);

    var found4 = list.ElementAt(ind4);

    Console.WriteLine("Введите новый статус поезда: ");

    string value4 = Console.ReadLine();

    found4.TrainStatus = value4;

    list.Insert(ind4, found4);

    list.RemoveAt(ind4 + 1);

    break;

    case 5:

    int ind5;

    FindIndex(out ind5);

    var found5 = list.ElementAt(ind5);

    Console.WriteLine("Введите новый номер поезда: ");

    int value5 = Convert.ToInt32(Console.ReadLine());

    found5.TrainNumber = value5;

    list.Insert(ind5, found5);

    list.RemoveAt(ind5 + 1);

    break;

    }

    }

    }


    }

    }


    3. Вывод

    Изучены основные классы, предназначенные для работы с коллекциями, а также закреплены практические навыки составления алгоритмов с их использованием.


    написать администратору сайта