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:
Pergunta
rlcdo
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 já 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.