Работа с коллекциями. Программа учета выполнения распоряжений руководства на предприятии - 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;
                }
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.286 из 5
Похожие ответы