Filled dimon or UnFilled dimon, OOPs Technique..
#include <iostream.h>
using namespace std;
class dimon
{
private:
int size;
public:
dimon()
{
size = 0;
}
void setSize(int isize)
{
size = isize;
}
int getsize()
{
return size;
}
void pWhiteSpace(int num ) // draw the white space
{
for(int i=0; i<num ; i++)
{
cout << " " ;
}
}
void pStar(int num) // draw the star "*"
{
for(int i=0; i<num; i++)
{
cout << "*" ;
}
}
};
class FillDimon : public dimon
{
public:
void show()
{
int size = getsize() ;
int middle = size / 2;
int j = middle ;
for(int i=0; i < size ; i++)
{
if(i<=middle)
{
pWhiteSpace(j--);
pStar(i);
pStar(i+1);
}
else
{
pWhiteSpace(++j+1);
pStar(size - i);
pStar(size - i -1 );
}
cout << endl;
}
}
};
class UnFillDimon : public dimon
{
private:
void pSW(int num)
{
int whitenum;
if(num==1)
{
cout << "*";
}
else if(num >1 )
{
whitenum = num - 2;
cout << "*";
pWhiteSpace(whitenum);
pWhiteSpace(whitenum + 1);
cout << "*";
}
}
public:
void show()
{
int size = getsize();
int middle = size/2;
int j = middle;
for(int i = 0; i<size; i++)
{
if(i <= middle)
{
pWhiteSpace(j--);
pSW(i+1);
}
else
{
pWhiteSpace(++j+1);
pSW(size-i);
}
cout << endl;
}
}
};
int main(int argc, char** argv) {
int ch;
FillDimon mydimon;
UnFillDimon myudimon;
cout << " Enter number 1 or 2 to display Filled Dimon or UnFilled Dimon :" << endl;
cout << " >> " ;
cin >> ch ;
if ( ch == 1 )
{
mydimon.setSize(25);
mydimon.show();
}
else
{
myudimon.setSize(25);
myudimon.show();
}
return (EXIT_SUCCESS);
}
This is another version of Filled / Unfilled Dimon , using OOP.
and try to use inheritance , base class , derive class. . . . have fun
Categories: C++
Yeb , good code 🙂