choldax
06/02/2008, 21:46
#include <iostream>
using namespace std;
class Coordinates
{
public:
int x,y;
};
class Star
{
public:
void MoveRight();
void MoveLeft();
void MoveUp();
void MoveDown();
private:
void PrintInfo();
};
class Area
{
public:
int height,width;
Coordinates star;
char **frame;
void CreateFrame(Area);
void PrintFrame(Area);
};
void Area::CreateFrame(Area alan)
{
int h,w,i;
alan.frame = new char*[alan.height];
for(i=0; i!=alan.width; i++)
alan.frame[i] = new char[alan.width];
for(h=0; h<alan.height; h++)
{
for(w=0; w<alan.width; w++)
{
alan.frame[h][w] = ' ';
}
}
cout<<"Mallocation\n";
for(i=0; i<alan.width; i++)
{
alan.frame[0][i] = '*';
alan.frame[alan.height-1][i] = '*';
}
for(i=0; i<alan.height; i++)
{
alan.frame[i][0] = '*';
alan.frame[i][alan.width-1] = '*';
}
cout<<"Frame\n";
alan.star.x = alan.height/2;
alan.star.y = alan.width/2;
alan.frame[alan.star.x][alan.star.y] = '*';
cout<<"Frame CREATED!\n";
}
void Area::PrintFrame(Area alan)
{
int h,w;
cout<<"Printing...\n";
for(h=0; h<alan.height-1; h++)
{
for(w=0; w<alan.width-1; w++)
{
cout<<"1\n";
cout<<alan.frame[h][w];
cout<<"2\n";
}
cout<<endl;
}
cout<<"Mrinting\n";
}
void Star::MoveRight()
{
cout<<"void Star::MoveRight()"<<endl;
}
void Star::MoveLeft()
{
cout<<"void Star::MoveLeft()"<<endl;
}
void Star::MoveUp()
{
cout<<"void Star::MoveUp()"<<endl;
}
void Star::MoveDown()
{
cout<<"void Star::MoveDown()"<<endl;
}
int main()
{
Area myarea;
myarea.height = 10;
cout<<"Area height\n";
myarea.width = 10;
cout<<"Area width\n";
myarea.CreateFrame(myarea);
myarea.PrintFrame(myarea);
return 0;
}
PrintArea fonksiyonunda döngünün içine giriyor ama ilk karakteri basmadan program patlıyor. Ancak fonksiyonun içeriğini CreateArea içine kopyaladığımda istediğim şeyi basıyor.
Yardımlarınızı bekliyorum.
Saygılar
using namespace std;
class Coordinates
{
public:
int x,y;
};
class Star
{
public:
void MoveRight();
void MoveLeft();
void MoveUp();
void MoveDown();
private:
void PrintInfo();
};
class Area
{
public:
int height,width;
Coordinates star;
char **frame;
void CreateFrame(Area);
void PrintFrame(Area);
};
void Area::CreateFrame(Area alan)
{
int h,w,i;
alan.frame = new char*[alan.height];
for(i=0; i!=alan.width; i++)
alan.frame[i] = new char[alan.width];
for(h=0; h<alan.height; h++)
{
for(w=0; w<alan.width; w++)
{
alan.frame[h][w] = ' ';
}
}
cout<<"Mallocation\n";
for(i=0; i<alan.width; i++)
{
alan.frame[0][i] = '*';
alan.frame[alan.height-1][i] = '*';
}
for(i=0; i<alan.height; i++)
{
alan.frame[i][0] = '*';
alan.frame[i][alan.width-1] = '*';
}
cout<<"Frame\n";
alan.star.x = alan.height/2;
alan.star.y = alan.width/2;
alan.frame[alan.star.x][alan.star.y] = '*';
cout<<"Frame CREATED!\n";
}
void Area::PrintFrame(Area alan)
{
int h,w;
cout<<"Printing...\n";
for(h=0; h<alan.height-1; h++)
{
for(w=0; w<alan.width-1; w++)
{
cout<<"1\n";
cout<<alan.frame[h][w];
cout<<"2\n";
}
cout<<endl;
}
cout<<"Mrinting\n";
}
void Star::MoveRight()
{
cout<<"void Star::MoveRight()"<<endl;
}
void Star::MoveLeft()
{
cout<<"void Star::MoveLeft()"<<endl;
}
void Star::MoveUp()
{
cout<<"void Star::MoveUp()"<<endl;
}
void Star::MoveDown()
{
cout<<"void Star::MoveDown()"<<endl;
}
int main()
{
Area myarea;
myarea.height = 10;
cout<<"Area height\n";
myarea.width = 10;
cout<<"Area width\n";
myarea.CreateFrame(myarea);
myarea.PrintFrame(myarea);
return 0;
}
PrintArea fonksiyonunda döngünün içine giriyor ama ilk karakteri basmadan program patlıyor. Ancak fonksiyonun içeriğini CreateArea içine kopyaladığımda istediğim şeyi basıyor.
Yardımlarınızı bekliyorum.
Saygılar