Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

S@brin@

não sei como usa-las no meu programa

Recommended Posts

Boa tarde galera ^_^

 

É o seguinte, como projeto final para uma discplina da faculdade estou fazendo um projeto simples. É um sisteminha de estacionamento.

O professor pediu para criarmos uma aplicação qualquer ( o tema é livre ), mais tem que conter os seguintes conceitos dado em sala de aula:

 

* Classe, Atributo e Método;

* Método Construtor e Método Destrutor;

* Sobrecarga;

* Herança;

* Tratamento de Exceção;

 

E estou com 3 dúvidas :unsure: :

1º) Como e aonde eu posso usar Sobrecarga e Tratamento de Exceção no meu programa? Se alguém tiver algum exemplo parecido ou me da alguma idéia de em q parte do programa eu posso usar seria bom, pois fiquei totalmente perdida nessa parte. Os exemplos que meu professor passou foram muito vagos, não entendi muita coisa.

2º) Tem mais de uma hora que eu estou tentando descobrir o erro q tá dando em void Veiculo :: consultaPlaca() alguém me da uma luz por favor.

3º) E uma ultima coisa http://forum.imasters.com.br/public/style_emoticons/default/blush.gif em C++ tem alguma variavel que eu possa usar para escrever letras e numeros ao mesmo tempo? Tipo em Placa do Veículo, todas as placas de carro tem letras e números, tudo junto né? Como q eu faço pro C++ aceitar isso?

 

Vou postar o código para vcs darem uma olhada. Lembrando que eu n terminei o sistema ainda cadastraVeiculo(), mostraVeiculo() e consultaPlaca().

E outra coisa, eu sou super iniciante em C++, portanto não me xinguem hehe http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Espero que vocês possam me ajudar http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

 

#include <iostream>
#include <conio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

using namespace std;

class Empresa{
	  public:
			 void setPlaca();
			 int getPlaca();
			 void setFabricante();
			 char *getFabricante();
			 void setMarca();
			 char *getMarca();
			 int placa;
			 char *fabricante;
			 char *marca;
			 Empresa();
	  };
	  
class Estacionamento: public Empresa{
					public:
						   void setAno();
						   int getAno();
						   void setCor();
						   char *getCor();
						   int ano;
						   char *cor;
						   void cadastraVeiculo();
						   char resp;
						   Estacionamento();
						   };
						   
Empresa :: Empresa(){
			   fabricante = new char[20];
			   marca = new char[20];
	 }	 
	 
Estacionamento :: Estacionamento(){ 
						cor = new char [20];
					 
		  }
			  
void Empresa :: setPlaca(){
							cout<<" PLACA DO VEICULO: "<<endl;
							cin>>placa;
							}
	  
int Empresa :: getPlaca(){
							return placa; 
							} 
		   
void Empresa :: setFabricante(){
					   cout <<" FABRICANTE DO VEICULO: "<<endl;
					   fflush(stdin);
					   cin.getline(fabricante,20,'\n');	   
					   strupr(fabricante);			  
					   }
	   
char* Empresa :: getFabricante(){
						return fabricante;					 
						}	
						
void Empresa :: setMarca(){
					   cout <<" MARCA DO VEICULO: "<<endl;
					   fflush(stdin);
					   cin.getline(marca,20,'\n');	   
					   strupr(marca);			  
					   }
	   
char* Empresa :: getMarca(){
				  return marca;					 
						}	 
	  
void Estacionamento :: setAno(){
							   cout<<" ANO DO VEICULO: "<<endl;
							   cin>>ano;
							   }

int  Estacionamento :: getAno(){
								return ano;
								}
									   
void Estacionamento :: setCor(){
						   cout<<" COR DO VEICULO: "<<endl;
						   fflush(stdin);
						   cin.getline(cor,20,'\n');
						   strupr(cor);
						   }
	 
char* Estacionamento :: getCor(){
							return cor;
							}  
							  
class Veiculo : public Estacionamento{
		Estacionamento cadastro[5];
					public:
						   Veiculo();
						   void cadastraVeiculo();
						   void mostraVeiculo();
						   void consultaPlaca();
						   void registraEntrada();
						   void registraSaida();
						   void Resposta();
						   int i, b, k, x, aux;
						   int ex, exclusao;
						   int pesq_placa;
						   ~Veiculo();
						   };	
						   
Veiculo :: Veiculo(){
	  i=0;
	  }
	  
void Veiculo :: Resposta(){
						  do{		
							  cout << endl << "Deseja cadastrar mais uma placa? ";
							  cin >> resp; 
									   	  
							  resp = toupper( resp );
									   	  
							  if((resp != 'S') && (resp != 'N')) 
										cout << "Resposta invalida!!!";	  
																						 		 
							}while((resp != 'S') && (resp != 'N'));		  
						   }
						   
void Veiculo :: cadastraVeiculo(){// 1.
	   if (i>4){
				   cout<<"Estacionamento cheio"<<endl;
				   return;
				   }
	   do{ 
		   system("cls");
		   i++;
		   cadastro[i].setPlaca();
		   cadastro[i].placa = cadastro[i].getPlaca();
		   
		   cadastro[i].setFabricante();
		   strcpy(cadastro[i].fabricante,cadastro[i].getFabricante());
		   
		   cadastro[i].setMarca();
		   strcpy(cadastro[i].marca,cadastro[i].getMarca());
		   
		   cadastro[i].setAno();
		   cadastro[i].ano = cadastro[i].getAno();
		   
		   cadastro[i].setCor();
		   strcpy(cadastro[i].cor,cadastro[i].getCor());
		   
		   system("cls");
		   cout << endl << "VEICULO CADASTRADO COM SUCESSO!!"<<endl;
		   
		   Resposta();
		   
			   }while((resp == 'S') && (i<=5));
			   return;
			   }
			   
void Veiculo :: mostraVeiculo(){//3.
					   
					   if( i != 0){
					   for(b=1; b<=i; b++){
									  cout << endl << endl << "DADOS DO VEICULO: "<<endl;
									  cout << endl << " Placa: " << cadastro[b].placa;
										cout << endl << " Fabricante: " << cadastro[b].fabricante;
									  cout << endl << " Ano: " << cadastro[b].ano;	
									  cout << endl << " Marca: " << cadastro[b].marca;
									  cout << endl << " Cor: " << cadastro[b].cor;
									}
									}else 
								   cout << endl << "NENHUMA PLACA FOI CADASTRADA NO SISTEMA"<<endl;
								   return;
								   
	 }
void Veiculo :: consultaPlaca(){//5.

								cout << endl << " INFORME A PLACA PARA CONSULTA: " << endl;
								cin >> pesq_placa;
								cout << endl;
								aux = 0;
								
							  if( i != 0){
								for(b=1; b<=i; b++){								
								   if(pesq_placa == cadastro[b].placa)) {
									  aux = 1;								   
									  cout << endl << endl << "DADOS DO VEICULO: "<<endl;
									  cout << endl << " Placa: " << cadastro[b].placa;
										cout << endl << " Fabricante: " << cadastro[b].fabricante;
									  cout << endl << " Ano: " << cadastro[b].ano;	
									  cout << endl << " Marca: " << cadastro[b].marca;
									  cout << endl << " Cor: " << cadastro[b].cor;								 
											}//fecha if									
										}//fecha for										
									 }//fecha if
									 
									else{ 
									 cout << endl << "NENHUMA PLACA FOI CADASTRADA NO SISTEMA"<<endl;
									 return;
								   }//fecha else
								   
								   if( aux == 0 ) 
										 cout << endl << "ESSA PLACA NAO ESTA CADASTRADA"<<endl;
										 return;
								 }	 

Veiculo :: ~Veiculo(){
					   
					   delete cadastro;
			   }
				
	  int main(){
		  Veiculo *v;
		  v = new Veiculo();
		  char resposta;
		  int op;
	   
	  do{
		  system("cls"); 
		  cout<<"________________________________________________ "<<endl;
		  cout<<"________________ESTACIONAMENTO__________________ "<<endl;
		  cout<<"1 -> CADASTRAR VEICULO"<<endl; 
		  cout<<"2 -> ALTERAR DADOS"<<endl;  
		  cout<<"3 -> MOSTRAR VEICULOS"<<endl; 
		  cout<<"4 -> EXCLUIR CADASTRO"<<endl;		   
		  cout<<"5 -> CONSULTAR PLACA"<<endl;   
		  cout<<"6 -> REGISTRAR ENTRADA"<<endl;
		  cout<<"7 -> REGISTRAR SAIDA"<<endl;			 
		  cout<<"8 -> SAIR DO SISTEMA"<<endl<<endl;
		  
		  cout<<"INFORME UMA OPCAO: ";	  
		  cin >> op;
		  
		  system("cls");
		  switch(op){
						case 1:
							   v->cadastraVeiculo();
							   break;
					 
						case 2:	 
								
							  break;
							  
						case 3: 
							  v->mostraVeiculo();  
							  break;
					   
						case 4:  
							   
							  break;
							  
						case 5: 
							  v->consultaPlaca(); 
							  break;
							  
						case 6: 
							   
							  break;
							  
						case 7: 
							   
							  break;
							  
						case 8: do{
								cout<<"Deseja sair?[S ou N]";
								cin>>resposta;
								resposta=toupper(resposta);
								system("cls");
								if(resposta!='S'&&resposta!='N'){
																 system("cls");
																 cout<<"Resposta invalida."<<endl;
																 }
								}while(resposta!='S'&&resposta!='N');
								break;

						  delete v;
						  system("pause");
							  break;   
							  }		
		  getch();
		}while(op != 8);
		
		return 0;
		}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara,você fez uma salada.

 

200d3.jpg

 

e90b4.jpg

 

class Empresa {
  string nome;

  public:
   Empresa(string NOME) {
	   nome = NOME;
   }
};

 

class Carro {
  int cor;
string placa;
int ano;

 public:
 void setPlaca(string PLACA) {
	 placa = PLACA;
 }

 string getPlaca() {
	 return placa;
 }

 void setAno(int ANO) {
	 ano = ANO;
 }

 int getAno() {
	 return ano;
 }

 void setCor(int COR) {
	 cor = COR;
  }

  int getCor() {
	  return cor;
  }
};

 

 

class Fabricante:Empresa {
  vector<string> cores;
  vector<Carro> listaCarros;

  public:
   Fabricante(string NOME) {
	   nome = NOME;
   }

   void cadastraCor(string NomeCor) {
		 // Algoritmo de cadastramento de cor da paleta da fábrica
		 // Caso uma cor já exista, você pode adicionar tratamento de exceção ou apenas
		 // imprimir uma mensagem
   }

   string getCor(int COR) {
		// Algoritmo de busca de Cor baseado no indice do array
		// Se o indice não existir, tratamento de exceção ou mensagem
   }

	void cadastrarCarro() {
		 // Algoritmo para cadastro do carro NA MONTADORA
	}

};

 

 

class Estacionamento:Empresa {
vector<Carro> listaEstacionados;

public:
	Estacionamento(string NOME) {
		  nome = NOME;
	}

	void registraEntrada() { }

	void registraSaida() {}
};

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara,você fez uma salada.

 

Imagem Postada

 

Imagem Postada

Eita...é q eu tomei como base os exercicios que o professor deu em sala de aula :unsure:

E o sistema não tem montadora... é so estacionamento de veículos, aqueles que paga por hora.

 

Na verdade fiquei mais confusa ainda com os seus exemplos... :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não importa que não tenha Montadora no exercicio. O carro foi feito por uma e faz mais sentido criar uma classe montadora que contem a lista de carros fabricados p/ depois usar como 'banco de dados' do que ficar colocando string de fabricante em cada carro. Isso é orientacao a objetos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não importa que não tenha Montadora no exercicio. O carro foi feito por uma e faz mais sentido criar uma classe montadora que contem a lista de carros fabricados p/ depois usar como 'banco de dados' do que ficar colocando string de fabricante em cada carro. Isso é orientacao a objetos.

Sim, eu entendi a sua lógica. Só que não sei fazer do jeito que você falou.

Só que eu não sei programar em C++, sei menos que o básico. Foi o que eu aprendi na faculdade. E só estou me baseando nos exercicios que o professor passou. Por isso que eu vim aqui pedir ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom seu programa ta indo + pro lado de orientacao a objeto, você entende bem disso??? ow prefere fazer td estruturado??

 

* e para fazer tratamento de erro, você precisa analizar onde o programa podera gerar erro neh!

* sobrecarga [e facil, você tem nocaum do q [e sobrecarga neh?

 

vai postando as duvidas ai, no q eu puder ajudar eu ajudo..

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples:

 

- pro estacionamento não interessa se a Peugeot comprou a Volkswagen ou se a Citroen entrou numa parceria estranha e comecou a produzir carros da Renault. A importância de um atributo fabricante no estacionamento é simplesmente p/ indexar direto a tabela das montadoras, verificar se ela trabalha com a paleta de cores em um determinado modelo de carro.Nesse caso,o atributo é um inteiro. Sem ele você tem que pesquisar sequencialmente numa lista de fabricantes. Isso já começa a mesclar coisas da laia de desempenho de buscas/banco de dados com OO.

 

- cor não é atributo do estacionamento, mas dos carros. Se o estacionamento possui uma lista de carros registrados na entrada, é o método dos carros que você usa pra definir a cor da instância do carro que foi registrado.

 

- placa é atributo do carro, assim como ano, que pode ser estendido para um modelo específico.Ex: Fusca 1969, Fusca 1979.

 

 

O que vem a ser isso?

int i, b, k, x, aux;
int ex, exclusao;
int pesq_placa;

 

 

você está usando C++: pq você usa char * quando se tem a classe string?

 

Veiculo *v;

 

Um objeto já é uma referência. Declarando Veiculo v e fazendo v.metodo() você altera o objeto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.