oto moj kod... jest to kaltulator ktory ma liczyc na liczbach zespolonych... 4 dzialania +-/*.
Dopiero sie ucze programowania i wielu zasad w pisaniu kodu itp takze wybaczcie jakies odchyly :D
Ma pare problemow:
- Moglby mi ktos napisac tresc funkcji mnozenia i dzielenia?? w matematyce wiem jak to ma wygladac ale w programie tutaj w kodzie nie mam w ogóle pojecia... HELP
- Chcialbym aby program byl podzielony na pliki tzn kazda klasa w swoich dwoch plikach .h i .cpp
Nie do konca wiem co gdzie ma byc... HELP (najlepiej jaby to ktos zrobil albo jakos zaznaczyl)... - w funkcji main() w kazdym case powtarza sie sie cout i cin do wczytywania danych.... dalem przed switch ale przy uruchomieniu potem sa problemy gdy np wybiore 7... nie wiem jak sobie z tym poradzic...
#include <iostream>
using namespace std;
/////////////////////////////klasa complex////////////////////////////////////////////////
class Complex
{
public:
Complex();
Complex(double _rzeczywista, double _urojona);
Complex(const Complex& wartosc);
Complex operator=(const Complex& a);
virtual ~Complex() {}
void UstawLiczbaRze(double wartosc);
void UstawLiczbaUro(double wartosc);
double UstawLiczbaRze();
double UstawLiczbaUro();
private:
double urojona;
double rzeczywista;
};
///////////////////////////koniec klasy complex//////////////////////////////////////////
Complex::Complex()
: urojona(0)
, rzeczywista(0)
{
}
Complex::Complex(const Complex& wartosc)
{
urojona=wartosc.urojona;
rzeczywista=wartosc.rzeczywista;
}
Complex::Complex(double _rzeczywista, double _urojona)
: urojona(_urojona)
, rzeczywista(_rzeczywista)
{
}
void Complex::UstawLiczbaRze(double wartosc)
{
rzeczywista=wartosc;
}
void Complex::UstawLiczbaUro(double wartosc)
{
urojona = wartosc;
}
double Complex::UstawLiczbaRze()
{
return rzeczywista;
}
double Complex::UstawLiczbaUro()
{
return urojona;
}
Complex Complex::operator=(const Complex& a)
{
return Complex(a);
}
//////////////////////////////////////////////klasa dodawanie/////////////////////////////////////////////
class dodawanie
{
public:
dodawanie(const Complex& _a, const Complex& _b);
Complex dodaj();
private:
Complex a;
Complex b;
};
///////////////////////////////////////koniec klasy dodawanie//////////////////////////////////////////////
dodawanie::dodawanie(const Complex& _a, const Complex& _b)
: a(_a)
, b(_b)
{
}
///////////////////////////////////definicja funkcji dodawanie//////////////////////////////////////
Complex dodawanie::dodaj()
{
Complex suma;
suma.UstawLiczbaRze(a.UstawLiczbaRze()+b.UstawLiczbaRze());
suma.UstawLiczbaUro(a.UstawLiczbaUro()+b.UstawLiczbaUro());
return suma;
}
/////////////////////////////////koniec definicji dodawanie//////////////////////////////////////////////
//////////////////////////////////////////////klasa mnozenie/////////////////////////////////////////////
class mnozenie
{
public:
mnozenie(const Complex& _a, const Complex& _b);
Complex pomnoz();
private:
Complex a;
Complex b;
};
///////////////////////////////////////koniec klasy mnozenie//////////////////////////////////////////////
mnozenie::mnozenie(const Complex& _a, const Complex& _b)
: a(_a)
, b(_b)
{
}
///////////////////////////////////definicja funkcji mnozenie//////////////////////////////////////
Complex mnozenie::pomnoz()
{
Complex iloczyn;
iloczyn.UstawLiczbaRze((a.UstawLiczbaRze()*b.UstawLiczbaRze())-(a.UstawLiczbaUro()*b.UstawLiczbaUro()));
iloczyn.UstawLiczbaUro((a.UstawLiczbaRze()*b.UstawLiczbaUro())+(a.UstawLiczbaUro()*b.UstawLiczbaRze()));
return iloczyn;
}
/////////////////////////////////koniec definicji mnozenie//////////////////////////////////////////////
//----------------------------------------------------------------------------------------------
////////////////////////////////klasa odejmowanie//////////////////////////////////////////////////////
class odejmowanie
{
public:
odejmowanie(const Complex& _a, const Complex& _b);
Complex odejm();
private:
Complex a;
Complex b;
};
/////////////////////////////////////////koniec klasy odejmowanie////////////////////////////////////////
odejmowanie::odejmowanie(const Complex& _a, const Complex& _b)
: a(_a)
, b(_b)
{
}
//////////////////////////////definicja funkcji odejmowanie/////////////////////////////////////////
Complex odejmowanie::odejm()
{
Complex odejmow;
odejmow.UstawLiczbaRze(a.UstawLiczbaRze()-b.UstawLiczbaRze());
odejmow.UstawLiczbaUro(a.UstawLiczbaUro()-b.UstawLiczbaUro());
return odejmow;
}
////////////////////////////////koniec definicji odejmowanie///////////////////////////////////////////
//////////////////////////////////////funkcja main///////////////////////////////////////////////////////
#include <iostream>
using namespace std;
int main()
{
int czesc1a=0; //czesc rzeczywista liczby a
int czesc2a=0; //czesc urojona liczby a
int czesc1b=0; //czesc rzeczywista liczby b
int czesc2b=0; //czesc urojona liczby b
int q; //zmienna pomocnicza q do wyboru czy liczyc czy nie
cout<<"[----------------------------------------------------------]\n";
cout<<"[-----------------------KALKULATOR-------------------------]\n";
cout<<"[--------------------LICZBY ZESPOLONE----------------------]\n";
cout<<"[----------------------------------------------------------]\n";
cout<<"[----------------------------------------------------------]\n";
cout<<"[-------------------------------TOMASZ SZUREK II EF-ZI ---]\n";
cout<<"[----------------------------------------------------------]\n\n\n";
cout<<"Program ten o nazwie KALKULATOR,\n";
cout<<"zawiera 4 proste dzialania: + - * /.\n\n";
cout<<"Jakie dzialanie chcesz obliczyc?\n\n";
cout<<"Jesli dodawanie to wcisnij - 1\n";
cout<<"Jesli odejmowanie to wcisnij - 2\n";
cout<<"Jesli dzielenie to wcisnij - 3\n";
cout<<"Jesli mnozenie to wcisnij - 4\n";
cout<<"WYJSCIE... to wcisnij - 0\n\n";
cout<<"Wybrales: ";
for(;;)
{
cin>>q;
if (q==0)
{
break;
}
switch(q)
{
case 1: //DODAWANIE
{
//wprowadzanie liczby a
cout<<"Podaj czesc rzeczywista liczby a: ";
cin>>czesc1a;
cout<<"Podaj czesc urojona liczby a: ";
cin>>czesc2a;
Complex a(czesc1a,czesc2a);
cout<<"Liczba a: "<<a.UstawLiczbaRze()<<"+"<<a.UstawLiczbaUro()<<"i\n\n";
//wprowadzanie liczby b
cout<<"Podaj czesc rzeczywista liczby b: ";
cin>>czesc1b;
cout<<"Podaj czesc urojona liczby b: ";
cin>>czesc2b;
Complex b(czesc1b,czesc2b);
cout<<"Liczba b: "<<b.UstawLiczbaRze()<<"+"<<b.UstawLiczbaUro()<<"i\n\n";
dodawanie sumuj(a,b);
Complex wynik=sumuj.dodaj();
cout << "Liczba a: "<<a.UstawLiczbaRze()<<"+"<<a.UstawLiczbaUro()<<"i\n";
cout << "Liczba b: "<<b.UstawLiczbaRze()<<"+"<<b.UstawLiczbaUro()<<"i\n";
cout << "a+b = "<<wynik.UstawLiczbaRze()<<" + "<<wynik.UstawLiczbaUro()<<"i\n\n";
}
break;
case 2: //ODEJMOWANIE
{
//wprowadzanie liczby a
cout<<"Podaj czesc rzeczywista liczby a: ";
cin>>czesc1a;
cout<<"Podaj czesc urojona liczby a: ";
cin>>czesc2a;
Complex a(czesc1a,czesc2a);
cout<<"Liczba a: "<<a.UstawLiczbaRze()<<"+"<<a.UstawLiczbaUro()<<"i\n\n";
//wprowadzanie liczby b
cout<<"Podaj czesc rzeczywista liczby b: ";
cin>>czesc1b;
cout<<"Podaj czesc urojona liczby b: ";
cin>>czesc2b;
Complex b(czesc1b,czesc2b);
cout<<"Liczba b: "<<b.UstawLiczbaRze()<<"+"<<b.UstawLiczbaUro()<<"i\n\n";
odejmowanie sumuj(a,b);
Complex wynik=sumuj.odejm();
cout << "Liczba a: "<<a.UstawLiczbaRze()<<"+"<<a.UstawLiczbaUro()<<"i\n";
cout << "Liczba b: "<<b.UstawLiczbaRze()<<"+"<<b.UstawLiczbaUro()<<"i\n";
cout << "a-b = "<<wynik.UstawLiczbaRze()<<" + "<<wynik.UstawLiczbaUro()<<"i\n\n";
}
break;
case 3: //DZIELENIE
{
//wprowadzanie liczby a
cout<<"Podaj czesc rzeczywista liczby a: ";
cin>>czesc1a;
cout<<"Podaj czesc urojona liczby a: ";
cin>>czesc2a;
Complex a(czesc1a,czesc2a);
cout<<"Liczba a: "<<a.UstawLiczbaRze()<<"+"<<a.UstawLiczbaUro()<<"i\n\n";
//wprowadzanie liczby b
cout<<"Podaj czesc rzeczywista liczby b: ";
cin>>czesc1b;
cout<<"Podaj czesc urojona liczby b: ";
cin>>czesc2b;
Complex b(czesc1b,czesc2b);
cout<<"Liczba b: "<<b.UstawLiczbaRze()<<"+"<<b.UstawLiczbaUro()<<"i\n\n";
dodawanie sumuj(a,b);
Complex wynik=sumuj.dodaj();
cout << "Liczba a: "<<a.UstawLiczbaRze()<<"+"<<a.UstawLiczbaUro()<<"i\n";
cout << "Liczba b: "<<b.UstawLiczbaRze()<<"+"<<b.UstawLiczbaUro()<<"i\n";
cout << "a/b = "<<wynik.UstawLiczbaRze()<<" + "<<wynik.UstawLiczbaUro()<<"i\n\n";
}
break;
case 4: //MNOZENIE
{
//wprowadzanie liczby a
cout<<"Podaj czesc rzeczywista liczby a: ";
cin>>czesc1a;
cout<<"Podaj czesc urojona liczby a: ";
cin>>czesc2a;
Complex a(czesc1a,czesc2a);
cout<<"Liczba a: "<<a.UstawLiczbaRze()<<"+"<<a.UstawLiczbaUro()<<"i\n\n";
//wprowadzanie liczby b
cout<<"Podaj czesc rzeczywista liczby b: ";
cin>>czesc1b;
cout<<"Podaj czesc urojona liczby b: ";
cin>>czesc2b;
Complex b(czesc1b,czesc2b);
cout<<"Liczba b: "<<b.UstawLiczbaRze()<<"+"<<b.UstawLiczbaUro()<<"i\n\n";
dodawanie sumuj(a,b);
Complex wynik=sumuj.dodaj();
cout << "Liczba a: "<<a.UstawLiczbaRze()<<"+"<<a.UstawLiczbaUro()<<"i\n";
cout << "Liczba b: "<<b.UstawLiczbaRze()<<"+"<<b.UstawLiczbaUro()<<"i\n";
cout << "a*b = "<<wynik.UstawLiczbaRze()<<" + "<<wynik.UstawLiczbaUro()<<"i\n\n";
}
break;
default:
{
cout<<"Nie podales zadnego odpowiednika dzialania.\n";
}
}
cout<<"\nKolejna operacja to: ";
}
return 0;
}
///////////////////////////////////////////koniec funkcji main//////////////////////////////////////////
/*
/////////dzielenie///////////////////
z1 = a1 + b1i
z2 = a2 + b2i
z1 / z2 = (a2*b1 - a1*b2) / (a22 + b22)
////////////////////koniec dzielenia///////////////////
/////////////////mnozenie////////////////////////
z1 = (a1, b1)
z2 = (a2, b2)
z1*z2 = (a1*a2 - b1*b2, a1*b2 + a2*b1)
////////////////koniec mnozenia///////////////////
*/