Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda Com Trabalho Em C Usando Funções


rlcdo

Pergunta

Ae pessoal, eu sou novo nessa área de C e tenho que terminar um trabalho p/ faculdade... alguém pode me ajudar a terminar isso?

esse é o trabalho:

OBJETIVO DO TRABALHO:

Aplicar os conhecimentos, até o momento, adquiridos na disciplina Programação II no desenvolvimento de um software para tratar o problema de vendas de passagens dos vôos da companhia aérea Voe Tranqüilo, utilizando a linguagem de programação C.

PROBLEMA A SER RESOLVIDO:

A empresa controla os seus 15 vôos manipulando as seguintes informações: código do vôo, horário de embarque, cidade de origem, cidade de destino, nº total de assentos, preço da passagem e nº de assentos vendidos. Você fará o software usado no balcão de atendimento da empresa. Este será usado para a consulta aos dados referentes aos vôos disponíveis e venda de passagens.

Este programa ainda não será funcional, uma vez que vocês estão ainda começando a programar e conhecem um número restrito de recursos de programação. Neste sentido usaremos apenas os recursos com os quais vocês já têm familiaridade.

Assim, os dados dos 10 vôos mantidos pela companhia são armazenados em 5 vetores, como abaixo:

Código do vôo Horário de Embarque Cidade de Origem Cidade de Destino Nº total de assentos Preço da passagem Nº assentos vendidos

Desenvolva um programa que controle as seguintes operações para a companhia aérea. O programa deve realizar no mínimo as seguintes operações:

1. Cadastrar (sem repetição de código) os diversos vôos (suponha a princípio que existam no máximo 15 vôos).

· Os 7 vetores funcionarão como a base de dados do seu programa. Assim a primeira tarefa do programa será preenchê-los.

· Ao preencher os vetores atende para:

o Os 7 vetores serão totalmente preenchidos ao iniciar o programa.

o O número do vôo não deve se repetir no vetor referente a este dado.

o O horário de embarque deve ser um float, com a parte inteira indicando a hora e as duas casas decimais indicando os minutos do embarque.

o O número total de assentos deve ser um inteiro maior que zero.

o O preço da passagem deve ser um float maior que zero.

o O número de assentos vendidos deve ser um inteiro inicialmente igual a zero.

o As cidades de origem e destino devem ser valores inteiros no intervalo [1,9], conforme tabela abaixo:

Código Cidade

1 Vitória

2 São Paulo

3 Rio de Janeiro

4 Belo Horizonte

5 Salvador

6 Brasília

7 Florianópolis

8 Curitiba

9 Porto Alegre

2. Atualizar os dados de um vôo, localizando-o através de seu código. A localização deve ser feita usando o método de Pesquisa Seqüencial. A menos do código do vôo, todos os demais dados podem ser alterados, observando contudo as mesmas consistências feitas durante o preenchimento inicial.

3. Ler os códigos das cidades de origem e destino e imprimir quais os códigos de vôos disponíveis com suas respectivas ofertas de assentos (capacidade – assentos vendidos).

4. Imprimir os dados, ordenados por código, de todos os vôos disponíveis. O método da Bolha deve ser usado para realizar a ordenação. O formato do relatório é mostrado no exemplo abaixo, observe que este traz os nomes das cidades, não os códigos.

Código Origem Destino Embarque Valor Total assentos disponíveis

1002 Vitória Salvador 8h30 R$ 250,00 10

2001 Vitória Brasília 10h20 R$ 350,00 0

4005 Salvador Curitiba 11h00 R$ 520,00 20

Para impressão do horário de embarque no formato acima segue, como sugestão, o seguinte código:

float x=1.45;

int h = (int) x;

int m = x*100-100;

printf("%dh%d\n", h, m);

5. Imprimir os dados, ordenados por código, de todos os vôos disponíveis para uma cidade de origem específica. O método da Bolha deve ser usado para realizar a ordenação. O formato do relatório é mostrado no exemplo abaixo:

Código Destino Embarque Valor Total assentos disponíveis

1002 Salvador 8h30 R$ 250,00 10

2001 Brasília 10h20 R$ 350,00 0

6. Imprimir os dados, ordenados por código, de todos os vôos disponíveis para uma cidade de destino específica. O método da Bolha deve ser usado para realizar a ordenação. O formato do relatório é mostrado no exemplo abaixo:

Código Origem Embarque Valor Total assentos disponíveis

4005 Salvador 11h00 R$ 520,00 20

7. Realizar uma venda, localizando o vôo através do código. A localização deve ser feita usando o método de Pesquisa Seqüencial.

Durante uma tentativa de compra o passageiro informa o número do vôo desejado. Para cada tentativa de atendimento ao passageiro verifique se há disponibilidade no vôo solicitado. Em caso negativo, imprima “VÔO LOTADO”. Em caso afirmativo, leia o número de identidade do passageiro, atualize o número de assentos vendidos e imprima um protocolo de embarque contendo:

· O número de identidade do passageiro.

· O número do vôo desejado.

· O preço da passagem.

· As cidades de origem e destino.

· O horário de embarque.

FORMA E REGRAS PARA APRESENTAÇÃO DO TRABALHO:

· O programa devidamente comentado e identado

qualquer dúvida o trabalho está na íntegra no site https://docentes.uvv.br/arquivosBlog/Elizab...D6A3A244666.doc

e esse é o meu programa:

# include <stdio.h>

# include <stdlib.h>

# define N 3

int Pesquisa (int cod, int numero) //numero é um vetor de inteiros

{

int Achou = 0;

i = 0; //variavel global - para saber em qual posição do vetor está o código procurado

do

{

if (cod = numero)

Achou = 1;

else

i++;

}

while((Achou == 0) || (i <= N));

if (Achou == 1)

return 1;

else

return 0;

}

void Ordena (int x, int voo[N], float hora[N], int origem[N], int destino[N], int lug_total[N], float preço[N], int lug_vendido[N])

{

int troca, tam, aux_voo, aux_origem, aux_destino, aux_lug_total, aux_lug_vendido;

float aux_hora, aux_preco;

troca = 1;

tam = x - 1;

while (troca = 1)

{

troca = 0;

for (i=0, i<=tam; x++)

{

if (voo > voo[i+1])

{

aux_voo = voo;

voo = voo[i+1];

voo[i+1] = aux_voo;

aux_hora = hora;

hora = hora[i+1];

hora[i+1] = aux_hora;

aux_origem = origem;

origem = origem[i+1];

origem[i+1] = aux_origem;

aux_destino = destino;

destino = destino[i+1];

destino[i+1] = aux_destino;

aux_lug_total = lug_total;

lug_total = lug_total[i+1];

lug_total[i+1] = aux_lug_total;

aux_preco = preço;

preço = preço[i+1];

preço[i+1] = aux_preco;

aux_lug_vendido = lug_vendido;

lug_vendido = lug_vendido[i+1];

lug_vendido[i+1] = aux_lug_vendido;

troca = 1;

}

}

tam--;

}

}

void Cadastro (int x, float hora[N], char origem[N], char destino[N], int lug_total[N], float preço[N], int lug_vendido[N])

{

// y variável de pesquisa

int achou = cont_voo = op = 0;

// É necessário a criação da variável x como sendo uma variável estática

x = -1; // para poder incremendar 1 ao seu valor logo quando entra na rotina de cadastro

// rotina de preencimento inicial dos vetores

do

{

printf ("Informe o horario de embarque: ");

scanf ("\n %f", &hora[x]);

do

{

printf("Cidade de origem\n\n");

printf("1 - Vitoria\n");

printf("2 - são Paulo\n");

printf("3 - Rio de Janeiro\n");

printf("4 - Belo Horizonte\n");

printf("5 - Salvador\n");

printf("6 - Brasilia\n");

printf("7 - Florianopolis\n");

printf("8 - Curitiba\n");

printf("9 - Porto Alegre\n\n");

printf("Digite o numero da cidade de origem: ");

scanf("%d",&origem[x]);

}

while ((origem[x]<1) || (origem[x]>9));

do

{

printf("\n\nCidade de destino\n\n");

printf("1 - Vitoria\n");

printf("2 - são Paulo\n");

printf("3 - Rio de Janeiro\n");

printf("4 - Belo Horizonte\n");

printf("5 - Salvador\n");

printf("6 - Brasilia\n");

printf("7 - Florianopolis\n");

printf("8 - Curitiba\n");

printf("9 - Porto Alegre\n\n");

printf("Digite o numero da cidade de destino: ");

scanf("%d",&destino[x]);

}

while ((destino[x]<1) || (destino[x]>9));

do

{

printf ("Numero total de lugares no aviao: ");

scanf ("\n %d", &lug_total[x]);

}

while (lug_total[x] < 0);

do

{

printf ("Informe o preço da passagem: R$ ");

scanf ("\n %f", &preço[x]);

}

while (preço[x] <= 0);

//acrescendo 1 ao numero de lugares vendidos

lug_vendido[x] = lug_vendido[x] + 1;

do

{

printf("Deseja continuar o cadastramento? (1 - Sim / 2 - não): ");

scanf("%d",&op);

}

while ((op != 1) && (op != 2));

}

while (op = 1);

//fim da rotina de preenchimento inicial dos vetores

}

main ()

{

int voo[N], origem[N], destino[N], lug_total[N], lug_vendido[N], i = 0, voo_aux, , x, y, z, w, k, achou, op, cont_voo, rg, i_maior, i_menor, nenhum_abaixo_med;

float preço[N];

int x = -1;

// y variável de pesquisa

achou = cont_voo = 0;

//cadastramento das passagens

do

{

printf ("\n\n\nOpcoes: \n");

printf ("1 -> Cadastrar. \n");

printf ("2 -> Alterar dados. \n");

printf ("3 -> Disponibilidade de voo. \n");

printf ("4 -> Pesquisa de voos. \n");

printf ("5 -> Listagem geral dos voos. \n");

printf ("6 -> Listagem dos voos para uma cidade de origem. \n");

printf ("7 -> Listagem dos voos para uma cidade de destino. \n");

printf ("8 -> Venda. \n");

printf ("9 -> Sair. \n\n");

printf ("Opcao: ");

scanf ("%d", &op);

switch (op)

{

//impressão do protocolo

case 1:

if (x > N) //verificando se chegou no limite de cadastramento do vetor

{

printf("\nLimite de cadastramento de voos.\n\n");

}

else

{

// do

// {

x++;

//cadastramento voo

do

{

printf ("\n\nDigite o n.o do %do voo: ", (x + 1));

scanf ("%d", &voo_aux);

if (Pesquisa(voo_aux, voo[x]) == 1)

{

printf ("Voo cadastrado!!! \n\n");

}

else

{

voo[x] = voo_aux;

achou = 0;

}

//fim consulta

}

while (achou == 1);

Cadastro(x, hora, origem, destino, lug_total, preço, lug_vendido); //a referência, aqui, tem que jogar o conteúdo desses vetores

}

break;

//alteração de dados

case 2:

do

{

printf ("\n\nDigite o n.o do %do voo: ");

scanf ("%d", &voo_aux);

if (Pesquisa(voo_aux, voo) == 0) //vetor dos voos

{

printf ("Voo não cadastrado!!! \n\n");

}

else

{

Cadastro(i, hora, origem, destino, lug_total, preço, lug_vendido); //a referência, aqui, tem que jogar o conteúdo desses vetores

achou = 0;

}

//fim consulta

}

while (achou == 1);

break;

//disponibilidade de voos

case 3:

int origem, destino, y = 0;

printf("Digite o numero da cidade de origem: ");

scanf("%d",&origem);

printf("Digite o numero da cidade de destino: ");

scanf("%d",&destino);

printf("Numero do voo /t Capacidade /t Assentos vendidos"); //PRA FAZER A TABULAÇÃO, É /t MESMO?!?!?

do

{

if ((origem == origem[y]) && (destino == destino[y]))

{

prinft("%d /t %d /t %d", voo[y], lug_total[y], lug_vendido[y]);

}

else

{

y++;

}

}

while (y <= N);

break;

//pesquisa de voos

case 4:

//sair

system ("PAUSE");

}

como vocês podem ver ainda faltam uns 4 cases e algumas funções, tem como alguém me ajudar a terminar isso? to precisando p/ hj até às 20h

vlw galera

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...