compatibilidade

1. compatibilidade

Templary
ic0158040

(usa KUbuntu)

Enviado em 23/06/2008 - 22:22h

turma. tipo, fiz um programa no windows, mas quando o compilo no linux ele não executa as opções 5 e 6 do switch. por quê?

troquem o system("cls") por system("clear") pois no programa que rodei no linux eu jah efetuei essa troca. o resto tah igualzinho.

# Código fonte em linguagem C++*/

//Inclusão das bibliotecas
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std ;

/*---------------------------------------------------------------------------------

//Definição da estrutura AGENDA

---------------------------------------------------------------------------------*/
typedef struct AGENDA
{
char nome[50];//campo nome
long int telefone;//campo telefone
int dia ; //campo dia
int mes ; // campo mes
int ano ; //campo ano
char endereco[150];//campo endereço
char email[20];//campo e-mail
}AGENDA;

/*---------------------------------------------------------------------------------

//Protótipos das funções

---------------------------------------------------------------------------------*/
int menu();
int inclusao(AGENDA agenda[200], int tamanho);
void altera(AGENDA agenda[200]);
void exclusao(AGENDA agenda[200]);
void pesquisa(AGENDA agenda[200]);
void imprime (AGENDA * agenda, int i);


//---------------------------------------------------------------------------------

//Programa principal

//================================================================================

int main()
{
//Declaração das variáveis
AGENDA agenda[200];
AGENDA agendaOrdenada[200] ;
int MENU,
teste,
tamanho,
contador;

//Inicialização das variáveis
tamanho = 0;
MENU = 0;
contador = 0;

//Tomada de decisão de acordo com o retorno da função principal
while(MENU != 7)
{
//Chamada da função menu
MENU = menu();

//Tomada de decisão de acordo com a opção escolhida
switch(MENU)
{
case 1:
//chamada da função de inclusaõ de registros na tabela
teste = inclusao(agenda, tamanho);
tamanho = teste;
contador ++ ;
//imprimindo uma mensagem de erro
if(teste == 0)
printf("\n\t Nao e possivel incluir um registro agenda cheia!!!");
else
printf("\n\t Registro incluido com sucesso!!!");
fflush(stdin);
getchar();
break;



case 2:
//chamada da função de alteração de registros da tabela
altera(agenda);
fflush(stdin);
getchar();
break;


case 3:
//chamada da função de exclusaõ de registros da tabela
exclusao(agenda);
fflush(stdin);
getchar();
break;


case 4:
//chamada da função de pesquisa da tabela
pesquisa(agenda);
fflush(stdin);
getchar();
break;


case 5:
{
system("cls");
//system("clear");
printf("\nNOME\t\t\t\ ENDERECO ANIVERSARIO\t\tTELEFONE\tEMAIL\n\n");

for (int i = 0 ; i < contador ; i++)
{
printf("%s", agenda[i].nome);
printf("\t\t\t\t %s", agenda[i].endereco);
printf(" %d/%d/%d", agenda[i].dia , agenda[i].mes, agenda[i].ano);
printf("\t\t %d", agenda[i].telefone);
printf("\t\t %s" , agenda[i].email);
printf("\n\n");
}
system("PAUSE");
}; break;

case 6:
{
system("cls");
//system("clear");
AGENDA *ordenada , auxiliar ;
ordenada = new AGENDA [contador] ;
/*-------------------------------------------------------------

//Ordenação dos registros no método bouble sort

-------------------------------------------------------------*/

for(int i = 0; i < contador ; i++)
ordenada[i] = agenda[i];

for(int i = 0 ; i < contador-1 ; i++)
{
for(int j = 1 ; j < contador ; j ++)
{
if (strcmp(ordenada[j-1].nome, ordenada[j].nome) == 1)
{
auxiliar = ordenada[j];
ordenada[j] = ordenada[j-1];
ordenada[j-1] = auxiliar ;
}
}
}
/*-------------------------------------------------------------

//Impressão dos registros ordenados

-------------------------------------------------------------*/

printf("\nNOME\t\t\t\ENDERECO ANIVERSARIO\t\tTELEFONE\tEMAIL\n\n");

for (int i = 0 ; i < contador ; i++)
{
printf("%s", ordenada[i].nome);
printf("\t\t\t\t %s", ordenada[i].endereco);
printf(" %d/%d/%d", ordenada[i].dia , ordenada[i].mes, ordenada[i].ano);
printf("\t\t %d", ordenada[i].telefone);
printf("\t\t %s" , ordenada[i].email);
printf("\n\n");
}
system("PAUSE");
}; break;

case 7:
//imprimindo uma mensagem de finalizaçõ de progrma
printf("\n\t O programa esta sendo finalizado!!!");
return 0 ;
break;

default://imprimindo uma mensaagem de opção inválida
printf("\n\t Opcao invalida!!!");
fflush(stdin);
getchar();
}
}

fflush(stdin);
system("PAUSE");
return 0;
}

//=================================================================================

//Fim do programa principal


/*---------------------------------------------------------------------------------

//Implementação das funções

---------------------------------------------------------------------------------*/

//Função menu

int menu()
{

//system ("clear") ;
system("cls");

//variáveis locais
int opcao;

//impressão do menu
printf("\n\n\t Menu ");
printf("\n\t 1 - Incluir um registro ");
printf("\n\t 2 - Alterar um registro ");
printf("\n\t 3 - Excluir um registro ");
printf("\n\t 4 - Pesquisar um registro ");
printf("\n\t 5 - Listar os dados na ordem de entrada") ;
printf("\n\t 6 - Listar os dados ordenados por nome");
printf("\n\t 7 - Sair");
printf("\n\t Escolha um aopcao ");
scanf("%d", &opcao);

//valor retornado
return opcao;
}

//---------------------------------------------------------------------------------

//Função de inclusaõ de registros na agenda

int inclusao(AGENDA agenda[200], int tamanho)
{
//variáveis locais
int aux;

//numero de registro já acrescentados
aux = tamanho;
//caso o numero de registros inseridos seja maior que 199 a agenda está cheia e a função e incerrada
if(aux >= 199)return 0;

//leitura do nome do indivíduo
printf("\n\t Digite o nome - ");
scanf(" %[^\n]",&agenda[aux].nome);

//Leitura do telefone
do
{
printf("\t Digite telefone - ");
scanf("%d", &agenda[aux].telefone);
}while(agenda[aux].telefone <= 0);

//Leitura do aniversário

printf("\n\t Digite a data de aniversario - ");
printf("\n\t Digite o dia - ") ;
scanf("%d" , &agenda[aux].dia) ;
printf("\n\t Digite o mes - ") ;
scanf("%d" , &agenda[aux].mes) ;
printf("\n\t Digite o ano - ") ;
scanf("%d" , &agenda[aux].ano) ;


//Leitura do endereço
printf("\t Digite o endereco - ");
scanf(" %[^\n]",&agenda[aux].endereco);

//Leitura do e-mail
printf("\t Digite o e-mail - ");
scanf(" %[^\n]",&agenda[aux].email);

//Retorna tamanho +1 isso quer dizer um registroa frente na agenda
return tamanho + 1;

//system ("clear") ;
system("cls");

}

//---------------------------------------------------------------------------------------

//Função resposável por alterar os registros da estrutura

void altera(AGENDA agenda[200])
{
//Definição de variávis
char nom[50];
int i;

//leitura do nomme do registro a ser alterado
printf("\n\t Digite o nome para alterar seus dados ");
scanf(" %[^\n]",&nom);

//Busaca do registro a ser alterado
for(i = 0;i < 200;i++)
{
//caso o registro tenaha sido encontrado ele é alterado pela seguinte estrutura
if(strcmp(agenda[i].nome,nom) == 0)
{
printf("\n\t Alteracao:");

//lendo o novo nome da estrutura
printf("\n\t Digite o nome - ");
scanf(" %[^\n]",&agenda[i].nome);

//lendo o novo telefone
do
{
printf("\t Digite telefone - ");
scanf("%d", &agenda[i].telefone);
}while(agenda[i].telefone <= 0);

//lendo novo aniversario

printf("\n\t Digite a data de aniversário - ");
printf("\n\t Digite o dia - ") ;
scanf("%d" , &agenda[i].dia) ;
printf("\n\t Digite o mes - ") ;
scanf("%d" , &agenda[i].mes) ;
printf("\n\t Digite o ano - ") ;
scanf("%d" , &agenda[i].ano) ;


//lendo o novo endereço
printf("\t Digite o endereco - ");
scanf(" %[^\n]",&agenda[i].endereco);

//lendo onovo e-mail
printf("\t Digite o e-mail - ");
scanf(" %[^\n]",&agenda[i].email);
printf("\n\t Registro alterado com sucesso!!!");
}
//caso a estrutura com o nome digitado não tenha sido encontrada a seguitnte mensagem é impressa
else if(i >= 199)
printf("\n\t O nome e nao foi encontrado!!!");
}

//system ("clear") ;
system("cls");
}

//------------------------------------------------------------------------------------

//função responsável pela exclusão de um registro

void exclusao(AGENDA agenda[200])
{
//declaração de variáveis
char nom[50], apaga[50];
int i;

//criando um vetor vazio
for(i = 0;i<50;i++)apaga[i] = '{TEXTO}';

//lendo o nome o registro que deve ser excluido
printf("\n\t Digite o nome a ser excluido - ");
scanf(" %[^\n]",&nom);

//busscando o registro que deve ser excluído
for(i = 0;i < 200;i++)
{
//apagando um registro
if(strcmp(agenda[i].nome,nom) == 0)
{
//apaganod o nome
strcpy(agenda[i].nome,apaga);
//apagando o telefone
agenda[i].telefone = 0;
//apagando o aniversário
agenda[i].dia = 0 ;
agenda[i].mes = 0 ;
agenda[i].ano = 0 ;
//apagando oendereço
strcpy(agenda[i].endereco,apaga);
//apagando o email
strcpy(agenda[i].email,apaga);
printf("\n\t O registro foi apagado com exito!!!");
}
//caso o elemento não seja encontrado

}
getchar();
system ("cls") ;
//system("clear");
}

//------------------------------------------------------------------------------------

//função responsável pela pesquisa de um determinado registro

void pesquisa(AGENDA agenda[200])
{
//Declaração de variáveis
char nom[50];
long int tel;
int i, opc;

//inicializãção de variáveis
opc = 0;

//impressão do menu pesquisa
do
{
printf("\n\n\t Pesquisa:");
printf("\n\t 1 - Pesquisa por nome ");
printf("\n\t 2 - Pesquisa por telefone ");
printf("\n\t 3 - pesquisa por nome e telefone ");
printf("\n\t Digite sua opcao: ");
scanf("%d",&opc);
}while(opc != 1 && opc != 2 && opc != 3);

//tomada de decisão de acordo com o menu pequisa
switch(opc)
{
//realizabdo a busaca por nome
case 1:
printf("\n\t Digite o nome completo - ");
scanf(" %[^\n]",&nom);
//realizando a busaca
for(i = 0;i < 200;i++)
{
//caso seja encontrada os dados referente ao nome saõ impressos
if(strcmp(agenda[i].nome,nom) == 0)
{
imprime (agenda, i);
}
//caso o nome não possa ser encontrado uma mensagem é enviada ao úsuário
else if(i >= 199)
printf("\n\t O nome e nao foi encontrado!!!");
}
break;

//realizando a busca por telefone
case 2:
printf("\n\t Digite o telefone - ");
scanf("%ld",&tel);
//busacando o elemento por seu telefone
for(i = 0;i < 200;i++)
{
//imprimindo os elementos do vetor tem o telefone digitado
if(agenda[i].telefone == tel)
{
imprime (agenda, i);
}
//caso o telefone não exista na agenda uma mensagem de erro é impressa
else if(i >= 199)
printf("\n\t O telefone nao foi encontrado!!!");
}

break;

//procurando o reistro por nome e telefone
case 3:
printf("\n\t Digite o nome completo - ");
scanf(" %[^\n]",&nom);

printf("\n\t Digite o telefone - ");
scanf("%ld",&tel);

//caso o registro possua o nome e o telefone digitados ele é impresso
for(i = 0;i < 200;i++)
{
//imprimindo o registro com o nome e o telefone digitados
if(strcmp(agenda[i].nome,nom) == 0 && agenda[i].telefone == tel)
{
imprime (agenda, i);
}
//caso este não seja encontrado um mensagem de erro é impressa
else if(i >= 199)
printf("\n\t O nome e o telefone nao combinam!!!");
}
break;
}
system("PAUSE");
}
//---------------------------------------------------------------------------------

//Função responsável pela impressão da procura

void imprime (AGENDA * agenda, int i)
{
printf("\n\t O nome e: %s", agenda[i].nome);
printf("\n\t O telefone e: %d", agenda[i].telefone);
printf("\n\t O aniversario e: %d / %d / %d", agenda[i].dia , agenda[i].mes , agenda[i].ano);
printf("\n\t O endereco e: %s", agenda[i].endereco);
printf("\n\t O e-mail e: %s", agenda[i].email);
getchar();
}

//---------------------------------------------------------------------------------


  


2. Re: compatibilidade

Geraldo José Ferreira Chagas Júnior
gjr_rj

(usa Debian)

Enviado em 26/06/2008 - 19:58h

Você está usando qual compilador, pois no gcc não compila.


3. Re: compatibilidade

Jose Ribeiro
joserribeirojuni

(usa CentOS)

Enviado em 26/06/2008 - 20:09h

tem certeza que subtituio o cls por clear

em todos os lugares

mostra pra gente o erro que ta dando ?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts