Форум программистов, компьютерный форум CyberForum.ru

Программа для операций с комплексными числами - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
al-s
0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 8
09.10.2012, 21:04     Программа для операций с комплексными числами #1
На базе приведенного ниже класса и примера его использования надо реализовать программу работы с комплексными числами, что бы выполнялись следующие требования:
1. Программа должна позволять выполнять следующие основные операции на комплексными числами: + - * / ++(унарный плюс) --(унарный минус)
2. Программа должна позволять выполнять приведенные выше операции как над парой комплексных чисел, так и в случае, если один из аргументов операции является действительным или целым числом.
3. Для каждой из приведенных выше операций в классе должен быть реализован только один интерфейс.
4. Программа должна осуществлять ввод данных из стандартного потока ввода.
5. Вывод результатов работы программы должен осуществляться в файл результата работы программы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#pragma hdrstop
#pragma argsused
 
#include <tchar.h>
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <fstream.h>
//-------------------------------------------------------------------------------------------
using namespace std;
class Complex
{
    private:
        double real; // Действительная часть
        double image; // Мнимая часть
 
    public:
        Complex() {}; // Конструктор по умолчанию
 
    Complex(double r)
    {
        real = r; image = 0;
    }
    // Конструктор
    Complex(double r, double i)
    {
        real = r, image = i;
    }
    // Конструктор
        ~Complex() {} ;// Деструктор
 
        float abs() // Модуль комплексного числа
    {
        return sqrt(real * real - image * image);
    }
 
    Complex operator+(Complex &); // Перегрузка оператора сложения
 
    Complex operator-(Complex &); // Перегрузка оператора вычитания
 
    Complex operator*(Complex &); // Перегрузка оператора умножения
 
    Complex operator/(Complex &); // Перегрузка оператора деления
 
    // Перегрузка функции-оператора << для вывода класса Complex
    friend ostream &operator<<(ostream &, Complex &);
 
    // Перегрузка функции-оператора >> для ввода класса Complex
    friend istream &operator>>(istream &, Complex &);
};
//-------------------------------------------------------------------------------------------
    // Перегрузка +
    Complex Complex::operator+(Complex &fp1)
    {
        fp1.real = real + fp1.real;
        fp1.image = image + fp1.image;
        return fp1;
    }
 
     // Перегрузка -
     Complex Complex::operator-(Complex &fp1)
     {
         fp1.real = real - fp1.real;
         fp1.image = image - fp1.image;
         return fp1;
     }
 
     // Перегрузка *
     Complex Complex::operator*(Complex &fp1)
     {
         double i, j;
         i = real * fp1.real - image * fp1.image;
         j = real * fp1.image + fp1.real * image;
         fp1.real = i;
         fp1.image = j;
         return fp1;
     }
 
     // Перегрузка /
      Complex Complex::operator/(Complex &fp1)
      {
          double k, i, j;
          k = fp1.real * fp1.real + fp1.image * fp1.image;
          i = (real * fp1.real + image * fp1.image) / k;
          j = (fp1.real * image - real * fp1.image) / k;
          fp1.real = i;
          fp1.image = j;
          return fp1;
      }
 
      // Перегрузка оператора <<
      ostream &operator<< (ostream &fo, Complex &fp)
      {
          if (fp.image < 0)
            fo << fp.real << "+i(" << fp.image << ")\n";
          else
            fo << fp.real << "+i" << fp.image << "\n";
 
           return fo;
      }
 
      // Перегрузка оператора >>
      istream &operator>>(istream &fi, Complex &fp)
      {
          cout << "Input real part of complex: ";
         fi >> fp.real;
          cout << "Input image part of complex: ";
          fi >> fp.image;
          return fi;
      }
//-------------------------------------------------------------------------------------------
int _tmain(int argc, _TCHAR* argv[])
{
    Complex value1, value2;
 
    cin >> value1;
 
    cout << value1;
 
    ofstream out("file.txt");
 
    getch();
    return 0;
}
Вот что у меня пока получилось. К сожалению только начал изучать С++, поэтому вопросов много.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2012, 21:04     Программа для операций с комплексными числами
Посмотрите здесь:

C++ Класс для работы с комплексными числами
C++ Создать класс для работы с тригонометрическими комплексными числами
C++ Описать класс для работы с комплексными числами
C++ Класс Complex для работы с комплексными числами
Операции над комплексными числами с использованием перегруженных операций C++
C++ Шаблон класса для работы с комплексными числами
C++ c++ создать класс complex для работы с комплексными числами
C++ Реализовать класс Complex для работы с комплексными числами.

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 02:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru