Составить описание класса для представления комплексных чисел - C# (189637)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Помогите пожалуйста реализовать меню в программе. Тут написан класс по заданию: Составить описание класса для представления комплексных чисел. Обеспечить выполнение операций сложения, вычитания и умножения комплексных чисел. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. Остался только главный класс с меню, чтобы можно было проверить работоспособность программы.
using System;
 
namespace fdfd
{
    public class Complex : ICloneable
    {
        private double m_real = 0.0;
        private double m_imag = 0.0;
 
        #region Конструкторы
        public Complex()
        {
        }
 
        public Complex (double re)
        {
            m_real = re;
        }
 
        public Complex (double re, double im)
        {
            m_real = re;
            m_imag = im;
        }
 
        public Complex (Complex x)
        {
            m_real = x.Real;
            m_imag = x.Imag;
        }
        #endregion
 
        public double Real
        {
            get { return m_real; }
            set { m_real = value; }
        }
 
        public double Imag
        {
            get { return m_imag; }
            set {m_imag = value; }
        }
 
        public double Abs
        {
            get { return Math.Sqrt(m_imag * m_imag + m_real * m_real); }
        }
 
        public double Arg
        {
            get { return Math.Atan(m_imag / m_real); }
        }
 
        /// <summary>
        /// Получить комплексно-сопряженное число
        /// </summary>
        public Complex GetConjugate()
        {
            return new Complex (m_real, -m_imag);
        }
 
        public override string ToString()
        {
            string res = "";
 
            if (m_real != 0.0)
            {
                res = m_real.ToString();
            }
 
            if (m_imag != 0.0)
            {
                if (m_imag > 0)
                {
                    res += "+";
                }
 
                res += m_imag.ToString() + "i";
            }
 
            return res;
        }
 
        #region Перегруженные операторы сложения
        public static Complex operator + (Complex c1, Complex c2)
        {
            return new Complex (c1.Real + c2.Real, c1.Imag + c2.Imag);
        }
 
        public static Complex operator + (Complex c1, double c2)
        {
            return new Complex (c1.Real + c2, c1.Imag);
        }
 
        public static Complex operator + (double  c1, Complex c2)
        {
            return new Complex (c1 + c2.Real, c2.Imag);
        }
        #endregion

        #region Перегруженные операторы вычитания
        public static Complex operator - (Complex c1, Complex c2)
        {
            return new Complex (c1.Real - c2.Real, c1.Imag - c2.Imag);
        }
 
        public static Complex operator - (Complex c1, double c2)
        {
            return new Complex (c1.Real - c2, c1.Imag);
        }
 
        public static Complex operator - (double  c1, Complex c2)
        {
            return new Complex (c1 - c2.Real, -c2.Imag);
        }
        #endregion

        #region Перегруженные операторы умножения
        public static Complex operator * (Complex c1, Complex c2)
        {
            return new Complex (c1.Real * c2.Real - c1.Imag * c2.Imag,
                c1.Real * c2.Imag + c1.Imag * c2.Real);
        }
 
        public static Complex operator * (Complex c1, double c2)
        {
            return new Complex (c1.Real * c2, c1.Imag * c2);
        }
 
        public static Complex operator * (double c1, Complex c2)
        {
            return new Complex (c1 * c2.Real, c1 * c2.Imag);
        }
        #endregion

        #region Перегруженные операторы деления
        public static Complex operator / (Complex c1, Complex c2)
        {
            double Denominator = c2.Real * c2.Real + c2.Imag * c2.Imag;
            return new Complex ((c1.Real * c2.Real + c1.Imag * c2.Imag) / Denominator,
                (c2.Real * c1.Imag - c2.Imag * c1.Real) / Denominator);
        }
 
        public static Complex operator / (Complex c1, double c2)
        {
            return new Complex (c1.Real / c2, c1.Imag / c2);
        }
 
        public static Complex operator / (double c1, Complex c2)
        {
            double Denominator = c2.Real * c2.Real + c2.Imag * c2.Imag;
            return new Complex ((c1 * c2.Real) / Denominator, (-c2.Imag * c1) / Denominator);
        }
        #endregion
 
        public static bool operator == (Complex c1, Complex c2)
        {
            return c1.Real == c2.Real && c1.Imag == c2.Imag;
        }
 
        public static bool operator != (Complex c1, Complex c2)
        {
            return c1.Real != c2.Real || c1.Imag != c2.Imag;
        }
 
        public override bool Equals(object obj)
        {
            return this == (Complex)obj;
        }
 
        public override int GetHashCode()
        {
            return m_real.GetHashCode() + m_imag.GetHashCode();
        }

        #region ICloneable Members
 
        public object Clone()
        {
            return new Complex (this.m_real, this.m_imag);
        }
 
        #endregion
    }
    
    class Program
    {
        public static void Main(string[] args)
        {
            Complex re = new Complex(12.1, 11.2);
            String key;
            do{
            Console.WriteLine("Задание:\nСоставить описание класса для представления комплексных чисел. Обеспечить выполнение операций сложения, вычитания и умножения комплексных чисел. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.\n\n");
            Console.WriteLine("1) Показать числа");
            Console.WriteLine("2) Сложение");
            Console.WriteLine("3) Вычитание");
            Console.WriteLine("4) Умножение");
            Console.WriteLine("5) Деление");
            Console.WriteLine("6) Выход");
            key=Console.ReadLine();
            Convert.ToInt32(key);
            switch(key){
            case "1": Console.WriteLine(re);break;
            case "2": Console.WriteLine(); break;
            case "3": Console.WriteLine(); break;
            case "4": Console.WriteLine(); break;
            }
            }while(key!="6");
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}

Решение задачи: «Составить описание класса для представления комплексных чисел»

textual
Листинг программы
public static void Main(string[] args)
{
    Console.WriteLine("Задание:\nСоставить описание класса для представления комплексных чисел. Обеспечить выполнение операций сложения, вычитания и умножения комплексных чисел. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.\n\n");
    Complex re1 = new Complex(12.1, 11.2);
    Complex re2 = new Complex(10.1, 1.2);
    String key;
    do
    {
        Console.WriteLine("1) Показать числа");
        Console.WriteLine("2) Сложение");
        Console.WriteLine("3) Вычитание");
        Console.WriteLine("4) Умножение");
        Console.WriteLine("5) Деление");
        Console.WriteLine("6) Выход");
        key = Console.ReadLine();
        Convert.ToInt32(key);
        switch (key)
        {
            case "1": 
                Console.WriteLine(re1);
                Console.WriteLine(re2);
                break;
            case "2": Console.WriteLine(re1+re2); break;
            case "3": Console.WriteLine(re1-re2); break;
            case "4": Console.WriteLine(re1*re2); break;
            case "5": Console.WriteLine(re1/re2); break;
        }
    } while (key != "6");
    Console.Write("Press any key to continue . . . ");
    Console.ReadKey(true);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы