Ir ao conteúdo

Posts recomendados

Postado

desenvolver um sistema para estacionamento de veículos em linguagem C. O sistema de estacionamento deverá contemplar: Uma tabela de tarifação com um determinado valor para a primeira hora e outro valor para as demais horas. Sextas, sábados, domingos e feriados o preço deve aumentar 30 %.  Alterações de valor devem restritas ao administrador e seguras por senha.  Deve prever 2 usuários: administrador e operador. Quando o cliente entrar no estacionamento, o sistema deverá emitir um recibo com a data e a hora de entrada e a placa do veículo.  Calcular o troco em função do valor recebido, e se o pagamento foi em dinheiro ou cartão.  Deve indicar se o veículo é carro, moto ou caminhão.  Da mesma forma, quando o cliente retirar o veículo do estacionamento, o sistema deverá emitir um recibo com a data e a hora de entrada, a data e a hora de saída, a placa do carro e o valor a ser pago.  O sistema deverá informar quando o estacionamento estiver cheio e não aceitar mais veículos até que uma vaga seja liberada. me ajude a terminar não esta dando certo.

 

 

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


 float minuto1;
     int digito;
     float fechamento;
     int pagamento;
     int opcao;
     int senha;
     float hora1, hora2, hora3, hora4;
     float HORA1, HORA11, HORA2, HORA22, HORA3, HORA33, HORA4, HORA44;
     struct tm*data;

     time_t segundos;
     time(&segundos);
     data=localtime(&segundos);


     printf("|--------------------BEM VINDO AO ESTACIONAMENTO CAR PARK------------------|\n");
     printf("|Antes que voce comece seu expeiente\n");
     printf("|Preencha algumas informações fixas:\n");
     printf("|Digite o valor fixo de RS0.16 para cada minuto a ser pago\n");
     scanf("%f", &minuto);
     minuto1=(minuto*30)/100;
     minuto1=minuto1+minuto;
     printf("|No caso de alteracoes de valores para cada minuto\n");
     printf("|voce devera contatar o adiministrador\n");
     printf("|indique o dia da semana\n");
     printf("|Caso for segunda, terca, quarta ou quinta:\n");
     printf("|DIGITE 1\n");
     printf("|Caso se for sexta, sábado, domingo ou feriado:\n");
     printf("|DIGITE 2\n");
     scanf("%d", &digito);
     printf("|Tenha um bom expediente de trabalho\n");
     printf("|-----------------------------------------------------------------------------|\n");

     if(digito==1){


     while (opcao != 99){


     printf("escolha uma opcao:\n");
     printf("|----------MENU-----------|\n");
     printf("|1.ENTRADA DE VEICULOS    |\n");
     printf("|2.SAIDA DE VEICULOS      |\n");
     printf("|3.HISTORICO DE VEICULOS  |\n");
     printf("|4.ADMINISTRADOR          |\n");
     printf("|5.FECHAR ESTACIONEMENTO  |\n");
     printf("|-------------------------|\n");
     scanf("%d", &opcao);
     switch(opcao){
     case 1:
    printf("|----------ENTRADA DE VEICULOS----------|\n");

    printf("Digite o numero da vaga\n");
    scanf("%d", &vaga);

    if(vaga==1){
    printf("O veiculo eh, carro, moto ou caminhao?\n");
    scanf("%s", &veiculo1);
    printf("Digite a placa do veiculo\n");
    scanf("%s", &placa1);
    printf("Digite o horario de entrada do veiculo, digitando horas e minutos separadamente\n");
    printf("Hora\n");
    scanf("%d", &hora_entrada1);
    printf("Minutos\n");
    scanf("%d", &minutos_entrada1);

    while(hora_entrada1 >24 || minutos_entrada1 > 60){

 

  • Curtir 1
Postado

@devair1010 me ajude preciso termina lo ate segunda.

22 horas atrás, Iaiz santod disse:

desenvolver um sistema para estacionamento de veículos em linguagem C. O sistema de estacionamento deverá contemplar: Uma tabela de tarifação com um determinado valor para a primeira hora e outro valor para as demais horas. Sextas, sábados, domingos e feriados o preço deve aumentar 30 %.  Alterações de valor devem restritas ao administrador e seguras por senha.  Deve prever 2 usuários: administrador e operador. Quando o cliente entrar no estacionamento, o sistema deverá emitir um recibo com a data e a hora de entrada e a placa do veículo.  Calcular o troco em função do valor recebido, e se o pagamento foi em dinheiro ou cartão.  Deve indicar se o veículo é carro, moto ou caminhão.  Da mesma forma, quando o cliente retirar o veículo do estacionamento, o sistema deverá emitir um recibo com a data e a hora de entrada, a data e a hora de saída, a placa do carro e o valor a ser pago.  O sistema deverá informar quando o estacionamento estiver cheio e não aceitar mais veículos até que uma vaga seja liberada. me ajude a terminar não esta dando certo.

 

 

 


#include <stdio.h>
#include <stdlib.h>
#include <time.h>


 float minuto1;
     int digito;
     float fechamento;
     int pagamento;
     int opcao;
     int senha;
     float hora1, hora2, hora3, hora4;
     float HORA1, HORA11, HORA2, HORA22, HORA3, HORA33, HORA4, HORA44;
     struct tm*data;

     time_t segundos;
     time(&segundos);
     data=localtime(&segundos);


     printf("|--------------------BEM VINDO AO ESTACIONAMENTO CAR PARK------------------|\n");
     printf("|Antes que voce comece seu expeiente\n");
     printf("|Preencha algumas informações fixas:\n");
     printf("|Digite o valor fixo de RS0.16 para cada minuto a ser pago\n");
     scanf("%f", &minuto);
     minuto1=(minuto*30)/100;
     minuto1=minuto1+minuto;
     printf("|No caso de alteracoes de valores para cada minuto\n");
     printf("|voce devera contatar o adiministrador\n");
     printf("|indique o dia da semana\n");
     printf("|Caso for segunda, terca, quarta ou quinta:\n");
     printf("|DIGITE 1\n");
     printf("|Caso se for sexta, sábado, domingo ou feriado:\n");
     printf("|DIGITE 2\n");
     scanf("%d", &digito);
     printf("|Tenha um bom expediente de trabalho\n");
     printf("|-----------------------------------------------------------------------------|\n");

     if(digito==1){


     while (opcao != 99){


     printf("escolha uma opcao:\n");
     printf("|----------MENU-----------|\n");
     printf("|1.ENTRADA DE VEICULOS    |\n");
     printf("|2.SAIDA DE VEICULOS      |\n");
     printf("|3.HISTORICO DE VEICULOS  |\n");
     printf("|4.ADMINISTRADOR          |\n");
     printf("|5.FECHAR ESTACIONEMENTO  |\n");
     printf("|-------------------------|\n");
     scanf("%d", &opcao);
     switch(opcao){
     case 1:
    printf("|----------ENTRADA DE VEICULOS----------|\n");

    printf("Digite o numero da vaga\n");
    scanf("%d", &vaga);

    if(vaga==1){
    printf("O veiculo eh, carro, moto ou caminhao?\n");
    scanf("%s", &veiculo1);
    printf("Digite a placa do veiculo\n");
    scanf("%s", &placa1);
    printf("Digite o horario de entrada do veiculo, digitando horas e minutos separadamente\n");
    printf("Hora\n");
    scanf("%d", &hora_entrada1);
    printf("Minutos\n");
    scanf("%d", &minutos_entrada1);

    while(hora_entrada1 >24 || minutos_entrada1 > 60){

 

 

  • Curtir 1
Postado

@Iaiz santod     seu código com algumas modificações poderia ser assim  :

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <ctype.h>
#include <string.h>
#include <conio.h>
#include <windows.h>
#define H GetStdHandle(STD_OUTPUT_HANDLE)
void textcolor_2(int l, int f){SetConsoleTextAttribute(H,l+(f<<4));} 
struct Tempo{
   char hora[7] ;
};
struct cad_carro{
     char placa[8], modelo[20], marca[20], cor[10];
     int  status;
     struct Tempo entrada;
}/*carro[10]*/;
struct cad_carro carro[10];

//variavel global
int nvei=0; //contador de veículos cadastrados
char pesq[8];

//Procedimento inicializa
void inicializa()
{
     int i;

     for(i=0; i<10; i++)
     carro[i].status=0;
}

//----------------------------------------------------------
//função verifica placa
int verifica_placa(int n){
    if (n==0){
        return 0;
    }
    else{
        return 1;
    }
}
// Função verifica se o estacionamento esta vazio
int verifica(int n)
{
    if (n==0){
        return 0;
    }
    else{
        return 1;
    }
}
//Procedimento para limpar do registro o carro que saiu do estacionamento
void excluir(int i)
{
     strcpy(carro[i].placa       ,"0");
     strcpy(carro[i].modelo      ,"0");
     strcpy(carro[i].marca       ,"0");
     strcpy(carro[i].cor         ,"0");
     strcpy(carro[i].entrada.hora,"0");
     strcpy(carro[i].status      ,"0");
}
//Procedimento para inserir dados dos veículos
void inserir(int i){
    char pla[8];
    int j, teste, tam_pla,r,flag;
    FILE *P;
    do{
        flag=0;
        textcolor_2(11,0);
        puts("Digite a placa: ");
        fflush(stdin);
        gets(pla);

        strupr(pla);//deixa caracteres da placa em maiúsculo


        strcpy(carro[i].placa, pla);

        tam_pla=strlen(carro[i].placa);
        // Testa quantos digitos foram inseridos, o padrão para placas de carros são 7 digitos: 3 letras e 4 numeros.
        if(tam_pla!=7){
            if(tam_pla<7){
                printf("\nPlaca invalida\nDigitos insuficientes\n\n");
                /*inserir(i);/*não pode chamar a pr[opria função*/
                flag=1;
            }
            else{//(tam_pla>7){
                printf("\nPlaca invalida\nMuitos digitos\n\n");
                flag=1;/*inserir(i);*/
            }
        }
        //testa se 3 primeiros digitos são letras
        for(j=0; j<3; j++){
            teste=isalpha(carro[i].placa[j]);//retorna 1 se for letra
            r==verifica_placa(teste);
            if(r==1){
                printf("\nPlaca invalida\nTres primeiros digitos devem ser letras!\n\n");
                flag=1;/*inserir(i);*/
                break;
            }
        }

        //testa se 4 últimos digitos não são letras
        for(j=3; j<7; j++){      //isalpha testa se a letra é maiuscula ou minuscula
            teste=isalpha(carro[i].placa[j]);//retorna 1 se for letra
            r==verifica_placa(teste);
            if(teste==1){
                printf("\nPlaca invalida\nQuatro ultimos digitos devem ser numeros!\n\n");
                flag=1;/*inserir(i);*/
                break;
            }
        }
    }while(flag);
    puts("\nDigite o modelo: ");
    fflush(stdin);
    gets(carro[i].modelo);
    //deixa string em minúsculo
    strlwr(carro[i].modelo);
    //deixa primeiro caractere maiúsculo
    carro[i].modelo[0]=toupper(carro[i].modelo[0]);
    puts("\nDigite a marca: ");
    fflush(stdin);
    gets(carro[i].marca);
    //deixa string em minúsculo
    strlwr(carro[i].marca);
    //deixa primeiro caractere maiúsculo
    carro[i].marca[0]=toupper(carro[i].marca[0]);
    puts("\nDigite a cor: ");
    fflush(stdin);
    gets(carro[i].cor);
    //deixa string em minúsculo
    strlwr(carro[i].cor);
    //deixa primeiro caractere maiúsculo
    carro[i].cor[0]=toupper(carro[i].cor[0]);

    puts("\nDigite a hora da entrada no formato <horas>:<minutos>:(digitar os :)");
    gets(carro[i].entrada.hora);
    carro[i].status=1;

    P=fopen("CARRO.txt", "w");
    fwrite(&carro, sizeof(carro), 1, P);
    fclose(P);
}
//----------------------------------------------------------

//Procedimento para cadastrar a entrada de veiculos no estacionamento
void cadastrar_veiculo(){
    int i,flag=1;
    for(i=0; i<10; i++){
        if(carro[i].status==0){
            inserir(i);
            printf("\n\nVeiculo cadastrado com sucesso!");
            Sleep(1000);
            flag=0;
            system("cls");
            break;
        }
    }
    if(flag==1){
        printf("Sem espaco para cadastrar\nEnter voltar ao menu...");
        getch();
        system("cls");
    }
}
// Procedimento para registrar a saida e calcular o valor a ser pago
void saida_veiculo(){
    FILE *P;
    P=fopen("CARRO.txt", "r");
    fread(&carro, sizeof(carro), 1, P);
    int i;
    textcolor_2(14,0);
    int horaEnt,minEnt,horaSai, minSai,tminEnt,tminSai,T_total;
    float precoad=0.05;// preço por minuto adicional acima de 1hora
    float preco=10.00;//preço por utilização de até 1h

    puts("Digite a placa : ");
    fflush(stdin);
    gets(pesq);
    strupr(pesq);//deixa caracteres da placa em maiúsculo
    for(i=0;i<1;i++){
        if(strcmp(pesq,carro[i].placa)==0){
            printf("\n Placa -----------: %s", carro[i].placa );
            printf("\n Modelo ----------: %s", carro[i].modelo);
            printf("\n Marca -----------: %s", carro[i].marca );
            printf("\n Cor -------------: %s", carro[i].cor   );
            printf("\n Hora de Entrada -: %s\n\n", carro[i].entrada.hora);
            carro[i].status=0;
            /*excluir(i);*/

            printf("\n\nHora de entrada no formato <horas>enter<minutos>:\n");
            scanf("%d""%d",&horaEnt,&minEnt);
            printf("\n\n\nHora de saida no formato <horas>enter<minutos>:\n");
            scanf("%d""%d", &horaSai, &minSai);
            tminEnt = (horaEnt*60)+ minEnt;
            tminSai = (horaSai*60)+ minSai;
            T_total = tminSai-tminEnt; //calcula o tempo total
            //Informa o valor para estacionar até a duração de 1h.Valor RS1,00 pela primeira hora
            if(T_total<=60){
                printf("O carro do cliente ficou %d minutos no estacionamento, e o valor total a pagar e de: R$%.2f ",T_total, preco);
            }
            else{
                   float valorapagar = ((T_total-60)*precoad) + preco;// Calcula o valor da primeira hora mais o valor dos minutos adicionais. depois de 1h cada minuto adicional custa R$ 0.05

                printf("O carro do cliente ficou %.d minutos no estacionamento, e o valor total a pagar é de: R$%.2f\n\n\n",T_total, valorapagar);

            }


            P=fopen("CARRO.txt", "w");
            fwrite(&carro, sizeof(carro), 1, P);
            fclose(P);
             }
             if (i==10){
                     printf("Veiculo nao encontrado");
             }
             }

}
// Procedimento para listar os veículos que estão no estacionamento.
void listar_veiculo()
{
    int i,j, n=1, r;

    FILE *P;
    P=fopen("CARRO.txt", "r");
    fread(&carro, sizeof(carro), 1, P);
    textcolor_2(11,0);
    for(i=0; i<10; i++)
    {
       if(carro[i].status==1)
         {
      printf("Veiculo %d\nPlaca: %s\t Modelo: %s\t Marca: %s\t Cor: %s\n\n", i+1, carro[i].placa, carro[i].modelo, carro[i].marca, carro[i].cor);
      printf("Entrada: %s\n\n\n\n", carro[i].entrada.hora);
      n=0;
      }
    }
    r=verifica(n);
    if(r==0)
    {
    printf("\nEnter voltar ao menu...");
    getch();
    system("cls");
    }
    else
    {
       puts("Nenhum veiculo cadastrado\nEnter voltar ao menu...");
       getch();
       system("cls");
    }
}
//-----------------------------------------------------------------------------


// Função principal
int main()
{
    int opcao;
    FILE* P;
    textcolor_2(14,0);  
    inicializa();

    //abre o arquivo para o fopen "w" não substituir o que já existe
    P=fopen("CARRO.txt", "r");
    if(P==NULL)P=fopen("CARRO.txt","w");
    fread(&carro, sizeof(carro), 1, P);
    fclose(P);
    printf("-------------------------------------------");
    do{
        printf("\nCONTROLE DE ESTACIONAMENTO\n\n");
        printf("-------------------------------------------\n\n");
        printf("1. Cadastrar entrada de veiculo\n");
        printf("2. Informar saida do veiculo \n");
        printf("3. Listar veiculos\n");
        printf("4. Creditos\n");
        printf("5. Sair\n\nOpcao: ");
        scanf("%d", &opcao);
        system("cls");
        switch(opcao){
        case 1:
            cadastrar_veiculo();
            break;
        case 2:
            saida_veiculo();
            break;
        case 3:
            listar_veiculo();
            break;
        case 4:
            printf("-------------------------------------------\n\n");
            printf("Programa desenvolvido pela: ");
            break;
        case 5: break;
        default:
            printf("Opcao invalida!\nEnter para voltar ao menu");
            getch();
            system("cls");
        }
    }while(opcao!=5);
    getchar();
    return 0;
}

 

Postado
Em 08/12/2019 às 11:18, Iaiz santod disse:

@devair1010  não tem um jeito mais simples de fazer esse programa?  achei muito complexo e não entendi muito bem os codigos pois tem alguns que ainda não aprendi no meu curso.

Não tem né?

  • Curtir 1
Postado
2 horas atrás, Iaiz santod disse:

Não tem né?

 

Em 08/12/2019 às 11:18, Iaiz santod disse:

@devair1010  não tem um jeito mais simples de fazer esse programa?  achei muito complexo e não entendi muito bem os codigos pois tem alguns que ainda não aprendi no meu curso.

@devair1010 não tem jeito né de fazer bem simples? com codigos simples.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!