Buscar

poderiam me ajudar na prova discursiva de estrutura de dados em C++

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
 

💡 2 Respostas

User badge image

Matheus Vinicius

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!!!");

                };

Leia mais em Brainly.com.br - https://brainly.com.br/tarefa/21259190#readmore

3
Dislike3
User badge image

Eliaby Alves de Souza

alguem responde por favor...

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais