Enviado em 22/05/2013 - 09:40h
oi estou precisando de ajuda em um trabalho da faculdade, pede o seguinte" fazer um cadastro de n.. funcionarios e quando for solicitado o nome ou o ramal imprimir os dados referente ao funcionario.cheguei a fazer o programa mais esta com muitos erros e não consigo eliminalos , ajudaaaaa.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct cadastro {
char nome_completo[50];
char usuario[10];
char email[40];
int ramal;
int matricula;
};
//chama funçao---------------------------------------------------------------------
void incluir(void);
void pesquisar(void);
void ramal(void);
char validaresp();
//static int qtd=0;
struct cadastro funcionario;
FILE *fp;
//incluir dados do cadastro--------------------------------------------------------
void incluir(void){
int retorno=0;
char op ='s';
if((fp=fopen("base.dat","a"))==NULL)
{
printf("Arquivo nao pode ser aberto.\n");
printf("Insira os dados do funcionario\n");
exit(1);
}
while(op=='s')
{
printf("Digite seu nome completo: ");
gets(funcionario.nome_completo);
printf("Digite o nome de usuario: ");
gets(funcionario.usuario);
printf("Digite seu e-mail: ");
gets(funcionario.email);
printf("Digite seu ramal: ");
scanf(funcionario.ramal);
printf("Digite sua matricula: ");
scanf(funcionario.matricula);
retorno=fwrite(&funcionario,sizeof(struct cadastro),1,fp);//se o retorno for igual a 1 "numero de bits a gravação foi OK
if (retorno==1){
printf("\nGravado com sucesso! ");
}
//total++;
op=validaresp();
//qtd++;
}
fclose(fp);
}
//valida resposta----------------------
char Validaresp() {
char op;
do {
printf(" \nDeseja inserir novos dados? [S ou N] ? " );
// op = getch();
printf("\n" );
} while (op != 's' && op != 'n');
return op;
}
//pesquisar contato pelo nome----------------------------------------------------
void pesquisar(void){
int indice=0;
int retorno=1;
int cont=0;
char nome_completo[50];
char op;
if((fp=fopen("base.dat","r"))==NULL){
printf("Arquivo nao pode ser aberto.\n");
printf("insira os dados do usuario\n");
exit(1);
}
printf("digite seu nome conpleto: ");
gets(nome_completo);
retorno=fread(&funcionario[indice],sizeof(struct cadastro),1,fp);
while (retorno == 1){
if (strcmp(nome_completo,funcionario[indice].nome_completo)== 0){ // strcmp() compara a string 1 com a string 2. Se as duas forem identicas a funcao retorna zero. Se elas forem diferentes a funcao retorna num-zero.
printf("\nNome completo..:%s\nUsuario..:%s\ne-mail..:%s\nRamal..:%s\nMatricula..:%s\n",nome_completo,funcionario[indice].usuario,funcionario[indice].email,funcionario[indice].ramal,funcionario[indice].matricula);
cont++;
}
indice++;
retorno=fread(&funcionario[indice],sizeof(struct cadastro),1,fp);
}
if(cont==0){
printf("Nao ha usuario com este nome!\n");
}
fclose(fp);
}
//pesquisar ramal--------------------------------------------
void ramal(void){
int indice=0;
int retorno=1;
int cont=0;
char ramal[20];
char op;
if((fp=fopen("base.dat","r"))==NULL){
printf("Arquivo nao pode ser aberto.\n");
printf("insira os dados do usuario\n");
exit(1);
}
printf("digite o ramal a ser pesquisado");
gets(ramal);
retorno=fread(&funcionario[indice],sizeof(struct cadastro),1,fp);
while (retorno == 1){
if (strcmp(ramal,funcionario[indice].ramal)== 0){ // strcmp() compara a string 1 com a string 2. Se as duas forem identicas a funcao retorna zero. Se elas forem diferentes a funcao retorna num-zero.
printf("\nNome completo..:%s\nUsuario..:%s\ne-mail..:%s\nRamal..:%s\nMatricula..:%s\n",nome_completo,funcionario[indice].usuario,funcionario[indice].email,funcionario[indice].ramal,funcionario[indice].matricula);
cont++
}
indice++;
retorno=fread(&funcionario[indice],sizeof(struct cadastro),1,fp);
}
if(cont==0){
printf("Nao ha funcionario com este ramal!\n");
}
fclose(fp);
}
//-----menu-------------------------
void menu (void){
char op;
int teste;
if((fp=fopen("base.dat","r"))!=NULL){
qtd=0;
do{
teste=fread(&funcionario,sizeof(struct cadastro),1,fp);
qtd++;
} while (teste==1);
qtd--;
}
do{
system("cls");
printf("\n(1)incluir\n(2)pesquisar por nome\n(3)pesquisar pelo ramal\n(4)qualquer tecla para sair\n\n");
switch(op){
case '1':
incluir();
break;
case '2':
pesquisar();
break;
case '3'
ramal();
break;
default:
exit(1);
}
}while (op<'4');
}
int main(){
int var;
printf("\n\n\n\n\n\n\n\\n");
printf(" ..CADASTRO DE FUNCIONARIOS.. \n\n");
printf(" Analise o menu e selecione a opcao desejada \n");
if(var==27){ exit(1);}
menu();
system("pause");
}
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Como abrir o pycharm no linux (2)
VMs e Interfaces de Rede desapareceram (12)