当前位置: 代码迷 >> Java相关 >> 求大神帮忙写一个初级java(内附题目)
  详细解决方案

求大神帮忙写一个初级java(内附题目)

热度:330   发布时间:2011-11-22 14:43:14.0
求大神帮忙写一个初级java(内附题目)
Write a Java program for a bank that will calculate the monthly interest earned on a cashdeposit. The user enters the amount deposited, the term, and interest rate. The program willthen display a table listing for the month, interest, total interest, and account balance for eachperiod. For example, if the amount deposited is $2000.00, the term is 6 months and theinterest rate is 2%, the following output will be displayed:
编写一个Java程序,将计算银行每月的现金存款所赚取的利息。用户输入存入的金额,期限,利率。该计划将显示表中列出的为一个月,利息,利息总额,帐户余额为每个时期。例如,如果存入的金额是$ 2000.00,期限为6个月,利率为2%,将显示以下输出:
程序代码:
Period Interest Total Interest Total Balance
1        6.66      6.66           2006.66
2        6.69      13.35          2013.35
3        6.71      20.06         2020.06
4        6.74      26.80         2026.80
5        6.75      33.55         2033.55
6        6.78      40.33        2040.33

Initial deposit: $2000.00
Total Interest: $40.33
Total Balance: $2040.33
搜索更多相关的解决方案: java  银行  following  interest  account  

----------------解决方案--------------------------------------------------------
在校学生,啥也不会。。。求大神帮助。。。
----------------解决方案--------------------------------------------------------
这是那个傻逼出的题,
----------------解决方案--------------------------------------------------------
我今天晚上写了个,发出来,这是我写的,你自己再修改补充吧...
程序代码:
import java.text.DecimalFormat;
import java.util.Scanner;

public class BankCalRate {
    double amount;
    double rate;
    int term;

    BankCalRate() {
        this.amount = 0;
        this.term = 1;
        this.rate = 0;
    }

    BankCalRate(double amount, int term) {
        this.amount = amount;
        this.term = term;
        this.rate = 0.005;
    }

    BankCalRate(double amount, int term, double rate) {
        this.amount = amount;
        this.term = term;
        this.rate = rate / term;
    }

    public void setAmount(double amount) {
        this.amount = amount;
    }

    public double getAmount() {
        return amount;
    }

    public void setTerm(int term) {
        this.term = term;
    }

    public int getTerm() {
        return term;
    }

    public void setRate(double rate) {
        this.rate = rate / term;
    }

    public double getRate() {
        return rate;
    }

    /**
     * 提供给用户的信息输入,以便用户可以了解其相应信息的结果
     
*/
    public void ImfoInput() {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入计算的金额:");
        amount = scan.nextDouble();
        System.out.println("请输入该金额存款时间长度:");
        term = scan.nextInt();
        System.out.println("请输入目前的利息率:");
        rate = scan.nextDouble() / term;
    }

    public void ExceptRateInput() {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入计算的金额:");
        amount = scan.nextDouble();
        System.out.println("请输入该金额存款时间长度:");
        term = scan.nextInt();
    }

    /**
     * 计算每个月的后的总金额
     *
     *
@return
     
*/
    double[] CalA() {
        double[] resulta = new double[term + 1];
        resulta[0] = amount * (1 + rate);

        for (int i = 1; i < term; i++) {
            resulta[i] = resulta[i - 1] * (1 + rate);
        }
        return resulta;
    }

    /**
     * 计算每个月的后的利息
     *
     *
@return
     
*/
    double[] CalR() {
        double[] resultr = new double[term];
        resultr[0] = amount * rate;
        double sumrate = 0;
        for (int i = 1; i < term; i++) {
            resultr[i] = (amount + sumrate) * rate;
            sumrate += resultr[i - 1];
        }
        return resultr;
    }

    /**
     * 计算每个月总金额与利息 返回一个两行的数组result[2][] 第一行result[0]是每个月后的总金额数组
     * 第二行result[1]是每个月的利息数组
     *
     *
@return result[2][]
     *
     
*/
    public double[][] Calculate() {
        double[][] result = new double[2][];
        result[0] = CalA();
        result[1] = CalR();
        return result;
    }

    public void output(double[] resulta, double[] resultr) {
        double sumrate = 0;
        System.out.println("输出结果如下:");
        DecimalFormat df = new DecimalFormat(" 0.00 ");
        for (int i = 0; i < term; i++) {
            sumrate += resultr[i];
            System.out.println((i + 1) + "\t" + df.format(resultr[i]) + "\t"
                    + df.format(sumrate) + "\t" + df.format(resulta[i]));
        }
        System.out.println("原始金额:"+df.format(resulta[0]-resultr[1]));
        System.out.println("到期后的利息:"+df.format(resulta[term-1]-resulta[0]+resultr[0]));
        System.out.println("到期后的总金额:"+df.format(resulta[term-1]));
    }

    public static void main(String[] args) {
        BankCalRate bcr = new BankCalRate(2000, 6, 0.02);
        double[][] result = bcr.Calculate();
        bcr.output(result[0], result[1]);
        int months=bcr.getTerm();
        //System.out.println("原始金额:"+(result[0][0]-result[1][0]));
        
//System.out.println("到期后的利息:"+(result[0][months-1]-result[0][0]+result[1][0]));
        
//System.out.println("到期后的总金额:"+result[0][months-1]);
        Scanner scan = new Scanner(System.in);
        String str;
        while (true) {
            System.out.println("确定要输入金额?Y or N:");
            str = scan.next();
            if (str.equalsIgnoreCase("n") || str.equalsIgnoreCase("no"))
                break;
            System.out.println("默认利率是0.005,您选择默认的吗?Y or N:");
            str = scan.next();
            if (str.equalsIgnoreCase("y") || str.equalsIgnoreCase("yes")) {

                bcr.ExceptRateInput();
                result = bcr.Calculate();
                bcr.output(result[0], result[1]);
            } else {

                bcr.ImfoInput();
                result = bcr.Calculate();
                bcr.output(result[0], result[1]);
            }
        }
    }

}


[ 本帖最后由 youlishen 于 2011-11-24 23:01 编辑 ]
----------------解决方案--------------------------------------------------------
  相关解决方案