LegendaryBeazt
Mitglied
Ich hätte mal wieder eine Frage bezüglich einer Aufgabe bzw. eines Problems mit meinem Code.
Es geht darum eine Klasse Punkt zu erstellen.
Hier die Header:
Und die cpp von point:
und die main:
Das eigentliche Problem liegt in der Main. Es soll das angegebene Menü erstellt werden. Die Menüpunkte 1 bis 5 und 0 funktionieren.
Der sechste Punkt jedoch nicht. Die Koordinate p1 soll ausgegeben werden (in dem Koordinatensystem welches durhc die Schleifen erstellt wird.)
Meine Idee war, dass ich überprüfe ob die Schleifenzähler j (für die x Achse) und i (für die y Achse) gleich den Punktwerten (p1.getxKoordinate()) sind.
Wenn man z.B. den Punkt auf 5 5 setzt, wird im Koordinatensystem das x auf x=0 und y=5 gesetzt.
Ich kann nicht herausfinden, wo das Problem liegt...
Vielleicht könnt ihr mir helfen
Gruß, Max
Es geht darum eine Klasse Punkt zu erstellen.
Hier die Header:
Code:
#ifndef POINT_H
#define POINT_H
class point
{
public:
//------------------------------------------------
point();
point(int xNeu, int yNeu);
//--------------------------------------------------
void display();
void moveTo(int xMove, int yMove);
void shift(int xShift, int yShift);
//---------------------------------------------------
int getXKoordinate();
void setXKoordinate(int xSet);
int getYKoordinate();
void setYKoordinate(int ySet);
//--------------------------------------------------------
private:
//-----------------------------------------------
int xKoordinate;
int yKoordinate;
//---------------------------------------------------------
};
Code:
#include "point.h"
#include <iostream>
using namespace std;
//------------------------------------------------------------------
point::point()
{
xKoordinate = 0;
yKoordinate = 0;
}
//---------------------------------------------------------------------
point :: point(int xNeu, int yNeu) {
xKoordinate = xNeu;
yKoordinate = yNeu;
}
//-----------------------------------------------------------------
void point :: display() {
cout << "X-Koordinate: " << xKoordinate << endl;
cout << "Y-Koordinate: " << yKoordinate << endl;
}
//-------------------------------------------------------------------
void point :: moveTo(int xMove, int yMove) {
xKoordinate = xMove;
yKoordinate = yMove;
}
//-----------------------------------------------------------------
void point :: shift(int xShift, int yShift) {
xKoordinate += xShift;
yKoordinate += yShift;
}
//-------------------------------------------------------------------
int point::getXKoordinate()
{
return xKoordinate;
}
//------------------------------------------------------------------------
void point::setXKoordinate(int xSet)
{
xKoordinate = xSet;
}
//---------------------------------------------------------------------
int point::getYKoordinate()
{
return yKoordinate;
}
//-----------------------------------------------------------------------
void point::setYKoordinate(int ySet)
{
yKoordinate = ySet;
}
//-----------------------------------------------------------------------------
Code:
#include <iostream>
#include "point.h"
#include <math.h>
#include <cstdlib>
#include <ctime>
using namespace std;
float berechneAbstand(point p1, point p2) {
int temp1 = p2.getXKoordinate()-p1.getXKoordinate(); //es fehlt noch previous überprüfen, ausgabe auf der tabelle funktioiert nicht
int temp2 = p2.getYKoordinate()-p1.getYKoordinate();
temp1 = temp1*temp1;
temp2 = temp2*temp2;
return static_cast<float>(sqrt(temp1 + temp2));
}
float berechneAbstandNullpunkt(point p1) {
int temp1 = p1.getYKoordinate()-0;
int temp2 = p1.getXKoordinate()-0;
temp1 = temp1*temp1;
temp2 = temp2*temp2;
return static_cast<float>(sqrt(temp1 + temp2));
}
int main()
{
cout << "(1) Koordinate manuell setzen" << endl;
cout << "(2) Koordinate zufallig setzen" << endl;
cout << "(3) Koordinate anzeigen" << endl;
cout << "(4) Koordinate bewegen" << endl;
cout << "(5) Abstand zum Nullpunkt anzeigen" << endl;
cout << "(6) Koordinate grafisch anzeigen" << endl;
cout << "(0) Ende" << endl;
point p1;
bool beenden = false;
int eingabeMenu;
int eingabeX, eingabeY;
do {
cout << "bitte Menu-Option eingeben: ";
cin >> eingabeMenu;
switch (eingabeMenu) {
//--------------------------------------------------------------------------------------------------------------
case 1: cout << "Bitte x Koordinate eingeben: ";
cin >> eingabeX;
while (eingabeX>10) {
cout << "X muss kleiner als 10 sein!" << "\n x Koorinate eingeben:";
cin >> eingabeX;
}
cout << "Bitte y Koordinate eingeben:";
cin >> eingabeY;
while (eingabeY>30) {
cout << "Y muss kleiner als 10 sein!" << "\n Y Koorinate eingeben:";
cin >> eingabeY;
}
p1.setXKoordinate(eingabeX);
p1.setYKoordinate(eingabeY);
break;
//--------------------------------------------------------------------------------------------------------
case 2: p1.setXKoordinate((rand()%9)+1);
p1.setYKoordinate((rand()%30)+1);
cout << "Zufallswerte: " << " X-Wert: " << p1.getXKoordinate() << " Y-Wert: " << p1.getYKoordinate() << endl;
break;
//----------------------------------------------------------------------------------------------------------------------------
case 3: p1.display();
break;
//------------------------------------------------------------------------------------------------------------------
case 4: cout << "Bitte eingeben, um wieviel sich die x und y Koordinate bewegen soll:";
cin >> eingabeX >> eingabeY;
p1.shift(eingabeX, eingabeY);
break;
//-------------------------------------------------------------------------------------------------------------------
case 5: cout << "Abstand zum Nullpunkt: " << berechneAbstandNullpunkt(p1) << endl;
break;
//---------------------------------------------------------------------------------------------------
case 6:
for(int i=9;i>=0;i--)
{
cout << i << "|";
for(int j=0;j<30;j++)
{
if(j == p1.getXKoordinate() && i == p1.getYKoordinate())
{
cout << "x";
}
} cout << endl;
}
cout << " +";
for(int i=0;i<30;i++)
cout << "-";
cout << endl;
cout << " ";
for(int i=0;i<30;i++)
cout << i%10;
cout << endl;
/* for(int i=0;i<max;i++)
{
cout << varX-- << "|";
for(int j=0;j<nax;j++)
{
if(i == p1.getXKoordinate() && j == p1.getYKoordinate()) {
cout << "x";
}
} cout << endl;
}
cout << " +";
for(int i=0;i<30;i++)
cout << "-";
cout << endl;
cout << " ";
for(int i=0;i<30;i++)
cout << i%10;
cout << endl; */
/*
for(int i=0;i<10;i++)
{ ihiohioh
cout << varX-- << "|";
for(int j=0;j<30;j++)
{
if(i == p1.getYKoordinate())
{
if(j == p1.getXKoordinate())
{
cout << "x";
break;
}
}
} cout << endl;
}
cout << " +";
for(int i=0;i<30;i++)
cout << "-";
cout << endl;
cout << " ";
for(int i=0;i<30;i++)
cout << i%10;
cout << endl; */
break;
//---------------------------------------------------------------------------------------------------------
case 0: beenden = true; break;
//---------------------------------------------------------------------------------------
}
} while (!beenden);
return 0;
}
Das eigentliche Problem liegt in der Main. Es soll das angegebene Menü erstellt werden. Die Menüpunkte 1 bis 5 und 0 funktionieren.
Der sechste Punkt jedoch nicht. Die Koordinate p1 soll ausgegeben werden (in dem Koordinatensystem welches durhc die Schleifen erstellt wird.)
Meine Idee war, dass ich überprüfe ob die Schleifenzähler j (für die x Achse) und i (für die y Achse) gleich den Punktwerten (p1.getxKoordinate()) sind.
Wenn man z.B. den Punkt auf 5 5 setzt, wird im Koordinatensystem das x auf x=0 und y=5 gesetzt.
Ich kann nicht herausfinden, wo das Problem liegt...
Vielleicht könnt ihr mir helfen
Gruß, Max