Ir ao conteúdo
  • Cadastre-se

Def

Membro Pleno
  • Posts

    85
  • Cadastrado em

  • Última visita

Tudo que Def postou

  1. <Estou tentando criar um controle de estacionamento da minha facul mas está dando erros, alguém pode me ajudar com esses erros?> #include <stdio.h> #include <stdlib.h> #include <time.h> struct Tempo{ char hora[7] ; }; struct cad_carro{ char placa[8], modelo[20], marca[20], cor[10]; int status; struct Tempo entrada; }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.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) { carro.placa==0; carro.modelo==0; carro.marca==0; carro.cor==0; carro.entrada.hora==0; carro.status==0; } //Procedimento para inserir dados dos veículos void inserir(int i) { char pla[8]; int j, teste, tam_pla,r; FILE *P; puts("Digite a placa: "); fflush(stdin); gets(pla); strupr(pla);//deixa caracteres da placa em maiúsculo strcpy(carro.placa, pla); tam_pla=strlen(carro.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); } else//(tam_pla>7) { printf("\nPlaca invalida\nMuitos digitos\n\n"); inserir(i); } } //testa se 3 primeiros digitos são letras for(j=0; j<3; j++) { teste=isalpha(carro.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"); inserir(i); } } //testa se 4 últimos digitos não são letras for(j=3; j<7; j++) { teste=isalpha(carro.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"); inserir(i); } } puts("\nDigite o modelo: "); fflush(stdin); gets(carro.modelo); //deixa string em minúsculo strlwr(carro.modelo); //deixa primeiro caractere maiúsculo carro.modelo[0]=toupper(carro.modelo[0]); puts("\nDigite a marca: "); fflush(stdin); gets(carro.marca); //deixa string em minúsculo strlwr(carro.marca); //deixa primeiro caractere maiúsculo carro.marca[0]=toupper(carro.marca[0]); puts("\nDigite a cor: "); fflush(stdin); gets(carro.cor); //deixa string em minúsculo strlwr(carro.cor); //deixa primeiro caractere maiúsculo carro.cor[0]=toupper(carro.cor[0]); puts("\nDigite a hora da entrada no formato <horas>:<minutos>:(digitar os :)"); gets(carro.entrada.hora); carro.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.status==0) { inserir(i); printf("\n\nVeiculo cadastrado com sucesso!"); _sleep(5000); 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; int horaEnt,minEnt,horaSai, minSai,tminEnt,tminSai,T_total; float precoad=0.05;// preço por minuto adicional acima de 1hora float preco=1.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<10;i++){ if(strcmp(pesq,carro.placa)==0){ printf("\n Placa: %s", carro.placa); printf("\n Modelo: %s", carro.modelo); printf("\n Marca: %s", carro.marca); printf("\n Cor: %s", carro.cor); printf("\n Hora de Entrada: %s\n\n", carro.entrada.hora); carro.status=0; excluir(i); printf("\n\n Digite a hora de entrada no formato <horas>enter<minutos>:\n"); scanf("%d""%d",&horaEnt,&minEnt); printf("\n\n\n Digite a hora 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); for(i=0; i<10; i++) { if(carro.status==1) { printf("Veiculo %d\nPlaca: %s\t Modelo: %s\t Marca: %s\t Cor: %s\n\n", i+1, carro.placa, carro.modelo, carro.marca, carro.cor); printf("Entrada: %s\n\n\n\n", carro.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() { //dados cadastrais do cliente struct cad_cliente{ char nome[10]; int idade; char CPF_CNPJ[20]; char CNH[30]; char Endereco[50]; printf("Informe o nome do cliente: "); gets(info.nome); printf("Informe a idade do cliente: "); scanf("%d", &info.idade); printf("Informe o CPF/CNPJ do cliente: "); fflush(stdin); gets(info.CPF_CNPJ); printf("Informe o número do CNH do cliente: "); gets(info.CNH); printf("Informe o endereço do cliente: "); gets(info.Endereco); system("pause"); return 0; int main(void){ struct cad_cliente info; printf("-----------------------------------------\n"); printf("\tCONTROLE DE ESTACIONAMENTO\n"); printf("-----------------------------------------\n\n"); printf("1- Cadastrar Cliente\n"); printf("\n2- Cadastrar Veiculo\n"); printf("\n3- Listar veiculos cadastrados\n"); printf("\n4- Creditos\n"); printf("\n5- Sair\n"); printf("\n Opcao: \n"); int opcao; scanf("%d", &opcao); switch(opcao) { case 1: { system("cls"); printf("Cadastrar Cliente\n"); break; } case 2: { system("cls"); printf("Cadastrar Veiculos\n"); break; } case 3: { system("cls"); printf("\n3- Listar veiculos cadastrados\n"); break; } case 4: { system("cls"); printf("-------------------------------------------\n\n"); printf("Programa desenvolvido pela equipe:\n\n\n"); printf("Álax Ataíde\nGabriel Menino\nPedro Vinícius\nProfessor: André Felix Freitas"); break; } case 5: break; default: { system("cls"); printf("Opcao invalida!\nEnter para voltar ao menu"); getch(); system("cls"); } } }while(opcao!=5); getchar(); };
  2. @herbertbahia tava tentando dessa forma mas ainda da erro, é como se eu tivesse colocando em local errado
  3. @herbertbahia ok, to fazendo com switch case, mas preciso tirar uma dúvida. Qual código que tem que colocar pra aparecer aquela mensagem de "Informe o nome do cliente" somente quando eu digitar a opção 1?
  4. @herbertbahia Como faço pra ele voltar para o inicio? tipo, ele fez o cadastro com esses dados que coloquei eai quero que quando apertar o enter ele vá para a 2 opção ou pro inicio mesmo
  5. @herbertbahia Desculpe lhe incomodar mais uma vez, mas ta ficando um do lado do outro o que eu faço em casos como esse?
  6. @herbertbahia nossa, muito obrigado me ajudou DEMAAAAISS!! mas poderia me tirar uma dúvida? porque você colocou esses info e porque mudou o struct pra cima?
  7. @herbertbahia eu tentei compilar em C no codeblocks e deu aqueles erros, só quando compilei em c++ que deu certo. Mas preciso fazer ele em C e com esses comandos não dá certo compilando em C -;
  8. @herbertbahia ué, já desinstalei e instalei de novo pra ver se dava certo e ainda continua dando erro, acho que você fez em c++ mas esse projeto tem que ser feito somente em C ;/ adicionado 3 minutos depois @herbertbahia ahh entendi o problema, é porque você fez em C++ mas esse meu projeto só posso fazer ele em C, teria como me mostrar como se faz em C? por favor preciso muito e estou com dificuldade
  9. Olá gostaria de fazer um programa em C, queria fazer um controle de estacionamento da seguinte maneira: #include <stdio.h> #include <stdlib.h> #include <conio.h> int main(void) { printf("-----------------------------------------\n"); printf("\tCONTROLE DE ESTACIONAMENTO\n"); printf("-----------------------------------------\n\n"); printf("1- Cadastrar Cliente\n"); printf("\n2- Cadastrar Veiculo\n"); printf("\n3- Listar veiculos cadastrados\n"); printf("\n4- Creditos\n"); printf("\n5- Sair\n"); //dados cadastrais do cliente struct cad_cliente{ char nome[10]; char idade[20]; char CPF/CNPJ[20]; char CNH[30]; char Endereco[5]; printf("Informe o nome do cliente: "); scanf("%c", &nome_cliente); printf("Informe a idade do cliente: "); scanf("%c", &idade_cliente); printf("Informe o CPF/CNPJ do cliente: "); scanf("%c", &CPF); printf("Informe o número do CNH do cliente: "); scanf("%c", &CNH); printf("Informe o endereço do cliente: "); scanf("%c", &Endereco); system("pause"); return 0; }; fiz com essas informações mas não ta imprimindo as opções, como eu poderia fazer isso? Alguém me ajuda?

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!