Консультация № 189019
27.03.2016, 12:23
0.00 руб.
0 1 0
Здравствуйте! У меня возникли сложности с таким вопросом:
Есть задачка по С++ и условие у нее такое к самой задаче:
Базовый класс:
Пара чисел(Pair)
первое число - First(int)
второе число - Second(int)
Определить методы изм.полей и операцию сложения пар (a,b)+(c,d) = (a+b, c+d). Создать производственный класс комплексное_число (Compex), с полями действительная_часть и мнимая_часть . Определить операцию умножения: (a,b)*(c,d) = (a*c-b*d, a*d+b*c)

У меня возникло сомнения,верно ли я решил с комлексным числом. (просто тема наследование и принцип постановки)

Обсуждение

давно
Посетитель
399388
6
27.03.2016, 12:37
общий
Lab4_main.cpp
Код:
#include <iostream>
#include "Pair.h"
#include "Compex.h"
using namespace std;
void main()
{
//работа с классом Pair
Pair a;
cin>>a; // вводим 1-е число
cout<<"a:"<<a;
Pair b;
cin>>b; // вводим 2-е число
cout<<"b:"<<b;
Pair c;
c=a+b; // сложение двух чисел(вектор)
cout<<"(a,b)+(c,d)="<<c;
// работа с компл. числами
Compex d;
cin>>d; // вводим 1-е число
cout<<"d:"<<d;
Compex e; //определ€ем переменную класса
cin>>e; // вводим 2-е число
cout<<"e:"<<e; // выводим знач.
Compex f;
f=d*e; //умножение компл.чисел
cout<<"(a,b)*(c,d)"<<f; // выводим знач.
system ("pause");
}

Pair.h
Код:
//описание класса
#pragma once
#include <string>
#include <iostream>
using namespace std;
class Pair
{
//конструктор без параметров
public:
Pair(void);
public:
//деструктор
virtual ~Pair(void);
//констрктор с параметрами
Pair(int,int);
//конструктор копировани€
Pair(const Pair&);
//селекторы
//string Get_mark(){return mark;}
int Get_second(){return second;}
int Get_first(){return first;}
//модификаторы
//void Set_mark(string);
void Set_second(int);
void Set_first(int);
//перегрузка операции присваивани€
Pair& operator=(const Pair&);
//глобальные операторы-функции ввода-вывода
friend istream& operator>>(istream&in,Pair&c);
friend ostream& operator<<(ostream&out,const Pair&c);
Pair operator+(const Pair&);
//атрибуты
protected:
int second;
int first;
};

Pair.cpp
Код:
#include "Pair.h"
//конструктор без параметров
Pair::Pair(void)
{
second=0;
first=0;
}
//деструктор
Pair::~Pair(void)
{
}
//конструктор с параметрами
Pair::Pair(int C,int P)
{
second=C;
first=P;
}
//конструктор копировани€
Pair::Pair(const Pair& Pair)
{
second=Pair.second;
first=Pair.first;
}
// операци€ переопределени€ 2 части числа
void Pair::Set_second(int C)
{
second=C;
}
// операци€ переопределени€ 1 части числа
void Pair::Set_first(int P)
{
first=P;
}
//перегрузка операции присваивани€
Pair& Pair::operator=(const Pair&c)
{
if(&c==this)return *this;
first=c.first;
second=c.second;
return *this;
}
//глобальна€ функци€ дл€ ввода
istream& operator>>(istream&in,Pair&c)
{
cout<<"\First:";in>>c.first;
cout<<"\nSecond:";in>>c.second;
return in;
}
//глобальна€ функци€ дл€ вывода
ostream& operator<<(ostream&out,const Pair&c)
{
out<<"\("<<c.second<<","<<c.first<<")";
out<<"\n";
return out;
}

Pair Pair::operator+(const Pair&c)
{
int temp1=first;
int temp2=second;
Pair p;
p.second=temp1+temp2;
p.first=c.first+c.second;
return p;
}


Compex.h

Код:
#pragma once
#include "Pair.h"
//класс Compex наследуетс€ от класса Pair
class Compex
{
public:
Compex(void);//конструктор без параметров
public:
~Compex(void);//деструктор
Compex(int,int);//конструктор с параметрами
Compex(const Compex & );//конструктор копировани€
int Get_dyst(){return dyst;}//модификатор dyst
void Set_dyst(int);//селектор dyst
int Get_mnim(){return mnim;}//модификатор dyst
void Set_mnim(int);//селектор dyst
Compex& operator=(const Compex&);//операци€ присваивани€
friend istream& operator>>(istream&in,Compex&l);//операци€ ввода
friend ostream& operator<<(ostream&out,const Compex&l); //операци€ вывода
Compex operator*(const Compex&);
protected:
int dyst;//действительна€ часть
int mnim;//мнима€ часть
};

Compex.cpp
Код:
#include "Compex.h"
//конструктор без параметров
Compex::Compex(void)
{
dyst=0;
mnim=0;
}
//дестрктор
Compex::~Compex(void)
{
}
//конструктор с параметрами
Compex::Compex( int D,int M)
{
dyst=D;
mnim=M;
}
//конструктор копировани€
Compex::Compex(const Compex &L)
{
dyst=L.dyst;
mnim=L.mnim;
}
//модификатор
void Compex::Set_dyst(int D)
{
dyst=D;
}
//модификатор
void Compex::Set_mnim(int M)
{
mnim=M;
}
//оперци€ присваивани€
Compex& Compex::operator=(const Compex&l)
{
if(&l==this)return *this;
dyst=l.dyst;
mnim=l.mnim;
return *this;
}
//операци€ ввода
istream& operator>>(istream&in,Compex&l)
{
cout<<"\nDyst:";in>>l.dyst;
cout<<"\nMnim:";in>>l.mnim;
return in;
}
//операци€ вывода
ostream& operator<<(ostream&out,const Compex&l)
{
cout<<"\("<<l.dyst<<","<<l.mnim<<")";
cout<<"\n";
return out;
}
Compex Compex::operator*(const Compex&c)
{
int temp1=(dyst*c.dyst)-(mnim*c.mnim);
int temp2=(dyst*c.mnim)+(mnim*c.dyst);
Compex p;
p.dyst=temp1;
p.mnim=temp2;
return p;
}
Форма ответа