AGRADECIMENTO...

Pessoal, Gostaria de pedir desculpas aqueles que deixam perguntas/comentários/elogios/críticas e ainda não foram respondidos.

Aproveito a oportunidade para informar a todos que devido a correria do dia a dia não conclui o curso de BSI, por isso meus conhecimentos são limitados rsrsrs...

Ainda não retirei o blog do ar porque tem ajudado a diversos estudantes, principalmente os iniciantes.

As vezes, quando o trabalho me permite, ainda arrisco tentar resolver algumas questões rs... mas para não deixar esse blog parar no tempo, o ESTUDANTE que quiser enviar a resolução de alguma questão (código próprio) para o meu e-mail, terei o prazer de posta-la neste blog e será mantido a autoria.

Desde já agradeço a todos pelas visitas e desejo bons estudos.

Thiago Campos
(srthiago@hotmail.com)

quinta-feira, 5 de julho de 2012

Lista de Exercício II - Questão 4: Uso de vetores

Escrever um programa que faça reservas de passagens aéreas de uma companhia aérea. Além da leitura dos número dos vôos e quantidade de lugares disponíveis, ler vários pedidos de reserva, constituídos do núero da carteira de identidade do cliente e do número do vôo desejado. Para cada cliente, verificar se há dispnibilidade no vôo desejado. Em caso afirmativo, imprimir o número da identidade do cliente, e o número do vôo, atualizando o número de lugares disponíveis. Caso contrário, avisar ao cliente da inexistência de lugares. Para indicar o fim da entrada dos vôos da companhia e o fim dos pedidos de reserva será utilizado um número negativo para a o número do vôo e para a carteira de identidade do cliente, respectivamente.

PS: Tomei a liberdade de incrementar o código Java. 

Código Java
//Autor: Thiago Campos
//Data: 05.07.2012

import java.util.Scanner;
/**
 *
 * @author Thiago
 */
public class Exercicio04 {
    //var global
    static Scanner leia = new Scanner(System.in);
    static String empAerea[] = new String[3]; //armazena o nome da companhia
    static String codVoo[] = new String[3]; //armazena o numero do voo
    static String RG[] = new String[4]; //guarda o RG do passageiro
    static int dispL[] = new int[3]; //armazena a qtd de lugares
    static boolean vaz[] = new boolean[3]; //indica se a posição está vazia
    static int k[] = new int[3]; //guarda o a qtd de lugares de cada voo
    static int i = 0, j = 0;; //variavel usada nos laços
   
    public static void main(String[] args) {
        //declaração de variáveis locais
        int menuV = 0; //menu do voo
        int menuP = 0; //menu principal
        int codV = 100; //codigo do voo para seleção
       
      
        //indicará que a posição está vazia
        for (i = 0; i < empAerea.length; i++) {
            vaz[i] = false;
        }
        //inicializar o vetor
        for (i = 0; i < empAerea.length; i++) {
            RG[i] = "";
        }
        do {
            if (j <=1) {
                System.out.println("PS:Para o primeiro acesso é necessario cadastrar a companhia aerea");
                j = j+1;
            }
            System.out.println("\nMenu Principal:"
                    + "\n1 - Menu Voo - Cadastro da Companhia Aerea"
                    + "\n2 - Reserva de Passagens"
                    + "\n3 - Ver disponibilidade de lugares"
                    + "\n4 - Cancelamento de Reserva"
                    + "\n5 - Fechar programa");
            menuP = leia.nextInt();

            switch (menuP) {
                case 1:
                    do {
                        if (j <= 1) {
                            System.out.println("\nPS:A opção 1 faz o cadastro automático de 3 companhias aereas");
                            j = j+1;
                        }
                        System.out.println("\nMenu Voo:"
                                + "\n1 - Cadastrar"
                                + "\n2 - Cancelar Voo"
                                + "\n3 - Ver Opções de Voo"
                                + "\n4 - Voltar ao Menu Principal");
                       
                        menuV = leia.nextInt();
                        switch (menuV) {
                            case 1:
                                //Cadastramento automatico
                                System.out.println("CADASTRAMENTO DE VOO");
                                CadastrarVoo(codVoo[0]); //função cadastrar
                                break;
                            case 2:
                                System.out.println("CANCELAMENTO DE VOO");
                                System.out.print("Informe o codigo do Voo: ");
                                codV = leia.nextInt();
                                CancelarVoo(codV); //função cancelar voo
                                codV = 100; //reinicializa o codigo do voo
                                break;
                            case 3:
                                System.out.println("DISPONIBILIDADE DE VOO");
                                OpcoesVoo(i); //função ver opções de voo
                                break;
                            case 4:
                                break;
                        } //fim do switch
                    } while (menuV != 4); //fim do laço de repetição
                    break;
                case 2:
                    System.out.print("RESERVA");
                    Reserva(codV); //função reserva de passagens
                    break;
                case 3:
                    System.out.print("VER RESERVA\n");
                    System.out.print("Informe o codigo do Voo:");
                    codV = leia.nextInt();
                    VerReserva(codV); //função ver reservas
                    break;
                case 4:
                    System.out.print("CANCELAR RESERVA\n");
                    System.out.print("Informe o codigo do Voo:");
                    codV = leia.nextInt();
                    CancelarRe(codV); //Função cancelar reserva
                    break;
                case 5:
                    System.out.println("FECHAR PROGRAMA");
                    break;
            } //fim do switch
        } while (menuP != 5);
    } //fim do main

/*-------------------------------------------------------------------------------------------
 *                                   CADASTRAR VOO
 * ------------------------------------------------------------------------------------------*/
    public static void CadastrarVoo(String a) {
        codVoo[0] = "001";
        empAerea[0] = "TAM";
        dispL[0] = 10;
        vaz[0] = true;
        k[0] = dispL[0];

        codVoo[1] = "002";
        empAerea[1] = "GOL";
        dispL[1] = 8;
        vaz[1] = true;
        k[1] = dispL[1];
       
        codVoo[2] = "003";
        empAerea[2] = "TAP";
        dispL[2] = 20;
        vaz[2] = true;
        k[2] = dispL[2];

        System.out.println("Cadastro realizado com sucesso!");
    } //fim da função cadastrar
/*-------------------------------------------------------------------------------------------
 *                                 CANCELAR DE VOO
 * ------------------------------------------------------------------------------------------*/
    public static void CancelarVoo(int codV) {
        if (codV > 0) {
            codVoo[codV - 1] = ""; //apaga o codigo do voo
            empAerea[codV - 1] = ""; //apaga o nome da empresa
            dispL[codV - 1] = 0; //apaga o numero de lugares
            vaz[codV - 1] = false; //indica que a posição está vazia
        } else {
            System.out.println("Código invalido!");
        }
        System.out.println("Operação realizada com sucesso!");
    } //fim da função cancelar voo
/*-------------------------------------------------------------------------------------------
 *                               VER OPÇÕES DE VOO
 * ------------------------------------------------------------------------------------------*/
    public static void OpcoesVoo(int i) {
        for (i = 0; i < empAerea.length; i++) {
            if (vaz[i]) {
                System.out.printf("\nCodigo do Voo: %s", codVoo[i]);
                System.out.printf("\nEmpresa aerea: %s", empAerea[i]);
                System.out.printf("\nNumero de lugares disponiveis: %d \n", dispL[i]);
            } //fim do if
        }
    } //fim da função opções de voo
/*-------------------------------------------------------------------------------------------
 *                           RESERVA DE PASSAGENS
 * ------------------------------------------------------------------------------------------*/
    public static void Reserva(int codV) {
       
        System.out.print("\nInforme o codigo do Voo:");
        codV = leia.nextInt();

   /*imprimir o número da identidade do cliente, e o número do vôo, atualizando
    *o número de lugares disponíveis**/
 
        if (dispL[codV - 1] > 0) {
            System.out.print("Informe o RG do passageiro:");
            RG[codV - 1] = leia.next();

            dispL[codV - 1] -= 1;
           
            System.out.printf("Reserva confirmada para %s no voo %s da Empresa %s\n\n",
                    RG[codV - 1], codVoo[codV - 1], empAerea[codV - 1]);
           
            RG[codV - 1]=""; //Zera este vetor
           
    //avisar ao cliente da inexistência de lugares.
        } else {
            System.out.println("--------------------------------------------------------------\n"
                    + "Não ha disponibilidade de vaga para este voo\n"
                    + "--------------------------------------------------------------");
        }
    } //fim da função reserva
/*-------------------------------------------------------------------------------------------
 *                          VER RESERVA DE PASSAGENS
 * ------------------------------------------------------------------------------------------*/
    public static void VerReserva(int codV) {
        if (dispL[codV - 1] > 0) {
            System.out.printf("%d lugar(es) disponivel(is) para o voo %s da Empresa %s\n",
                    dispL[codV - 1], codVoo[codV - 1], empAerea[codV - 1]);
        } else {
            System.out.println("--------------------------------------------------------------\n"
                    + "Não ha disponibilidade de vaga para este voo\n"
                    + "--------------------------------------------------------------");
        } //fim do else
    } //fim da função ver Reservas
/*-------------------------------------------------------------------------------------------
 *                      CANCELAR RESERVA DE PASSAGENS
 * ------------------------------------------------------------------------------------------*/
    public static void CancelarRe(int codV) {
        if (dispL[codV - 1] < k[codV - 1]) {
                RG[codV - 1] = leia.next();
           
                //atualiza a disponibilidade de lugares
                dispL[codV - 1] += 1;
           
        } else {
            System.out.println("Não ha reserva para este voo");
        }
        System.out.println("Operação realizada com sucesso!");
    } //fim da função cancelar reserva   
} //fim da classe

5 comentários:

  1. Estou tentando testar os códigos no NetBeans mas não consigo, da o erro:

    Exception in thread "main" java.lang.NullPointerException
    at novo.Novo.main(Novo.java:12)
    Java Result: 1

    Poderia ajudar? Sou iniciante em programação e java.

    ResponderExcluir
    Respostas
    1. Amigo não entendi o por que está dando isso, se não há essa função nesse código (novo.Novo.main(Novo.java:12)). Por favor, reveja esse erro.

      Excluir
  2. Thiago teria como você me ajudar por gentileza, preciso entregar um projeto em java orientado a objeto, mas sou novo na área e estou com dificuldade. A proposta do projeto é a seguinte (O sistema de venda de passagens de ônibus deverá levar em consideração uma tabela de tarifação com um determinado valor para as passagens. Entretanto, até duas passagens podem ter gratuidade de 100% (para idosos) para cada ônibus. Os Estudantes têm direito de comprar passagens com 50% de desconto.
    Ao concretizar a compra da passagem o sistema deverá emitir (mostrar na tela) um ticket com a data e a hora da partida do ônibus, o local de destino, o número do ônibus e o número da poltrona. Nenhum pas¬sageiro pode ter uma passagem com o mesmo número de poltrona de outro passageiro no mesmo ônibus.
    O sistema deverá informar quando não existir mais lugares disponíveis e, consequentemente, não per¬mitir mais a venda de passagens para o ônibus em questão.) Aguardo respostas obrigado

    ResponderExcluir
  3. 4 -Uma empresa aérea quer controlar os custos de seus voos. Ela possui três voos diários de números 1,2 e 3. Todos os aviões possuem 100 lugares e os voos possuem preços diferenciados de passagem:
    → voo 1 ........ passagem R$ 100,00
    → voo 2 ........ passagem R$ 150,00
    → voo 3 ........ passagem R$ 200,00
    Porém o preço das passagens pode cair de acordo com a lotação de cada voo :
    → voo com 70 passageiros ou mais ........ passagem com 60% de desconto
    → voo com 50 a 69 passageiros ............. passagem com 30% de desconto
    → voo com menos de 50 passageiros ..... passagem sem desconto
    Faça um algoritmo que receba via teclado as compras de passagens contendo cada uma o Nome do passageiro, o Número do voo e a Quantidade de passagens compradas. O algoritmo deverá calcular e imprimir o preço de cada passagem desta compra baseado na lotação do voo.
    Como resultados finais, o algoritmo deverá imprimir :
    a) o número do voo que arrecadou mais e o valor arrecadado
    b) a média da arrecadação dos 3 voos
    c) o valor da passagem mais barata e o número do voo correspondente
    obs. :

    → adotar um FLAG para encerrar a entrada de dados
    → consistir a digitação do número do voo de forma a aceitar somente os valores 1, 2 ou 3

    ResponderExcluir
  4. Boa tarde,preciso duma ajuda,eu quero criar um programa para registo de passageiro e o local de partida e o destino,nao sei como começar

    ResponderExcluir