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

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

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

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

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

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ComplexNumber_Project {
  7.     class Complex {
  8.         //Автосвойства(с private сеттерами)
  9.         public double Real { get; private set; }
  10.         public double Image { get; private set; }
  11.         //Конструктор
  12.         public Complex(double r, double im) {
  13.             Real = r;
  14.             Image = im;
  15.         }
  16.         //Переопределение метода ToString();
  17.         public override string ToString() {
  18.             return string.Format("{0} {1}i", Real, Image);
  19.         }
  20.         //Перегрузка оператора + для двух комплексных чисел
  21.         public static Complex operator +(Complex c1, Complex c2) {
  22.             return new Complex(c1.Real + c2.Real, c1.Image + c2.Image);
  23.         }
  24.         //Перегрузка оператора + для комплексного числа и числа типа int
  25.         public static Complex operator +(Complex c, int n) {
  26.             return new Complex(c.Real + n, c.Image);
  27.         }
  28.         //Перегрузка оператора - для двух комплексных чисел
  29.         public static Complex operator -(Complex c1, Complex c2) {
  30.             return new Complex(c1.Real - c2.Real, c1.Image - c2.Image);
  31.         }
  32.         //Перегрузка оператора - для комплексного числа и числа типа int
  33.         public static Complex operator -(Complex c, int n) {
  34.             return new Complex(c.Real - n, c.Image);
  35.         }
  36.         //Перегрузка оператора * для двух комплексных чисел
  37.         public static Complex operator *(Complex c1, Complex c2) {
  38.             return new Complex(c1.Real * c2.Real, c1.Image * c2.Image);
  39.         }
  40.         //Перегрузка оператора * для комплексного числа и числа типа int
  41.         public static Complex operator *(Complex c, int n) {
  42.             return new Complex(c.Real * n, c.Image);
  43.         }
  44.         //Перегрузка оператора / для двух комплексных чисел
  45.         public static Complex operator /(Complex c1, Complex c2) {
  46.             return new Complex(c1.Real / c2.Real, c1.Image / c2.Image);
  47.         }
  48.         //Перегрузка оператора / для комплексного числа и числа типа int
  49.         public static Complex operator /(Complex c, int n) {
  50.             return new Complex(c.Real / n, c.Image);
  51.         }
  52.         //Перегрузка оператора == для двух комплексных чисел
  53.         public static bool operator==(Complex c1, Complex c2){
  54.             return c1.Equals(c2);
  55.         }
  56.         //Перегрузка оператора != для двух комплексных чисел
  57.         public static bool operator !=(Complex c1, Complex c2) {
  58.             return !c1.Equals(c2);
  59.         }    
  60.         //Переопределение Equals()
  61.         public override bool Equals(object obj) {
  62.             if (!(obj is Complex))
  63.                 return false;
  64.             return (((this.Real.CompareTo(((Complex)obj).Real))==0) &&
  65.                     ((this.Image.CompareTo(((Complex)obj).Image)))==0);
  66.         }
  67.         //Переопределение GetHashCode()
  68.         public override int GetHashCode() {
  69.             return this.ToString().GetHashCode();
  70.         }
  71.     }
  72. }

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


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

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

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы