1.客户说:帮我开发一个复利计算软件。
客户提出:
2.如果按照单利计算,本息又是多少呢?
3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢?
客户又想:
4.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢?
package cai; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.NumberFormat; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; public class cch extends JFrame{ private JLabel a1; private JLabel a2; private JLabel a3; private JTextField b1; private JTextField b2; private JTextField b3; private JButton c1; private JButton c2; private JButton c3; private JTextArea text; public cch() { creatComponents(); layoutComponents(); registerHandlers(); setTitle("复利存款应用程序(守护)"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); } private void creatComponents() { a1=new JLabel("本金"); //a1.setFont("宋体",Font.BOLD,18); a2=new JLabel("年利率"); a3=new JLabel("年数"); b1=new JTextField(10); b2=new JTextField(10); b3=new JTextField(10); c1=new JButton("计算"); c3=new JButton("诺诺"); c3.setBackground(Color.GREEN); c3.setToolTipText("LOVE YOU FOREVER"); c2=new JButton("清除"); text=new JTextArea(); } private void layoutComponents() { setLayout(new FlowLayout()); JPanel panel1=new JPanel(); panel1.add(a1); panel1.add(b1); JPanel panel2=new JPanel(); panel2.add(a2); panel2.add(b2); JPanel panel3=new JPanel(); panel3.add(a3); panel3.add(b3); JPanel panel4=new JPanel(); panel4.add(c1); panel4.add(c3); panel4.add(c2); JPanel leftpanel=new JPanel(new GridLayout(4,1)); leftpanel.add(panel1); leftpanel.add(panel2); leftpanel.add(panel3); leftpanel.add(panel4); JScrollPane panel5=new JScrollPane(text); panel5.setPreferredSize(new Dimension(200,150)); add(leftpanel); add(panel5); } private void registerHandlers() { c1ActionEventHander hander1=new c1ActionEventHander(); c1.addActionListener(hander1); c2ActionEventHander hander2=new c2ActionEventHander(); c2.addActionListener(hander2); c3ActionEventHander hander3=new c3ActionEventHander(); c3.addActionListener(hander3); } private class c1ActionEventHander implements ActionListener { public void actionPerformed(ActionEvent e) { double principal; double amount; double rate; int n; NumberFormat currencyformatter=NumberFormat.getCurrencyInstance(); String output="年"+" "+"复利存款"+" "; int year=1; principal=Double.parseDouble(b1.getText()); rate=Double.parseDouble(b2.getText()); n=Integer.parseInt(b3.getText()); while(year<=n) { //amount=principal*Math.pow(1+rate,year); amount=principal*(1+rate*year); //amount=principal/(1+rate*year); output+=String.valueOf(year)+" "+currencyformatter.format(amount)+" "; year=year+1; } text.setText(output); } } private class c2ActionEventHander implements ActionListener { public void actionPerformed(ActionEvent e) { b1.setText(""); b2.setText(""); b3.setText(""); text.setText(""); } } private class c3ActionEventHander implements ActionListener { public void actionPerformed(ActionEvent e) { b1.setText(""); b2.setText(""); b3.setText(""); text.setText("守护 love 花姑娘"); } } public static void main(String[] args) { cch frame=new cch(); frame.setVisible(true); frame.setSize(450,200); frame.setResizable(false); } }
实现功能点:
1.输入本金、利率、年限复利、单利计算存款;
2.输入利率、年限、存款复利、单利计算本金;
3.一键清除输入框内数据。