Ir ao conteúdo
  • Cadastre-se

lucas.suanderhus

Membro Pleno
  • Posts

    36
  • Cadastrado em

  • Última visita

Tudo que lucas.suanderhus postou

  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; }
  16. @KXSY Nossa, funcionou perfeitamente muito obrigado, agora se possivel voce poderia me explicar porque a limpeza de buffer não tava funcionando?
  17. Tirei os & não deu certo tambem, na verdade agora ele pulou o campo autor agora tambem lo le o titulo e pula os outros
  18. Entendi esta adicionado 39 minutos depois @KXSY Mas ainda não consegui fazer funcionar, tentei trocar o getchar pelo __fpurge(), mas tambem não deu certo, alguma dica, do porque não esta funcionando, to no codigo com fgets
  19. @KXSY O que seria numeros magicos? o prof ainda não nos deu constantes, ele deu funçao, psedocodigo,laço, voltou para floxograma,struct e vetor e voltou a pseudocodigo/portugol o proximo assunto e ponteiro adicionado 1 minuto depois @KXSY Mas voltando a questão por que ainda não esta funcionando troquei o scanf pelo fgets que me recomendaram, mas agora ele le so titulo e autor e pula o ano
  20. @KXSY GCC to no Ubuntu 18.04 adicionado 0 minutos depois @KXSY Ponteiro? eu ainda não tive ponteiros não sabia dessa adicionado 3 minutos depois Eu tentei alterar um pouco a logica usando o fgets no lugar do scanf e usando o getchar, mas ele ainda pula o ano #include <stdio.h> #include <stdlib.h> struct livro{ char titulo[35]; char autor[20]; int ano; }; struct livro livros[25]; void procura(char titulo[]){ for(int i=0;i<25;i++){ if(strcmp(livros[i].titulo,titulo)==0){ printf("%s",livros[i].titulo); printf("%s",livros[i].autor); printf("%d",livros[i].ano); }else{ printf("Livro não encontrado"); } } } int main(){ int op,i; char tit[35]; printf("\n===== Livraria ====="); printf("\n 1-Cadastrar livro "); printf("\n 2-procurar livro "); printf("\n 3-Sair \n"); scanf("%d",&op); switch(op){ case 1: for(i=0;i<25;i++){ printf("\nTitulo: "); fgets(livros[i].titulo,35,stdin); getchar(); printf("\nAutor: "); fgets(livros[i].autor,20,stdin); getchar(); printf("\nAno: "); scanf("%d",&livros[i].ano); if(i==25){ printf("Tamanho do vetor atingido"); } } break; case 2: printf("Qual o titulo do livro que deseja buscar: "); scanf("%s",&tit); procura(tit); break; case 3: exit(1); } }
  21. Fala galera to precisando de um help aqui, tenho que fazer um programa em C que leia dados de livros, e armazene num vetor de tamanho 25, o programa tambem deve exibir uma mensagem de tamanho maximo ao atingir o limite do vetor, deve tambem permitir ao usuario fazer uma busca por um livro utilizando o titulo do livro e caso encontrado exibir os dados do livro, livro que sera um struct como titulo tendo o maximo de 25 letras, autor no maximo 20 e o ano, deve-se tambem organizar um menu oferecendo as opções citadas, bem eu tentei fazer mas ele le o primeiro titulo e pula para o proximo titulo ignorando os campos de autor e ano, alguem pode me ajudar? #include <stdio.h> #include <stdlib.h> struct livro{ char titulo[35]; char autor[20]; int ano; }; struct livro livros[25]; void procura(char titulo[]){ for(int i=0;i<25;i++){ if(strcmp(livros[i].titulo,titulo)==0){ printf("%s",livros[i].titulo); printf("%s",livros[i].autor); printf("%d",livros[i].ano); }else{ printf("Livro não encontrado"); } } } int main(){ int op,i; char tit[35]; printf("\n===== Livraria ====="); printf("\n 1-Cadastrar livro "); printf("\n 2-procurar livro "); printf("\n 3-Sair \n"); scanf("%d",&op); switch(op){ case 1: for(i=0;i<25;i++){ printf("Titulo: "); scanf("%s",&livros[i].titulo); printf("Autor: "); scanf("%s",&livros[i].autor); printf("Ano: "); scanf("%d",&livros[i].ano); if(i==25){ printf("Tamanho do vetor atingido"); } } break; case 2: printf("Qual o titulo do livro que deseja buscar: "); scanf("%s",&tit); procura(tit); break; case 3: exit(1); } }
  22. @devair1010 Funcionou tambem, ficou bem mais simples eu consegui retrabalhar aqui em uma resposta adicionado 1 minuto depois #include <stdio.h> #include <stdlib.h> int main(){ int vet[10],vet2[9]; int val; printf("\nDigite os valores do vetor: "); for(int i=0;i<10;i++){ scanf("%d",&vet[i]); } printf("Digite o valor a ser pesquisado e exluido: "); scanf("%d",&val); for(int i=0,j=0;i<10;i++){ if(vet[i]!=val){ vet2[j]=vet[i]; j++; } } for(int i=0;i<9;i++){ printf("%d\n", vet2[i]); } return 0; } Ficou assim minha final
  23. To com um probleminha aqui, tenho que fazer uma rotina que le um vetor de 10 elementos em seguida le um valor busca esse valor no vetor e se encontra remove o mesmo e dimunui a o tamanho do vetor em uma unidade. eu tentei seguir a dica de um amigo e criar um vetor secundario para armazenar o vetor sem um elemento, mas não deu muito certo, como vocês vem no codigo abaixo, alguem pode me dar um help #include <stdio.h> #include <stdlib.h> int main(){ int vet[10],vet2[9]; int val; printf("\nDigite os valores do vetor: "); for(int i=0;i<10;i++){ scanf("%d",&vet[i]); } printf("Digite o valor a ser pesquisado e exluido: "); scanf("%d",&val); for(int i=0;i<10;i++){ if(val==vet[i]){ vet[i+1]; } else{ vet2[i]=vet[i]; } } for(int i=0;i<9;i++){ printf("%d\n", vet2[i]); } 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...

 

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!