Moortiii icon

Assignment02 - New

Moortiii | PRO | 01/15/18 05:19:12 PM UTC | 0 ⭐ | 384 👁️ | Never ⏰ | []
Java |

6.54 KB

|

None

|

0 👍

/

0 👎

package com.company;
 
import javax.swing.*;
 
public class Assignment02Functions {
    public double requestCurrencyAmount() {
        while(true) {
            try {
                return Double.parseDouble(JOptionPane.showInputDialog(null, "Please enter an amount to convert"));
            } catch(NumberFormatException e) {
                JOptionPane.showMessageDialog(null, "Please enter a valid amount");
            }
        }
    }
 
    public String chooseCurrency(String conversionType) {
        String[] choices = { "NOK", "EUR", "JPY", "USD" };
        return (String)JOptionPane.showInputDialog(
                null,
                conversionType,
                "Choose currency",
                JOptionPane.QUESTION_MESSAGE,
                null,
                choices,
                choices[1]);
    }
 
    public int keepConverting() {
        Object[] options = { "Yes", "No" };
        return JOptionPane.showOptionDialog(
                null,
                "Do you wish to convert another currency?",
                "Currency Converter",
                JOptionPane.DEFAULT_OPTION,
                JOptionPane.QUESTION_MESSAGE,
                null,
                options,
                options[0]);
    }
 
    public double NOK_to_EUR(double amount) {
        return amount * 0.12;
    }
    public double NOK_to_JPY(double amount) {
        return amount * 17;
    }
    public double NOK_to_USD(double amount) {
        return amount * (1 / 8);
    }
    public double EUR_to_NOK(double amount) {
        return amount * (1 / 0.12);
    }
    public double EUR_to_JPY(double amount) {
        return NOK_to_JPY(EUR_to_NOK(amount));
    }
    public double EUR_to_USD(double amount) {
        return NOK_to_USD(EUR_to_NOK(amount));
    }
    public double JPY_to_NOK(double amount) {
        return amount * 1/17;
    }
    public double JPY_to_EUR(double amount) {
        return NOK_to_EUR(JPY_to_NOK(amount));
    }
    public double JPY_to_USD(double amount) {
        return NOK_to_USD(JPY_to_NOK(amount));
    }
    public double USD_to_NOK(double amount) {
        return amount * 8.0;
    }
    public double USD_to_EUR(double amount) {
        return NOK_to_EUR(USD_to_NOK(amount));
    }
    public double USD_to_JPY(double amount) {
        return NOK_to_JPY(USD_to_NOK(amount));
    }
 
    public void showConversion(double amount, String conversionCurrency, String convertedCurrency) {
        switch(conversionCurrency) {
            case "EUR":
                switch(convertedCurrency) {
                    case "EUR":
                        JOptionPane.showMessageDialog(null, amount + " EUR is " + amount + " EUR.");
                        break;
                    case "JPY":
                        JOptionPane.showMessageDialog(null, amount + " EUR is " + EUR_to_JPY(amount) + " JPY.");
                        break;
                    case "NOK":
                        JOptionPane.showMessageDialog(null, amount + " EUR is " + EUR_to_NOK(amount) + " NOK.");
                        break;
                    case "USD":
                        JOptionPane.showMessageDialog(null, amount + " EUR is " + EUR_to_USD(amount) + " USD.");
                        break;
                }
                break;
            case "NOK":
                switch(convertedCurrency) {
                    case "EUR":
                        JOptionPane.showMessageDialog(null, amount + " NOK is " + NOK_to_EUR(amount) + " EUR.");
                        break;
                    case "JPY":
                        JOptionPane.showMessageDialog(null, amount + " NOK is " + NOK_to_JPY(amount) + " JPY.");
                        break;
                    case "NOK":
                        JOptionPane.showMessageDialog(null, amount + " NOK is " + amount + " NOK.");
                        break;
                    case "USD":
                        JOptionPane.showMessageDialog(null, amount + " NOK is " + NOK_to_USD(amount) + " USD.");
                        break;
                }
                break;
            case "JPY":
                switch(convertedCurrency) {
                    case "EUR":
                        JOptionPane.showMessageDialog(null, amount + " JPY is " + JPY_to_EUR(amount) + " EUR.");
                        break;
                    case "JPY":
                        JOptionPane.showMessageDialog(null, amount + " JPY is " + amount + " JPY.");
                        break;
                    case "NOK":
                        JOptionPane.showMessageDialog(null, amount + " JPY is " + JPY_to_NOK(amount) + " NOK.");
                        break;
                    case "USD":
                        JOptionPane.showMessageDialog(null, amount + " JPY is " + JPY_to_USD(amount) + " USD.");
                        break;
                }
                break;
            case "USD":
                switch(convertedCurrency) {
                    case "EUR":
                        JOptionPane.showMessageDialog(null, amount + " USD is " + USD_to_EUR(amount) + " EUR.");
                        break;
                    case "JPY":
                        JOptionPane.showMessageDialog(null, amount + " USD is " + USD_to_JPY(amount) + " JPY.");
                        break;
                    case "NOK":
                        JOptionPane.showMessageDialog(null, amount + " USD is " + USD_to_NOK(amount) + " NOK.");
                        break;
                    case "USD":
                        JOptionPane.showMessageDialog(null, amount + " USD is " + amount + " USD.");
                        break;
                }
        }
    }
}
 
public class Assignment02Runner {
    public void run_assignment()
    {
        Assignment02Functions assignment02Functions = new Assignment02Functions();
        do {
            String conversionCurrency = assignment02Functions.chooseCurrency("Which currency do you want to convert from?");
            String convertedCurrency = assignment02Functions.chooseCurrency("Which currency do you want to convert to?");
            double amount = assignment02Functions.requestCurrencyAmount();
            assignment02Functions.showConversion(amount, conversionCurrency, convertedCurrency);
        } while(assignment02Functions.keepConverting() != 1);
    }
}
 
public class Main
{
    public static void main(String[] args)
    {
        Assignment02Runner assignment02Runner = new Assignment02Runner();
        assignment02Runner.run_assignment();
    }
}

Comments