Ir ao conteúdo
  • Cadastre-se

Bruna Bueno Ferreira

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

1
  1. Boa noite, estou com problema na hora de interpretar o exercício, comecei a ver pilha a pouco tempo estou meio perdida, alguém poderia me ajudar? exercício 1 . Dado um inteiro n, definir i como o n-ésimo elemento a partir do topo da pilha, deixando a pilha sem seus n elementos superiores. exercício 2 . Dado um inteiro n, definir i como o n-ésimo elemento a partir do topo da pilha, deixando a pilha inalterada.
  2. Boa noite, estou com problema na hora de interpretar o exercício, comecei a ver pilha a pouco tempo estou meio perdida, alguém poderia me ajudar? exercício 1 . Dado um inteiro n, definir i como o n-ésimo elemento a partir do topo da pilha, deixando a pilha sem seus n elementos superiores. exercício 2 . Dado um inteiro n, definir i como o n-ésimo elemento a partir do topo da pilha, deixando a pilha inalterada.
  3. Alguém poderia me ajudar com esse código?? Toda vez que eu erro a placa ele aparece 4 vezes para colocar o modelo, cor e marca. Estou em desespero é para entregar amanha e não consigo consertar o erro. #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[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) { carro[i].placa==0; carro[i].modelo==0; carro[i].marca==0; carro[i].cor==0; carro[i].entrada.hora==0; carro[i].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[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); } 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[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"); inserir(i); } } //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"); inserir(i); } } 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(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=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<10;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\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[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; inicializa(); //abre o arquivo para o fopen "w" não substituir o que já existe P=fopen("CARRO.txt", "r"); 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 \n3. Listar veiculos\n4. Creditos\n5. Sair\n\nOpcao: "); scanf("%d", &opcao); switch(opcao) { case 1: { system("cls"); cadastrar_veiculo(); break; } case 2: { system("cls"); saida_veiculo(); break; } case 3: { system("cls"); listar_veiculo(); break; } case 4: { system("cls"); printf("-------------------------------------------\n\n"); printf("Programa desenvolvido pela: "); break; } case 5: break; default: { system("cls"); printf("Opcao invalida!\nEnter para voltar ao menu"); getch(); system("cls"); } } }while(opcao!=5); getchar(); }

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!