Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- typedef struct{
- int pontoAtual;
- int pontosPodeIr[3];
- int distanciaEntrePontos[3]; // em quilometros
- }Ponto;
- int main(){
- int pontoLocalizacaoAtual = -1;
- int pontoAlvo = -1;
- float valorPagoPorKm = 0.5;
- float velocidadeDeSeguranca = 40;
- float valorMinimoPorCorrida = 4;
- do{
- printf("Escolha o ponto onde o carro devera passar:\n");
- printf("Digite um dos numeros abaixo para indicar o ponto onde você está! \n");
- printf("#0 - Sai do aplicativo.\n");
- printf("#1 - Praça do Mato Alto \n");
- printf("#2 - Av. das 12 Pistas \n");
- printf("#3 - Av. Praça das Galinhas \n");
- printf("#4 - Center Shopping \n");
- scanf("%d",&pontoLocalizacaoAtual);
- if(pontoLocalizacaoAtual>0){
- for(int j=1;j<=4;j++){
- if(j==pontoLocalizacaoAtual){
- char strLocalAtual[80];
- if(j==1){
- strcpy(strLocalAtual,"Praça do Mato Alto");
- }else if(j==2){
- strcpy(strLocalAtual,"Av. das 12 Pistas");
- }else if(j==3){
- strcpy(strLocalAtual,"Av. Praças das Galinhas");
- }else if(j==4){
- strcpy(strLocalAtual,"Center Shopping");
- }
- printf("Você está no(a) %s. \nPara onde você quer ir?!\n",strLocalAtual);
- printf("Escolha uma das opções abaixo: \n");
- Ponto p;
- switch(j){
- case 1:
- p.pontosPodeIr[0] = 2;
- p.pontosPodeIr[1] = 3;
- p.pontosPodeIr[2] = 4;
- p.distanciaEntrePontos[0] = 5;
- p.distanciaEntrePontos[1] = 10;
- p.distanciaEntrePontos[2] = 15;
- printf("#2 - Av. das 12 Pistas \n");
- printf("#3 - Av. Praça das Galinhas \n");
- printf("#4 - Center Shopping \n");
- break;
- case 2:
- p.pontosPodeIr[0] = 1;
- p.pontosPodeIr[1] = 3;
- p.pontosPodeIr[2] = 4;
- p.distanciaEntrePontos[0] = 5;
- p.distanciaEntrePontos[1] = 11;
- p.distanciaEntrePontos[2] = 7;
- printf("#1 - Praça do Mato Alto \n");
- printf("#3 - Av. Praça das Galinhas \n");
- printf("#4 - Center Shopping \n");
- break;
- case 3:
- p.pontosPodeIr[0] = 1;
- p.pontosPodeIr[1] = 2;
- p.pontosPodeIr[2] = 4;
- p.distanciaEntrePontos[0] = 10;
- p.distanciaEntrePontos[1] = 11;
- p.distanciaEntrePontos[2] = 4;
- printf("#1 - Praça do Mato Alto \n");
- printf("#2 - Av. das 12 Pistas \n");
- printf("#4 - Center Shopping \n");
- break;
- case 4:
- p.pontosPodeIr[0] = 1;
- p.pontosPodeIr[1] = 2;
- p.pontosPodeIr[2] = 3;
- p.distanciaEntrePontos[0] = 15;
- p.distanciaEntrePontos[1] = 7;
- p.distanciaEntrePontos[2] = 4;
- printf("#1 - Praça do Mato Alto \n");
- printf("#2 - Av. das 12 Pistas \n");
- printf("#3 - Av. Praça das Galinhas \n");
- break;
- default:
- pontoLocalizacaoAtual=-1;
- break;
- }
- if(pontoLocalizacaoAtual>0){
- do{
- scanf("%d",&pontoAlvo);
- for(int i=0;i<3;i++){
- if(p.pontosPodeIr[i]==pontoAlvo){
- int distanciaEntreLocalAtualeLocalAlvo = p.distanciaEntrePontos[i]; // quilometros
- /*
- formula para achar o tempo de viagem:
- Velocidade Media = Distancia / Tempo.
- 40 = distanciaEntreLocalAtualeLocalAlvo / tempoDeViagem.
- tempoDeViagem = distanciaEntreLocalAtualeLocalAlvo / 40.
- tempoDeViagem sera dado em HORAS.
- */
- float tempoDeViagem = distanciaEntreLocalAtualeLocalAlvo / velocidadeDeSeguranca;
- float minutosDeViagem = tempoDeViagem*60;
- float valorProjetadoParaCorrida = (distanciaEntreLocalAtualeLocalAlvo*valorPagoPorKm*tempoDeViagem)+valorMinimoPorCorrida;
- char local[80];
- if(pontoAlvo==1){
- strcpy(local,"Praça do Mato Alto");
- }else if(pontoAlvo==2){
- strcpy(local,"Av. das 12 Pistas");
- }else if(pontoAlvo==3){
- strcpy(local,"Av. Praça das Galinhas");
- }else if(pontoAlvo==4){
- strcpy(local,"Center Shopping");
- }
- char msgLocal[150] = "Você está indo para %s \n";
- char tempoDuracaoViagem[255] = "Sua viagem vai levar aproximadamente %.2f minutos\n";
- char valorAproximadoDaViagem[255] = "O valor aproximado para sua corrida e de R$ %.2f\n";
- printf(msgLocal,local);
- printf(tempoDuracaoViagem,minutosDeViagem);
- printf(valorAproximadoDaViagem,valorProjetadoParaCorrida);
- }
- }
- }while(pontoAlvo<1);
- }
- }
- }
- }else if(pontoLocalizacaoAtual==0){
- printf("Fechando o app... \n Agradecemos sua preferencia!\n");
- }
- }while(pontoLocalizacaoAtual<0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement