fork download
  1. //3. Crie uma classe denominada Elevador para armazenar as informações de um elevador dentro de um prédio.
  2. //A classe deve armazenar o andar atual (0=térreo), total de andares no prédio, excluindo o térreo, capacidade do elevador, e quantas pessoas estão presentes nele.
  3. //A classe deve também disponibilizar os seguintes métodos:
  4. //inicializa: que deve receber como parâmetros: a capacidade do elevador e o total de andares no prédio (os elevadores sempre começam no térreo e vazios);
  5. //entra: para acrescentar uma pessoa no elevador (só deve acrescentar se ainda houver espaço);
  6. //sai: para remover uma pessoa do elevador (só deve remover se houver alguém dentro dele);
  7. //sobe: para subir um andar (não deve subir se já estiver no último andar);
  8. //desce: para descer um andar (não deve descer se já estiver no térreo);
  9. //get....: métodos para obter cada um dos os dados armazenados.
  10.  
  11.  
  12.  
  13. #include <cstdlib>
  14. #include <iostream>
  15.  
  16. using namespace std;
  17.  
  18. class elevador {
  19. public:
  20. elevador();
  21. elevador(int, int);
  22. int setInicializa(int, int);
  23. int getEntra();
  24. int setEntra(int);
  25. int getSai();
  26. int setSai(int);
  27. int getSobe();
  28. int setSobe(int);
  29. int getDesce();
  30. int setDesce(int);
  31.  
  32. private:
  33.  
  34. int capacidade;
  35. int capacidadeTotal;
  36. int andares;
  37. int totalAndares;
  38. int andarAtual;
  39.  
  40. };
  41.  
  42. elevador::elevador(int c, int a)
  43. {
  44. capacidade=c;
  45. andarAtual=a;
  46. }
  47.  
  48. int elevador::setInicializa(int c,int a)
  49. {
  50. capacidadeTotal=c;
  51. andares=a;
  52. capacidade=c;
  53. return 0;
  54.  
  55. }
  56.  
  57.  
  58. int elevador::getEntra()
  59. {
  60. return capacidade;
  61. }
  62.  
  63. int elevador::setEntra(int c)
  64. {
  65. if(capacidade>0)
  66. {
  67. capacidade = capacidade-1;
  68.  
  69. cout << "O elevevador possui " << capacidadeTotal-capacidade << " passageiro(s) de um total de no maximo " << capacidadeTotal << " e esta no andar " << andarAtual << endl;
  70.  
  71. }
  72. else
  73. {
  74. cout << "Capacidade do elevador excedida" << endl;
  75. }
  76.  
  77. return capacidade;
  78. }
  79.  
  80. int elevador::getSai()
  81. {
  82. return capacidade;
  83. }
  84.  
  85. int elevador::setSai(int c)
  86. {
  87. if(capacidade<=capacidadeTotal)
  88. {
  89. capacidade = capacidade+1;
  90.  
  91. cout << "O elevevador possui " << capacidadeTotal-capacidade << " passageiro(s) de um total de no maximo " << capacidadeTotal << " e esta no andar " << andarAtual << endl;
  92.  
  93. }
  94. else
  95. {
  96. cout << "O elevador esta vazio" << endl;
  97. }
  98.  
  99. return capacidade;
  100. }
  101.  
  102. int elevador::getSobe()
  103. {
  104. return andarAtual;
  105. }
  106.  
  107. int elevador::setSobe(int a)
  108. {
  109. if(andarAtual<=totalAndares)
  110. {
  111. andarAtual = andarAtual+1;
  112.  
  113. cout << "O elevevador possui " << capacidadeTotal-capacidade << " passageiro(s) de um total de no maximo " << capacidadeTotal << " e esta no andar " << andarAtual << endl;
  114.  
  115. }
  116. else
  117. {
  118. cout << "O elevador chegou ao ultimo andar" << endl;
  119. }
  120. return andarAtual;
  121. }
  122.  
  123. int elevador::getDesce()
  124. {
  125. return andarAtual;
  126. }
  127.  
  128. int elevador::setDesce(int a)
  129. {
  130. if(andarAtual>=0)
  131. {
  132. andarAtual = andarAtual-1;
  133.  
  134. cout << "O elevevador possui " << capacidadeTotal-capacidade << " passageiro(s) de um total de no maximo " << capacidadeTotal << " e esta no andar " << andarAtual << endl;
  135.  
  136. }
  137. else
  138. {
  139. cout << "O elevador chegou ao terreo" << endl;
  140. }
  141. return andarAtual;
  142. }
  143.  
  144.  
  145.  
  146. int main()
  147. {
  148. int var, c, a;
  149.  
  150. elevador e1(0, 0);
  151. cout << "Informe o numero de andares do predio e a capacidade maxima do elevador" << endl;
  152. cin >> a >> c;
  153. e1.setInicializa(c, a);
  154.  
  155.  
  156. do {
  157. cout << "Informe qual ação do elevador:" << endl << "1. para entrar um passageiro" << endl << "2. para sair um passageiro" << endl << "3. para subir um andar" << endl << "4. para descer um andar" << endl << endl;
  158. cin >> var;
  159.  
  160. if(var==1)
  161. {
  162. e1.setEntra(c);
  163. }
  164.  
  165. if(var==2)
  166. {
  167. e1.setSai(c);
  168. }
  169.  
  170. if(var==3)
  171. {
  172. e1.setSobe(a);
  173. }
  174.  
  175. if(var==4)
  176. {
  177. e1.setDesce(a);
  178. }
  179. }while (var==1 || var==2 || var==3 || var==4);
  180.  
  181. system("PAUSE");
  182. return EXIT_SUCCESS;
  183. }
  184.  
  185.  
Success #stdin #stdout #stderr 0.01s 5300KB
stdin
Standard input is empty
stdout
Informe o numero de andares do predio e a capacidade maxima do elevador
Informe qual ação do elevador:
1. para entrar um passageiro
2. para sair um passageiro
3. para subir um andar
4. para descer um andar

stderr
sh: 1: PAUSE: not found