Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
mosiah santos

C erro no calculo do programa de locadora de veiculos

Recommended Posts

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

int i=0, j=0;
char tecla;

struct cadastro_cliente
  {
      int cod;
      char nome [40];
      char rua [30];
      int numero;
      int cpf;
      int cnh;
      char bairro [30];
      char cidade [30];
      int codigocar;
  };

struct cadastro_cliente Cliente[50];

struct cadastro_carro
  {
      int codcar;
      char modelo [20];
      char marca [15];
      char placa [15];
      int tipocarro;
      double valor ,finaldeloc;
      int valorlocacao;//funcao nova
      int status;
  };

struct cadastro_carro Carro[50];

int cad_cliente(void);
int list_cliente(void);
int cad_carro(void);
int tipodocarro(void);
int loc_carro(void);
int mostra_clientes(void);
int devo_carro(void);
int dias(void);//funcao nova
int valor(void); //funcao nova

int calc (void){


}

int cad_cliente (void)
{
   printf("Cadastro %d de 50\n", j);
   if (j<50)
      {
        printf("Digite o codigo do Cliente: ");
        scanf("%d", &Cliente[j].cod);
                fflush(stdin);
        printf("Digite o nome do Cliente: ");
        gets(Cliente[j].nome);
        printf("Digite o CPF do Cliente: ");
        scanf("%d", &Cliente[j].cpf);
                fflush(stdin);
        printf("Digite a CNH do Cliente: ");
        scanf("%d", &Cliente[j].cnh);
                fflush(stdin);
        printf("Digite o nome da Rua: ");
                gets(Cliente[j].rua);
        fflush(stdin);
        printf("Digite o numero da casa: ");
        scanf("%d", &Cliente[j].numero);
        fflush(stdin);
        printf("Digite o nome do Bairro: ");
        gets(Cliente[j].bairro);
                fflush(stdin);
        printf("Digite o nome da Cidade: ");
        gets(Cliente[j].cidade);
        j++;
      }
   return(0);
}

int list_cliente (void)
{
  int k=0;

  if(Cliente[k].cod != 0)
       {
    k++;
    printf("\nNome do Cliente: %s\n", Cliente[k].nome);
    getch();
       }
  return (0);
}

int tipo_do_carro (int tp)
{
    double valor;
    // 1 para basico, 2 para intemediario e 3 para executivo
    if(tp == 1){
        valor = 80.00;
    }
    if(tp == 2){
        valor = 100.00;
    }
    if(tp == 3){
        valor = 299.99;
    }
    if (tp == 0 || tp <= 4){
        printf("tipo de carro não existe");
    }
    return(tp);
}

int cad_carro (void)
{

  printf("Cadastro de carro %d de 50\n", i);
  if(i<50)
    {
     printf("Digite o codigo do veiculo: ");
     scanf("%d", &Carro.codcar);
     fflush(stdin);
     printf("Digite o modelo do carro: ");
     gets(Carro.modelo);
     fflush(stdin);
     printf("Digite a marca do carro: ");
     gets(Carro.marca);
     fflush(stdin);
     printf("Digite a placa do carro: ");
     gets(Carro.placa);
     fflush(stdin);
     printf("Tipo do Carro \n CARRO BASICO 1 \n CARRO INTERMEDIARIO 2\n CARRO EXECUTIVO 3 \n Digite o tipo do carro: ");
     scanf("%d", &Carro.tipocarro);
     printf("valor de locação (por dia): ");
     scanf("%f", &Carro.valorlocacao);
     fflush(stdin);
     tipo_do_carro(Carro.tipocarro);
     printf("%f", &Carro.valor);
     i++;
    }
  return(0);
}

int loc_carro (void)
{
  int k=0;
  char consulta[40];
  char resposta;
  int codi;
  int dias; // valorfinaldeloc;//funcao nova
  int valor; //funcao nova
  fflush(stdin);
  printf("Digite o nome do cliente que quer locar um veiculo: ");
  gets(consulta);
  Reconsulta:
  for(k=0; k<50; k++)
  {
    if(consulta == Cliente[k].nome);
    {
      printf("Cliente cadastrado, deseja locar veiculo s/n: ");
      scanf("%c", &resposta);
      if(resposta == 's')
        {
          printf("Digite o codigo do Carro: ");
          scanf("%d", &codi);
          //quantos o cliente vai ficar com o carro.
          print("Quantos dias você deseja ficar com o carro?");
          scanf("%d", &dias);
          scanf("%d",&valor); //funcao nova
          //recuperar o valor da diaricarro[k].valor;
          //multiplicar a quantidade de dias pelo valor da diaria
          valorfinaldeloc = Carro.valor*dias;
          printf("Valor de locação é %d "&valorfinaldeloc"!\n Deseja locar carro?");

          Cliente[k].codigocar=codi;
          Carro[k].status= 1; // quando tiver o status 1 é porque está locado.
          //return(0);
        };
     };
   };
   printf("Cliente nao Cadastrado");
   return(0);
}

int mostra_clientes (void)
{

    for (j=0; j<50; j++)
    {
       if(Cliente[j].codigocar != 0)
        {
           printf("Cliente: %c", Cliente.nome);
           printf("Marca do veiculo: %c", Carro.marca);
        }
    }
  return(0);
}

int devo_carro (void)
{

  char dev, devolucao[40];
  printf("Digite o Nome do Cliente que vai devolver o veiculo: ");
  scanf("%c", &devolucao);
  for (i=0; i<50; i++)
   {
    if(devolucao == Cliente.nome)
      {
        printf("Realizar devolucao s/n? ");
        scanf("%c", &dev);
        if (dev == 's')
          {
            Cliente.codigocar=0 ;
            Carro.status=0;
          }
      }
   }
  return(0);
}

int main (void)
{
    // variavel opcao serve para o menu
  int opcao=0;
  // signifa enquanto o menu for menor que 8 vai está em um loop do menu
  while(opcao<8)
  {
    printf("\n\nLOCADORA DE VEICULOS\n");
    printf("..................\n\n");
    printf("1 - CADASTRAR CLIENTE\n");
    printf("2 - LISTAR CLIENTES CADASTRADOS\n");
    printf("3 - CADASTRAR CARRO\n");
    printf("4 - LOCAR CARRO\n");
    printf("5 - CLIENTES COM CARROS LOCADOS\n");
    printf("6 - DEVOLUCAO DE CARRO\n");
    printf("7 - SAIR\n");
    printf("Escolha uma opcao:");
    fflush(stdin);
    scanf("%d", &opcao);
    switch(opcao)
      {
          case 1: cad_cliente(); break;
          case 2: list_cliente(); break;
          case 3: cad_carro(); break;
          case 4: loc_carro(); break;
          case 5: mostra_clientes(); break;
          case 6: devo_carro(); break;
          case 7: exit(0); break;
          default: printf("\nopcao invalida - tecle <enter>");
          fflush(stdin);
          while ((tecla=getchar())!='\r')
          break;
      }/*fim do swith*/
  }/*fim do while*/
  getch();

return (0);
}

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia explicar o problema para que possamos te ajudar?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • 43 minutos atrás, iHollyZinhO disse:

    Poderia explicar o problema para que possamos te ajudar?

    bom eu nao consigo fazer com que o programa em si ele some  ou multiplique o valor do veiculo com os dias locados , por exemplo valor vezes o dia (carro simples =150 reais e alugo por dois dias 300e assim por diante) 

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    agora, mosiah santos disse:

    bom eu nao consigo fazer com que o programa em si ele some  ou multiplique o valor do veiculo com os dias locados , por exemplo valor vezes o dia (carro simples =150 reais e alugo por dois dias 300e assim por diante) 

    Pelo que vi aqui, há um problema nesta linha:

    printf("Valor de locação é %d "&valorfinaldeloc"!\n Deseja locar carro?");

    Bom, se Carro.valor já está com o valor atribuído, então tente substituir por isto:

    printf("Valor de locação é R$%d !\n Deseja locar carro?", valorfinaldeloc);

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Você conseguiu compilar esse código alguma vez? Tem muitos erros de sintaxe.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Antes de usar a adicionar esse recurso de cálculo ele funciona so que tinha um loop infinito em uma parte dele ..

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×