Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Програм_раб_9
- {
- class Program
- {
- public static void Vichetanie1(Money[] d)
- {
- Console.WriteLine("Количество созданных объектов: " + Money.count);
- Console.WriteLine("Вызов статического метода: ");
- string s;
- if (Vichetanie(d[0], d[1]) != null) Console.WriteLine(" Результат: {0}", Vichetanie(d[0], d[1]));
- else
- {
- s = "Ошибка при вычитании";
- Console.WriteLine(s);
- }
- /*Console.WriteLine("Вызов метода класса: ");
- if (d[0].Vichetanie(d[1]) != null) Console.WriteLine(" Результат: {0}", Vichetanie(d[0], d[1]));
- else
- {
- s = "Ошибка при вычитании ";
- Console.WriteLine(s);
- }*/
- }
- static Money Vichetanie(Money a, Money b)
- {
- if ((a.Znach_rub - b.Znach_rub) > 0 && (a.Znach_kop - b.Znach_kop) > 0)
- {
- Money d = new Money();
- d.Znach_rub = a.Znach_rub - b.Znach_rub;
- d.Znach_kop = a.Znach_kop - b.Znach_rub;
- return d;
- }
- else return null;
- }
- public static int menuArr()
- {
- int num;
- Console.WriteLine(@"Создание значений денег:
- 1 - Рандом
- 2 - Ручной ввод
- 0 - Выход в меню");
- do
- {
- try
- {
- Console.Write("Пункт№: ");
- num = Convert.ToInt32(Console.ReadLine());
- }
- catch
- {
- Console.WriteLine("Error!");
- num = -1;
- }
- } while (num > 2 || num < 0 || num == -1);
- return num;
- }
- public static void Dmass()
- {
- int num = menuArr();
- if (num == 0) System.Environment.Exit(0);
- else if (num == 1)
- {
- MoneyArray d = new MoneyArray();
- d.Show();
- Console.WriteLine("Максимальное значение: " + d.Max());
- }
- else if (num == 2)
- {
- int n;
- int Znach_rub = 0, Znach_kop = 0;
- do
- {
- Console.WriteLine("Количество значений: ");
- n = Convert.ToInt32(Console.ReadLine());
- } while (n < 0 || n > 15);
- MoneyArray d = new MoneyArray(n);
- for (int i = 0; i < n; i++)
- {
- Console.WriteLine(i + 1 + "-е значение: ");
- Console.WriteLine("Рубли: ");
- Znach_rub = Convert.ToInt32(Console.ReadLine());
- Console.WriteLine("Копейки: ");
- Znach_kop= Convert.ToInt32(Console.ReadLine());
- d[i] = new Money(Znach_rub, Znach_kop);
- }
- d.Show();
- Console.WriteLine("Максимальное значение: " + d.Max());
- }
- }
- public static void Types(Money[] d)
- {
- Console.WriteLine("Преведение типа данных:");
- Console.WriteLine("Целая часть суммы равна: " + (int)d[0]);
- Console.WriteLine("Копейки: 0," + (double)d[0]);
- Console.WriteLine("Для второй суммы:");
- Console.WriteLine("Целая часть суммы равна:: " + (int)d[1]);
- Console.WriteLine("Копейки: 0," + (double)d[1]);
- }
- public static void Peregruzka(Money[] d)
- {
- Console.WriteLine("Добавление копейки к "+d[0]+ "=" + ++d[0]);
- Console.WriteLine("Добавление копейки к " + d[1] + "=" + ++d[1]);
- Console.WriteLine("Вычитание копейки из "+d[0] +"="+ —d[0]);
- Console.WriteLine("Вычитание копейки из " + d[1] +"="+ —d[1]);
- Console.WriteLine("Изменение значения рублей\n(левосторонняя операция(из 7 вычитаем"+d[0]+"))\n= ");
- d[0] = 7 - d[0];
- Console.WriteLine(d[0].ToString());
- Console.WriteLine("Изменение значения рублей\n(левосторонняя операция(из 7 вычитаем"+d[1]+"))\n= ");
- d[1] = 7 - d[1];
- Console.WriteLine(d[1].ToString());
- Console.WriteLine("Изменение зничения рублей\n(правосторонняя операция(из"+d[0]+ "вычитаем 3))\n= ");
- d[0] = d[0] - 3;
- Console.WriteLine(d[0].ToString());
- Console.WriteLine("Изменение зничения рублей\n(правосторонняя операция(из" + d[1] + "вычитаем 3))\n= ");
- d[1] = d[1] - 3;
- Console.WriteLine(d[1].ToString());
- }
- public static Money[] InputData(Money[] d, int i)
- {
- d[i] = new Money();
- bool ok;
- do
- {
- Console.Write("Рубли = ");
- try
- {
- ok = true;
- d[1].Znach_rub = Convert.ToInt32(Console.ReadLine());
- }
- catch
- {
- Console.WriteLine("Error!");
- ok = false;
- }
- }
- while (!ok);
- do
- {
- Console.Write("Копейки = ");
- try
- {
- ok = true;
- d[1].Znach_kop = Convert.ToInt32(Console.ReadLine());
- }
- catch
- {
- ok = false;
- Console.WriteLine("\nError!");
- }
- if (d[1].Znach_kop>100 || !ok) Console.WriteLine("Неверное значение!");
- } while (!ok);
- return d;
- }
- public static void Menu(Money[] d)
- {
- int punkt;
- Console.WriteLine(@"Работа с классом Деньги:
- 1 - Вычитание
- 2 - Перегрузка операторов
- 3 - Приведение типа
- 4 - Массив
- 5 - Ввести новые значения
- 6 - Вывести текущие значения (не массив)
- 0 - Выход");
- do
- {
- try
- {
- Console.WriteLine("Пункт№: ");
- punkt = Convert.ToInt32(Console.ReadLine());
- }
- catch
- {
- Console.WriteLine("Error!");
- punkt = -1;
- }
- } while (punkt > 6 || punkt < 0 || punkt == -1);
- switch (punkt)
- {
- case 1:
- {
- Vichetanie1(d);
- break;
- }
- case 2:
- {
- Peregruzka(d);
- break;
- }
- case 3:
- {
- Types(d);
- break;
- }
- case 4:
- {
- Dmass();
- break;
- }
- case 5:
- {
- Main();
- break;
- }
- case 6:
- {
- Console.WriteLine(d[0].ToString());
- Console.WriteLine(d[1].ToString());
- break;
- }
- case 0:
- {
- System.Environment.Exit(0);
- break;
- }
- }
- Menu(d);
- }
- static void Main()
- {
- int n = 2, i = 1;
- Money[] d = new Money[n];
- d[0] = new Money(3, 70);
- Console.WriteLine("Первый диапазон создан автоматически(3,7)");
- d = InputData(d, i);
- Console.WriteLine(d[0].ToString());
- Console.WriteLine(d[1].ToString());
- Menu(d);
- }
- }
- }
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Програм_раб_9
- {
- class Money
- {
- protected int rubles = 0;
- protected int kopeks = 0;
- public static int count = 0;
- public Money(int rub1 = 0, int kop1 = 0)
- {
- this.rubles = rub1;
- this.kopeks = kop1;
- count++;
- }
- public int Znach_rub
- {
- get { return rubles; }
- set { rubles = value; }
- }
- public int Znach_kop
- {
- get { return kopeks; }
- set { kopeks = value; }
- }
- public override string ToString()
- {
- string s = rubles + "," + kopeks;
- return s;
- }
- public Money Vichetanie(Money a)
- {
- if ((a.Znach_rub - this.Znach_rub) > 0 && (a.Znach_kop - this.Znach_kop) > 0)
- {
- Money d = new Money();
- d.Znach_rub = a.Znach_rub - this.Znach_rub;
- d.Znach_kop = a.Znach_kop - this.Znach_rub;
- return d;
- }
- else return null;
- }
- public static Money operator —(Money a)
- {
- Money d = new Money();
- d.kopeks = a.kopeks - 1;
- d.rubles = a.rubles;
- if (d.kopeks == 0)
- {
- d.kopeks = a.kopeks + 99;
- d.rubles = a.rubles - 1;
- if (d.rubles < 0)
- { Console.WriteLine("Вычитание невозможно");
- return null; }
- }
- return d;
- }
- public static Money operator ++(Money a)
- {
- Money d = new Money();
- d.kopeks = a.kopeks +1;
- d.rubles = a.rubles;
- if(d.kopeks>100)
- {
- d.kopeks = a.kopeks - 99;
- d.rubles = a.rubles + 1;
- }
- return d;
- }
- public static Money operator -(Money a, int b)
- {
- Money d = new Money();
- d.rubles = a.rubles - b;
- d.kopeks = a.kopeks;
- return d;
- }
- public static Money operator -(int b, Money a)
- {
- Money d = new Money();
- d.rubles = b - a.rubles;
- d.kopeks = a.kopeks;
- return d;
- }
- public static explicit operator int (Money d)
- {
- return d.rubles;
- }
- public static implicit operator double (Money d)
- {
- return d.kopeks;
- }
- }
- }
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Програм_раб_9
- {
- class MoneyArray: Money
- {
- Random rnd = new Random();
- Money[] mas;
- public MoneyArray()
- {
- int n = rnd.Next(2, 10);
- mas = new Money[n];
- for (int i = 0; i < n; i++)
- {
- mas[i] = new Money();
- mas[i].Znach_rub = rnd.Next(0, 100);
- mas[i].Znach_kop = rnd.Next(1, 99);
- }
- }
- public MoneyArray(int n)
- {
- mas = new Money[n];
- }
- public void Show()
- {
- int i = 0;
- foreach (Money d in mas)
- {
- Console.WriteLine(d.ToString());
- i++;
- }
- }
- public Money this[int index]
- {
- set
- {
- mas[index] = value;
- }
- get
- {
- return mas[index];
- }
- }
- public Money Max()
- {
- Money max = new Money();
- max.Znach_rub = 0;
- max.Znach_rub = 0;
- foreach (Money d in mas)
- {
- if (d.Znach_rub > max.Znach_rub) max = d;
- if(d.Znach_rub == max.Znach_rub)
- {
- if (d.Znach_kop > max.Znach_kop)
- max = d;
- }
- }
- return max;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement