static int[] zn = { 1, 2, 5, 10 }; //номиналы монет по возростанию #endregion Fields #region Methods static void Main(string[] args) { pok p = new pok(); avt a = new avt(); string s; s = Console.ReadLine();//считываем первую команду while (s != "end") { if (s[0] == '+')//s="+*необходимая сумма*" { int sum = 0;//сумма int j = 1; while (s.Length > j) { sum = sum * 10 + (s[j] - '0'); j++; } if (p.if_phs(sum))//если денег хватает, { p.vp(sum, a); } else { Console.WriteLine("не хватает денег"); } } if (s[0] == 'b') { int n = -1; if (s[4] == 'c')//s="buy cupcakes" { n = 0; } if (s[4] == 'b')//s="buy biscuits" { n = 1; } if (s[4] == 'w')//s="buy wafers" { n = 2; } if (n != -1) { a.kpc(n); } else { Console.WriteLine("некорректная команда"); } } if (s[0] == 'd')//s="delivery" { for (int i = 3; i >= 0; i--)//начиная с монет максимального номинала { p.pol(i, a.sd(i));//выдаем сумму частями } a.pr_s();//проверяем полноту сдачи } s = Console.ReadLine();//считываем следующую команду } }
//выплатa указанному автомату некой суммы public void vp(int s, avt a) { string ss = ""; for (int i = 3; i >= 0; i--)//начиная с монет максимального номинала { int sv = s - s % zn[i];//определение суммы, оплачиваемой монетами соответствующего номинала s = s - sv; sum = sum - sv; sv = sv / zn[i]; a.pol(i, sv); if (sv != 0) { if (ss != "") { ss = ss + ", "; } ss = ss + "передано " + sv + " монет номиналом в " + zn[i] + " рублей"; } } Console.WriteLine(ss + "."); }
public WorldObject(avt instance) : base(instance) { _internal = instance; }