• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kurs C++ obiektowy, odc.4

Konkurs Mistrz Programowania
0 głosów
839 wizyt
pytanie zadane 8 lipca 2015 w C i C++ przez Masa Nowicjusz (220 p.)

Witam, robię obecnie kurs obiektowy Pana Mirosława i jestem na odcinku 4. Dla sprawdzenia czy póki co rozumiem obiektówkę napisałem program który porównuje dwa punkty w osi X i osi Y. I prosiłbym, aby ktoś bardziej doświadczony zerknął na ten kod i spróbował wywnioskować czy dobrze zrozumiałem te pierwsze odcinki. Wydaje mi się że jestem gotów, ale chciałbym żeby ktoś spojrzał na to bardziej obiektywnie.

main.cpp 

#include <iostream>
#include "porownanie.h"
using namespace std;

void sedzia(Punkt1 p1,Punkt2 p2)
{
    if (p1.x>p2.x) cout <<"Punkt o nazwie "<<p1.nazwa<<"J est wyzej na osi x od punktu o nazwie "<<p2.nazwa<<endl;
    else if(p1.x==p2.x) cout<<"Punkt "<<p1.nazwa<<" i punkt "<<p2.nazwa<<" znajduja sie w tym samym punkcie na osi x"<<endl;
    else cout <<"Punkt o nazwie "<<p2.nazwa<<" Jest wyzej na osi x od punktu o nazwie "<<p1.nazwa<<endl;

    if (p1.y>p2.y) cout <<"Punkt o nazwie "<<p1.nazwa<<" Jest wyzej na osi y od punktu o nazwie "<<p2.nazwa<<endl;
    else if(p1.y==p2.y) cout<<"Punkt "<<p1.nazwa<<" i punkt "<<p2.nazwa<<" znajduja sie w tym samym punkcie na osi y"<<endl;
    else cout <<"Punkt o nazwie "<<p2.nazwa<<" Jest wyzej na osi y od punktu o nazwie "<<p1.nazwa<<endl;
}

int main()
{
    Punkt1 p1;
    p1.wczytaj();


    Punkt2 p2;
    p2.wczytaj();

    sedzia(p1,p2);
    return 0;
}

 

porownanie.h 

#include <iostream>

using namespace std;

class Punkt2;

class Punkt1
{
    float x,y;
    string nazwa;

    public:
    Punkt1 (string="A" , float=0, float=0 );
    void wczytaj();
    friend void sedzia(Punkt1 p1, Punkt2 p2);
};
class Punkt2
{
    float x,y;
    string nazwa;

    public:
    Punkt2 (string="B" , float=0, float=0 );
    void wczytaj();
    friend void sedzia(Punkt1 p1, Punkt2 p2);
};
porownanie.cpp

#include <iostream>
#include "porownanie.h"
using namespace std;

Punkt1::Punkt1 (string n, float xx, float yy)
{
    nazwa=n;
    x=xx;
    y=yy;
}

void Punkt1::wczytaj ()
{
    cout<<"Podaj x pierwszego punktu:"; cin>>x;
    cout<<"Podaj y pierwszego punktu:"; cin>>y;
    cout<<"Podaj nazwe punktu:"; cin>>nazwa;
}

Punkt2::Punkt2 (string n, float xx, float yy)
{
    nazwa=n;
    x=xx;
    y=yy;
}

void Punkt2::wczytaj ()
{
    cout<<"Podaj x drugiego punktu:"; cin>>x;
    cout<<"Podaj y drugiego punktu:"; cin>>y;
    cout<<"Podaj nazwe punktu:"; cin>>nazwa;
}

 

1 odpowiedź

+1 głos
odpowiedź 8 lipca 2015 przez Krawiec91 Pasjonat (19,600 p.)
wybrane 8 lipca 2015 przez Masa
 
Najlepsza
Wystarczyłaby jedna definicja klasy Punkt, bo z tego co widzę, to poza opisami typu "Podaj x pierwszego punktu", "Podaj x drugiego punktu" to się one nie różnią.
A poza tym, to nie ma za bardzo się do czego przyczepić.
komentarz 8 lipca 2015 przez Masa Nowicjusz (220 p.)
Racja, to by zoptymalizowało program ale chciałem wypróbować dwie klasy, tak dla wprawy ;). Dzięki za odpowiedź.

Podobne pytania

0 głosów
2 odpowiedzi 1,183 wizyt
pytanie zadane 17 października 2015 w C i C++ przez parimple Początkujący (260 p.)
0 głosów
2 odpowiedzi 324 wizyt
pytanie zadane 10 grudnia 2015 w C i C++ przez Buzzastral Nowicjusz (120 p.)
+2 głosów
4 odpowiedzi 717 wizyt
pytanie zadane 19 lipca 2015 w C i C++ przez GameBoot Początkujący (270 p.)

93,653 zapytań

142,574 odpowiedzi

323,089 komentarzy

63,169 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...