Baixe o app para aproveitar ainda mais
Prévia do material em texto
Centro Federal de Educação Tecnológica Celso Suckow da Fonseca Campus Nova Iguaçu Prova Disciplina: Programação II – Engenharia de Produção – 2021.2 22/03/2022 Professor: Marcelo Arêas Aluno(a): ______________________________________________ Nota: ______ INSTRUÇÕES - A solução da prova deve ser enviada através da tarefa associada à prova na plataforma Team, durante o período configurado; - Não serão aceitos envios após o prazo estipulado; - Soluções idênticas atribuídas a nota ZERO; - Dúvidas no enunciado das questões só serão tiradas de forma síncrona após a leitura da prova na plataforma Teams. Não serão tiradas dúvidas através do chat do Teams, e-mails e/ou outras plataformas; - Todas as soluções devem ser entregues em formato digital .java ou .pdf (preferencialmente .java); - O código-fonte deve conter comentários explicando em detalhes a solução desenvolvida. Questão 1) (4,0 pontos) Imagine como deve funcionar um sistema de vendas de uma Cafeteria, que possui uma loja física e também realiza vendas por delivery (via aplicativo, por exemplo). Você foi contratado para construir o diagrama de classes para o sistema de vendas da Código com Café, a nova cafeteria da sua cidade! Seu diagrama de classes deve atender aos seguintes requisitos: • Os produtos à venda devem possuir como atributos: código de barras, nome, categoria, valor de custo, valor de venda; • Os clientes das vendas por delivery devem estar cadastrados. São informações essenciais: nome, CPF, endereço para entrega, celular, e-mail; • Toda venda deve conter a informação de todos os produtos que a compõe, a data da venda e o seu valor total; • As vendas realizadas por delivery devem conter a informação do cliente, mas as vendas físicas não precisam dessa informação; • Além de realizar venda, outras possíveis ações são: cadastrar novo produto, excluir produto, alterar preço de venda do produto, cadastrar cliente, editar dados do cliente, excluir cliente. Seu diagrama de classes pode conter mais coisas do que os requisitos listados acima, mas não menos. Seu diagrama também deve OBRIGATORIAMENTE conter os seguintes conceitos de orientação a objetos: composição, herança. Esta é uma questão em que você não irá escrever nenhum código. Você precisa desenhar (em papel e tirar foto, ou utilizando alguma ferramenta como draw.io ou powerpoint) as classes, seus atributos, métodos e relações. Abaixo temos um exemplo de Diagrama de Classes feito no powerpoint, com algumas explicações em vermelho. Questão 2) (3,0 pontos) Escreva em Java uma classe que representa um carro. Tal classe deve conter como atributos obrigatórios (valores que devem ser passados ao construtor) o nome do carro e a quantidade de litros que tem em seu tanque de combustível. Instâncias dessa classe devem poder receber chamadas a um método andar(float distancia) que recebe uma distância em km e imprime na tela: “<nome> andou <distancia> km em <h> horas e agora possui <l> litros de combustível”, substituindo os elementos entre os símbolos < e > pelos dados daquele carro. Considere que carros desta classe andam sempre a 100 km/h e fazem 10 km por litro. Escreva uma outra classe que represente carros turbinados, aproveitando do conceito de herança e sobrecarga. A diferença do carro turbinado para o carro descrito anteriormente é que ele anda sempre a 150 km/h e faz 6 km/l. Finalmente, construa uma classe de Teste, que contenha o método public static void main(), que peça ao usuário que informe um nome para um carro normal, um nome para um carro turbinado, uma quantidade de combustível e uma distância em km. Seu programa deve, então, criar um carro normal e outro turbinado com seus respectivos nomes, com a mesma quantidade de combustível e chamar o método andar nos dois carros, passando a mesma distância em km. Não é necessário se preocupar com valores incorretos informados pelo usuário, ou seja, assuma que o usuário sabe como funciona o programa e não irá informar valores incorretos. A seguir um exemplo da classe Teste rodando: Questão 3) (3,0 pontos) Considere o arquivo texto Astronautas.txt, no seguinte formato: uma linha contendo o nome do astronauta e a linha imediatamente abaixo contém seu ano de nascimento, seu peso na Terra e seu desejo de ir para Marte (M) ou para Júpiter (J). O arquivo pode conter diversos astronautas, mas sempre mantendo esse formato de uma linha com seu nome e a linha seguinte com seus dados. Construa um programa em Java para ler os dados de Astronautas.txt e armazene em um novo arquivo (Marte.txt) o nome das pessoas com menos de 45 anos que desejam ir para Marte e o peso que a pessoa teria por lá. Em outro arquivo (Jupiter.txt) armazene o nome das pessoas com mais de 45 anos que desejam ir para Júpiter e o peso da pessoa em Júpiter. Sabe-se que uma pessoa com peso 100kg na Terra pesaria 38kg em Marte e 264kg em Júpiter. Utilize essa informação para realizar os cálculos. Para testar seu programa recomenda-se criar um arquivo texto no formato especificado. O exemplo a seguir é de um arquivo de entrada no formato especificado, nesse caso com dois astronautas, e seus arquivos de saída. Astronautas.txt Jupiter.txt Marte.txt Boa prova! Informe o carro normal: Fiat 147 caixotinho Informe o carro turbinado: Relampago McQueen Informe quantos litros de combustível nos tanques: 40 Informe quantos km eles vão andar: 150 Fiat 147 caixotinho andou 150.0 km em 1.5 horas e agora possui 25.0 litros de combustível Relampago McQueen andou 150.0 km em 1.0 horas e agora possui 15.0 litros de combustível Mark Watney 1970 84.0 M Buzz Aldrin 1930 80.0 J Buzz Aldrin 211.2
Compartilhar