Ir ao conteúdo
  • Cadastre-se

lucas.suanderhus

Membro Pleno
  • Posts

    36
  • Cadastrado em

  • Última visita

Reputação

21
  1. Fala pessoal, peço um help aqui, preciso fazer uma função que cuida da venda de passagens aereas, ela faz parte de todo um sistema maior, e ela funciona da seguinte maneira, so deve exibir voos que estejam com poltronas vagas, em seguida apos escolher o voo o cliente seleciona a poltrona e ai minha dificuldade o calculo do preço da passagem, nosso porofessor determinou que deve seguir o seguinte algoritmo: Custo trecho = Distancia entre aeroportos * milhas * fator viagens por periodo * fator viagens em dias uteis, feriados e finais de semana * fator retorno * procura pelo voo. eu tentei o seguinte codigo, nosso professor deu uma tabela com os valores base, o problema e que a função não deve pedir para o usuario entrar com estes valores eles devem ser recuperados de forma automatica pela função, o que eu não faço ideia de como fazer para criar a tabela de preços base e fazero calculo, aceito toda a juda possivel #ifndef __VENDAS_H_ #include <stdio.h> #include <stdlib.h> #include <string.h> float dist, milha, fatorPer, fatorDuffs, fatorRet, fatorProc; typedef struct rotas{ int codigo_rota; char nome_rota[40]; int hora; int minutos; int poltronas; float milhas; int *lugar; }rota; void cadastroRotasLeitura(int base,int limite){ //Função responsavel por realizar leituras das rotas int x; for(i=base;i<limite;i++){ __fpurge(stdin); printf("Digite o nome do da rota: "); scanf("%[^\n]",rota[i].nome_rota); printf("Digite o codigo da rota: "); scanf("%d",&rota[i].codigo_rota); printf("Digite o tempo estimado\n"); printf("Horas: "); scanf("%d",&rota[i].hora); printf("Minutos: "); scanf("%d",&rota[i].minutos); printf("Digite a quantidade de poltronas disponiveis: "); scanf("%d",&rota[i].poltronas); x=rota[i].poltronas; lugar=(int*)malloc(x* sizeof(int)); for(int i=0;i<limite;i++){ rota[i].lugar[i]=i+1; } printf("Digite a quantidade de milhas: "); scanf("%f",&rota[i].milhas); } } void imprimir(rota vet[],int t){ for(int i=0;i<t;i++){ printf("Codigo: %d",vet[i].codigo_rota); printf("\nNome da rota: %d",vet[i].nome_rota); printf("\nHorario: %d:%d",vet[i].hora,vet[i].minutos); printf("\nNumero de poltronas: %d",vet[i].poltronas); printf("\nMilhas a ser percorridas: %d",vet[i].milhas); } } void imprimirlugares(rota, int limite){ for(int i=0;i<sizeof(rota[limite].lugar);i++){ printf("%d",rota[limite].lugar[i]); if(i % 3 == 0){ printf(" "); }else if(i % 2 == 0 && i % 3 == 0){ printf("\n"); } } } int pesquisaCliente(pessoa,int cpf, int limite){ for(int i=0;i<limite;i++){ if(cpf == pessoa[i].CPF) return 1; else return 0; } } void calcula(float dist, milha, fatorPer, fatorDuffs, fatorRet, fatorProc){ float calculaTrecho = 0.0; calculaTrecho = dits * milha * fatorPer * fatorDuffs * fatorRet * fatorProc; } void origemDestino(int base,int limite){ int cr=0; int lp=0; int fp=0; for(int i=0;i<limite;i++){ imprimir(rota, limite); } printf("Escolha a rota(use o codigo da rota)") scanf("%d",&cr); for(int i=0;i<limite;i++){ if(rota[i].codigo_rota == cr){ rota[i].poltronas--; imprimirlugares(rota, i); printf("Selecione um lugar: "); scanf("%d", &lp); if(lp==rota[i].lugar[lp-1]) rota[i].lugar[lp-1] = -1; else printf("Lugar indisponivel "); } } printf("Selecione a forme de pagamento"); printf("\n1-Dinheiro "); printf("\n2-Cartao de credito "); printf("\n3-Cartão de debito"); scanf("%d",&fp); if(fp==1){ if(pesquisaCliente == 1); calcula(); } if(fp==2){ calcula(); } }
  2. @KXSY Agradeço, mas tem que ser com vetor alocado dinamicamente, ja que o cadastro de voos, passageiros e funcionarios deve ser atualizado constantemente e gravado em arquivo,
  3. Fala pessoal preciso da ajuda de vocês, eu preciso criar uma ou mais funções que possiblitem a compra de passagem de uma companhia aerea, a cada venda a ser realizada, por rota e/ou trecho, deverá contabilizar o número de passageiros por horário (considera-se os horários disponíveis previamente informados), caso atinja o número máximo de poltronas por voo o horário deverá ficar indisponível e não deve ser apresentado como opção de voo em uma nova venda. Também a cada venda deve ser gravado (por exemplo, no arquivo vendas.dat) o assento escolhido do voo e coloca-lo como indisponível., eu ja realizeis as funções de cadastro necessarias, mas to com dificuldades nesta, ja que tenho que exibir apenas as rotas com poltronas vagas, eu tentei fazer o seguinte #ifndef __VENDAS_H_ #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct rotas{ int codigo_rota; char nome_rota[40]; int hora; int minutos; int poltronas; int lugar*; float milhas; }rota; void cadastroRotasLeitura(int base,int limite){ //Função responsavel por realizar leituras das rotas int x; for(i=base;i<limite;i++){ __fpurge(stdin); printf("Digite o nome do da rota: "); scanf("%[^\n]",rota[i].nome_rota); printf("Digite o codigo da rota: "); scanf("%d",&rota[i].codigo_rota); printf("Digite o tempo estimado\n"); printf("Horas: "); scanf("%d",&rota[i].hora); printf("Minutos: "); scanf("%d",&rota[i].minutos); printf("Digite a quantidade de poltronas disponiveis: "); scanf("%d",&rota[i].poltronas); x=rota[i].poltronas; lugar=(int*)malloc(x* sizeof(int)); printf("Digite a quantidade de milhas: "); scanf("%f",&rota[i].milhas); } } /////////////////////////////////////////////////////////////////////////////////////////////////////////// void cadastroVoo(){ //Função responsavel por cadastro dos voos do{ system("clear"); if(opcao_cadastro_voos==(-1)){ printf("Quantos voos deseja adicionar ? "); scanf("%d",&quantidade_voos); rota=malloc(quantidade_voos*sizeof(struct rotas)); cadastroRotasLeitura(0,quantidade_voos); }else{ printf("Quantos voos deseja adicionar ? "); scanf("%d",&quantidade_voos_adicao); aux=quantidade_voos; quantidade_voos=quantidade_voos+quantidade_voos_adicao; rota=realloc(rota,quantidade_voos*sizeof(struct rotas)); cadastroRotasLeitura(aux,quantidade_voos); } do{ printf("Deseja adicionar mais algum voo? \n[1] Sim [2] Não\nSelecione: "); scanf("%d",&opcao_cadastro_voos); }while(opcao_cadastro_voos!=1&&opcao_cadastro_voos!=2); }while(opcao_cadastro_voos!=2); void imprimir(rota vet[],int t){ for(int i=0;i<t;i++){ printf("Codigo: %d",vet[i].codigo_rota); printf("\nNome da rota: %d",vet[i].nome_rota); printf("\nHorario: %d:%d",vet[i].hora,vet[i].minutos); printf("\nNumero de poltronas: %d",vet[i].poltronas); printf("\nMilhas a ser percorridas: %d",vet[i].milhas); } } void origemDestino(int base,int limite){ int op,cr; do{ printf("===== Menu de Vendas ====="); printf("\n1-Exibir rotas disponiveis "); printf("\n2-Selecionar rotas "); printf("\n3-Sair"); scanf("%d",&op); switch(op){ case 1: for(int i=0;i<limite;i++){ if(rota[i].poltronas != 0) imprimir(int base, int limite) } } } case 2: printf("Selecione a rota que deseja(use o codigo da rota): "); scanf("%d",&cr); } } }
  4. @KXSY Saquei, mas o que seria esse CRUD, lista encadeada tambem so no semestre que vem em estruturas de dados 1 adicionado 23 minutos depois No momento to mais perdido e na função de vendas. adicionado 32 minutos depois Na etapa 2, a cada venda a ser realizada, por rota e/ou trecho, deverá contabilizar o número de passageiros por horário (considera-se os horários disponíveis previamente informados), caso atinja o número máximo de poltronas por voo o horário deverá ficar indisponível e não deve ser apresentado como opção de voo em uma nova venda. Também a cada venda deve ser gravado (por exemplo, no arquivo vendas.dat) o assento escolhido do voo e coloca-lo como indisponível.
  5. @KXSY Na verdade o professor mandou usar a Haru Free PDF Library para fazer o PDF adicionado 6 minutos depois @KXSY Bom a unica coisa que nos foi passada sobre compilador e como compilar no linux, com aquele comando gcc arquivo.c -o arquivo. so o prof disse que não iria mais fundo que isso e outra disciplina, a de compiladores
  6. @KXSY Ja estamos para fazer a alocaçao dinamica do vetor de structs que sera usado adicionado 0 minutos depois @KXSY Bom tem que ser em C apenas isso, mas aqui to usando o gcc mesmo do codeblocks
  7. @KXSY O que e CRUD? eu não sei to em prog dois, e tenho que fazer todo um sistema que permite geenciar um sistema de companhia aerea, com registros de rotas, trechos, aeroportos, cadastro de clientes fidelizados e consulta, tenho que implementar a alocação das poltronas e criar o sistema de vendas permitinfo pagar em dinheiro, cartão credito e debito, calcular o preço das passagens e ainda imprimir o e-ticket em pdf ainda, tenho que ainda fazer com que a inteface seja intuitiva e colorida
  8. @KXSY O vetor sera alocado dinamicamente posteriormente no arquivo proprio #include <stdio.h> #include <stdlib.h> #include "funcoes.h" //################################################################################################################################ int opcao; //################################################################################################################################ void menuConfiguracoes(){ /*Menu responsavel por listar possiveis configurações para o sistema*/ do{ system("clear"); printf("Selecione uma opção: \n[4] Cadastrar Aeroportos\n[5] Cadastrar voos/trechos\n[6] Cadastrar passageiros fidelizados\n[7] Pesquisar/Alterar passageiros fidelizados\n[8] Cadastrar funcionario\n[9] Pesquisar/Alterar funcionarios\n[10] Voltar\nSelecione: "); scanf("%d",&opcao); switch(opcao){ case 4: cadastroAeroporto(); break; case 5: cadastroVoo(); break; case 6: cadastroFidelidade(); break; case 7: pesquisarAlterarFidelidade(); break; case 8: //cadastroFuncionario(); break; case 9: //pesquisarAlterarFuncionario(); break; } }while(opcao!=10); } //################################################################################################################################ void menuVendas(){ /*Menu responsavel por executar inicio de venda*/ do{ system("clear"); printf("Selecione uma opção: \n[11] Selecionar origem e destino\n[12] Voltar\nSelecione: "); scanf("%d",&opcao); if(opcao==11){ //origemDestino(); } }while(opcao!=12); } //################################################################################################################################ int main(void){ /*Função responsavel por mostrar ao usuario o primeiro menu*/ do{ system("clear"); printf("Selecione uma opção: \n[1] Configurações\n[2] Vendas\n[3] Sair\nSelecione: "); scanf("%d",&opcao); switch(opcao){ case 1: menuConfiguracoes(); break; case 2: menuVendas(); break; } }while(opcao!=3); } adicionado 0 minutos depois Aqui na chamada a função acima vai ficar no arquivo "finções.h" se tiver alguma sugestão
  9. @KXSY Um amigo deu a seguinte sugestaõ void cadastroVoo(rota vet[], int t){ for(int i=0;i<t;i++){ printf("\nCodigo da rota: "); scanf("%d",&vet[i].codigo_rota); __fpurge(stdin); printf("\nNome da rota: "); scanf("%[^\n]s",&vet[i].nome_rota); printf("\nInforme a hora: "); scanf("%d",&vet[i].hora); printf("\nInforme os minutos: "); scanf("%d",&vet[i].minutos); printf("\nInforme o numero de poltronas: "); scanf("%d",&vet[i].poltronas); printf("\nInforme as milhas: "); scanf("%f",&vet[i].milhas); } printf("\nDeseja cadastrar mais um voo ?(S/N)"); scanf("%c",&c); if(c=='S') cadastroVoo(vet[],t+1); }
  10. @KXSY Eu consegui, muito obrigado, agora so preciso addicionar a opção de cadastrar mais voos, o que sinceramente não sei como fazer nessa função ja que ela e void
  11. fala pessoal to com um probleminha aqui, tenho que criar um sistema de gerenciamento de voos, fiquei responsavel pela parte do cadastro mas to tendo problema aqui com o buffer, ele le o nome da rota e pula o resto, temos que deixar as funções num arquivo de cabeçalho e chamar na main, aqui esta o codigo que fiz, alguem pode me dar um ajuda #ifndef __VOO_H_ #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct voo{ int codigo_rota; char nome_rota[40]; int hora; int minutos; int poltronas; float milhas; }voos; void preenche(voos vet[], int t){ for(int i=0;i<t;i++){ printf("\nCodigo da rota: "); scanf("%d",&vet[i].codigo_rota); fflush(stdin); printf("\nNome da rota: "); scanf("[^\n]",&vet[i].nome_rota); printf("\nInforme a hora: "); scanf("%d",&vet[i].hora); printf("\nInforme os minutos: "); scanf("%d",&vet[i].minutos); printf("\nInforme o numero de poltronas: "); scanf("%d",&vet[i].poltronas); printf("\nInforme as milhas: "); scanf("%f",&vet[i].milhas); } } #endif
  12. @Herbertbahia to usando a string.h para ter acesso as funções dessa biblioteca como strcmp, strcpy. E gets e uma função perigosa não deve ser usada
  13. Fala galera to com um probleminha aqui, tenho esse trabalho que e fazer um programinha em C que lê uma lista de 20 produtos e seus preços e armazena num vetor de struct, depois devo ordenar o vetor em ordem alfabética e ai meu problema inflacionar o preço dos produtos que custem menos de R$:100,00, eu fiz todo o progrma so falta isso na void atualiza, o prof deu a estrutura da main mas funçoes nos que fizemos, alguem me da um help nessa #include<stdio.h> #include<stdlib.h> #include<string.h> #define TAM 5 typedef struct { char nome[80]; float preco; } PROD; void leitura_Produtos(PROD vet[]){ int i; for (i=0;i<TAM;i++){ printf("\n Digite o NOME do produto da posicao %d: ",i+1); fflush(stdin); scanf("%[^\n]",&vet[i].nome); printf("\n Digite o PRECO do produto da posicao %d: ",i+1); scanf("%f",&vet[i].preco); } } void imprime(PROD vet[]){ int i; for (i=0;i<TAM;i++){ printf("\n O nome do produto na posicao %d eh: %s",i+1,vet[i].nome); printf("\n O preco do produto na posicao %d eh: %.2f",i+1,vet[i].preco); } } void ordena_por_Nome(PROD vet[]){ int i,j; char aux[80]; float valor; for(i=0;i<TAM;i++) for(j=i+1;j<TAM;j++) if (strcmp(vet[i].nome,vet[j].nome)>=1){ strcpy(aux,vet[i].nome); strcpy(vet[i].nome,vet[j].nome); strcpy(vet[j].nome,aux); valor = vet[i].preco; vet[i].preco = vet[j].preco; vet[j].preco = valor; } } void atualiza (PROD vet[]){ } int main(void){ PROD itens[TAM]; leitura_Produtos(itens); printf("\n Os produtos lidos sao: \n"); imprime(itens); ordena_por_Nome(itens); printf("\n\n Os produtos lidos e ordenados sao: \n"); imprime(itens); }
  14. @devair1010 Nossa, obrigado, ficou otimo mesmo mas refiz aqui de outro modo, não conheço essa biblioteca windows.h ela serve para o que? e estes text_color?
  15. Fala galera to vindo aqui pedir um help de novo, to com uma atividade aqui que ta me dando dor de cabeça, tenho que fazer um progrma em C que imprime uma string e ela ao contrario, fiz o seguinte codigo mas na hora de imprimir o inverso ele buga completamente, misturando letras e uns simbolos malucos, queria saber o que fiz de errado e como consertar #include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ char palavra[20],reverso[20]; int i,j; scanf("%s",palavra); for(i=0,j=strlen(palavra)-1;i<j;i++,j--){ reverso[j]=palavra[i]; } printf("%s",palavra); printf("%s",reverso); return 0; }

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