fpontesmorales

EqualSides - AP TPEII - UFC

Apr 24th, 2012
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.54 KB | None | 0 0
  1. /*Defina uma classe EqualSides (lados iguais) que representará objetos 2D para serem
  2. desenhados no console onde os lados tem o mesmo tamanho. Ela deve possuir os seguintes
  3. atributos: size que representa o tamanho do lado do objeto e character que representa o
  4. caractere a ser usado para desenhar a figura. Esta classe deve ter um construtor default
  5. para inicializar o que for necessário, além dos métodos setSize() e setCharacter() para
  6. definir os respectivos atributos e ainda um método draw(), este método deve ser definido
  7.  como virtual puro, fazendo com que a classe EqualSides seja abstrata. O método draw()imprime
  8.  a figura no console.
  9. Definir e implementar também mais duas classes Square e EquilateralTriangle, derivadas
  10. da classe EqualSides.
  11. Implementar uma aplicação para testar o método draw(), setSize() e setCharacter() dos objetos
  12. instanciados das classes Square e EquilateralTriangle através do uso de polimorfismo. */
  13.  
  14. #include<iostream>
  15.  
  16. using namespace std;
  17.  
  18. class EqualSides {
  19.  
  20.     protected:
  21.  
  22.     int size;
  23.     char character;
  24.  
  25.     public:
  26.  
  27.     EqualSides();
  28.     void setSize();
  29.     void setCharacter();
  30.     virtual void draw() = 0;
  31.  
  32. };
  33.  
  34. class Square : public EqualSides {
  35.     public:
  36.     int i;
  37.     int j;
  38.     void draw();
  39. };
  40.  
  41. class EquilateralTriangle : public EqualSides {
  42.     public:
  43.     int h;
  44.     int espaco;
  45.     int aux;
  46.     void draw();
  47. };
  48.  
  49. EqualSides::EqualSides(){
  50. }
  51.  
  52. void EqualSides::setSize(){
  53.     cout << "Digite o TAMANHO desejado do desenho: " ;
  54.     cin >> size ;
  55. }
  56.  
  57. void EqualSides::setCharacter(){
  58.     cout << "Digite o CARACTERE desejado No desenho: " ;
  59.     cin >> character ;
  60. }
  61.  
  62. void Square::draw(){
  63.  
  64.     cout<< endl;
  65.  
  66.     for (i=0 ; i< size ; i++){
  67.         for(j=0; j<size ; j++){
  68.         cout << " " << character;
  69.         }
  70.         cout<< endl;
  71.     }
  72. }
  73.  
  74. void EquilateralTriangle::draw(){
  75.  
  76.     espaco = size;
  77.     cout<< endl;
  78.  
  79.     for (h=0 ; h <size ; h++){
  80.         for(aux=1; aux<espaco ; aux++){
  81.         cout << " ";
  82.         }
  83.         for (aux=0 ; aux<h+1 ; aux++){
  84.         cout << character << " ";
  85.         }
  86.         espaco--;
  87.         cout<< endl;
  88.     }
  89. }
  90.  
  91. int main(){
  92.  
  93.     cout << "Testando o Square: \n"<< endl ;
  94.  
  95.     EqualSides *ptr;
  96.     Square quadrado;
  97.     ptr = &quadrado;
  98.     ptr->setSize();
  99.     ptr->setCharacter();
  100.     ptr->draw();
  101.  
  102.     cout << "\n\nTestando o Triangulo Equilatero: \n"<< endl ;
  103.  
  104.     EquilateralTriangle triangulo;
  105.     ptr = &triangulo;
  106.     ptr->setSize();
  107.     ptr->setCharacter();
  108.     ptr->draw();
  109.  
  110. return 0;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment