Vericar a exitencia de uma palavra

1. Vericar a exitencia de uma palavra

Yan Martins
yanmartins

(usa Outra)

Enviado em 10/12/2016 - 15:41h

Boa tarde,

Eu tenho um projeto onde devo fazer um estacionamento em C.
O programa precisa coletar placa do veículo e data e hora do sistema.
Usando o código abaixo eu consigo coletar a data e hora de entrada e saída, porém eu queria que antes de fazer a coleta de data e hora de saída, o programa verificasse se o veículo existe no estacionamento.

OBSERVAÇÕES:

O programa irá criar 3 arquivos .txt são eles arquivo de entrada, arquivo de saída, histórico.

IGNORE "GERAR HISTÓRICO", ele é só um teste (em "GERAR HISTÓRICO", ele coletaria tudo que estivesse armazenado na estrutura e geraria o arquivo: historico.txt)

Alguém sabe me dizer o que devo fazer?
#include <stdio.h>
#include <time.h>

struct Tveiculo{
char placa[7];
char data_sistema_entra[100];
char hora_sistema_entra[100];
char data_sistema_sai[100];
char hora_sistema_sai[100];} carro[10];


// FUNCAO PARA FORMATACAO DA HORA
char *format(int number);
// FUNCAO PARA RETORNAR DATA
char *data(void);
// FUNCAO PARA RETORNAR HORA
char *hora(void);


int main(){

int opcao;
int i=0;
int j;
int placadig[7];

while (opcao != 4){

printf("Digite a opção desejada\n");
printf("1. ENTRADA DE VEÍCULOS\n");
printf("2. SAÍDA DE VEÍCULOS\n");
printf("3. GERAR HISTÓRICO\n");
printf("4. FECHAR ESTACIONEMENTO\n");
scanf("%d", &opcao);

switch(opcao){

case 1: //ENTRADA DE VEÍCULOS
printf("Digite a placa do veículo\n");
scanf("%s", carro[i].placa);

sprintf(carro[i].data_sistema_entra,"%s",data());
sprintf(carro[i].hora_sistema_entra,"%s",hora());

FILE *file_entra;
file_entra = fopen("C:\\Users\\Yan Martins\\Desktop\\historico\\entrada.txt", "a");
fprintf(file_entra,"PLACA DO VEÍCULO: %s\n",carro[i].placa);
fprintf(file_entra,"DIA DE ENTRADA: %s\n",carro[i].data_sistema_entra);
fprintf(file_entra,"HORA DE ENTRADA: %s\n\n\n",carro[i].hora_sistema_entra);
fclose(file_entra);
i++;

break;

case 2: //SAÍDA DE VEÍCULOS
printf("Digite a placa do veículo\n");
scanf("%s", placadig);

for(j=0; j<30; j++){
if(carro[j].placa == placadig[7]){

sprintf(carro[j].data_sistema_sai,"%s",data());
sprintf(carro[j].hora_sistema_sai,"%s",hora());

FILE *file_sai;
file_sai = fopen("C:\\Users\\Yan Martins\\Desktop\\historico\\saida.txt", "a");
fprintf(file_sai,"PLACA DO VEÍCULO: %s\n",carro[j].placa);
fprintf(file_sai,"DIA DE SAÍDA: %s\n",carro[j].data_sistema_sai);
fprintf(file_sai,"HORA DE SAÍDA: %s\n\n\n",carro[j].hora_sistema_sai);
fclose(file_sai);

}
else{
printf("\nPLACA NÃO EXISTE\n");
}
}
break;

case 3: //GERA HISTÓRICO

printf("PLACA DO VEÍCULO: %s\n",carro[0].placa);
printf("DIA DE SAÍDA: %s\n",carro[0].data_sistema_sai);
printf("HORA DE SAÍDA: %s\n\n\n",carro[0].hora_sistema_sai);

printf("PLACA DO VEÍCULO: %s\n",carro[1].placa);
printf("DIA DE SAÍDA: %s\n",carro[1].data_sistema_sai);
printf("HORA DE SAÍDA: %s\n\n\n",carro[1].hora_sistema_sai);

printf("PLACA DO VEÍCULO: %s\n",carro[2].placa);
printf("DIA DE SAÍDA: %s\n",carro[2].data_sistema_sai);
printf("HORA DE SAÍDA: %s\n\n\n",carro[2].hora_sistema_sai);
break;

case 4: //FIM DO PROGRAMA
printf("ESTACIONAMENTO FECHADO\n");
break;
}
}

}

// FUNCAO PARA FORMATACAO DA HORA
char *format(int number){
char *retorno,
ret[100];
int i;

if (number < 10){
sprintf(ret,"0%d",number);
retorno = ret;
return retorno;
}
else{
sprintf(ret,"%d",number);
retorno = ret;
return retorno;
}
}



// FUNCAO PARA RETORNAR DATA
char *data(void){

int dia,mes,ano;
char var1[100],
var2[100],
var3[100],
var4[100],
*dataPtr;
struct tm *local;
time_t t;

t = time(NULL);
local = localtime(&t);

dia = local -> tm_mday;
mes = local -> tm_mon + 1;
ano = local -> tm_year + 1900;

sprintf(var1,"%s",format(dia));
sprintf(var2,"%s",format(mes));
sprintf(var3,"%s",format(ano));

sprintf(var4,"%s/%s/%s",var1,var2,var3);

// retorna data no formato dd:MM:yyyy com um ponteiro
dataPtr = var4;
return dataPtr;
}

// FUNCAO PARA RETORNAR HORA
char *hora(void){

int hora,minuto,segundo;
char var1[100],
var2[100],
var3[100],
var5[100],
*retorno;

struct tm *local;
time_t t;

t = time(NULL);
local = localtime(&t);

// obtem hora, minuto e segundo e os aloca em uma variavel do tipo inteiro
hora = local -> tm_hour;
minuto = local -> tm_min;

// por algum motivo precisa converter os valores retornados pelos ponteiros
// da funcao em variaveis do tipo char
sprintf(var1,"%s",format(hora));
sprintf(var2,"%s",format(minuto));

// cria a variavel de retorno dos dados e cria um ponteiro para essa variavel
sprintf(var5,"%s:%s",var1,var2);

// retorna hora no formato hh:mm:ss com um ponteiro
retorno = var5;
return retorno;
}





  


2. Re: Vericar a exitencia de uma palavra

Paulo
paulo1205

(usa Ubuntu)

Enviado em 11/12/2016 - 23:15h

No outro tópico que você criou, eu já apontei vários erros, e você os manteve no programa de agora.

Que tal corrigir aquilo que eu já havia apontado anteriormente, antes de pedir mais ajuda?


3. Re: Vericar a exitencia de uma palavra

Yan Martins
yanmartins

(usa Outra)

Enviado em 12/12/2016 - 10:39h

paulo1205 escreveu:

No outro tópico que você criou, eu já apontei vários erros, e você os manteve no programa de agora.

Que tal corrigir aquilo que eu já havia apontado anteriormente, antes de pedir mais ajuda?


Consegui finalizar o programa.
Eu fiz as alterações diante do que o professor permitiu.
Mesmo assim, obrigado pela dica ;)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts