Практикум по курсу "Объектно-ориентированное программирование" на языке C#. Андрианова А.А - 104 стр.

UptoLike

103
Класс Sklad также имеет методы, которые регистрируют операции
поступления товара на склад (AddTovar()) и реализации товара
покупателю (SaleTovar()). Метод AddTovar() с помощью запроса
находит в словаре запись о поступившем товаре. Если такого товара на
складе не было, добавляется новая запись об этом товаре, в противном случае
в найденной записи корректируется количество с учетом поступления.
// метод, регистрирующий поступление товара на склад
public void AddTovar(Tovar t, int count)
{
// запрос к словарю на поиск записи с заданным ключом-товаром
List<Tovar> items = (from s in sklad
where s.Key.Equals(t)
select s.Key).ToList<Tovar>();
if (items.Count() == 0)
{
// товара не было найдено –
// добавляем информацию о его поступлении
sklad.Add(t, count);
return;
}
// товар уже есть на складе – увеличиваем его количество
sklad[t] = sklad[t] + count;
}
Алгоритм метода SaleTovar() предусматривает поиск записи в
словаре, соответствующей продаваемому товару. Отсутствие такой записи
приводит к генерации исключения (товара нет на складе). Аналогичное
исключение возникает, когда товар имеется, но в недостаточном количестве.
Если же данные корректны, в найденной записи словаря изменяется
количество товара с учетом реализации.
// метод, регистрирующий покупку товара
public void SaleTovar(Tovar t, int count)
{
List<KeyValuePair<Tovar, int>> items =
(from s in sklad where s.Key.Equals(t)
select s).ToList <KeyValuePair<Tovar, int>>();
if(items.Count() == 0)
throw new Exception("Необходимого товара нет на складе");
foreach (KeyValuePair<Tovar,int> p in items)
{
if (p.Value < count)
throw new Exception("Необходимого количества
нет на складе");
sklad[p.Key] = sklad[p.Key] - count;
      Класс Sklad также имеет методы, которые регистрируют операции
поступления товара на склад (AddTovar()) и реализации товара
покупателю (SaleTovar()). Метод AddTovar() с помощью запроса
находит в словаре запись о поступившем товаре. Если такого товара на
складе не было, добавляется новая запись об этом товаре, в противном случае
в найденной записи корректируется количество с учетом поступления.

       // метод, регистрирующий поступление товара на склад
       public void AddTovar(Tovar t, int count)
       {
           // запрос к словарю на поиск записи с заданным ключом-товаром
           List items = (from s in sklad
                                 where s.Key.Equals(t)
                                 select s.Key).ToList();
           if (items.Count() == 0)
           {
              // товара не было найдено –
              // добавляем информацию о его поступлении
              sklad.Add(t, count);
              return;
         }
         // товар уже есть на складе – увеличиваем его количество
         sklad[t] = sklad[t] + count;
      }

     Алгоритм метода SaleTovar() предусматривает поиск записи в
словаре, соответствующей продаваемому товару. Отсутствие такой записи
приводит к генерации исключения (товара нет на складе). Аналогичное
исключение возникает, когда товар имеется, но в недостаточном количестве.
Если же данные корректны, в найденной записи словаря изменяется
количество товара с учетом реализации.
       // метод, регистрирующий покупку товара
       public void SaleTovar(Tovar t, int count)
       {
          List> items =
                         (from s in sklad where s.Key.Equals(t)
                          select s).ToList >();
          if(items.Count() == 0)
             throw new Exception("Необходимого товара нет на складе");

          foreach (KeyValuePair p in items)
          {
             if (p.Value < count)
                throw new Exception("Необходимого количества
                                                    нет на складе");
             sklad[p.Key] = sklad[p.Key] - count;

103