Esempio n. 1
0
 /// <summary>
 /// Массивы товаров. Все массивы должны быть одинаковой длины.
 /// </summary>
 /// <param name="itemsNames">Массив имен товаров</param>
 /// <param name="itemsPrices">Массив цен на товары</param>
 /// <param name="itemsNums"Массив количеств товаров></param>
 public Machine(string[] itemsNames, uint[] itemsPrices, uint[] itemsNums)
 {
     if (itemsNames.Length != itemsNums.Length || itemsNames.Length != itemsPrices.Length)
         throw new ArgumentException("Длины массивов должны быть равными");
     _itemsNames = (string[])itemsNames.Clone();
     _itemsPrices = (uint[])itemsPrices.Clone();
     _itemsNums = (uint[])itemsNums.Clone();
     _wal = new Wallet();
 }
 // создание кошелька покупателя
 public IWallet CreateWallet()
 {
     var wallet = new Wallet();
     wallet.AddMoney(
         new Dictionary<Coin, uint>
         {
             { new Coin(1U), 10U },
             { new Coin(2U), 10U },
             { new Coin(5U), 10U },
             { new Coin(10U), 7U }
         }
     );
     return wallet;
 }
        // создание торгового автомата
        public IVendingMachine CreateVendingMachine()
        {
            // начальные деньги в автомате
            var machineMoney = new Wallet();

            // продукты
            var products = new Dictionary<Product, uint>
            {
                // кексы по 50 рублей, 4 штуки
                { new Product{Name = "Cupcake", Price = 50U }, 4U },
                // печенье по 10 рублей, 3 штуки
                { new Product{Name = "Cookies", Price = 10U }, 3U },
                // вафли по 30 рублей, 10 штук
                { new Product{Name = "Waffles", Price = 30U}, 10U },
            };

            // создание торгового автомата
            var vendingMachine = new VendingMachine(products, machineMoney);
            return vendingMachine;
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            Random gen = new Random();
            m = new Machine(new string[] { "Кексы", "Печенье", "Вафли" }, new uint[] { 50, 10, 30 }, new uint[] { 4, 3, 10 });
            u = new Wallet(150, gen);

            while (true)
            {
                ShowCurState();
                ShowTip();
                int s = GetCom();
                if (s == -2)
                    break;
            }
        }
Esempio n. 5
0
 /// <summary>
 /// Внести деньги в автомат
 /// </summary>
 /// <param name="m">Кошелек с монетами</param>
 public void PutMoney(Wallet m)
 {
     UserMoney += m.Total;
     _wal.AddMoney(m);
 }
Esempio n. 6
0
 /// <summary>
 /// Извлекает из кошелька заданную сумму оптимальным способом
 /// </summary>
 /// <param name="total">Сумма</param>
 /// <returns>Кошелек с заданной суммой</returns>
 public Wallet GetMoney(uint total)
 {
     Wallet tmp = new Wallet();
     int res = -1;
     try
     {
         do
         {
             if (res != -1)
             {
                 total -= _values[res];
                 Coins[res]--;
                 tmp.Coins[res]++;
             }
             res = ChooseCoin(total);
         } while (res != -1);
     }
     catch (ArgumentException e)
     {
         this.AddMoney(tmp);
         throw e;
     }
     return tmp;
 }
Esempio n. 7
0
 /// <summary>
 /// Внести деньги в кошелек
 /// </summary>
 /// <param name="w">Кошелек из которого переносятся деньги</param>
 public void AddMoney(Wallet w)
 {
     for (int i = 0; i < Coins.Length; i++)
     {
         Coins[i] += w.Coins[i];
     }
 }