Loading...
musakahero avatar musakahero 3 Точки

[Homework] [Programming Basics with JAVA] Задача 13. Конзолен междувалутен конвертор

Здравейте колеги, поблъсках си главата как евентуално може да се реши тази задачка, нацъках някакво решение ама ми се струва прекалено дълго. Ако някой и който я е решил по някакъв по-прост и кратък начин, моля да сподели! Ето и PasteBin на това, което нацъках:

https://pastebin.com/zgRdtmXs

 

0
Programming Basics
Jeliozver avatar Jeliozver 356 Точки
Best Answer

За да си спестиш проверките. Първо правиш 3, за да провериш дали входната валута е usd, eur, gpb и ако е една от тях ги превръшаш в левове. (inputSum *= usd....) После правиш същите 3 проверки, но вече за изходна валута и ги правиш от левове в желатана валута. (InputSum /= usd....)

И накрая извън всякакви проверки принтираш сумата със закръгляне беше до колкото помня.

 

0
09/07/2017 07:52:50
LenHristova avatar LenHristova 2 Точки

Аз го направих така:    https://pastebin.com/216RV9zU

0
milenmihalkov avatar milenmihalkov 2 Точки

Според мен по-правилно е да имаш стойностите ( Валутен курс ) дефинирани само на 1 място, а надолу да работиш само с имената на променливите, защото така както си го направила, ако имаш повече валути и куса се сменя ще трябва да сменяш стойностите на много места. :) 

0
LenHristova avatar LenHristova 2 Точки

Всъщност, ако курсът се сменя, ще трябва да се променят стойностите само на две места, не са много. В конкретния случай мисля, че не е чак такъв проблем, но си прав, че е добре да се изведат стойностите на едно място, най-малкото за по-добра прегледност и четимост на кода :)

0
vdjalov avatar vdjalov 13 Точки

Или нещо такова:

import java.util.Scanner;

public class currencyConverter1 {

    public static void main(String[] args) {
        
        
        Scanner scanner = new Scanner(System.in);
        
            double amount = Double.parseDouble(scanner.nextLine());
            int inputCurrency = Integer.parseInt(scanner.nextLine());
            int outputCurrency = Integer.parseInt(scanner.nextLine());
            
            double BGN = 1;
            double USD = 1.79549;
            double EUR = 1.95583;
            double GBP = 2.53405;
            
            
            double rateInput = 0;
            double rateOutput = 0;
            
            switch(inputCurrency){
            case 1:
                rateInput = BGN;
                break;
            case 2:
                rateInput = USD;
                break;
            case 3:    
                rateInput = EUR;
                break;
            case 4: 
                rateInput = GBP;
                break;
            }
            
            
            switch(outputCurrency){
            case 1:
                rateOutput = BGN;
                break;
            case 2:
                rateOutput = USD;
                break;
            case 3:
                rateOutput = EUR;
                break;
            case 4:    
                rateOutput = GBP;
                break;
            }
            
                System.out.printf("%.2f",(amount*rateInput)/rateOutput);
    }

}
 

0
vnazlamov avatar vnazlamov 1 Точки

Здравейте,

След като видях във фейсбук групата, че дават съвет относно тази задача да се реши с hashMap, се разрових и я направих по този начин. Споделям решението, като не твърдя че е най-правилното, но работи :) Ето и PasteBin: https://pastebin.com/qbUdGKke

 

0
st.penchev avatar st.penchev 3 Точки

Ето и моето простичко решение:

import java.util.Scanner;

public class CurrencyConvertor {
    public static void main(String[] args) {
        Scanner scanner = new Scanner (System.in);

        double sum1 = Double.parseDouble(scanner.nextLine());
        String CurrencyFrom = scanner.nextLine();
        String CurrencyTo = scanner.nextLine();

        double sumLV=1;

        if (CurrencyFrom.equals("USD")){
            sumLV = sum1*1.79549;
        }
        else{
            if (CurrencyFrom.equals("EUR")){
                sumLV = sum1*1.95583;
            }
            else {
                if (CurrencyFrom.equals("GBP")){
                    sumLV = sum1*2.53405;
                }
                else{
                    if (CurrencyFrom.equals("BGN")){

                        sumLV = sum1;
                    }

                }
            }
        }

        double sum2=1;

        if (CurrencyTo.equals("USD")){
            sum2 = sumLV/1.79549;
        }
        else{
            if (CurrencyTo.equals("EUR")){
                sum2 = sumLV/1.95583;
            }
            else {
                if (CurrencyTo.equals("GBP")){
                    sum2 = sumLV/2.53405;
                }
                else{
                    if (CurrencyTo.equals("BGN")){

                        sum2 = sumLV;
                    }

                }
            }
        }


        //System.out.println("Входна сума: " + sum1);
        //System.out.println("Валута от: " + CurrencyFrom);
        //System.out.println("Валута към: " +CurrencyTo);
        //System.out.println("Междинна сума в лева :" + sumLV);
        //System.out.println("Крайна сума :" + sum2);
        //System.out.printf("%.2f %s се равняват на %.2f %s", sum1, CurrencyFrom, sum2, CurrencyTo);

        System.out.printf("%.2f", sum2);


    }

}
 

0
DimitarBV avatar DimitarBV 0 Точки

  https://pastebin.com/ZtZqHCnZ

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.