Написать консольную программу, реализующую арифметику комплексных чисел - C#

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

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

Написать консольную программу на C#, реализующую арифметику комплексных чисел. Должны быть как минимум определены операторы +, +=, -, -=, *, *=, /, /=, =, допускающие построение арифметических выражений в том виде, в каком они справедливы для double, а также позволяющие в одном выражении смешивать комплексные и вещественные числа. Определите функции arg, mod, Re, Im Предусмотреть печать комплексных чисел любым удобным способом Текстовым представлением комплексного числа считать строки вида a+-bi, где а и b - представление чисел типа double.

Решение задачи: «Написать консольную программу, реализующую арифметику комплексных чисел»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ComplexNumber_Project {
    class Complex {
        //Автосвойства(с private сеттерами)
        public double Real { get; private set; }
        public double Image { get; private set; }
        //Конструктор
        public Complex(double r, double im) {
            Real = r;
            Image = im;
        }
        //Переопределение метода ToString();
        public override string ToString() {
            return string.Format("{0} {1}i", Real, Image);
        }
        //Перегрузка оператора + для двух комплексных чисел
        public static Complex operator +(Complex c1, Complex c2) {
            return new Complex(c1.Real + c2.Real, c1.Image + c2.Image);
        }
        //Перегрузка оператора + для комплексного числа и числа типа int
        public static Complex operator +(Complex c, int n) {
            return new Complex(c.Real + n, c.Image);
        }
        //Перегрузка оператора - для двух комплексных чисел
        public static Complex operator -(Complex c1, Complex c2) {
            return new Complex(c1.Real - c2.Real, c1.Image - c2.Image);
        }
        //Перегрузка оператора - для комплексного числа и числа типа int
        public static Complex operator -(Complex c, int n) {
            return new Complex(c.Real - n, c.Image);
        }
        //Перегрузка оператора * для двух комплексных чисел
        public static Complex operator *(Complex c1, Complex c2) {
            return new Complex(c1.Real * c2.Real, c1.Image * c2.Image);
        }
        //Перегрузка оператора * для комплексного числа и числа типа int
        public static Complex operator *(Complex c, int n) {
            return new Complex(c.Real * n, c.Image);
        }
        //Перегрузка оператора / для двух комплексных чисел
        public static Complex operator /(Complex c1, Complex c2) {
            return new Complex(c1.Real / c2.Real, c1.Image / c2.Image);
        }
        //Перегрузка оператора / для комплексного числа и числа типа int
        public static Complex operator /(Complex c, int n) {
            return new Complex(c.Real / n, c.Image);
        }
        //Перегрузка оператора == для двух комплексных чисел
        public static bool operator==(Complex c1, Complex c2){
            return c1.Equals(c2);
        }
        //Перегрузка оператора != для двух комплексных чисел
        public static bool operator !=(Complex c1, Complex c2) {
            return !c1.Equals(c2);
        }    
        //Переопределение Equals()
        public override bool Equals(object obj) {
            if (!(obj is Complex))
                return false;
            return (((this.Real.CompareTo(((Complex)obj).Real))==0) &&
                    ((this.Image.CompareTo(((Complex)obj).Image)))==0);
        }
        //Переопределение GetHashCode()
        public override int GetHashCode() {
            return this.ToString().GetHashCode();
        }
    }
}

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


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

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

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