2013-03-20 2 views
-5

Я делаю приложение, в котором рассчитываю стоимость ювелирного магазина и использую метод в основном методе.Как использовать метод три раза по основному методу

Этот метод должен использоваться три раза при изменении только одного параметра. Я также получаю сообщение об ошибке от Java о том, что метод и переменные уже определены,

Вот этот мой код:

import java.text.DecimalFormat; 
import java.util.Scanner; 
import javax.swing.JOptionPane; 


public class JewelleryStore 
{ 

    public static void main(String[] args) 
    { 

     double stateRate = 0.1; 
     double luxuryRate = 0.2; 
     double laborRate = 0.05; 
     double extraCharge; 
     int numOrdered; 
     double diamondCost; 
     double settingCost; 
     double baseCost; 
     double totalCost; 
     double laborCost; 
     double stateTax; 
     double luxuryTax; 
     double finalAmountDue; 

     Scanner keyInput = new Scanner(System.in); 

     System.out.println("What is the cost of the diamond?"); 
     diamondCost = keyInput.nextDouble(); 
     System.out.println("What is the cost of the setting?"); 
     settingCost = keyInput.nextDouble(); 
     System.out.println("How many rings are you ordering?"); 
     numOrdered = keyInput.nextInt(); 

     baseCost = diamondCost + settingCost; 
     calcExtraCost(baseCost, laborRate); 
     laborCost = extraCharge; 
     calcExtraCost(baseCost, stateRate); 
     stateTax = extraCharge; 
     calcExtraCost(baseCost, luxuryRate); 
     luxuryTax = extraCharge; 
     totalCost = baseCost + laborCost + stateTax + luxuryTax; 
     finalAmountDue = numOrdered*totalCost; 
     DecimalFormat dollar = new DecimalFormat("0.00"); 
     JOptionPane.showMessageDialog(null, "Jasmine Jewelry INC: TOTAL COST BREAKDOWN" + "\nDiamond Cost: $" +dollar.format(diamondCost) + "\nSetting Cost: $" + dollar.format(settingCost) + "\nState Tax @ 10%: $" + dollar.format(stateTax) + "\nLuxury Tax @ 20%: $" + dollar.format(luxuryTax)+"\nLabor Charge @ 5%: $"+dollar.format(laborCost)+"\nTotal Price: $" + dollar.format(diamondCost+settingCost+stateTax+luxuryTax+laborCost) +"\n\nNumberOrdered: " + numOrdered + "\n\nAmount Due $" + dollar.format(finalAmountDue)); 

    } 
    public static double calcExtraCost(double diamond, double rate) 
    { 
     double extraCharge = diamond*rate; 
     double diamond = baseCost; 
     double rate = laborCost; 

    } 
    public static double calcExtraCost(double diamond2, double rate2) 
    { 
     double extracharge = diamond2*rate2; 
     double diamond = baseCost; 
     double rate2 = stateTax; 
    } 
    public static double calcExtraCost(double diamond2, double rate3) 
    { 
     double extracharge = diamond1*rate3; 
     double diamond2 = baseCost; 
     double rate3 = luxuryTax; 
    } 
} 
+1

ваш код не имеет особого смысла. Похоже, вам нужно лучшее фундаментальное понимание Java. Я бы порекомендовал Head First Java. –

+1

В вашем коде есть немало вещей. Попробуйте изучить немного больше основ языка. Для начала вам нужно всего лишь * one * method 'calcExtraCost' и передать ему различные параметры для' rate' из основной функции. – slhck

+0

О, дорогой. Читая это дальше, весь вопрос даже имеет меньшее значение для меня. Вы определяете переменные в своих функциях, которые вы никогда не используете, и ваши функции ничего не возвращают. – slhck

ответ

0

Вы в основном создаете тот же метод снова и снова, который не нужен .. . Просто создайте один метод метод может получить различные значения во время выполнения псевдокод:

public static double calcExtraCost(double diamond, double rate) 
{ 
     // do something 
return somedouble value computed 
       } 

только при вызове метода вам нужно передать различные ставки в качестве входных данных calcExtraCost(diamond,rate1) or calcExtraCost(diamond,rate2) or calcExtraCost(diamond,rate3) и т. Д. JVM достаточно умен, чтобы вызвать соответствующий метод. Плюс ваша логика не имеет смысла, пожалуйста, прочитайте основы java на http://docs.oracle.com/javase/tutorial/

+1

И что бы это сделал без какого-либо типа возврата? Он определяет несколько переменных, а затем отбрасывает их. – slhck

+0

@slhck sry хотел рассказать ему по его примеру .. отредактировал мой ответ .. – Lakshmi

2

Ничего себе, ладно, поэтому вы новичок в Java.

Напишите метод, который вычисляет дополнительную стоимость один раз и вызывает его столько раз, сколько вы захотите, с другим параметром, вы получите обратно разные результаты.

что-то вроде этого:

public static double calcExtraCost(double value, double rate) 
{ 
    return value*rate; 
} 

вы можете добавить процент к исходному значению, на основании некоторой скорости, как это:

baseCost = baseCost + calcExtraCost(baseCost, laborRate); 

Я рекомендую Head First Java, как хорошо!

0

Я думаю, что это то, что у ожидать

import java.text.DecimalFormat; 
import java.util.Scanner; 
import javax.swing.JOptionPane; 


public class JewelleryStore 
{ 

    public static void main(String[] args) 
    { 

     double stateRate = 0.1; 
     double luxuryRate = 0.2; 
     double laborRate = 0.05; 
     double extraCharge; 
     int numOrdered; 
     double diamondCost; 
     double settingCost; 
     double baseCost; 
     double totalCost; 
     double laborCost; 
     double stateTax; 
     double luxuryTax; 
     double finalAmountDue; 

     Scanner keyInput = new Scanner(System.in); 

     System.out.println("What is the cost of the diamond?"); 
     diamondCost = keyInput.nextDouble(); 
     System.out.println("What is the cost of the setting?"); 
     settingCost = keyInput.nextDouble(); 
     System.out.println("How many rings are you ordering?"); 
     numOrdered = keyInput.nextInt(); 

     baseCost = diamondCost + settingCost; 
     extraCharge=calcExtraCost(baseCost, laborRate); 
     laborCost = extraCharge; 
     extraCharge=calcExtraCost(baseCost, stateRate); 
     stateTax = extraCharge; 
     extraCharge=calcExtraCost(baseCost, luxuryRate); 
     luxuryTax = extraCharge; 
     totalCost = baseCost + laborCost + stateTax + luxuryTax; 
     finalAmountDue = numOrdered*totalCost; 
     DecimalFormat dollar = new DecimalFormat("0.00"); 
     JOptionPane.showMessageDialog(null, "Jasmine Jewelry INC: TOTAL COST BREAKDOWN" + "\nDiamond Cost: $" +dollar.format(diamondCost) + "\nSetting Cost: $" + dollar.format(settingCost) + "\nState Tax @ 10%: $" + dollar.format(stateTax) + "\nLuxury Tax @ 20%: $" + dollar.format(luxuryTax)+"\nLabor Charge @ 5%: $"+dollar.format(laborCost)+"\nTotal Price: $" + dollar.format(diamondCost+settingCost+stateTax+luxuryTax+laborCost) +"\n\nNumberOrdered: " + numOrdered + "\n\nAmount Due $" + dollar.format(finalAmountDue)); 

    } 
    static double calcExtraCost(double diamond, double rate) 
    { 
     double extraCharge = diamond*rate; 
     return extraCharge; 

    } 
} 
Смежные вопросы