Conforme na imagem "teste" durante a execução do programa preciso saber como ler a linha específica da placa do carro que o cliente digitar. Com essa linha específica nós precisamos fazer duas coisas: A primeira seria alterar o "Status: D" dela para "Status A", mudando de disponível para alugado. A segunda seria pegar a linha completa, do começo ao fim e salvá-la junto com o cadastro do cliente, onde os dados do cliente estão sendo salvos.
// Declaração de livrarias da plataforma.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <time.h>
// Declaração das váriaveis do tipo: número, caractere e arquivo de texto.
// Criando um novo arquivo de texto para que possam ser salvas as informações digitadas.
if((RegistroLocacao = fopen(locallocacao,"a")) == NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
if((RegistroRelat = fopen(localrelat,"a")) == NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
// Escolha da categoria de carros dividida em três opções.
system("cls");
printf(" ESCOLHA A CATEGORIA DESEJADA: \n\n\n 1 - ECONOMICO.\n\n 2 - INTERMEDIARIO.\n\n 3 - EXECUTIVO.\n\n");
scanf("%c", &opcCategoria);
if (opcCategoria == '1')
{
// Concatenação de váriaveis.
strcat (localceco, txt);
// Lendo o arquivo previamente criado na tela de cadastro de carros.
ListaCarros = fopen(localceco, "r");
if((ListaCarros = fopen(localceco, "r"))== NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
system("cls");
setbuf(stdin, NULL);
// Exibindo o conteúdo do arquivo para que o cliente possa escolher o carro.
while (fgets(listacarro, 10000, ListaCarros) != NULL)
{
printf("%s", listacarro);
}
fclose (ListaCarros);
printf("INFORME A PLACA DO CARRO DESEJADO: ");
scanf ("%s", &opcarro);
setbuf(stdin, NULL);
// Cálculo de valor da locação * quantidade de dias escolhidos pelo cliente.
printf("DESEJA ALUGAR O CARRO POR QUANTOS DIAS?\n");
scanf ("%d", &qtdias);
setbuf(stdin, NULL);
valorLocacao = 89.90;
valorLocacao = valorLocacao * qtdias;
// Concatenação de váriaveis.
strcat (localcarro, opcarro);
strcat (localcarro, txt);
// Lendo e copiando o conteúdo de localcarro para locallocacao.
RegistroCarro = fopen(localcarro, "r");
if((RegistroCarro = fopen(localcarro, "r"))== NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
if((RegistroLocacao = fopen(locallocacao,"a")) == NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
while (fgets(registrocarro, 10000, RegistroCarro) != NULL)
// Coleta da data da locação, salvando a data e o carro alugado no arquivo locallocacao.
_strdate (dateStr);
_strtime (timeStr);
fprintf (RegistroLocacao, "\nData e hora da locacao: %s %s", dateStr, timeStr);
fprintf (RegistroLocacao, "\n%s", registrocarro);
fclose (RegistroCarro);
fclose (RegistroLocacao);
}
else if (opcCategoria == '2')
{
// Concatenação de váriaveis.
strcat (localcint, Categoria);
strcat (localcint, txt);
// Lendo o arquivo previamente criado na tela de cadastro de carros.
ListaCarros = fopen(localcint, "r");
if((ListaCarros = fopen(localcint, "r"))== NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
system("cls");
setbuf(stdin, NULL);
// Exibindo o conteúdo do arquivo para que o cliente possa escolher o carro.
while (fgets(listacarro, 10000, ListaCarros) != NULL)
{
printf("%s", listacarro);
}
fclose (ListaCarros);
printf("INFORME A PLACA DO CARRO DESEJADO: ");
scanf ("%s", &opcarro);
setbuf(stdin, NULL);
// Cálculo de valor da locação * quantidade de dias escolhidos pelo cliente.
printf("DESEJA ALUGAR O CARRO POR QUANTOS DIAS?\n");
scanf ("%d", &qtdias);
setbuf(stdin, NULL);
valorLocacao = 119.90;
valorLocacao = valorLocacao * qtdias;
// Concatenação de váriaveis.
strcat (localcarro, opcarro);
strcat (localcarro, txt);
// Lendo e copiando o conteúdo de localcarro para locallocacao.
RegistroCarro = fopen(localcarro, "r");
if((RegistroCarro = fopen(localcarro, "r"))== NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
while (fgets(registrocarro, 10000, RegistroCarro) != NULL)
{
if((RegistroLocacao = fopen(locallocacao,"a")) == NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
// Coleta da data da locação, salvando a data e o carro alugado no arquivo locallocacao.
_strdate (dateStr);
_strtime (timeStr);
fprintf (RegistroLocacao, "\nData e hora da locacao: %s %s", dateStr, timeStr);
fprintf (RegistroLocacao, "\n%s", registrocarro);
fclose (RegistroCarro);
fclose (RegistroLocacao);
}
}
else if (opcCategoria == '3')
{
// Concatenação de váriaveis.
strcat (localcexe, txt);
// Lendo o arquivo previamente criado na tela de cadastro de carros.
ListaCarros = fopen(localcexe, "r");
if((ListaCarros = fopen(localcexe, "r"))== NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
system("cls");
setbuf(stdin, NULL);
// Exibindo o conteúdo do arquivo para que o cliente possa escolher o carro.
while (fgets(listacarro, 10000, ListaCarros) != NULL)
{
printf("%s", listacarro);
}
fclose (ListaCarros);
printf("INFORME A PLACA DO CARRO DESEJADO: ");
scanf ("%s", &opcarro);
setbuf(stdin, NULL);
// Cálculo de valor da locação * quantidade de dias escolhidos pelo cliente.
printf("DESEJA ALUGAR O CARRO POR QUANTOS DIAS?\n");
scanf ("%d", &qtdias);
setbuf(stdin, NULL);
valorLocacao = 89.90;
valorLocacao = valorLocacao * qtdias;
// Concatenação de váriaveis.
strcat (localcarro, opcarro);
strcat (localcarro, txt);
// Lendo e copiando o conteúdo de localcarro para locallocacao.
RegistroCarro = fopen(localcarro, "r");
if((RegistroCarro = fopen(localcarro, "r"))== NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
if((RegistroLocacao = fopen(locallocacao,"a")) == NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
while (fgets(registrocarro, 10000, RegistroCarro) != NULL)
// Coleta da data da locação, salvando a data e o carro alugado no arquivo locallocacao.
_strdate (dateStr);
_strtime (timeStr);
fprintf (RegistroLocacao, "\nData e hora da locacao: %s %s", dateStr, timeStr);
fprintf (RegistroLocacao, "\n%s", registrocarro);
fclose (RegistroCarro);
fclose (RegistroLocacao);
}
else
{
printf ("Opcao invalida");
system ("pause");
return 0;
}
system("cls");
printf("O cliente possui mais de 60 anos?\n1. SIM\n2. não\n");
scanf("%c", &opcidade);
setbuf(stdin, NULL);
Pergunta
Robson Pormann Dias
Conforme na imagem "teste" durante a execução do programa preciso saber como ler a linha específica da placa do carro que o cliente digitar. Com essa linha específica nós precisamos fazer duas coisas: A primeira seria alterar o "Status: D" dela para "Status A", mudando de disponível para alugado. A segunda seria pegar a linha completa, do começo ao fim e salvá-la junto com o cadastro do cliente, onde os dados do cliente estão sendo salvos.
// Declaração de livrarias da plataforma.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <time.h>
// Declaração das váriaveis do tipo: número, caractere e arquivo de texto.
char opcao, nome[150], rg[100], cpf[100], CNH[100], dataNSC[10000] = " ", opclista;
char txt[100] = ".txt", datanasc[10000] = " ", Linha[100], telefone[10], status[20], Categoria[20], pLc[7];
char UF[2], cidade[150], bairro[150], rua[150], ncasa[50], marca[15], modelo[15], km[15], anocarro[4], categoria[20];
char dataHoraR[10000] = " ", dataHoraE[10000] = " ", opcidade, opcong, opcCategoria, cpfpagamento[20], ticket [10000];
FILE *arquivo ,*RegistroLocacao,*RegistroCarro, *ListaCarros, *arq, *RegistroRelat;
char dateStr[9], timeStr[9], opcarro[100] = "Carro_", listacarro [10000], registrocarro [10000], opcentrega, opcrelat;
char localcarro[100] = "C:\\Users\\Public\\Documents\\Carro_";
char locallocacao[100] = "C:\\Users\\Public\\Documents\\Locacao_";
char localrelat [1000] = "C:\\Users\\Public\\Documents\\Locacoes_";
char localc[1000] = "C:\\Users\\Public\\Documents\\Categoria_";
char localceco[1000] = "C:\\Users\\Public\\Documents\\Categoria_ECONOMICO";
char localcint[1000] = "C:\\Users\\Public\\Documents\\Categoria_INTERMEDIARIO";
char localcexe[1000] = "C:\\Users\\Public\\Documents\\Categoria_EXECUTIVO";
float valorLocacao = 0, valorticket = 0;
int qtdias = 0;
int main ()
{
printf("\n\n");
printf(" >>> PARA REALIZAR LOCACAO FAVOR PREENCHER informações DO CLIENTE: <<< ");
printf("\n\n");
printf("\n NOME COMPLETO: ");
gets (nome);
setbuf(stdin, NULL);
printf("\n DATA DE NASCIMENTO: ");
gets (datanasc);
setbuf(stdin, NULL);
printf("\n RG: ");
gets (rg);
setbuf(stdin, NULL);
printf("\n CPF: ");
gets (cpf);
setbuf(stdin, NULL);
printf("\n CNH: ");
gets (CNH);
setbuf(stdin, NULL);
system("cls");
printf("\n\n");
printf(" >>> POR FAVOR PREENCHA O ENDERECO DO CLIENTE: <<< ");
setbuf(stdin, NULL);
printf("\n\n");
printf("\n UF: ");
gets (UF);
setbuf(stdin, NULL);
printf("\n CIDADE: ");
gets (cidade);
setbuf(stdin, NULL);
printf("\n BAIRRO: ");
gets (bairro);
setbuf(stdin, NULL);
printf("\n RUA: ");
gets (rua);
setbuf(stdin, NULL);
printf("\n NUMERO: ");
gets (ncasa);
setbuf(stdin, NULL);
system("cls");
printf("\n\n\n NUMERO DE TELEFONE DO CLIENTE: ");
gets (telefone);
setbuf(stdin, NULL);
// Concatenação de váriaveis.
strcat (locallocacao, cpf);
strcat (locallocacao, txt);
strcat (localrelat, txt);
// Criando um novo arquivo de texto para que possam ser salvas as informações digitadas.
if((RegistroLocacao = fopen(locallocacao,"a")) == NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
if((RegistroRelat = fopen(localrelat,"a")) == NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
fprintf (RegistroLocacao,"\n\nNOME: %s\nDATA NASCIMENTO: %s\nRG: %s\nCPF: %s\nCNH: %s\nEndereço: %s, %s, %s, %s - %s\nNUMERO DE TELEFONE: %s", nome, datanasc, rg, cpf, CNH, rua, ncasa, bairro, cidade, UF, telefone);
fprintf (RegistroRelat,"\n\nNOME: %s RG: %s Endereço: %s, %s, %s, %s - %s TELEFONE: %s", nome, rg, rua, ncasa, bairro, cidade, UF, telefone);
fclose(RegistroLocacao);
fclose (RegistroRelat);
// Escolha da categoria de carros dividida em três opções.
system("cls");
printf(" ESCOLHA A CATEGORIA DESEJADA: \n\n\n 1 - ECONOMICO.\n\n 2 - INTERMEDIARIO.\n\n 3 - EXECUTIVO.\n\n");
scanf("%c", &opcCategoria);
if (opcCategoria == '1')
{
// Concatenação de váriaveis.
strcat (localceco, txt);
// Lendo o arquivo previamente criado na tela de cadastro de carros.
ListaCarros = fopen(localceco, "r");
if((ListaCarros = fopen(localceco, "r"))== NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
system("cls");
setbuf(stdin, NULL);
// Exibindo o conteúdo do arquivo para que o cliente possa escolher o carro.
while (fgets(listacarro, 10000, ListaCarros) != NULL)
{
printf("%s", listacarro);
}
fclose (ListaCarros);
printf("INFORME A PLACA DO CARRO DESEJADO: ");
scanf ("%s", &opcarro);
setbuf(stdin, NULL);
// Cálculo de valor da locação * quantidade de dias escolhidos pelo cliente.
printf("DESEJA ALUGAR O CARRO POR QUANTOS DIAS?\n");
scanf ("%d", &qtdias);
setbuf(stdin, NULL);
valorLocacao = 89.90;
valorLocacao = valorLocacao * qtdias;
// Concatenação de váriaveis.
strcat (localcarro, opcarro);
strcat (localcarro, txt);
// Lendo e copiando o conteúdo de localcarro para locallocacao.
RegistroCarro = fopen(localcarro, "r");
if((RegistroCarro = fopen(localcarro, "r"))== NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
if((RegistroLocacao = fopen(locallocacao,"a")) == NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
while (fgets(registrocarro, 10000, RegistroCarro) != NULL)
// Coleta da data da locação, salvando a data e o carro alugado no arquivo locallocacao.
_strdate (dateStr);
_strtime (timeStr);
fprintf (RegistroLocacao, "\nData e hora da locacao: %s %s", dateStr, timeStr);
fprintf (RegistroLocacao, "\n%s", registrocarro);
fclose (RegistroCarro);
fclose (RegistroLocacao);
}
else if (opcCategoria == '2')
{
// Concatenação de váriaveis.
strcat (localcint, Categoria);
strcat (localcint, txt);
// Lendo o arquivo previamente criado na tela de cadastro de carros.
ListaCarros = fopen(localcint, "r");
if((ListaCarros = fopen(localcint, "r"))== NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
system("cls");
setbuf(stdin, NULL);
// Exibindo o conteúdo do arquivo para que o cliente possa escolher o carro.
while (fgets(listacarro, 10000, ListaCarros) != NULL)
{
printf("%s", listacarro);
}
fclose (ListaCarros);
printf("INFORME A PLACA DO CARRO DESEJADO: ");
scanf ("%s", &opcarro);
setbuf(stdin, NULL);
// Cálculo de valor da locação * quantidade de dias escolhidos pelo cliente.
printf("DESEJA ALUGAR O CARRO POR QUANTOS DIAS?\n");
scanf ("%d", &qtdias);
setbuf(stdin, NULL);
valorLocacao = 119.90;
valorLocacao = valorLocacao * qtdias;
// Concatenação de váriaveis.
strcat (localcarro, opcarro);
strcat (localcarro, txt);
// Lendo e copiando o conteúdo de localcarro para locallocacao.
RegistroCarro = fopen(localcarro, "r");
if((RegistroCarro = fopen(localcarro, "r"))== NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
while (fgets(registrocarro, 10000, RegistroCarro) != NULL)
{
if((RegistroLocacao = fopen(locallocacao,"a")) == NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
// Coleta da data da locação, salvando a data e o carro alugado no arquivo locallocacao.
_strdate (dateStr);
_strtime (timeStr);
fprintf (RegistroLocacao, "\nData e hora da locacao: %s %s", dateStr, timeStr);
fprintf (RegistroLocacao, "\n%s", registrocarro);
fclose (RegistroCarro);
fclose (RegistroLocacao);
}
}
else if (opcCategoria == '3')
{
// Concatenação de váriaveis.
strcat (localcexe, txt);
// Lendo o arquivo previamente criado na tela de cadastro de carros.
ListaCarros = fopen(localcexe, "r");
if((ListaCarros = fopen(localcexe, "r"))== NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
system("cls");
setbuf(stdin, NULL);
// Exibindo o conteúdo do arquivo para que o cliente possa escolher o carro.
while (fgets(listacarro, 10000, ListaCarros) != NULL)
{
printf("%s", listacarro);
}
fclose (ListaCarros);
printf("INFORME A PLACA DO CARRO DESEJADO: ");
scanf ("%s", &opcarro);
setbuf(stdin, NULL);
// Cálculo de valor da locação * quantidade de dias escolhidos pelo cliente.
printf("DESEJA ALUGAR O CARRO POR QUANTOS DIAS?\n");
scanf ("%d", &qtdias);
setbuf(stdin, NULL);
valorLocacao = 89.90;
valorLocacao = valorLocacao * qtdias;
// Concatenação de váriaveis.
strcat (localcarro, opcarro);
strcat (localcarro, txt);
// Lendo e copiando o conteúdo de localcarro para locallocacao.
RegistroCarro = fopen(localcarro, "r");
if((RegistroCarro = fopen(localcarro, "r"))== NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
if((RegistroLocacao = fopen(locallocacao,"a")) == NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
while (fgets(registrocarro, 10000, RegistroCarro) != NULL)
// Coleta da data da locação, salvando a data e o carro alugado no arquivo locallocacao.
_strdate (dateStr);
_strtime (timeStr);
fprintf (RegistroLocacao, "\nData e hora da locacao: %s %s", dateStr, timeStr);
fprintf (RegistroLocacao, "\n%s", registrocarro);
fclose (RegistroCarro);
fclose (RegistroLocacao);
}
else
{
printf ("Opcao invalida");
system ("pause");
return 0;
}
system("cls");
printf("O cliente possui mais de 60 anos?\n1. SIM\n2. não\n");
scanf("%c", &opcidade);
setbuf(stdin, NULL);
if (opcidade == '1')
{
valorLocacao = valorLocacao - valorLocacao*0.1;
}
system("cls");
printf("O cliente possui afiliacao com a ONG?\n1. SIM\n2. não\n");
scanf("%c", &opcong);
setbuf(stdin, NULL);
if (opcong == '1')
{
valorLocacao = valorLocacao - valorLocacao*0.05;
}
if((RegistroLocacao = fopen(locallocacao,"a")) == NULL)
{
printf("Erro ao abrir o arquivo!\n");
exit(1);
}
fprintf(RegistroLocacao, "\nTotal a pagar: R$ .2%f", valorLocacao);
fclose (RegistroLocacao);
}
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.