
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");
}
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático









