yasmin alves Postado Agosto 9, 2016 Denunciar Share Postado Agosto 9, 2016 Olá, quero fazer com que o nome que digito(plaquinha) seja procurado no arquivo e caso exista printar na tela, mas não to conseguindo.. É um sistema de estacionamento! Desde já, agradeço! #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { char placa[10]; char endereco[20]; char nome[20]; char cpf[20]; }Cliente; typedef struct { float hora_entrada; float hora_saida; float data_entrada; float data_saida; }Controle; void listar_carros(Cliente* s,Controle* c,int tam_vetor) { int listado; int i; FILE* arq; arq = fopen("Clientes.txt","r"); for(i=0;i<tam_vetor;i++) { if((s.placa != NULL && c.hora_entrada != 0)) { fgets(s.placa,sizeof(s.placa),arq); fflush(stdin); printf("Numero da placa: %s\n",s.placa); fgets(s.endereco,sizeof(s.endereco),arq); fflush(stdin); printf("Endereco: %s\n",s.endereco); fgets(s.nome,sizeof(s.nome),arq); fflush(stdin); printf("Nome: %s\n",s.nome); fgets(s.cpf,sizeof(s.cpf),arq); fflush(stdin); printf("CPF: %s\n",s.cpf); fflush(stdin); fscanf(arq,"%f",&c.hora_entrada); printf("Hora de entrada: %f \n",c.hora_entrada); fscanf(arq,"%f",&c.data_entrada); printf("Data de entrada: %f \n",c.data_entrada); fscanf(arq,"%f",&c.hora_saida); printf("Hora de saida: %f \n",c.hora_saida); fscanf(arq,"%f",&c.data_saida); printf("Data de saida: %f \n",c.data_saida); printf("\n"); ++listado; } } if(listado == 0) { printf("Nenhum carro cadastrado!\n"); } fclose(arq); } void entrada_carro(Cliente* s,Controle *c,int tam_vetor) { int i,listado,count = 0; for(i=0;i<tam_vetor;i++) { if(s.placa != NULL) { ++count; break; } } if(count == 0) { printf("não e possivel cadastrar mais funcionarios\n\n"); return; } for(i=0;i<tam_vetor;i++) { printf("Numero da placa: \n"); fflush(stdin); gets(s.placa); fflush(stdin); printf("Endereco: \n"); fflush(stdin); gets(s.endereco); printf("Nome: \n"); fflush(stdin); gets(s.nome); printf("CPF: \n"); fflush(stdin); gets(s.cpf); printf("Hora de entrada (hh.mm): \n"); scanf("%f",&c.hora_entrada); printf("Data de entrada (dd.mm.aaaa): \n"); scanf("%f",&c.data_entrada); fflush(stdin); printf("Cliente cadastrado!\n"); break; } } void arquivar(Cliente* s,Controle* c,int tam_vetor) { int i,taxa,valor; float taxa_final,taxa_final1,taxa_final2,soma1,soma2; FILE* arq; arq = fopen("Clientes.txt","a"); for(i=0;i<tam_vetor;i++) { fprintf(arq,"Numero da placa: %s\n",s.placa); fprintf(arq,"Endereco: %s\n",s.endereco); fprintf(arq,"Nome: %s\n",s.nome); fprintf(arq,"CPF: %s\n",s.cpf); fprintf(arq,"Hora de entrada: %f \n",c.hora_entrada); fprintf(arq,"Data de entrada: %f \n",c.data_entrada); fprintf(arq,"Hora de saida: %f \n",c.hora_saida); fprintf(arq,"Data de saida: %f \n",c.data_saida); soma1 = c.hora_saida - c.hora_entrada; soma2 = c.data_saida - c.data_entrada; if(soma2 == 0) { taxa = 0; } else { taxa = 1; } if(soma1 <= 3) { if(taxa == 0) { valor = 3; fprintf(arq,"Valor a ser pago é: %d\n",valor); } else if(taxa == 1) { taxa_final = (5*soma2)+3; fprintf(arq,"Valor a ser pago é: %f\n",taxa_final); } } else if (soma1 > 3) { if(taxa == 0) { taxa_final1 = (soma1 - 3)*9; fprintf(arq,"Valor a ser pago: %f\n",taxa_final1); } else if(taxa == 1) { taxa_final2 = taxa_final1 + taxa_final1; fprintf(arq,"Valor a ser pago: %f\n",taxa_final2); } } fprintf(arq,"\n"); } fclose(arq); } void saida_carro(Cliente* s,Controle* c,int tam_vetor) { int i,exist,soma1,soma2,taxa; int valor = 3; float taxa_final,taxa_final1,taxa_final2; char *plaquinha; plaquinha = (char*)malloc(20*sizeof(char)); printf("Digite a placa do carro: \n"); fflush(stdin); gets(plaquinha); fflush(stdin); for(i=0;i<tam_vetor;i++) { if(strcmp(plaquinha,s.placa) == 0) { ++exist; do { printf("\t\tCarro encontrado\n\n"); printf("Numero da placa: %s\n",s.placa); printf("Endereco: %s\n",s.endereco); printf("Nome: %s\n",s.nome); printf("CPF: %s\n",s.cpf); printf("Hora de entrada: %f \n",c.hora_entrada); printf("Data de entrada: %f \n",c.data_entrada); printf("\n"); printf("\n\n**Cadastrar saida**\n\n"); printf("Hora de saida (hh.mm): \n"); scanf("%f",&c.hora_saida); fflush(stdin); printf("Data de saida (dd.mm.aaaa): \n"); scanf("%f",&c.data_saida); fflush(stdin); printf("\nHorario de saida cadastrado!\n"); printf("\n"); soma1 = c.hora_saida - c.hora_entrada; soma2 = c.data_saida - c.data_entrada; if(soma2 == 0) { taxa = 0; } else { taxa = 1; } if(soma1 <= 3) { if(taxa == 0) { valor = 3; printf("Valor a ser pago é: %d\n",valor); } else if(taxa == 1) { taxa_final = (5*soma2)+3; printf("Valor a ser pago é: %f\n",taxa_final); } } else if (soma1 > 3) { if(taxa == 0) { taxa_final1 = (soma1 - 3)*9; printf("Valor a ser pago: %f\n",taxa_final1); } else if(taxa == 1) { taxa_final2 = taxa_final1 + taxa_final1; printf("Valor a ser pago: %f\n",taxa_final2); } } return; }while(1); } } if(strcmp(plaquinha,s.placa) != 0) { printf("Nenhum carro cadastrado com essa placa!\n\n"); } } void proc_carro(Cliente* s,Controle* c,int tam_vetor) { int i,exist; char *plaquinha; plaquinha = (char*)malloc(20*sizeof(char)); printf("Digite a placa do carro: \n"); fflush(stdin); gets(plaquinha); fflush(stdin); FILE* arq; char str[20]; arq = fopen("Clientes.txt","r"); for(i=0;i<tam_vetor;i++) { if(strcmp(plaquinha,fgets(s.placa,sizeof(s.placa),arq)) == 0) { ++exist; do { printf("\t\tCarro encontrado\n\n"); fgets(s.placa,sizeof(s.placa),arq); printf("Numero da placa: %s\n",s.placa); fgets(s.endereco,sizeof(s.endereco),arq); printf("Endereco: %s\n",s.endereco); fgets(s.nome,sizeof(s.nome),arq); printf("Nome: %s\n",s.nome); fgets(s.cpf,sizeof(s.cpf),arq); printf("CPF: %s\n",s.cpf); fscanf(arq,"%f",&c.hora_entrada); printf("Hora de entrada: %f \n",c.hora_entrada); fscanf(arq,"%f",&c.data_entrada); printf("Data de entrada: %f \n",c.data_entrada); fscanf(arq,"%f",&c.hora_saida); printf("Hora de saida: %f \n",c.hora_saida); fscanf(arq,"%f",&c.data_saida); printf("Data de saida: %f \n",c.data_saida); return; }while(1); } } if(plaquinha,fgets(s.placa,sizeof(s.placa),arq) != 0) { printf("Carro não encontrado!\n");return; } fclose(arq); } void excluir_carro(Cliente* s,Controle* c,int tam_vetor) { int i,exist; char *plaquinha; plaquinha = (char*)malloc(20*sizeof(char)); printf("Digite a placa do carro: \n"); fflush(stdin); gets(plaquinha); fflush(stdin); int lock = 1; int exc; for(i=0;i<tam_vetor;i++) { if(strcmp(plaquinha,(s+i)->placa) == 0) { ++exist; do { printf("\t\tCarro encontrado\n\n"); printf("Numero da placa: %s\n",s.placa); printf("Endereco: %s\n",s.endereco); printf("Nome: %s\n",s.nome); printf("CPF: %s\n",s.cpf); printf("Hora de entrada: %f \n",c.hora_entrada); printf("Data de entrada: %f \n",c.data_entrada); printf("Hora de saida: %f \n",c.hora_saida); printf("Data de saida: %f \n",c.data_saida); printf("\nTem certeza que deseja excluir esse carro? "); printf("Digite 1 para sim e 0 para não: \n"); scanf("%d",&exc); if(exc == 1) { strcpy(NULL,s.placa); strcpy(NULL,s.endereco); strcpy(NULL,s.nome); strcpy(NULL,s.cpf); c.hora_entrada = 0; c.data_entrada = 0; c.hora_saida = 0; c.data_saida = 0; lock = 0; printf("\tCarro excluido!!\n"); } else if(exc == 0) { break; } else { printf("Opcao invalida!\n"); } }while(lock == 1); } else if(strcmp(plaquinha,s.placa) != 0) { printf("Carro não encontrado!\n");return; } } } int main() { int modo; //Entrada de carros Cliente cli[10];//vetor para clientes Cliente* f;//ponteiro para clientes f = cli; //Entrada de controle de carros Controle con[10]; Controle* c; c = con; do { printf("\t\tSistema de estacionamento\n\n"); printf("\tValor por dia: 5 reais\n"); printf("\tValor de 3 horas: 3 reais\n"); printf("\tValor adicional por hora(passando de 3 horas): 3 reais\n\n"); printf("//1 - Cadastrar carros\n"); printf("//2 - Saida de carros\n"); printf("//3 - Listar carros cadastrados\n"); printf("//4 - Procurar carros cadastrados\n"); printf("//5 - Excluir carros cadastrados\n"); printf("//0 - Sair\n"); printf("Digite a opcao desejada: "); scanf("%d",&modo); switch(modo) { case 0: { return 0; } case 1: { entrada_carro(f,c,10); arquivar(f,c,10); break; } case 2: { saida_carro(f,c,10); arquivar(f,c,10); break; } case 3: { listar_carros(f,c,10); break; } case 4: { proc_carro(f,c,10); break; } case 5: { excluir_carro(f,c,10); arquivar(f,c,10); break; } } }while(1); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Maxpaz Postado Agosto 26, 2016 Denunciar Share Postado Agosto 26, 2016 Ola! Bem, eu revisei o seu codigo e vi que praticamente todos os "scanf's" dos "for" estavam faltando o incremento do "i" Então, seu programa ficaria assim: #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { char placa[10]; char endereco[20]; char nome[20]; char cpf[20]; }Cliente; typedef struct { float hora_entrada; float hora_saida; float data_entrada; float data_saida; }Controle; void listar_carros(Cliente* s,Controle* c,int tam_vetor) { int listado; int i; FILE* arq; arq = fopen("Clientes.txt","r"); for(i=0;i<tam_vetor;i++) { if((s.placa != NULL && c.hora_entrada != 0)) { fgets(s.placa,sizeof(s.placa),arq); fflush(stdin); printf("Numero da placa: %s\n",s.placa); fgets(s.endereco,sizeof(s.endereco),arq); fflush(stdin); printf("Endereco: %s\n",s.endereco); fgets(s.nome,sizeof(s.nome),arq); fflush(stdin); printf("Nome: %s\n",s.nome); fgets(s.cpf,sizeof(s.cpf),arq); fflush(stdin); printf("CPF: %s\n",s.cpf); fflush(stdin); fscanf(arq,"%f",&c.hora_entrada); printf("Hora de entrada: %f \n",c.hora_entrada); fscanf(arq,"%f",&c.data_entrada); printf("Data de entrada: %f \n",c.data_entrada); fscanf(arq,"%f",&c.hora_saida); printf("Hora de saida: %f \n",c.hora_saida); fscanf(arq,"%f",&c.data_saida); printf("Data de saida: %f \n",c.data_saida); printf("\n"); ++listado; } } if(listado == 0) { printf("Nenhum carro cadastrado!\n"); } fclose(arq); } void entrada_carro(Cliente* s,Controle *c,int tam_vetor) { int i,listado,count = 0; for(i=0;i<tam_vetor;i++) { if(s.placa != NULL) { ++count; break; } } if(count == 0) { printf("não e possivel cadastrar mais funcionarios\n\n"); return; } for(i=0;i<tam_vetor;i++) { printf("Numero da placa: \n"); fflush(stdin); gets(s.placa); fflush(stdin); printf("Endereco: \n"); fflush(stdin); gets(s.endereco); printf("Nome: \n"); fflush(stdin); gets(s.nome); printf("CPF: \n"); fflush(stdin); gets(s.cpf); printf("Hora de entrada (hh.mm): \n"); scanf("%f",&c.hora_entrada); printf("Data de entrada (dd.mm.aaaa): \n"); scanf("%f",&c.data_entrada); fflush(stdin); printf("Cliente cadastrado!\n"); break; } } void arquivar(Cliente* s,Controle* c,int tam_vetor) { int i,taxa,valor; float taxa_final,taxa_final1,taxa_final2,soma1,soma2; FILE* arq; arq = fopen("Clientes.txt","a"); for(i=0;i<tam_vetor;i++) { fprintf(arq,"Numero da placa: %s\n",s.placa); fprintf(arq,"Endereco: %s\n",s.endereco); fprintf(arq,"Nome: %s\n",s.nome); fprintf(arq,"CPF: %s\n",s.cpf); fprintf(arq,"Hora de entrada: %f \n",c.hora_entrada); fprintf(arq,"Data de entrada: %f \n",c.data_entrada); fprintf(arq,"Hora de saida: %f \n",c.hora_saida); fprintf(arq,"Data de saida: %f \n",c.data_saida); soma1 = c.hora_saida - c.hora_entrada; soma2 = c.data_saida - c.data_entrada; if(soma2 == 0) { taxa = 0; } else { taxa = 1; } if(soma1 <= 3) { if(taxa == 0) { valor = 3; fprintf(arq,"Valor a ser pago é: %d\n",valor); } else if(taxa == 1) { taxa_final = (5*soma2)+3; fprintf(arq,"Valor a ser pago é: %f\n",taxa_final); } } else if (soma1 > 3) { if(taxa == 0) { taxa_final1 = (soma1 - 3)*9; fprintf(arq,"Valor a ser pago: %f\n",taxa_final1); } else if(taxa == 1) { taxa_final2 = taxa_final1 + taxa_final1; fprintf(arq,"Valor a ser pago: %f\n",taxa_final2); } } fprintf(arq,"\n"); } fclose(arq); } void saida_carro(Cliente* s,Controle* c,int tam_vetor) { int i,exist,soma1,soma2,taxa; int valor = 3; float taxa_final,taxa_final1,taxa_final2; char *plaquinha; plaquinha = (char*)malloc(20*sizeof(char)); printf("Digite a placa do carro: \n"); fflush(stdin); gets(plaquinha); fflush(stdin); for(i=0;i<tam_vetor;i++) { if(strcmp(plaquinha,s.placa) == 0) { ++exist; do { printf("\t\tCarro encontrado\n\n"); printf("Numero da placa: %s\n",s.placa); printf("Endereco: %s\n",s.endereco); printf("Nome: %s\n",s.nome); printf("CPF: %s\n",s.cpf); printf("Hora de entrada: %f \n",c.hora_entrada); printf("Data de entrada: %f \n",c.data_entrada); printf("\n"); printf("\n\n**Cadastrar saida**\n\n"); printf("Hora de saida (hh.mm): \n"); scanf("%f",&c.hora_saida); fflush(stdin); printf("Data de saida (dd.mm.aaaa): \n"); scanf("%f",&c.data_saida); fflush(stdin); printf("\nHorario de saida cadastrado!\n"); printf("\n"); soma1 = c.hora_saida - c.hora_entrada; soma2 = c.data_saida - c.data_entrada; if(soma2 == 0) { taxa = 0; } else { taxa = 1; } if(soma1 <= 3) { if(taxa == 0) { valor = 3; printf("Valor a ser pago é: %d\n",valor); } else if(taxa == 1) { taxa_final = (5*soma2)+3; printf("Valor a ser pago é: %f\n",taxa_final); } } else if (soma1 > 3) { if(taxa == 0) { taxa_final1 = (soma1 - 3)*9; printf("Valor a ser pago: %f\n",taxa_final1); } else if(taxa == 1) { taxa_final2 = taxa_final1 + taxa_final1; printf("Valor a ser pago: %f\n",taxa_final2); } } return; }while(1); } } if(strcmp(plaquinha,s.placa) != 0) { printf("Nenhum carro cadastrado com essa placa!\n\n"); } } void proc_carro(Cliente* s,Controle* c,int tam_vetor) { int i,exist; char *plaquinha; plaquinha = (char*)malloc(20*sizeof(char)); printf("Digite a placa do carro: \n"); fflush(stdin); gets(plaquinha); fflush(stdin); FILE* arq; char str[20]; arq = fopen("Clientes.txt","r"); for(i=0;i<tam_vetor;i++) { if(strcmp(plaquinha,fgets(s.placa,sizeof(s.placa),arq)) == 0) { ++exist; do { printf("\t\tCarro encontrado\n\n"); fgets(s.placa,sizeof(s.placa),arq); printf("Numero da placa: %s\n",s.placa); fgets(s.endereco,sizeof(s.endereco),arq); printf("Endereco: %s\n",s.endereco); fgets(s.nome,sizeof(s.nome),arq); printf("Nome: %s\n",s.nome); fgets(s.cpf,sizeof(s.cpf),arq); printf("CPF: %s\n",s.cpf); fscanf(arq,"%f",&c.hora_entrada); printf("Hora de entrada: %f \n",c.hora_entrada); fscanf(arq,"%f",&c.data_entrada); printf("Data de entrada: %f \n",c.data_entrada); fscanf(arq,"%f",&c.hora_saida); printf("Hora de saida: %f \n",c.hora_saida); fscanf(arq,"%f",&c.data_saida); printf("Data de saida: %f \n",c.data_saida); return; }while(1); } } if(plaquinha,fgets(s.placa,sizeof(s.placa),arq) != 0) { printf("Carro não encontrado!\n");return; } fclose(arq); } void excluir_carro(Cliente* s,Controle* c,int tam_vetor) { int i,exist; char *plaquinha; plaquinha = (char*)malloc(20*sizeof(char)); printf("Digite a placa do carro: \n"); fflush(stdin); gets(plaquinha); fflush(stdin); int lock = 1; int exc; for(i=0;i<tam_vetor;i++) { if(strcmp(plaquinha,(s+i)->placa) == 0) { ++exist; do { printf("\t\tCarro encontrado\n\n"); printf("Numero da placa: %s\n",s.placa); printf("Endereco: %s\n",s.endereco); printf("Nome: %s\n",s.nome); printf("CPF: %s\n",s.cpf); printf("Hora de entrada: %f \n",c.hora_entrada); printf("Data de entrada: %f \n",c.data_entrada); printf("Hora de saida: %f \n",c.hora_saida); printf("Data de saida: %f \n",c.data_saida); printf("\nTem certeza que deseja excluir esse carro? "); printf("Digite 1 para sim e 0 para não: \n"); scanf("%d",&exc); if(exc == 1) { strcpy(NULL,s.placa); strcpy(NULL,s.endereco); strcpy(NULL,s.nome); strcpy(NULL,s.cpf); c.hora_entrada = 0; c.data_entrada = 0; c.hora_saida = 0; c.data_saida = 0; lock = 0; printf("\tCarro excluido!!\n"); } else if(exc == 0) { break; } else { printf("Opcao invalida!\n"); } }while(lock == 1); } else if(strcmp(plaquinha,s.placa) != 0) { printf("Carro não encontrado!\n");return; } } } int main() { int modo; //Entrada de carros Cliente cli[10];//vetor para clientes Cliente* f;//ponteiro para clientes f = cli; //Entrada de controle de carros Controle con[10]; Controle* c; c = con; do { printf("\t\tSistema de estacionamento\n\n"); printf("\tValor por dia: 5 reais\n"); printf("\tValor de 3 horas: 3 reais\n"); printf("\tValor adicional por hora(passando de 3 horas): 3 reais\n\n"); printf("//1 - Cadastrar carros\n"); printf("//2 - Saida de carros\n"); printf("//3 - Listar carros cadastrados\n"); printf("//4 - Procurar carros cadastrados\n"); printf("//5 - Excluir carros cadastrados\n"); printf("//0 - Sair\n"); printf("Digite a opcao desejada: "); scanf("%d",&modo); switch(modo) { case 0: { return 0; } case 1: { entrada_carro(f,c,10); arquivar(f,c,10); break; } case 2: { saida_carro(f,c,10); arquivar(f,c,10); break; } case 3: { listar_carros(f,c,10); break; } case 4: { proc_carro(f,c,10); break; } case 5: { excluir_carro(f,c,10); arquivar(f,c,10); break; } } }while(1); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
yasmin alves
Olá, quero fazer com que o nome que digito(plaquinha) seja procurado no arquivo e caso exista printar na tela, mas não to conseguindo..
É um sistema de estacionamento!
Desde já, agradeço!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{
char placa[10];
char endereco[20];
char nome[20];
char cpf[20];
}Cliente;
typedef struct
{
float hora_entrada;
float hora_saida;
float data_entrada;
float data_saida;
}Controle;
void listar_carros(Cliente* s,Controle* c,int tam_vetor)
{
int listado;
int i;
FILE* arq;
arq = fopen("Clientes.txt","r");
for(i=0;i<tam_vetor;i++)
{
if((s.placa != NULL && c.hora_entrada != 0))
{
fgets(s.placa,sizeof(s.placa),arq);
fflush(stdin);
printf("Numero da placa: %s\n",s.placa);
fgets(s.endereco,sizeof(s.endereco),arq);
fflush(stdin);
printf("Endereco: %s\n",s.endereco);
fgets(s.nome,sizeof(s.nome),arq);
fflush(stdin);
printf("Nome: %s\n",s.nome);
fgets(s.cpf,sizeof(s.cpf),arq);
fflush(stdin);
printf("CPF: %s\n",s.cpf);
fflush(stdin);
fscanf(arq,"%f",&c.hora_entrada);
printf("Hora de entrada: %f \n",c.hora_entrada);
fscanf(arq,"%f",&c.data_entrada);
printf("Data de entrada: %f \n",c.data_entrada);
fscanf(arq,"%f",&c.hora_saida);
printf("Hora de saida: %f \n",c.hora_saida);
fscanf(arq,"%f",&c.data_saida);
printf("Data de saida: %f \n",c.data_saida);
printf("\n");
++listado;
}
}
if(listado == 0)
{
printf("Nenhum carro cadastrado!\n");
}
fclose(arq);
}
void entrada_carro(Cliente* s,Controle *c,int tam_vetor)
{
int i,listado,count = 0;
for(i=0;i<tam_vetor;i++)
{
if(s.placa != NULL)
{
++count;
break;
}
}
if(count == 0)
{
printf("não e possivel cadastrar mais funcionarios\n\n");
return;
}
for(i=0;i<tam_vetor;i++)
{
printf("Numero da placa: \n");
fflush(stdin);
gets(s.placa);
fflush(stdin);
printf("Endereco: \n");
fflush(stdin);
gets(s.endereco);
printf("Nome: \n");
fflush(stdin);
gets(s.nome);
printf("CPF: \n");
fflush(stdin);
gets(s.cpf);
printf("Hora de entrada (hh.mm): \n");
scanf("%f",&c.hora_entrada);
printf("Data de entrada (dd.mm.aaaa): \n");
scanf("%f",&c.data_entrada);
fflush(stdin);
printf("Cliente cadastrado!\n");
break;
}
}
void arquivar(Cliente* s,Controle* c,int tam_vetor)
{
int i,taxa,valor;
float taxa_final,taxa_final1,taxa_final2,soma1,soma2;
FILE* arq;
arq = fopen("Clientes.txt","a");
for(i=0;i<tam_vetor;i++)
{
fprintf(arq,"Numero da placa: %s\n",s.placa);
fprintf(arq,"Endereco: %s\n",s.endereco);
fprintf(arq,"Nome: %s\n",s.nome);
fprintf(arq,"CPF: %s\n",s.cpf);
fprintf(arq,"Hora de entrada: %f \n",c.hora_entrada);
fprintf(arq,"Data de entrada: %f \n",c.data_entrada);
fprintf(arq,"Hora de saida: %f \n",c.hora_saida);
fprintf(arq,"Data de saida: %f \n",c.data_saida);
soma1 = c.hora_saida - c.hora_entrada;
soma2 = c.data_saida - c.data_entrada;
if(soma2 == 0)
{
taxa = 0;
}
else
{
taxa = 1;
}
if(soma1 <= 3)
{
if(taxa == 0)
{
valor = 3;
fprintf(arq,"Valor a ser pago é: %d\n",valor);
}
else if(taxa == 1)
{
taxa_final = (5*soma2)+3;
fprintf(arq,"Valor a ser pago é: %f\n",taxa_final);
}
}
else if (soma1 > 3)
{
if(taxa == 0)
{
taxa_final1 = (soma1 - 3)*9;
fprintf(arq,"Valor a ser pago: %f\n",taxa_final1);
}
else if(taxa == 1)
{
taxa_final2 = taxa_final1 + taxa_final1;
fprintf(arq,"Valor a ser pago: %f\n",taxa_final2);
}
}
fprintf(arq,"\n");
}
fclose(arq);
}
void saida_carro(Cliente* s,Controle* c,int tam_vetor)
{
int i,exist,soma1,soma2,taxa;
int valor = 3;
float taxa_final,taxa_final1,taxa_final2;
char *plaquinha;
plaquinha = (char*)malloc(20*sizeof(char));
printf("Digite a placa do carro: \n");
fflush(stdin);
gets(plaquinha);
fflush(stdin);
for(i=0;i<tam_vetor;i++)
{
if(strcmp(plaquinha,s.placa) == 0)
{
++exist;
do
{
printf("\t\tCarro encontrado\n\n");
printf("Numero da placa: %s\n",s.placa);
printf("Endereco: %s\n",s.endereco);
printf("Nome: %s\n",s.nome);
printf("CPF: %s\n",s.cpf);
printf("Hora de entrada: %f \n",c.hora_entrada);
printf("Data de entrada: %f \n",c.data_entrada);
printf("\n");
printf("\n\n**Cadastrar saida**\n\n");
printf("Hora de saida (hh.mm): \n");
scanf("%f",&c.hora_saida);
fflush(stdin);
printf("Data de saida (dd.mm.aaaa): \n");
scanf("%f",&c.data_saida);
fflush(stdin);
printf("\nHorario de saida cadastrado!\n");
printf("\n");
soma1 = c.hora_saida - c.hora_entrada;
soma2 = c.data_saida - c.data_entrada;
if(soma2 == 0)
{
taxa = 0;
}
else
{
taxa = 1;
}
if(soma1 <= 3)
{
if(taxa == 0)
{
valor = 3;
printf("Valor a ser pago é: %d\n",valor);
}
else if(taxa == 1)
{
taxa_final = (5*soma2)+3;
printf("Valor a ser pago é: %f\n",taxa_final);
}
}
else if (soma1 > 3)
{
if(taxa == 0)
{
taxa_final1 = (soma1 - 3)*9;
printf("Valor a ser pago: %f\n",taxa_final1);
}
else if(taxa == 1)
{
taxa_final2 = taxa_final1 + taxa_final1;
printf("Valor a ser pago: %f\n",taxa_final2);
}
}
return;
}while(1);
}
}
if(strcmp(plaquinha,s.placa) != 0)
{
printf("Nenhum carro cadastrado com essa placa!\n\n");
}
}
void proc_carro(Cliente* s,Controle* c,int tam_vetor)
{
int i,exist;
char *plaquinha;
plaquinha = (char*)malloc(20*sizeof(char));
printf("Digite a placa do carro: \n");
fflush(stdin);
gets(plaquinha);
fflush(stdin);
FILE* arq;
char str[20];
arq = fopen("Clientes.txt","r");
for(i=0;i<tam_vetor;i++)
{
if(strcmp(plaquinha,fgets(s.placa,sizeof(s.placa),arq)) == 0)
{
++exist;
do
{
printf("\t\tCarro encontrado\n\n");
fgets(s.placa,sizeof(s.placa),arq);
printf("Numero da placa: %s\n",s.placa);
fgets(s.endereco,sizeof(s.endereco),arq);
printf("Endereco: %s\n",s.endereco);
fgets(s.nome,sizeof(s.nome),arq);
printf("Nome: %s\n",s.nome);
fgets(s.cpf,sizeof(s.cpf),arq);
printf("CPF: %s\n",s.cpf);
fscanf(arq,"%f",&c.hora_entrada);
printf("Hora de entrada: %f \n",c.hora_entrada);
fscanf(arq,"%f",&c.data_entrada);
printf("Data de entrada: %f \n",c.data_entrada);
fscanf(arq,"%f",&c.hora_saida);
printf("Hora de saida: %f \n",c.hora_saida);
fscanf(arq,"%f",&c.data_saida);
printf("Data de saida: %f \n",c.data_saida);
return;
}while(1);
}
}
if(plaquinha,fgets(s.placa,sizeof(s.placa),arq) != 0)
{
printf("Carro não encontrado!\n");return;
}
fclose(arq);
}
void excluir_carro(Cliente* s,Controle* c,int tam_vetor)
{
int i,exist;
char *plaquinha;
plaquinha = (char*)malloc(20*sizeof(char));
printf("Digite a placa do carro: \n");
fflush(stdin);
gets(plaquinha);
fflush(stdin);
int lock = 1;
int exc;
for(i=0;i<tam_vetor;i++)
{
if(strcmp(plaquinha,(s+i)->placa) == 0)
{
++exist;
do
{
printf("\t\tCarro encontrado\n\n");
printf("Numero da placa: %s\n",s.placa);
printf("Endereco: %s\n",s.endereco);
printf("Nome: %s\n",s.nome);
printf("CPF: %s\n",s.cpf);
printf("Hora de entrada: %f \n",c.hora_entrada);
printf("Data de entrada: %f \n",c.data_entrada);
printf("Hora de saida: %f \n",c.hora_saida);
printf("Data de saida: %f \n",c.data_saida);
printf("\nTem certeza que deseja excluir esse carro? ");
printf("Digite 1 para sim e 0 para não: \n");
scanf("%d",&exc);
if(exc == 1)
{
strcpy(NULL,s.placa);
strcpy(NULL,s.endereco);
strcpy(NULL,s.nome);
strcpy(NULL,s.cpf);
c.hora_entrada = 0;
c.data_entrada = 0;
c.hora_saida = 0;
c.data_saida = 0;
lock = 0;
printf("\tCarro excluido!!\n");
}
else if(exc == 0)
{
break;
}
else
{
printf("Opcao invalida!\n");
}
}while(lock == 1);
}
else if(strcmp(plaquinha,s.placa) != 0)
{
printf("Carro não encontrado!\n");return;
}
}
}
int main()
{
int modo;
//Entrada de carros
Cliente cli[10];//vetor para clientes
Cliente* f;//ponteiro para clientes
f = cli;
//Entrada de controle de carros
Controle con[10];
Controle* c;
c = con;
do
{
printf("\t\tSistema de estacionamento\n\n");
printf("\tValor por dia: 5 reais\n");
printf("\tValor de 3 horas: 3 reais\n");
printf("\tValor adicional por hora(passando de 3 horas): 3 reais\n\n");
printf("//1 - Cadastrar carros\n");
printf("//2 - Saida de carros\n");
printf("//3 - Listar carros cadastrados\n");
printf("//4 - Procurar carros cadastrados\n");
printf("//5 - Excluir carros cadastrados\n");
printf("//0 - Sair\n");
printf("Digite a opcao desejada: ");
scanf("%d",&modo);
switch(modo)
{
case 0:
{
return 0;
}
case 1:
{
entrada_carro(f,c,10);
arquivar(f,c,10);
break;
}
case 2:
{
saida_carro(f,c,10);
arquivar(f,c,10);
break;
}
case 3:
{
listar_carros(f,c,10);
break;
}
case 4:
{
proc_carro(f,c,10);
break;
}
case 5:
{
excluir_carro(f,c,10);
arquivar(f,c,10);
break;
}
}
}while(1);
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.