Informática, perguntado por eliabyalves, 1 ano atrás

Questão A:



A época das férias é cheia de viagens para muitos de nós. Pegamos o carro ou o ônibus e aproveitamos fazer passeios e conhecer novas cidades.

Aproveitando este tema, vamos fazer um programa para gerenciar um pouco das nossas viagens.



Vamos representar duas estruturas de dados:

· um trecho de estrada, que deve guardar dados entre 2 cidades próximas

· uma rota, que vai computar os dados da viagem inteira



O que deve ser realizado na questão:

A) Faça uma STRUCT para representar um TRECHO de estrada, contendo:

· nome da cidade de origem

· nome da cidade de destino

· número de pedágios naquele trecho

· preço total dos pedágios naquele trecho

· distância em quilômetros entre as 2 cidades

B) Faça uma STRUCT para representar uma ROTA. Uma rota deve informar as cidades de origem e destino e ter um vetor que comporte até 10 trechos de estrada.

Então crie 2 vetores, um para os trechos e outro para as rotas.

C) Faça 2 rotinas, uma para cadastrar um trecho de estrada pelo teclado, outra para mostrar seus dados na tela.

D) Faça mais 2 rotinas, uma para cadastrar uma rota pelo teclado, outra para mostrar seus dados na tela. Você deve informar quais trechos de estrada compõem a rota, na ordem correta, partindo da cidade de origem, até chegar no destino.



Se você cadastrar errado as rotas, elas não vão fazer sentido algum.

Aqui seria interessante salientar que você deve testar seu programa com dados reais da sua região. É possível inserir trechos com 0 pedágios e valor zero.

Isto vai tornar o teste do programa pelo professor mais interessante também.



E) No main, faça as seguintes opções num menu:

· Cadastrar um novo trecho (chamar a rotina que lê um trecho)

· Cadastrar uma nova rota

· Mostrar todos os trechos cadastrados

· Mostrar todas as rotas cadastradas

· Calcular os valores totais das rotas (F)

· Mostrar todos os trechos que envolvem uma cidade (G)

· Mostre a rota mais longa cadastrada (H)



F) Faça uma rotina que calcule os valores totais de uma rota, ou seja:

· o número total de pedágios de seus trechos

· o valor total de pedágio de seus trechos

· a distancia total em quilômetros, da cidade de origem até a de destino

G) Faça uma rotina que mostre todos os trechos iniciados ou terminados em uma cidade X, passada por parâmetro para a função. Aproveite também para conta-los.

H) Faça uma rotina que mostre a rota mais longa cadastrada no vetor de rotas.

I) Ainda no main, faça a inserção, de forma fixa, sem usar as rotinas de leitura, de dados da região onde você mora, ou de outra região que você conhece, para que o teste do programa seja mais interessante.

Você deve deixar cadastrado, para que o professor possa testar seu programa, no mínimo:

· 10 trechos de estrada

· 3 rotas

Soluções para a tarefa

Respondido por joaovitordiii
5

Resposta:

Explicação:

struct st_rota{

struct st_trecho trechos[10];

char origem[50];

char destino[50];

}ROTA[10];

int escolha = 0;

char conf;

char cidade[50];

void Entrada();

void CadastroRotas(){

system("cls || clear");

printf("=================================  Cadastro de Rotas =================================\n\n\n\n");

int i, qtd = 0, escolhacad = 0, escolhacad2 = 0;

printf("\t\t1 - Cadastrar nova Rota (Apaga todos os cadastrados anteriorente, se houver)");

printf("\n\t\t2 - Modificar Rota existente");

printf("\n\t\t3 - Voltar");

printf("\n-----------------------------------------------------------------\n\n\n\tEscolha...  ");

scanf("%d", &escolhacad);

switch(escolhacad){

       case 1:

           printf("\t\tQuantas rotas deseja cadastrar? (max 10): ");

           scanf("%d", &qtd);

           system("cls || clear");

           printf("=================================  Cadastro de Rotas =================================\n\n\n\n");

           if(qtd > 10 || qtd < 1){

               printf("\t\tImpossivel cadastrar essa quantidade de rotas.\n");

           }else {

               for(i = 0; i < qtd; i++){

                   fflush(stdin);

                   system("cls || clear");

                   printf("=================================  Cadastro de Rotas =================================\n\n\n\n");

                   printf("\t\t=====================  Rota %d =====================\n\n", (i+1));

                   printf("\n\t\tDigite o nome da cidade de origem: ");

                   scanf("%[^\n]s", cidade);

                   strcpy(ROTA[i].origem, strupr(cidade));

                   fflush(stdin);

                   printf("\n\t\tDigite a cidade de destino: ");

                   scanf("%[^\n]s", cidade);

                   strcpy(ROTA[i].destino,strupr(cidade));

               }

               if(i >= qtd){

                   system("cls || clear");

                   printf("=================================  Cadastro de Rotas =================================\n\n\n\n");

                   printf("\t\tRotas cadastradas com sucesso!!!");

               };

                       


eliabyAlvesdesouza: Eu coloquei essa resposta e disse que está faltando A) Struct trecho: faltou esta struct -3
B) +2 Struct rota: OK
D) +3 cadastro de rota precisa passar a rota cadastrada para o vetor global

O resto está faltando ainda.

F,G e H tem que ser feitos no vetor de rotas. Você percorre todas as rotas e encontra a mais longa, por exemplo.
Não foram inseridos dados para teste no main.
Perguntas interessantes