Vous êtes sur la page 1sur 11

/*

****************************************************************

FUNDAÇÃO ESCOLA TÉCNICA LIBERATO SALZANO VIEIRA DA CUNHA

El. Programação 2 - noturno Prof.: Lucas Luis Gutkoski

Exercício de aprendizado 08/10/2010

****************************************************************

Fazer um programa em linguagem C, que seja capaz de criar um

cadastro com informações de habitantes de uma cidade,

armazenando a idade das pessoas, o salário e o nome da pessoa

( somente o primeiro).

Após o cadastro ser digitado, o usuário deverá ter a sua disposição,

três opções de pesquisa:

Por nome – (Usuário digita um nome e o programa mostra a idade

e o salário desta pessoa)

Por idade – (Usuário digita duas idades e o programa mostra o

nome e o salário das pessoas nesta faixa)

Por salário – (Usuário digita um valor e o programa mostra os nomes

e as idades das pessoas com este salário ou maior).

Por Classe social – (Usuário digita uma classe e o programa mostra

os nomes idades e salário das pessoas pertencentes a classe.

E também a quantidade de pessoas desta classe.

Salário < 500,00 - Classe C

501,00 < Salário < 3000,00 – Classe B

3001,00 < Salário - Classe A


O programa deve ter pelo menos duas funções feitas pelo programador,

que façam parte da solução do problema e apresentem as seguintes situações.

Pelo menos uma das funções deve pelo menos ter um ponteiro como parâmetro,

queDeve ser funcional.

Pelo menos uma das funções deve ter um valor de retorno, que seja funcional.

No programa não podem existir variáveis globais.

O programa sempre deve permitir sempre voltar as opções cadastrar(acrescentar) ou


consultar.

Considere cadastrar no máximo 100 pessoas.

BOA PROVA!

*/

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

void Cadastro(char *PNOM,float *PSAL,int *PIDA,int *QT);

void Consulta(char *PNOM,float *PSAL,int *PIDA,int *QT);

void ConsultaPorNome(char *PNOM,float *PSAL,int *PIDA);

void ConsultaPorSalario(char *PNOM,float *PSAL,int *PIDA,int *QT);

void ConsultaPorIdade(char *PNOM,float *PSAL,int *PIDA,int *QT);


int ComparaNomes(char *Nome1,char *Nome2);

void ConsultaPorClasse(char *PNOM,float *PSAL,int *PIDA,int *QT);

void main()

char NOME[100][40];

float SALARIO[100];

int IDADE[100];

int OP;

int NUMCADASTROS=0;

do{

printf("\nDigite a Opção\n");

printf("\n1 Cadastro de pessoas");

printf("\n2 Consulta a dados");

printf("\n3 Encerrar programa\n\n");

scanf("%d",&OP);

if(OP==1)

Cadastro(NOME[0],SALARIO,IDADE,&NUMCADASTROS);

if(OP==2)

Consulta(NOME[0],SALARIO,IDADE,&NUMCADASTROS);

}while(OP!=3);
}

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

void Cadastro(char *PNOM,float *PSAL,int *PIDA,int *QT)

clrscr();

printf("\nvoce esta no ambiente de cadastro\n");

printf("\nDigite os dados solicitados:\n");

do{

printf("\nNome: ");

//printf("\n\nTESTE:%d\n",( (*QT) * 40));

scanf("%s",PNOM + ( (*QT) * 40));

printf("\nSALARIO: ");

scanf("%f",PSAL+(*QT));

printf("\nIDADE: ");

scanf("%d",PIDA+(*QT));

(*QT)++;

printf("\nSe nao deseja cadastra mais, tecle ESC");

printf("\nSe deseja continuar cadastrando, tecle uma letra qualquer\n");

}while(getch() != 0x1b);
}

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

void Consulta(char *PNOM,float *PSAL,int *PIDA,int *QT)

int OP;

clrscr();

printf("\nvoce esta no ambiente de consulta\n");

printf("\nEscolha uma das opções:\n");

do{

printf("\nDigite a Opção\n");

printf("\n1 para consultar por nome");

printf("\n2 para consultar por salario");

printf("\n3 para consultar por idade");

printf("\n4 para consultar por classe Social");

printf("\n5 encerrar consultas\n\n");

scanf("%d",&OP);

if(OP==1)

ConsultaPorNome(PNOM,PSAL,PIDA);

if(OP==2)

ConsultaPorSalario(PNOM,PSAL,PIDA,QT);

if(OP==3)

ConsultaPorIdade(PNOM,PSAL,PIDA,QT);
if(OP==4)

ConsultaPorClasse(PNOM,PSAL,PIDA,QT);

}while(OP!=5);

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

void ConsultaPorNome(char *PNOM,float *PSAL,int *PIDA)

char NOME[40];

printf("\nDigite um nome para consulta: ");

scanf("%s",NOME);

while(*PNOM)

if(ComparaNomes(NOME,PNOM)==0)

printf("\nNome=%s",PNOM);

printf("\nSalario=R$%.2f",*PSAL);

printf("\nIdade=%d anos",*PIDA);

PNOM+=40;

PSAL++;

PIDA++;

}
}

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

void ConsultaPorSalario(char *PNOM,float *PSAL,int *PIDA,int *QT)

float S;

int i;

printf("\nDigite um salario: ");

scanf("%f",&S);

for(i=0;i<(*QT);i++)

if((*PSAL)>= S)

printf("\nNome=%s",PNOM);

printf("\nSalario=R$%.2f",*PSAL);

printf("\nIdade=%d anos",*PIDA);

PNOM += 40;

PSAL++;

PIDA++;

//---------------------------------------------------------
void ConsultaPorIdade(char *PNOM,float *PSAL,int *PIDA,int *QT)

int i1,i2;

int i;

printf("\nDigite duas idades ( separe or espaco): ");

scanf("%d%d",&i1,&i2);

for(i=0;i<(*QT);i++)

if((*PIDA)>=i1 && (*PIDA)<=i2)

printf("\nNome=%s",PNOM);

printf("\nSalario=R$%.2f",*PSAL);

printf("\nIdade=%d anos",*PIDA);

PNOM += 40;

PSAL++;

PIDA++;

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

int ComparaNomes(char *Nome1,char *Nome2)

//retorna 0 se os nomes são iguais


//retorna 1 se os nomes são diferentes

while(*Nome1)

if(*Nome1 != *Nome2)

return(1);

Nome1++;

Nome2++;

if(*Nome2)

return(1);

return(0);

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

void ConsultaPorClasse(char *PNOM,float *PSAL,int *PIDA,int *QT)

char cl;

int Conta=0;
int i;

printf("\nDigite uma classe (A,B ou C): ");

cl=getch();

for(i=0;i<(*QT);i++)

if(cl=='A')

if((*PSAL) > 3000.0)

printf("\nNome=%s",PNOM);

printf("\nSalario=R$%.2f",*PSAL);

printf("\nIdade=%d anos",*PIDA);

Conta++;

if(cl=='B')

if((*PSAL) >=501.0 && (*PSAL)<=3000.0)

printf("\nNome=%s",PNOM);

printf("\nSalario=R$%.2f",*PSAL);

printf("\nIdade=%d anos",*PIDA);

Conta++;

}
}

if(cl=='C')

if((*PSAL) < 501.0)

printf("\nNome=%s",PNOM);

printf("\nSalario=R$%.2f",*PSAL);

printf("\nIdade=%d anos",*PIDA);

Conta++;

PNOM += 40;

PSAL++;

PIDA++;

printf("\nA quntidade de pessoas da classe %c e %d\n\n",cl,Conta);

printf("\n\n\n----------------------------------------------\n\n\n");

Vous aimerez peut-être aussi