Ir ao conteúdo
  • Cadastre-se

menu sair e consulta de nome


andersonmilanez

Posts recomendados

Olá pessoal!!

eu to com 1 trabalho da faculdade p\ fazer que eu não to conseguindo resolver un negocios.

nesse trabalho eu tenho q montar um programa q cadastra 400 funcionarios de uma empresa c/ nome, endereço e nº de matricula. c/ o seguinte menu:

1 – Inclusão

2 – Consulta

3 – Sair

a inclusao eu consegui fazer mas a consulta e o sair eu não sei!

#include<stdio.h>

struct funcionario{
char nome[80], endreco[150];
int matricula, num;
};

void lerDados(funcionario *f){
printf("\tDigite o nome do funcionario:\n");
getchar();
gets((*f).nome);
printf("\nDigite o endereco(rua e numero sem virgula):\n");
getchar();
gets((*f).nome);scanf("%d", &(*f).num);
printf("\nDigite a matricula:\n");
scanf("%d", &(*f).matricula);
}

main(){
funcionario f;
int menu, i;

printf("Digite:\n 1- inserir nome\n 2- consultar funcionario\n 3- sair do programa\n");
scanf("%d", &menu);
while(menu!=1 && menu!=3){
printf("opcao incorreta!\n\n Digite novamente:\n 1- inserir nome\n 2- consultar funcionario\n 3- sair do programa\n");
scanf("%d", &menu);
}

for (i=0; i<400; i++){
if(menu=1){
lerDados(&f);
}
}
getchar();
getchar();
}

ME AJUDEM POR FAVOR!!!!

Desde ja agradeço!!!

Link para o comentário
Compartilhar em outros sites

Você está fazendo 400 leituras, as sempre armazenando nas mesmas variáveis, ou seja, sobrescrevendo os dados.

primeiro de tudo, você precisará criar um vetor do tipo funcionário.


funcionario f[400];

E dentro do seu "for" principal, na função lerDados, precisará passar a posição do array onde você quer armazenar os dados. OBS: O seu "if" está errado. para comparar é "==" e não "=".


for (i=0; i<400; i++){
if(menu==1){
lerDados(&f[i]);
}
}

E para mostrar os dados, o processo basicamente o mesmo que o de leitura. Ao invés de salvar o conteúdo, agora será mostrar na tela (printf).

E para sair:


if ( menu == 3 )
return 0;

Link para o comentário
Compartilhar em outros sites

Você está fazendo 400 leituras, as sempre armazenando nas mesmas variáveis, ou seja, sobrescrevendo os dados.

primeiro de tudo, você precisará criar um vetor do tipo funcionário.


funcionario f[400];

E dentro do seu "for" principal, na função lerDados, precisará passar a posição do array onde você quer armazenar os dados. OBS: O seu "if" está errado. para comparar é "==" e não "=".


for (i=0; i<400; i++){
if(menu==1){
lerDados(&f[i]);
}
}

E para mostrar os dados, o processo basicamente o mesmo que o de leitura. Ao invés de salvar o conteúdo, agora será mostrar na tela (printf).

E para sair:


if ( menu == 3 )
return 0;

valeu pelas dicas vou tentar fazer agora!!

abrigado

Link para o comentário
Compartilhar em outros sites

//Dica: coloque uma variavel, para receber a ultima posição cadastrada. Assim na leitura dos dados, você poderá ler o vetor até o ultimo cadastro.

declare a variavel posicao como int e inicialize com 0;

--------------------------------------------------------------------------

void exibirDados(){

Antes de exibir, veja se a variavel posicao é diferente de 0, ou seja, se o usuario ja realizou algum cadastro.

Se sim, coloque um laço de repetição de 0 até a variavel posicao.

Se não

printf("Nenhum registro encontrado em nossos registros!");

}

main()

{

int opcao = 0;

while (opcao != 3) {

system("cls");

printf("\n\nDigite 1 para cadastrar");

printf("\nDigite 2 para exibir cadastros");

printf("\nDigite 3 para encerrar o programa");

printf("\n\nSua opcao: ");

scanf("%d", &opcao);

switch(opcao) {

case 1:

lerDados();

break;

case 2:

exibirDados();

break;

case 3:

printf("\n\nO programa esta sendo encerrado");

break;

default:

printf("\n\nOpcao invalida");

getch();

}

}

}

--------------------------------------------------------------------------

Felipe Joseph Vettorazzi

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!