Задание
Реализовать эмуляцию вендингового аппарата с возможностью внести сумму, выбрать напиток, выбрать ингредиенты, ожидать приготовление, получить заказанный напиток и сдачу (если есть)
Функционал программы
Например:
- внести сумму
- выбрать напиток
- выбрать ингредиенты напитка (если они есть)
- дождаться приготовления напитка
- получить напиток
- получить сдачу (если есть)
Фрагмент программного кода
using CoffeeMachine.Data; using System; using System.Drawing; using System.Windows.Forms; namespace CoffeeMachine { public partial class Form1 : Form { /// <summary> сумма внесённая для оплаты </summary> private int countMoneySend = 0; /// <summary> Текущий выбранный напиток </summary> private ButtonDrink currSelect; /// <summary> величина текущего оставшегося времени для приготовления </summary> private int WaitSecond = -1; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // первоначальные настройки buttonDrink1.Set(new Espresso()); buttonDrink2.Set(new Latte()); buttonDrink3.Set(new Americano()); buttonDrink4.Set(new GreenTea()); buttonDrink5.Set(new Cappuccino()); buttonDrink6.Set(new Water()); buttonDrink7.Set(new TeaWithLemon()); buttonDrink8.Set(new Milkshake()); var rnd = new Random(); var all = new[] {1, 2, 5, 10}; int count = 0; // генерируем содержимое кошелька while (count<60) { // генерируем 1 из денежных единиц int volume = all[rnd.Next(0, all.Length - 1)]; // суммируем count += volume; // создаем нужную монету Money m = new Money(volume); // добавляем на панель монетку pWallet.Controls.Add(m); // подписываемся на её нажатие m.Click+= MOnClick; } } // нажатие на монету private void MOnClick(object sender, EventArgs e) { Money m = sender as Money; if(m==null) return; // увеличим сумму внесенонй оплаты countMoneySend += m.Value; lcountMoneySend.Text = countMoneySend.ToString("C"); m.Dispose(); if (lComment.Text.Length > 0) { } } // выбор напитка
Скриншот архива с проектом
Пояснения по запуску программы
Программа работает без дополнительных настроек.
Kap