Работа с коллекциями. Программа учета выполнения распоряжений руководства на предприятии - C#
Формулировка задачи:
Написать программу учета выполнения распоряжений руководства на предприятии. При выполнении задания необходимо его помечать как выполненное, при невыполнении в указанную дату, требуется помечать на какую дату было перенесено его выполнение.
Решение задачи: «Работа с коллекциями. Программа учета выполнения распоряжений руководства на предприятии»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication37
- {
- struct Orders
- {
- public DateTime dateStart;//Время начала выполнения распоряжения
- public DateTime dateFinish;//Время окончания выполнения распоряжения
- public string nameofOrder;//Распоряжение
- public TimeSpan duration;//Время выполнения распоряжения
- public Orders(DateTime dateStart, DateTime dateFinish, string nameofOrder, TimeSpan duration)
- {
- this.dateStart = dateStart;
- this.dateFinish = dateFinish;
- this.nameofOrder = nameofOrder;
- this.duration = duration;
- }
- public void Print()
- {
- Console.WriteLine("Время начала выполнения распоряжения: {0}", dateStart);
- Console.WriteLine("Время окончания выполнения распоряжения: {0}", dateFinish);
- Console.WriteLine("Распоряжение: {0}", nameofOrder);
- Console.WriteLine("Время выполнения распоряжения: {0}", duration);
- Console.WriteLine();
- }
- }
- class Program
- {
- static void Main()
- {
- DateTime dateStart;
- DateTime dateFinish;
- string nameofOrder;
- TimeSpan duration;
- int counter;
- List<Orders> list = new List<Orders>();
- while (true)
- {
- Console.WriteLine();
- Console.WriteLine("Введите номер от 1 до 5: \n1) Для добавления распоряжения\n2) Для просмотра хода выполнения распоряжения и временного промежутка\n3) Для удаления информации\n4) Для редактирования информации\n5) Выход из программы");
- int command = Convert.ToInt32(Console.ReadLine());
- switch (command)
- {
- case 1:
- Console.WriteLine();
- Console.Write("Введите распоряжение: ");
- nameofOrder = Console.ReadLine();
- Console.Write("Введите время начала выполнения распоряжения (в формате HH:MM DD-MM-YYYY): ");
- dateStart = DateTime.Parse(Console.ReadLine());
- Console.Write("Введите время окончания выполнения распоряжения (в формате HH:MM DD-MM-YYYY): ");
- dateFinish = DateTime.Parse(Console.ReadLine());
- duration = dateFinish - dateStart;
- list.Add(new Orders(dateStart, dateFinish, nameofOrder, duration));
- break;
- case 2:
- Console.WriteLine();
- foreach (Orders elem in list)
- {
- if (DateTime.Now > elem.dateFinish)
- {
- Console.WriteLine();
- Console.WriteLine("Распоряжение {0} вышло за рамки исполнения", elem.nameofOrder);
- }
- else Console.WriteLine("Распоряжение {0} еще выполняется", elem.nameofOrder);
- if (DateTime.Now == elem.dateFinish)
- {
- Console.WriteLine();
- Console.WriteLine("Распоряжение {0} выполнено в срок", elem.nameofOrder);
- }
- }
- break;
- case 3:
- {
- Console.WriteLine();
- Console.Write("Введите распоряжение, информацию о котором Вы хотите удалить:");
- string newNumberOrder = Console.ReadLine();
- counter = 0;
- foreach (Orders elem in list)
- {
- if (elem.nameofOrder == newNumberOrder)
- {
- list.RemoveAt(counter);
- Console.WriteLine("Информация о распоряжении '{0}' удалена", newNumberOrder);
- break;
- }
- counter++;
- }
- break;
- }
- case 4:
- Console.WriteLine();
- Console.Write("Введите распоряжение, информацию о котором Вы хотите изменить:");
- string orderNumber = Console.ReadLine();
- counter = 0;
- foreach (Orders elem in list)
- {
- if (elem.nameofOrder == orderNumber)
- {
- Console.WriteLine();
- elem.Print();
- nameofOrder = elem.nameofOrder;
- Console.Write("Введите новое время начала выполнения распоряжения (в формате HH:MM DD-MM-YYYY): ");
- dateStart = DateTime.Parse(Console.ReadLine());
- Console.Write("Введите новое время окончания выполнения распоряжения (в формате HH:MM DD-MM-YYYY): ");
- dateFinish = DateTime.Parse(Console.ReadLine());
- duration = dateFinish - dateStart;
- list[counter] = new Orders(dateStart, dateFinish, nameofOrder, duration);
- break;
- }
- counter++;
- }
- break;
- case 5:
- Environment.Exit(0);
- break;
- default:
- Console.WriteLine();
- Console.WriteLine("Введенное число неверно. Повторите попытку\nВыберите пункт от 1 до 5");
- break;
- }
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д