mxczpiscioneri
(usa Ubuntu)
Enviado em 26/03/2011 - 00:15h
Pessoal, uso o microsoft visual studio c++ express 2010.
quando rodo o programa ele dah erro em tres linhas (irei identifica-las), msm com o erro, se eu rodar o pragrama ele e ir em cadastrar, ele pede o nome mas depois aparece o peso, altura e sexo tudo junto....
alguem pode mi ajudar?
#include<iostream>
#include<string>
using namespace std;
const int QUANTIDADE = 3;
int quantidade_registros = 0;
struct pessoa{
char nome[100];
int idade;
float altura;
float peso;
char sexo[10];
};
int buscar (pessoa Cadastro[QUANTIDADE]);
int menu();
int cadastrar(pessoa Cadastro[QUANTIDADE]);
void mostrar();
int excluir(pessoa Cadastro[QUANTIDADE]);
void main(){
int escolha, i;
pessoa Cadastro[QUANTIDADE];
do{
escolha = menu();
if (escolha == 1)
{
cout<<"\nDigite o nome:";
fflush(stdin);
for (i=0; i<QUANTIDADE; i++)
gets_s(Cadastro[i].nome);
cadastrar(Cadastro);
break;
}
else if (escolha == 2)
{
cout<<"\nDigite o nome:";
fflush(stdin);
for (i=0; i<QUANTIDADE; i++)
gets_s(Cadastro[i].nome);
if(buscar(Cadastro))
cout<<"Registro encontrado\n";
else
cout<<"Registro nao encontrado\n";
break;
}
else if(escolha == 3)
{
cout<<"\nDigite o nome:";
fflush(stdin);
for (i=0; i<QUANTIDADE; i++)
gets_s(Cadastro[i].nome);
if(excluir(Cadastro))
cout<<"Exclusão com sucesso!\n";
break;
}
else if (escolha == 4)
{
mostrar();
break;
}
else
cout<<"Opção Invalida\n";
}while(escolha!=5);
}
int buscar (pessoa Cadastro[QUANTIDADE]){
//da erro nessa linha de baixo e nas outras iguais a ela nas outra funções
pessoa Cadastro[QUANTIDADE];
char nome[100];
fflush(stdin);
gets_s(nome);
for(int i=0; i<quantidade_registros; i++){
if(Cadastro[i].nome == nome){
return 1;
}
}
return 0;
}
int menu(){
pessoa Cadastro[QUANTIDADE];
int escolha;
cout<<"\n----Menu----\n";
cout<<"1 - Cadastrar\n";
cout<<"2 - Buscar\n";
cout<<"3 - Excluir\n";
cout<<"4 - Mostrar todos\n";
cout<<"5 - Sair\n";
cout<<"Digite opção:";
cin>>escolha;
return escolha;
}
int cadastrar(pessoa Cadastro[QUANTIDADE]){
//nesta tmb da erro
pessoa Cadastro[QUANTIDADE];
char nome[100];
int idade;
float peso;
float altura;
char sexo[10];
if(quantidade_registros == QUANTIDADE){
cout<<"Não existe registro disponivel para inserir\n";
return 0;
}
if (buscar(Cadastro)){
cout<<"Registro ja exite\n";
return 0;
}
cout<<"Digite idade:";
cin>>Cadastro[quantidade_registros].idade;
cout<<"Digite altura:";
cin>>Cadastro[quantidade_registros].altura;
cout<<"Digite peso:";
cin>>Cadastro[quantidade_registros].peso;
cout<<"Digite sexo:";
fflush(stdin);
gets_s(Cadastro[quantidade_registros].sexo);
quantidade_registros++;
return 1;
}
void mostrar(){
pessoa Cadastro[QUANTIDADE];
char nome[100];
cout<<"\n----Mostrando todos os registros----\n";
for(int i=0; i<quantidade_registros; i++){
cout<<"\nNome:"<<Cadastro[i].nome<<"\n";
cout<<"Sexo:"<<Cadastro[i].sexo<<"\n";
cout<<"Idade:"<<Cadastro[i].idade<<"\n";
cout<<"Altura"<<Cadastro[i].altura<<"\n";
cout<<"Peso"<<Cadastro[i].peso<<"\n\n";
}
cout<<"Fim dos registros\n";
}
int excluir(pessoa Cadastro[QUANTIDADE]){
// e nesta tmb
pessoa Cadastro[QUANTIDADE];
char nome[100];
int i;
if (quantidade_registros == 0){
cout<<"Nao ha registros\n";
return 0;
}
if(quantidade_registros == 1){
quantidade_registros--;
return 1;
}
for(i=0; i<quantidade_registros; i++){
if(Cadastro[i].nome == nome)
break;
}
for(int j=i+1; j<quantidade_registros; j++, i++){
Cadastro[i]=Cadastro[j];
}
quantidade_registros--;
return 1;
}