
高分求解, Java 作业题,各位高手能否帮忙看一下?
作业要求:编写一个银行贷款计算器。显示如下:LoanAmount:贷款金额(单位:澳元)LoanTerm:贷款期限(单位:年)Interest:利息(百分比)Calcul...
作业要求:编写一个银行贷款计算器。显示如下:
Loan Amount:贷款金额(单位:澳元)
Loan Term:贷款期限(单位:年)
Interest:利息(百分比)
Calculate:计算按键
Fortnightly Repayments:每两周应还的数额
Year:年份
Balance at the end of the year:年终时候应还贷款的余额
要求如下:
在空白区域显示年份和余额,支持滚动条。
当输入不合法的时候显示:“Pleaseenter valid values”(请输入有效数值)。如下图
提供有两条代码:
·每日还款额
public doublegetDailyRepayments(){
double a =interest/365;
double days =loanTerm*365;
returna*loanAmount/(1-1/Math.pow(1+a,days));
}
·特定天数之后的还款余额
public doublebalanceAfterDays(int d){
double a =interest/365;
double days =loanTerm*365;
returnloanAmount*(Math.pow(1+a,days)-Math.pow(1+a,d))/(Math.pow(1+a,days)-1);
}
非常感谢!如果写完,我希望能把所有的四五百悬赏分都送给你!谢谢! 展开
Loan Amount:贷款金额(单位:澳元)
Loan Term:贷款期限(单位:年)
Interest:利息(百分比)
Calculate:计算按键
Fortnightly Repayments:每两周应还的数额
Year:年份
Balance at the end of the year:年终时候应还贷款的余额
要求如下:
在空白区域显示年份和余额,支持滚动条。
当输入不合法的时候显示:“Pleaseenter valid values”(请输入有效数值)。如下图
提供有两条代码:
·每日还款额
public doublegetDailyRepayments(){
double a =interest/365;
double days =loanTerm*365;
returna*loanAmount/(1-1/Math.pow(1+a,days));
}
·特定天数之后的还款余额
public doublebalanceAfterDays(int d){
double a =interest/365;
double days =loanTerm*365;
returnloanAmount*(Math.pow(1+a,days)-Math.pow(1+a,d))/(Math.pow(1+a,days)-1);
}
非常感谢!如果写完,我希望能把所有的四五百悬赏分都送给你!谢谢! 展开
1个回答
展开全部
package calculate;
public class Calculate {
private double interest;
private double loanTerm;
private double loanAmount;
public Calculate(double interest, double loanTerm, double loanAmount) {
this.interest = interest;
this.loanTerm = loanTerm;
this.loanAmount = loanAmount;
}
public double getDailyRepayments() {
double a = interest / 365;
double days = loanTerm * 365;
return a * loanAmount / (1 - 1 / Math.pow(1 + a, days));
}
public double balanceAfterDays(int d) {
double a = interest / 365;
double days = loanTerm * 365;
return loanAmount * (Math.pow(1 + a, days) - Math.pow(1 + a, d))
/ (Math.pow(1 + a, days) - 1);
}
// public static void main(String[] args) {
// Calculate c = new Calculate(0.058,10,100000);
// System.out.println(c.getDailyRepayments()*14);
// System.out.println(c.balanceAfterDays(365));
// }
}
上面这个是你提供的计算类,下面这个是主类,我x,Myeclipse的代码复制过来怎么那么多空格。。
package ui;
import java.text.DecimalFormat;
import javax.swing.DefaultListModel;
import javax.swing.JOptionPane;
import calculate.Calculate;
/**
*
* @author lsc
*/
public class Main extends javax.swing.JFrame {
private Calculate c = null;
private double loanAmount;
private int loanTerm;
private double interest;
/** Creates new form Main */
public Main() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
// GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
tla = new javax.swing.JTextField();
tlt = new javax.swing.JTextField();
ti = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
tfr = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
jList1 = new javax.swing.JList();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(
new org.netbeans.lib.awtextra.AbsoluteLayout());
jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jButton1.setText("calculate");
jButton1.setActionCommand("calculate");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jPanel1.add(jButton1,
new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 160, -1,
-1));
jLabel1.setText("Loan Amount");
jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(
60, 20, -1, -1));
jLabel2.setText("Loan Term");
jPanel1.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(
60, 60, -1, -1));
jLabel3.setText("Interest");
jPanel1.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(
60, 100, -1, -1));
jPanel1.add(tla, new org.netbeans.lib.awtextra.AbsoluteConstraints(150,
20, 130, -1));
jPanel1.add(tlt, new org.netbeans.lib.awtextra.AbsoluteConstraints(150,
60, 130, -1));
jPanel1.add(ti, new org.netbeans.lib.awtextra.AbsoluteConstraints(150,
100, 100, -1));
jLabel4.setText("AUD");
jPanel1.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(
300, 20, -1, -1));
jLabel5.setText("years");
jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(
300, 60, -1, -1));
jLabel6.setText("%");
jPanel1.add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(
280, 100, -1, -1));
jLabel7.setText("Fortnightly Repayments");
jPanel1.add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(
50, 230, 150, 20));
tfr.setEditable(false);
jPanel1.add(tfr, new org.netbeans.lib.awtextra.AbsoluteConstraints(260,
230, 80, -1));
jLabel8.setText("year");
jPanel1.add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(
50, 270, -1, -1));
jLabel9.setText("Balance at the end of the year");
jPanel1.add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(
170, 270, -1, -1));
jList1.setModel(new javax.swing.AbstractListModel() {
String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4",
"Item 5" };
public int getSize() {
return strings.length;
}
public Object getElementAt(int i) {
return strings[i];
}
});
jScrollPane1.setViewportView(jList1);
jPanel1.add(jScrollPane1,
new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 300, 290,
130));
getContentPane().add(
jPanel1,
new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 400,
450));
pack();
}// </editor-fold>
// GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
DecimalFormat df = new DecimalFormat("0.00 ");
try {
loanAmount = Double.parseDouble(tla.getText());
loanTerm = Integer.parseInt(tlt.getText());
interest = Double.parseDouble(ti.getText()) / 100;
c = new Calculate(interest, loanTerm, loanAmount);
tfr.setText(df.format(c.getDailyRepayments() * 14));// 两周即每天*14,保留两位小数
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Pleaseenter valid values");
return;
}
double blance;
String[] listDate = new String[loanTerm];
DefaultListModel dl = new DefaultListModel();
for (int i = 0; i < loanTerm; i++) {
blance = c.balanceAfterDays(365 * (i + 1));
listDate[i] = i
+ 1
+ " "
+ df.format(blance);
dl.addElement(listDate[i]);
}
jList1.setModel(dl);
}
/**
* @param args
* the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
Main m = new Main();
m.setLocationRelativeTo(null);
m.setVisible(true);
}
});
}
// GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JList jList1;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextField tfr;
private javax.swing.JTextField ti;
private javax.swing.JTextField tla;
private javax.swing.JTextField tlt;
// End of variables declaration//GEN-END:variables
}
public class Calculate {
private double interest;
private double loanTerm;
private double loanAmount;
public Calculate(double interest, double loanTerm, double loanAmount) {
this.interest = interest;
this.loanTerm = loanTerm;
this.loanAmount = loanAmount;
}
public double getDailyRepayments() {
double a = interest / 365;
double days = loanTerm * 365;
return a * loanAmount / (1 - 1 / Math.pow(1 + a, days));
}
public double balanceAfterDays(int d) {
double a = interest / 365;
double days = loanTerm * 365;
return loanAmount * (Math.pow(1 + a, days) - Math.pow(1 + a, d))
/ (Math.pow(1 + a, days) - 1);
}
// public static void main(String[] args) {
// Calculate c = new Calculate(0.058,10,100000);
// System.out.println(c.getDailyRepayments()*14);
// System.out.println(c.balanceAfterDays(365));
// }
}
上面这个是你提供的计算类,下面这个是主类,我x,Myeclipse的代码复制过来怎么那么多空格。。
package ui;
import java.text.DecimalFormat;
import javax.swing.DefaultListModel;
import javax.swing.JOptionPane;
import calculate.Calculate;
/**
*
* @author lsc
*/
public class Main extends javax.swing.JFrame {
private Calculate c = null;
private double loanAmount;
private int loanTerm;
private double interest;
/** Creates new form Main */
public Main() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
// GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
tla = new javax.swing.JTextField();
tlt = new javax.swing.JTextField();
ti = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
tfr = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
jList1 = new javax.swing.JList();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(
new org.netbeans.lib.awtextra.AbsoluteLayout());
jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jButton1.setText("calculate");
jButton1.setActionCommand("calculate");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jPanel1.add(jButton1,
new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 160, -1,
-1));
jLabel1.setText("Loan Amount");
jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(
60, 20, -1, -1));
jLabel2.setText("Loan Term");
jPanel1.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(
60, 60, -1, -1));
jLabel3.setText("Interest");
jPanel1.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(
60, 100, -1, -1));
jPanel1.add(tla, new org.netbeans.lib.awtextra.AbsoluteConstraints(150,
20, 130, -1));
jPanel1.add(tlt, new org.netbeans.lib.awtextra.AbsoluteConstraints(150,
60, 130, -1));
jPanel1.add(ti, new org.netbeans.lib.awtextra.AbsoluteConstraints(150,
100, 100, -1));
jLabel4.setText("AUD");
jPanel1.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(
300, 20, -1, -1));
jLabel5.setText("years");
jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(
300, 60, -1, -1));
jLabel6.setText("%");
jPanel1.add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(
280, 100, -1, -1));
jLabel7.setText("Fortnightly Repayments");
jPanel1.add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(
50, 230, 150, 20));
tfr.setEditable(false);
jPanel1.add(tfr, new org.netbeans.lib.awtextra.AbsoluteConstraints(260,
230, 80, -1));
jLabel8.setText("year");
jPanel1.add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(
50, 270, -1, -1));
jLabel9.setText("Balance at the end of the year");
jPanel1.add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(
170, 270, -1, -1));
jList1.setModel(new javax.swing.AbstractListModel() {
String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4",
"Item 5" };
public int getSize() {
return strings.length;
}
public Object getElementAt(int i) {
return strings[i];
}
});
jScrollPane1.setViewportView(jList1);
jPanel1.add(jScrollPane1,
new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 300, 290,
130));
getContentPane().add(
jPanel1,
new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 400,
450));
pack();
}// </editor-fold>
// GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
DecimalFormat df = new DecimalFormat("0.00 ");
try {
loanAmount = Double.parseDouble(tla.getText());
loanTerm = Integer.parseInt(tlt.getText());
interest = Double.parseDouble(ti.getText()) / 100;
c = new Calculate(interest, loanTerm, loanAmount);
tfr.setText(df.format(c.getDailyRepayments() * 14));// 两周即每天*14,保留两位小数
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Pleaseenter valid values");
return;
}
double blance;
String[] listDate = new String[loanTerm];
DefaultListModel dl = new DefaultListModel();
for (int i = 0; i < loanTerm; i++) {
blance = c.balanceAfterDays(365 * (i + 1));
listDate[i] = i
+ 1
+ " "
+ df.format(blance);
dl.addElement(listDate[i]);
}
jList1.setModel(dl);
}
/**
* @param args
* the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
Main m = new Main();
m.setLocationRelativeTo(null);
m.setVisible(true);
}
});
}
// GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JList jList1;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextField tfr;
private javax.swing.JTextField ti;
private javax.swing.JTextField tla;
private javax.swing.JTextField tlt;
// End of variables declaration//GEN-END:variables
}
追问
你好,能不能加我QQ695816036?等我程序运行好了再把剩余的分数建几个问题都给你。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询