
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 impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Formas seguras de instalar Debian Sid (2)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (12)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (5)
Alguém executou um rm e quase mata a Pixar! (3)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









