Home
ARINA редагує цю сторінку 7 місяців тому

internal abstract class Computer

{
    public abstract int calc(int a, int b, char c);//Метод принимающий на вход два целочисленных значения для последующих операций с ними
    public abstract void conv(int a, int b);//Метод принимающий число для последующей конвертации
    public abstract int date(int a);//Метод будет принимать на вход номер месяца
}
internal class Tablet : Computer
{
    public override int calc(int a, int b, char c)//Метод представляет собой обычный калькулятор, который имеет 4 возможных операции с числами
    {
        if(c == '+')//Символьная переменная соответственно определяет операцию с числами
        {
            return a + b;
        }
        else if (c == '-')
        {
            return a - b;
        }
        else if(c == '*')
        {
            return a * b;
        }
        else
        {
            return a / b;
        }
    }
    public override void conv(int a, int b)//Метод конвертирует введёное число из десятичной системы счисления в одну из трёх возможных: двоичную, восмеричную или шестнадцатеричную
    {
        if(b == 2)//Аргумент b отвечает за определение системы, в которую будет переводиться число
        {
            Console.WriteLine(Convert.ToString(a,2));
        }
        else if(b== 8)
        {
            Console.WriteLine(Convert.ToString(a, 8));
        }
        else
        {
            Console.WriteLine(Convert.ToString(a, 16));
        }
    }
    public override int date(int a)//Метод по введённому числу возвращает количество дней в месяце
    {
        if((a%2>0)||(a==8))//Учтено, что август также имеет 31 день, хотя он чётный
        {
            return 31;
        }
        else if (a == 2)//Учтён февраль
        {
            return 28;
        }
        else
        {
            return 30;
        }
    }
}
internal class Phone : Tablet
{
    public int balance;
    public Phone(int balance)
    {
        this.balance = balance;
    }
    new public int date(int a, int b)//Замещённый метод возвращает куб либо квадрат числа
    {
        if(b == 2)//Аргумент b отвечает за операцию с числом
        {
            return a * a;
        }
        else
        {
            return a * a * a;
        }
    }
    public override void conv(int a, int b)//Метод переводит из двоичной системы счисления в одну из указанных: десятичную, восьмеричную или шестандцатеричную
    {
        if (b == 10)//Также как и в прошлом методе аргумент b определяет в какую систему переводит метод
        {
            Console.WriteLine(Convert.ToString(a, 10));
        }
        else if (b == 3)
        {
            Console.WriteLine(Convert.ToString(a, 8));
        }
        else
        {
            Console.WriteLine(Convert.ToString(a, 16));
        }
    }
    public void ring()//Метод показывает на сколько хватит денег у пользователя на балансе
    {
        int min = balance / 2;//Если считать минуту разговора за 2 рубля
        int sms = balance / 3;//А одно сообщение за 3 рубля
        Console.WriteLine("Денег на балансе хватит на " + min + " минут разговора и на " + sms + " сообщений");
    }
}
==================================
static void Main(string[] args)
    {
        Tablet obj = new Tablet();
        /*Console.WriteLine("Введите два числа и операцию для них через Enter (операции: сложение, вычитание, умножение, деление");
        int a = Convert.ToInt32(Console.ReadLine());
        int b = Convert.ToInt32(Console.ReadLine());
        char c = Convert.ToChar(Console.ReadLine());
        Console.WriteLine(obj.calc(a, b, c));*/
        /*Console.WriteLine("Введите число и систему счисления для конвертации: двоичную, восмеричную или шестнадцатеричную (2, 8 или 16 соответственно) через Enter");
        int d = Convert.ToInt32(Console.ReadLine());
        int e = Convert.ToInt32(Console.ReadLine());
        obj.conv(d, e);*/
        /*Console.WriteLine("Введите номер месяца для подсчёта количества дней");
        int f = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("В данном месяце "+obj.date(f)+" дней");*/

        Console.WriteLine("Введите баланс вашего телефона");
        int k = Convert.ToInt32(Console.ReadLine());
        Phone obj1 = new Phone(k);
        Console.WriteLine("Введите число и степень в которую нужно его возвести через Enter");
        int g = Convert.ToInt32(Console.ReadLine());
        int h = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine(obj1.date(g, h));
        Console.WriteLine("Введите двоичное число для концвертации и систему счисления: восьмеричную, десятичную или шестандцатиричную через Enter");
        int i = Convert.ToInt32(Console.ReadLine());
        int j = Convert.ToInt32(Console.ReadLine());
        obj1.conv(i, j);
        obj1.ring();
    }