Ir ao conteúdo

menu sair e consulta de nome


andersonmilanez

Posts recomendados

Postado

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!!!

Postado

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;

Postado
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

Postado

//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

Postado

Isso.

Quando o usuário digitar a opção 3, o programa será encerrado.

Dê uma olhada no while.

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

Felipe Joseph Vettorazzi

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!