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");
}
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI