Prévia do material em texto
Programação Orientada a Objetos - "COFRINHO DE MOEDAS" em Java. O trabalho consiste em implementar um pequeno sistema que emula um "Cofrinho de moedas" em Java. Crie um menu em que é oferecido ao usuário: - Adicionar moedas de diferentes valores e países em seu cofrinho - Remover moedas específicas do cofrinho. - Listar todas as moedas que estão dentro do cofrinho - Calcular quanto dinheiro existe no cofrinho convertido para Real O objetivo principal do trabalho é avaliar o bom uso do conceito de herança e polimorfismo. O projeto deve possuir uma classe Principal além das classes descritas no diagrama UML abaixo. A classe Cofrinho deve possuir como atributo uma coleção de Moedas, que por sua vez é uma classe mãe abstrata de outras classes específicas de Dolar, Euro, Real, etc... A coleção de Moedas pode ser implementada utilizando um ArrayList, ou qualquer outra estrutura de dados que julgue pertinente. Demais detalhes de implementação ficam a cargo do aluno que pode desenvolver também classes extras ou adicionar métodos e atributos conforme julgar necessário. ALUNO: SILAS BARBOSA DE ALMEIDA RU: 1509409 //PASTA COFRINHO //COFRINHO package cofrinho; import java.util.ArrayList; public abstract class Cofrinho extends Moeda{ public static double totalMoedas; public static ArrayList<Double> arrayMoedas = new ArrayList<>(); public static ArrayList<String> arrayTipo = new ArrayList<>(); public static void adicionar(double moeda, String tipo) { arrayMoedas.add(moeda); arrayTipo.add(tipo); System.out.println("Adicionado com sucesso"); return; } public static void listar() { for (int i = 0; i < arrayMoedas.size(); i++) { String result = (i + 1 ) + " - " + arrayTipo.get(i) + " - " +Double.toString(arrayMoedas.get(i)); System.out.println(result); } return; } public static void remover(int opção) { System.out.println(opção); arrayMoedas.remove(opção - 1); arrayTipo.remove(opção - 1); return; } public static double conveter() { System.out.println("heres"); for (int i = 0; i < arrayMoedas.size(); i++) { totalMoedas += conveterMoeda(arrayMoedas.get(i), arrayTipo.get(i)); } System.out.println(totalMoedas); return 0; } } //INTERFACE package cofrinho; import java.util.Scanner; //Criada essa classe pra separar a interface da logica do projeto public class Interface extends Cofrinho{ public static double moeda; public static int opção; public static int tipo; public static void main(String[] args) throws InterruptedException { System.out.println("CRIADOR: SILAS BARBOSA DE ALMEIDA"); System.out.println("Olá, Bem-vindo(a) ao Cofrinho java"); menu(); return; } public static void menu() throws InterruptedException { Scanner usuario = new Scanner(System.in); System.out.println("Selecione umas das opção abaixo"); Thread.sleep(500); System.out.println("1 - Adicionar moeda \n2 - Listar moeda(s) \n3 - Remover moedas \n4 - Converter tudo pra real \n5 - Sair"); Thread.sleep(200); opção = usuario.nextInt(); //Adicionar moedas if(opção == 1) { System.out.println("Selecione o tipo de moeda"); System.out.println("1 - Real \n2 - Dolar \n3 - Euro \n4 - Voltar"); tipo = usuario.nextInt(); Thread.sleep(500); System.out.println("Digite o valor:"); moeda = usuario.nextDouble(); if(tipo == 1) { adicionar(moeda,"real"); menu(); } if(tipo == 2) { adicionar(moeda,"dolar"); menu(); } if(tipo == 3) { adicionar(moeda,"euro"); menu(); } } //Listar moedas if(opção == 2) { System.out.println("Moedas listadas"); listar(); Thread.sleep(500); menu(); } //Remover moeda if(opção == 3) { System.out.println("Selecione qual moeda deseja remover"); Thread.sleep(500); listar(); opção = usuario.nextInt(); remover(opção); menu(); } //Converter tudo pra real if(opção == 4) { conveter(); menu(); } if(opção == 5) { System.out.println("Tchau!"); System.exit(0); } else if(opção >= 6) { System.out.println("Opção invalida!"); menu(); } } } //MOEDA package cofrinho; import java.util.ArrayList; import moeda.Real; import moeda.Euro; import moeda.Dolar; public class Moeda { public static double conveterMoeda(double moedas, String tipo) { if(tipo == "real") { Real real = new Real(); real.conveterReal(moedas); } if(tipo == "dolar") { Dolar dolar = new Dolar(); return dolar.conveterReal(moedas); } if(tipo == "euro") { Euro euro = new Euro(); return euro.conveterReal(moedas); } return moedas; } } //MODULE-INFO /** * */ /** * */ module Uninter { } //PASTA MOEDA //DOLAR package moeda; public class Dolar { private static double valorDaMoeda = 5.34; public double conveterReal(double moeda) { return moeda * valorDaMoeda; } } //EURO package moeda; public class Euro { private static double valorDaMoeda = 5.34; public double conveterReal(double moeda) { return moeda * valorDaMoeda; } } //REAL package moeda; public class Real { private static int valorDaMoeda = 1; public double conveterReal(double moeda) { return moeda * valorDaMoeda; } } //PRINT DA TELA ALUNO: SILAS BARBOSA DE ALMEIDA RU: 1509409 Almeida Riscado Almeida Riscado