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

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

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

Здравствуйте. Помогите пожалуйста реализовать меню в программе. Тут написан класс по заданию: Составить описание класса для представления комплексных чисел. Обеспечить выполнение операций сложения, вычитания и умножения комплексных чисел. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. Остался только главный класс с меню, чтобы можно было проверить работоспособность программы.
Листинг программы
  1. using System;
  2. namespace fdfd
  3. {
  4. public class Complex : ICloneable
  5. {
  6. private double m_real = 0.0;
  7. private double m_imag = 0.0;
  8. #region Конструкторы
  9. public Complex()
  10. {
  11. }
  12. public Complex (double re)
  13. {
  14. m_real = re;
  15. }
  16. public Complex (double re, double im)
  17. {
  18. m_real = re;
  19. m_imag = im;
  20. }
  21. public Complex (Complex x)
  22. {
  23. m_real = x.Real;
  24. m_imag = x.Imag;
  25. }
  26. #endregion
  27. public double Real
  28. {
  29. get { return m_real; }
  30. set { m_real = value; }
  31. }
  32. public double Imag
  33. {
  34. get { return m_imag; }
  35. set {m_imag = value; }
  36. }
  37. public double Abs
  38. {
  39. get { return Math.Sqrt(m_imag * m_imag + m_real * m_real); }
  40. }
  41. public double Arg
  42. {
  43. get { return Math.Atan(m_imag / m_real); }
  44. }
  45. /// <summary>
  46. /// Получить комплексно-сопряженное число
  47. /// </summary>
  48. public Complex GetConjugate()
  49. {
  50. return new Complex (m_real, -m_imag);
  51. }
  52. public override string ToString()
  53. {
  54. string res = "";
  55. if (m_real != 0.0)
  56. {
  57. res = m_real.ToString();
  58. }
  59. if (m_imag != 0.0)
  60. {
  61. if (m_imag > 0)
  62. {
  63. res += "+";
  64. }
  65. res += m_imag.ToString() + "i";
  66. }
  67. return res;
  68. }
  69. #region Перегруженные операторы сложения
  70. public static Complex operator + (Complex c1, Complex c2)
  71. {
  72. return new Complex (c1.Real + c2.Real, c1.Imag + c2.Imag);
  73. }
  74. public static Complex operator + (Complex c1, double c2)
  75. {
  76. return new Complex (c1.Real + c2, c1.Imag);
  77. }
  78. public static Complex operator + (double c1, Complex c2)
  79. {
  80. return new Complex (c1 + c2.Real, c2.Imag);
  81. }
  82. #endregion
  83.  
  84. #region Перегруженные операторы вычитания
  85. public static Complex operator - (Complex c1, Complex c2)
  86. {
  87. return new Complex (c1.Real - c2.Real, c1.Imag - c2.Imag);
  88. }
  89. public static Complex operator - (Complex c1, double c2)
  90. {
  91. return new Complex (c1.Real - c2, c1.Imag);
  92. }
  93. public static Complex operator - (double c1, Complex c2)
  94. {
  95. return new Complex (c1 - c2.Real, -c2.Imag);
  96. }
  97. #endregion
  98.  
  99. #region Перегруженные операторы умножения
  100. public static Complex operator * (Complex c1, Complex c2)
  101. {
  102. return new Complex (c1.Real * c2.Real - c1.Imag * c2.Imag,
  103. c1.Real * c2.Imag + c1.Imag * c2.Real);
  104. }
  105. public static Complex operator * (Complex c1, double c2)
  106. {
  107. return new Complex (c1.Real * c2, c1.Imag * c2);
  108. }
  109. public static Complex operator * (double c1, Complex c2)
  110. {
  111. return new Complex (c1 * c2.Real, c1 * c2.Imag);
  112. }
  113. #endregion
  114.  
  115. #region Перегруженные операторы деления
  116. public static Complex operator / (Complex c1, Complex c2)
  117. {
  118. double Denominator = c2.Real * c2.Real + c2.Imag * c2.Imag;
  119. return new Complex ((c1.Real * c2.Real + c1.Imag * c2.Imag) / Denominator,
  120. (c2.Real * c1.Imag - c2.Imag * c1.Real) / Denominator);
  121. }
  122. public static Complex operator / (Complex c1, double c2)
  123. {
  124. return new Complex (c1.Real / c2, c1.Imag / c2);
  125. }
  126. public static Complex operator / (double c1, Complex c2)
  127. {
  128. double Denominator = c2.Real * c2.Real + c2.Imag * c2.Imag;
  129. return new Complex ((c1 * c2.Real) / Denominator, (-c2.Imag * c1) / Denominator);
  130. }
  131. #endregion
  132. public static bool operator == (Complex c1, Complex c2)
  133. {
  134. return c1.Real == c2.Real && c1.Imag == c2.Imag;
  135. }
  136. public static bool operator != (Complex c1, Complex c2)
  137. {
  138. return c1.Real != c2.Real || c1.Imag != c2.Imag;
  139. }
  140. public override bool Equals(object obj)
  141. {
  142. return this == (Complex)obj;
  143. }
  144. public override int GetHashCode()
  145. {
  146. return m_real.GetHashCode() + m_imag.GetHashCode();
  147. }
  148.  
  149. #region ICloneable Members
  150. public object Clone()
  151. {
  152. return new Complex (this.m_real, this.m_imag);
  153. }
  154. #endregion
  155. }
  156. class Program
  157. {
  158. public static void Main(string[] args)
  159. {
  160. Complex re = new Complex(12.1, 11.2);
  161. String key;
  162. do{
  163. Console.WriteLine("Задание:\nСоставить описание класса для представления комплексных чисел. Обеспечить выполнение операций сложения, вычитания и умножения комплексных чисел. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.\n\n");
  164. Console.WriteLine("1) Показать числа");
  165. Console.WriteLine("2) Сложение");
  166. Console.WriteLine("3) Вычитание");
  167. Console.WriteLine("4) Умножение");
  168. Console.WriteLine("5) Деление");
  169. Console.WriteLine("6) Выход");
  170. key=Console.ReadLine();
  171. Convert.ToInt32(key);
  172. switch(key){
  173. case "1": Console.WriteLine(re);break;
  174. case "2": Console.WriteLine(); break;
  175. case "3": Console.WriteLine(); break;
  176. case "4": Console.WriteLine(); break;
  177. }
  178. }while(key!="6");
  179. Console.Write("Press any key to continue . . . ");
  180. Console.ReadKey(true);
  181. }
  182. }
  183. }

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

textual
Листинг программы
  1. public static void Main(string[] args)
  2. {
  3.     Console.WriteLine("Задание:\nСоставить описание класса для представления комплексных чисел. Обеспечить выполнение операций сложения, вычитания и умножения комплексных чисел. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.\n\n");
  4.     Complex re1 = new Complex(12.1, 11.2);
  5.     Complex re2 = new Complex(10.1, 1.2);
  6.     String key;
  7.     do
  8.     {
  9.         Console.WriteLine("1) Показать числа");
  10.         Console.WriteLine("2) Сложение");
  11.         Console.WriteLine("3) Вычитание");
  12.         Console.WriteLine("4) Умножение");
  13.         Console.WriteLine("5) Деление");
  14.         Console.WriteLine("6) Выход");
  15.         key = Console.ReadLine();
  16.         Convert.ToInt32(key);
  17.         switch (key)
  18.         {
  19.             case "1":
  20.                 Console.WriteLine(re1);
  21.                 Console.WriteLine(re2);
  22.                 break;
  23.             case "2": Console.WriteLine(re1+re2); break;
  24.             case "3": Console.WriteLine(re1-re2); break;
  25.             case "4": Console.WriteLine(re1*re2); break;
  26.             case "5": Console.WriteLine(re1/re2); break;
  27.         }
  28.     } while (key != "6");
  29.     Console.Write("Press any key to continue . . . ");
  30.     Console.ReadKey(true);
  31. }

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


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

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

9   голосов , оценка 4.111 из 5

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

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

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