Objetivo:
Desenvolver uma aplicação em Java que converta valores de reais (BRL) para uma moeda estrangeira específica, utilizando a cotação atual fornecida por um método predefinido. Este exercício ajuda a entender conceitos fundamentais de orientação a objetos, como criação de classes, métodos, encapsulamento e a interação entre classes.
Descrição:
Crie uma classe ConversorMoedas
que contenha métodos para converter um valor de reais (BRL) para uma moeda estrangeira especificada pelo usuário. A classe utilizará a classe fornecida Cotacao
para obter a taxa de câmbio atual. Cada método deve receber um valor em reais e a sigla da moeda de destino, e retornar o valor convertido.
Baixe o arquivo Cotacao.java
e coloque na pasta do projeto. Utilize a classe Cotacao
fornecida, que contém o método cotar
, para obter as cotações das moedas.
Crie também uma classe Main
com o método main
que instancie um objeto da classe ConversorMoedas
, solicite ao usuário o valor em reais e a moeda de destino, e demonstre o uso dos métodos criados, exibindo os resultados no console.
Lembre-se de tratar o erro quando o usuário informar uma moeda inexistente.
Classe Cotacao:
A classe Cotacao
é fornecida com o método cotar
, que recebe uma String
referente à moeda desejada e retorna a cotação atual em reais (BRL). As moedas aceitas pelo método são:
- USD (Dólar Americano)
- EUR (Euro)
- GBP (Libra Esterlina)
- JPY (Iene Japonês)
- CAD (Dólar Canadense)
- AUD (Dólar Australiano)
- CHF (Franco Suíço)
- CNY (Yuan Chinês)
- ARS (Peso Argentino)
- BTC (Bitcoin)
Classes e Métodos:
- Classe ConversorMoedas
- Métodos:
double converter(double valorReais, String moedaDestino)
: Converte um valor de reais para a moeda especificada.
- Métodos:
- Classe Main
- Método:
public static void main(String[] args)
: Cria uma instância da classeConversorMoedas
, solicita ao usuário o valor em reais e a moeda de destino, e demonstra o uso do método de conversão, exibindo o resultado no console.
- Método:
Exemplo De Execução No Console:
Digite o valor em reais: 100
Digite a moeda de destino (USD, EUR, GBP, JPY, CAD, AUD, CHF, CNY, ARS, BTC): USD
Valor convertido: 19.05 USD
main:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int opcao = 10;
double numero;
Cotacao dinheiro = new Cotacao();
while (opcao != 0) {
System.out.println();
System.out.println(“—————————-“);
System.out.println(“Converte-Moedas em Java v0.1 ; by Pedro”);
System.out.println();
System.out.println(“Selecione a operação: \n”);
System.out.println(” [1] – USD (Dólar Americano)\n” +
” [2] – EUR (Euro)\n” +
” [3] – GBP (Libra Esterlina)\n” +
” [4] – JPY (Iene Japonês)\n” +
” [5] – CAD (Dólar Canadense)\n” +
” [6] – AUD (Dólar Australiano)\n” +
” [7] – CHF (Franco Suíço)\n” +
” [8] – ARS (Peso Argentino)\n” +
” [9] – BTC (Bitcoin)”);
System.out.println();
System.out.println(“[0] – Sair: \n”);
System.out.print(“Digite o valor em reais (R$): “);
double valorEmReais = sc.nextDouble();
System.out.print(“Selecione a opção: “);
opcao = sc.nextInt();
switch (opcao) {
case 0:
break;
case 1:
System.out.println(“USD: ” + (valorEmReais / dinheiro.cotar(“USD”)));
break;
case 2:
System.out.println(“EUR: ” + (valorEmReais / dinheiro.cotar(“EUR”)));
break;
case 3:
System.out.println(“GBP: ” + (valorEmReais / dinheiro.cotar(“GBP”)));
break;
case 4:
System.out.println(“JPY: ” + (valorEmReais / dinheiro.cotar(“JPY”)));
break;
case 5:
System.out.println(“CAD: ” + (valorEmReais / dinheiro.cotar(“CAD”)));
break;
case 6:
System.out.println(“AUD: ” + (valorEmReais / dinheiro.cotar(“AUD”)));
break;
case 7:
System.out.println(“CHF: ” + (valorEmReais / dinheiro.cotar(“CHF”)));
break;
case 8:
System.out.println(“ARS: ” + (valorEmReais / dinheiro.cotar(“ARS”)));
break;
case 9:
System.out.println(“BTC: ” + (valorEmReais / dinheiro.cotar(“BTC”)));
break;
default:
System.out.println(“Nenhuma opção válida selecionada.”);
break;
}
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int opcao = 10;
double numero;
Cotacao dinheiro = new Cotacao();
while (opcao != 0) {
System.out.println();
System.out.println(“—————————-“);
System.out.println(“Converte-Moedas em Java v0.1 ; by Pedro”);
System.out.println();
System.out.println(“Selecione a operação: \n”);
System.out.println(” [1] – USD (Dólar Americano)\n” +
” [2] – EUR (Euro)\n” +
” [3] – GBP (Libra Esterlina)\n” +
” [4] – JPY (Iene Japonês)\n” +
” [5] – CAD (Dólar Canadense)\n” +
” [6] – AUD (Dólar Australiano)\n” +
” [7] – CHF (Franco Suíço)\n” +
” [8] – ARS (Peso Argentino)\n” +
” [9] – BTC (Bitcoin)”);
System.out.println();
System.out.println(“[0] – Sair: \n”);
System.out.print(“Digite o valor em reais (R$): “);
double valorEmReais = sc.nextDouble();
System.out.print(“Selecione a opção: “);
opcao = sc.nextInt();
switch (opcao) {
case 0:
break;
case 1:
System.out.println(“USD: ” + (valorEmReais / dinheiro.cotar(“USD”)));
break;
case 2:
System.out.println(“EUR: ” + (valorEmReais / dinheiro.cotar(“EUR”)));
break;
case 3:
System.out.println(“GBP: ” + (valorEmReais / dinheiro.cotar(“GBP”)));
break;
case 4:
System.out.println(“JPY: ” + (valorEmReais / dinheiro.cotar(“JPY”)));
break;
case 5:
System.out.println(“CAD: ” + (valorEmReais / dinheiro.cotar(“CAD”)));
break;
case 6:
System.out.println(“AUD: ” + (valorEmReais / dinheiro.cotar(“AUD”)));
break;
case 7:
System.out.println(“CHF: ” + (valorEmReais / dinheiro.cotar(“CHF”)));
break;
case 8:
System.out.println(“ARS: ” + (valorEmReais / dinheiro.cotar(“ARS”)));
break;
case 9:
System.out.println(“BTC: ” + (valorEmReais / dinheiro.cotar(“BTC”)));
break;
default:
System.out.println(“Nenhuma opção válida selecionada.”);
break;
}
}
}
}
*Main.java*
import java.util.Scanner;
import java.util.SimpleTimeZone;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Cotacao cotacao = new Cotacao();
ConversorMoedas converte = new ConversorMoedas();
String moeda;
double valor = 0;
System.out.print(“Digite o valor (em reais) a ser convertido: R$”);
valor = scanner.nextDouble();
System.out.print(“Digite a moeda de destino: “);
moeda = scanner.next();
if(converte.estaEmLista(moeda)){
System.out.printf(“%nConversão:%nR$|%s: %.2f%n”, moeda, converte.converter(valor, moeda));
}else{
System.out.println(“Moeda não existe.”);
}
}
}
————————————————————————
*ConversorMoedas.java*
import java.util.Arrays;
public class ConversorMoedas {
Cotacao cotacao = new Cotacao();
String[] moedas = {“USD”, “EUR”, “GBP”, “JPY”, “CAD”, “AUD”, “CHF”, “CNY”, “ARS”, “BTC”};
boolean estaEmLista(String moedaDestino) {
String[] moeda = {moedaDestino};
boolean moedaExiste = Arrays.asList(moedas).containsAll(Arrays.asList(moeda));
return moedaExiste;
}
double converter(double valorReais, String moedaDestino) {
return valorReais * cotacao.cotar(moedaDestino);
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ConversorMoedas conversor = new ConversorMoedas();
Cotacao cotacao = new Cotacao();
System.out.println(“Digite o valor em reais (BRL): “);
double valorReais = sc.nextDouble();
System.out.println(“Digite a moeda que deseja converter (USD, EUR, GBP, JPY, CAD, AUD, CHF, CNY, ARS, BTC): “);
String moedaDestino = sc.next().toUpperCase();
double valorConvertido = 0;
if (moedaDestino.equals(“BTC”)) {
valorConvertido = cotacao.cotar(moedaDestino);
} else {
valorConvertido = conversor.converter(valorReais, moedaDestino);
}
if (valorConvertido != -1) {
System.out.println(“Valor em ” + moedaDestino + ” : ” + valorConvertido);
}
sc.close();
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class Cotacao {
/* Este método retorna a cotação das seguintes moedas:
USD (Dólar Americano)
EUR (Euro)
GBP (Libra Esterlina)
JPY (Iene Japonês)
CAD (Dólar Canadense)
AUD (Dólar Australiano)
CHF (Franco Suíço)
CNY (Yuan Chinês)
ARS (Peso Argentino)
BTC (Bitcoin) */
public double cotar(String moeda) {
String url = “https://economia.awesomeapi.com.br/json/last/” + moeda + “-BRL”;
double valorCotacao = -1;
try {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod(“GET”);
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
String responseString = response.toString();
String bid = responseString.split(“\”bid\”:\””)[1].split(“\””)[0];
valorCotacao = Double.parseDouble(bid);
} else {
System.out.println(“Falha na requisição: ” + responseCode);
}
} catch (Exception e) {
e.printStackTrace();
}
return valorCotacao;
}
}
import java.util.Scanner;
public class ConversorMoedas {
public double converter(double valorReais, String moedaDestino) {
double cotacao = 0;
switch (moedaDestino) {
case “USD”:
cotacao = 5.15;
break;
case “EUR”:
cotacao = 5.59;
break;
case “GBP”:
cotacao = 6.55;
break;
case “JPY”:
cotacao = 0.033;
break;
case “CAD”:
cotacao = 3.76;
break;
case “AUD”:
cotacao = 3.41;
break;
case “CHF”:
cotacao = 5.63;
break;
case “CNY”:
cotacao = 0.72;
break;
case “ARS”:
cotacao = 0.0058;
break;
default:
System.out.println(“Moeda de Destino Inválida!”);
return -1;
}
double valorConvertido = valorReais * cotacao;
return valorConvertido;
}
}
George e Keven
ConversorMoedas.java:
import java.util.Arrays;
public class ConversorMoedas{
public void converter(double valor, String moeda){
Cotacao cot = new Cotacao();
String[] moedas = {“USD”,”EUR”,”GBP”,”JPY”,”CAD”,”AUD”,”CHF”,”CNY”,”ARS”,”BTC”};
boolean moedaValida = Arrays.asList(moedas).contains(moeda);
if (moedaValida){
double valorCotacao = cot.cotar(moeda);
System.out.println(“Valor é de: “+moeda+” “+valorCotacao * valor);
} else {
System.out.println(“Moeda Inválida”);
}
}
}
Main.java:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ConversorMoedas conversor = new ConversorMoedas();
System.out.print(“Insira o valor: R$ “);
double valor = sc.nextDouble();
sc.nextLine();
System.out.print(“Insira a moeda: “);
String moeda = sc.nextLine();
conversor.converter(valor, moeda);
}
}
(ConversorMoeda)
public class ConversorMoedas {
public double converter(double ValorReais, String moedasDestino){
double cotacao = 0;
switch (moedasDestino){
case “USD”:
cotacao = 5.15;
break;
case “EUR”:
cotacao = 5.59 ;
break;
case “GBP”:
cotacao = 6.55;
break;
case “JPY”:
cotacao = 0.033;
break;
case “CAD”:
cotacao = 3.76;
break;
case “AUD”:
cotacao = 3.41;
break;
case “CHF”:
cotacao = 5.63;
break;
case “CNY”:
cotacao = 0.72;
break;
case “ARS”:
cotacao = 0.0058;
break;
case “BTC”:
cotacao = 353.957;
break;
default:
System.out.println(“Moeda de Destino Inválida!!!”);
return -1;
}
double valorConvertido = ValorReais * cotacao;
return valorConvertido;
}
}
——————————————————————-
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class Cotacao {
/* Este método retorna a cotação das seguintes moedas:
USD (Dólar Americano)
EUR (Euro)
GBP (Libra Esterlina)
JPY (Iene Japonês)
CAD (Dólar Canadense)
AUD (Dólar Australiano)
CHF (Franco Suíço)
CNY (Yuan Chinês)
ARS (Peso Argentino)
BTC (Bitcoin) */
public double cotar(String moeda) {
String url = “https://economia.awesomeapi.com.br/json/last/” + moeda + “-BRL”;
double valorCotacao = 0.0;
try {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod(“GET”);
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
String responseString = response.toString();
String bid = responseString.split(“\”bid\”:\””)[1].split(“\””)[0];
valorCotacao = Double.parseDouble(bid);
} else {
System.out.println(“Falha na requisição: ” + responseCode);
}
} catch (Exception e) {
e.printStackTrace();
}
return valorCotacao;
}
}
—————————————————————————–
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
ConversorMoedas conversor = new ConversorMoedas();
Cotacao cot = new Cotacao();
System.out.println(“Digite o valor de reais (BR): “);
double valorReais = sc.nextDouble();
System.out.println(“Digite a moeda que deseja que seja convertida: “);
String moedasDestino = sc.next().toUpperCase();
double valorConvertido = 0;
if (moedasDestino.equals(“BTC”)){
valorConvertido = cot.cotar(moedasDestino);
}else {
valorConvertido = conversor.converter(valorReais, moedasDestino);
}
if (valorConvertido != -1){
System.out.println(“Valor em ” + moedasDestino + ” : ” + valorConvertido);
}
sc.close();
}
}
package Cotação;
import java.util.Arrays;
public class ConversorMoedas{
public void converter(double valor, String moeda){
Cotacao cotacao = new Cotacao();
String[] moedas = {“USD”, “EUR”, “GBP”, “JPY”, “CAD”, “AUD”, “CHF”, “CNY”, “ARS”, “BTC”};
boolean moedaValida = Arrays.asList(moedas).contains(moeda);
if (moedaValida){
double valorCotacao = cot.cotar(moeda);
System.out.println(“Valor é de ” + moeda + valorCotacao * valor);
} else{
System.out.println(“Moeda Inválida.”);
}
}
}
package Cotação;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ConversorMoedas conversor = new ConversorMoedas();
System.out.print(“Insira o valor: R$ “);
double valor = sc.nextDouble();
sc.nextLine();
System.out.print(“Insira a moeda: “);
String moeda = sc.nextLine();
conversor.converter(valor, moeda);
}
}
import java.util.Scanner;
public class ConversorMoedas {
public double converter(double valorReais, String moedaDestino) {
double cotacao = 0;
switch (moedaDestino) {
case “USD”:
cotacao = 5.15;
break;
case “EUR”:
cotacao = 5.59;
break;
case “GBP”:
cotacao = 6.55;
break;
case “JPY”:
cotacao = 0.033;
break;
case “CAD”:
cotacao = 3.76;
break;
case “AUD”:
cotacao = 3.41;
break;
case “CHF”:
cotacao = 5.63;
break;
case “CNY”:
cotacao = 0.72;
break;
case “ARS”:
cotacao = 0.0058;
break;
default:
System.out.println(“Moeda de Destino Inválida!”);
return -1;
}
double valorConvertido = valorReais * cotacao;
return valorConvertido;
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class Cotacao {
public double cotar(String moeda) {
String url = “https://economia.awesomeapi.com.br/json/last/” + moeda + “-BRL”;
double valorCotacao = -1;
try {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod(“GET”);
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
String responseString = response.toString();
String bid = responseString.split(“\”bid\”:\””)[1].split(“\””)[0];
valorCotacao = Double.parseDouble(bid);
} else {
System.out.println(“Falha na requisição: ” + responseCode);
}
} catch (Exception e) {
e.printStackTrace();
}
return valorCotacao;
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class Cotacao {
public double cotar(String moeda) {
String url = “https://economia.awesomeapi.com.br/json/last/” + moeda + “-BRL”;
double valorCotacao = -1;
try {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod(“GET”);
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
String responseString = response.toString();
String bid = responseString.split(“\”bid\”:\””)[1].split(“\””)[0];
valorCotacao = Double.parseDouble(bid);
} else {
System.out.println(“Falha na requisição: ” + responseCode);
}
} catch (Exception e) {
e.printStackTrace();
}
return valorCotacao;
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ConversorMoedas conversor = new ConversorMoedas();
Cotacao cotacao = new Cotacao();
System.out.println(“Digite o valor em reais (BRL): “);
double valorReais = sc.nextDouble();
System.out.println(“Digite a moeda que deseja converter (USD, EUR, GBP, JPY, CAD, AUD, CHF, CNY, ARS, BTC): “);
String moedaDestino = sc.next().toUpperCase();
double valorConvertido = 0;
if (moedaDestino.equals(“BTC”)) {
valorConvertido = cotacao.cotar(moedaDestino);
} else {
valorConvertido = conversor.converter(valorReais, moedaDestino);
}
if (valorConvertido != -1) {
System.out.println(“Valor em ” + moedaDestino + ” : ” + valorConvertido);
}
sc.close();
}
}
public class ConversorMoedas {
public double converter(double valorReais, String moedaDestino) {
Cotacao cotacao = new Cotacao();
double valorCotacao = cotacao.cotar(moedaDestino);
return valorReais * valorCotacao;
}
}
public class Main {
public static void main(String[] args) {
ConversorMoedas conversor = new ConversorMoedas();
java.util.Scanner scanner = new java.util.Scanner(System.in);
System.out.println(“Digite o valor em reais:”);
double valorReais = scanner.nextDouble();
System.out.println(“Digite a moeda de destino (USD, EUR, GBP, JPY, CAD, AUD, CHF, CNY, ARS, BTC):”);
String moedaDestino = scanner.next();
double valorConvertido = conversor.converter(valorReais, moedaDestino);
System.out.printf(“Valor convertido: %.2f %s\n”, valorConvertido, moedaDestino);
scanner.close();
}
}
public class Main {
public static void main(String[] args) {
ConversorMoedas conversor = new ConversorMoedas();
java.util.Scanner scanner = new java.util.Scanner(System.in);
System.out.println(“Digite o valor em reais:”);
double valorReais = scanner.nextDouble();
System.out.println(“Digite a moeda de destino (USD, EUR, GBP, JPY, CAD, AUD, CHF, CNY, ARS, BTC):”);
String moedaDestino = scanner.next();
double valorConvertido = conversor.converter(valorReais, moedaDestino);
System.out.printf(“Valor convertido: %.2f %s\n”, valorConvertido, moedaDestino);
scanner.close();
}
}
public class ConversorMoedas {
public double converter(double valorReais, String moedaDestino) {
Cotacao cotacao = new Cotacao();
double valorCotacao = cotacao.cotar(moedaDestino);
return valorReais * valorCotacao;
}
Moeda.java
public class Moeda {
public double converter(double valorReais, String moedaDestino) {
double cotacao = Cotacao.cotar(moedaDestino);
return valorReais / cotacao;
}
}
mainMoeda.java
import java.util.Scanner;
class mainMoeda {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Moeda conversor = new Moeda();
System.out.print(“Digite o valor em reais: “);
double valorReais = scanner.nextDouble();
System.out.print(“Digite a moeda de destino (USD, EUR, GBP, JPY, CAD, AUD, CHF, CNY, ARS, BTC): “);
String moedaDestino = scanner.next().toUpperCase();
double valorConvertido = conversor.converter(valorReais, moedaDestino);
if (valorConvertido != -1) {
System.out.printf(“Valor convertido: %.2f %s%n”, valorConvertido, moedaDestino);
} else {
System.out.println(“Não foi possível realizar a conversão.”);
}
scanner.close();
}
}
import java.sql.SQLOutput;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Cotacao moedas = new Cotacao();
double valR;
double moeda;
System.out.println(“entre com o valor em reais: “);
valR = sc.nextDouble();
sc.nextLine();
System.out.println(“Digite a moeda de destino (USD, EUR, GBP, JPY, CAD, AUD, CHF, CNY, ARS, BTC): “);
moeda = moedas.cotar(sc.nextLine());
System.out.println(moeda * valR);
}
}