ruim_santinho
Membro
ola, ando á cerca de 4 dias com este problema, fiz o programa, resolvi uns bugzitos mas agora não consigo perceber o porquê que na versão dois do programa que vou mostrar em baixo, quando quero inserir um dado, escolho introduzir por exemplo o Nome, clico N e aquilo começa um ciclo e nunca mais para.... alguém "me faz um desenho" e me ajuda a resolver o problema? eu penso que é um ciclo mal fechado... mas não entendo é qual... mas também pode ser outra coisa... agradecia que me ajudassem com esta treta!!! já passei um montão de horas a olhar para isto
aqui deixo o link para download do ficheiro código fonte .cpp para alguém que queira ver o codigo bem "formatado", ajuda a ler...
Download (tirar os *** para download): http:***//rapidshare.com/files/166082113/f10.cpp.html
EDIT:
OMG... ENCONTREI A SOLUÇÃO!!!! finalmente!!!!!!!!!!
RESOLUÇÃO:
MUDAR AS VARIÁVEIS
int menu4 = 0;
int menu5 = 0;
PARA...
char menu4;
char menu5;
aqui deixo o link para download do ficheiro código fonte .cpp para alguém que queira ver o codigo bem "formatado", ajuda a ler...
Download (tirar os *** para download): http:***//rapidshare.com/files/166082113/f10.cpp.html
Código
#include <iostream.h>
struct aluno
{
char nome[10];
int idade;
char sexo[10];
char morada[75];
int bi;
float peso;
double altura;
};
aluno turma[50];
int flag = 1;
int menu = 0;
int menu2 = 0;
int flag2 = 1;
int flag3 = 1;
int flag4 = 1;
int flag5 = 1;
int menu3 = 0;
int menu4 = 0;
int menu5 = 0;
void main()
{
while (flag!=0)
{ // ABRE CICLO WHILE 1
cout<<"Para versao 1 do programa insira 1; \n Para versao 2 do programa insira 2; \n Para Sair insira 3! \n";
cin >> menu;
switch (menu)
{
case 1:
//INICIO DA VERSAO 1 DO PROGRAMA
flag2 = 1;
while (flag2!=0)
{
cout<<"Para Introduzir dados insira 1; \n Para Ler os dados Insira 2; \n Para Sair Insira 3! \n";
cin >> menu2;
switch (menu2)
{
case 1:
cout<<"Introduza o Nome \n";
cin>>turma[0].nome;
cout<<"Introduza a Idade \n";
cin>>turma[0].idade;
cout<<"Introduza o Sexo \n";
cin>>turma[0].sexo;
cout<<"Introduza a Morada sem espacos \n";
cin>>turma[0].morada;
cout<<"Introduza o Numero de BI \n";
cin>>turma[0].bi;
cout<<"Introduza o Peso \n";
cin>>turma[0].peso;
cout<<"Introduza a Altura \n";
cin>>turma[0].altura;
break;
case 2:
cout<<"Nome:"<<turma[0].nome<<"\n";
cout<<"Idade:"<<turma[0].idade<<"\n";
cout<<"Sexo:"<<turma[0].sexo<<"\n";
cout<<"Morada:"<<turma[0].morada<<"\n";
cout<<"Numero do BI:"<<turma[0].bi<<"\n";
cout<<"Peso:"<<turma[0].peso<<"\n";
cout<<"Altura:"<<turma[0].altura<<"\n";
break;
case 3:
flag2 = 0;
break;
default:
cout<<"Valor Introduzido invalido =P \n";
break;
}//fecha switch menu2
}// FECHA WHILE DO FLAG2 OU SEJA FECHA A PRIMEIRA VERSAO DO PROGRAMA
break;
case 2: // Inicio da segunda versao do programa!
flag3 = 1;
while (flag3!=0)
{
cout<<"Para Introduzir dados insira 1; \n Para Ler os dados Insira 2; \n Para Sair Insira 3! \n";
cin >> menu3;
switch (menu3)
{
case 1:
flag4 = 1;
while (flag4!=0)
{
cout<<"Para Introduzir Nome Insira (N); \n Para Introduzir Idade Insira (I); \n Para Introduzir Sexo Insira (S); \n Para Introduzir Morada Insira (M); \n Para Introduzir numero do BI Insira (B); \n Para Introduzir Peso Insira (P); \n Para Introduzir Altura Insira (A); \n Para voltar ao menu anterior Insira (0)!";
cin>>menu4;
switch (menu4)
{
case 'n':
cout<<"Introduza o Nome \n";
cin>>turma[0].nome;
break;
case 'i':
cout<<"Introduza a Idade \n";
cin>>turma[0].idade;
break;
case 's':
cout<<"Introduza o Sexo \n";
cin>>turma[0].sexo;
break;
case 'm':
cout<<"Introduza a Morada em vez de espacos insira underscore (_) \n";
cin>>turma[0].morada;
break;
case 'b':
cout<<"Introduza o numero do BI \n";
cin>>turma[0].bi;
break;
case 'p':
cout<<"Introduza o Peso \n";
cin>>turma[0].peso;
break;
case 'a':
cout<<"Introduza a Altura \n";
cin>>turma[0].altura;
break;
case '0':
flag4 = 0;
break;
default :
cout<<"VALOR INVALIDO =D INTRODUZA UM NOVO VALOR, DAVA JEITO SE FOSSE VALIDO =P \n";
break;
}//fecha switch menu4
}//fecha while flag4 e o programa volta ao menu3
break;// Fecha case 1 do menu3 ou seja fecha a opcao de insrir dados
case 2:
flag5 = 1;
while (flag5!=0)
{
cout<<"Para Ler Nome Insira (N); \n Para Ler Idade Insira (I); \n Para Ler Sexo Insira (S); \n Para Ler Morada Insira (M); \n Para Ler numero do BI Insira (B); \n Para Ler Peso Insira (P); \n Para Ler Altura Insira (A); \n Para voltar ao menu anterior Insira (0)!";
cin>>menu5;
switch (menu5)
{
case 'n':
cout<<"Nome:"<<turma[0].nome;
break;
case 'i':
cout<<"Idade:"<<turma[0].idade;
break;
case 's':
cout<<"Sexo:"<<turma[0].sexo;
break;
case 'm':
cout<<"Morada:"<<turma[0].morada;
break;
case 'b':
cout<<"Numero de BI:"<<turma[0].bi;
break;
case 'p':
cout<<"Peso:"<<turma[0].peso;
break;
case 'a':
cout<<"Altura:"<<turma[0].altura;
break;
case '0':
flag5 = 0;
break;
default :
cout<<"VALOR INVALIDO =D INTRODUZA UM NOVO VALOR, DAVA JEITO SE FOSSE VALIDO =P \n";
break;
}//fecha switch menu5
}//Fecha while menu5
break;
//Acaba a Versao dois do programa
case 3:
flag3 = 0;
break;
default :
cout<<"Valor Invalido Introduza um valor valido!...!! \n";
break;
}//Fecha Switch menu3
}//fecha while flag3
case 3:
flag = 0;
break;
default:
cout<<"Valor invalido introduza um valor valico \n";
break;
}//fecha switch menu
}//fecha while flag
}//fecha programa
EDIT:
OMG... ENCONTREI A SOLUÇÃO!!!! finalmente!!!!!!!!!!
RESOLUÇÃO:
MUDAR AS VARIÁVEIS
int menu4 = 0;
int menu5 = 0;
PARA...
char menu4;
char menu5;
Última edição: