zoukankan      html  css  js  c++  java
  • 复利计算总结

     import java.awt.Color; 
    import java.awt.Container; 
    import java.awt.Dimension; 
    import java.awt.FlowLayout; 
    import java.awt.Font; 
    import java.awt.Graphics; 
    import java.awt.GridLayout; 
    import java.awt.Image; 
    import java.awt.Toolkit; 
    import java.awt.event.ActionEvent; 
    import java.awt.event.ActionListener; 
    import java.text.NumberFormat; 
      
    import javax.swing.ImageIcon; 
    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; 
    import javax.swing.border.LineBorder; 
     
    public class Interest  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 Interest() 
    { 
    creatComponents()   ; 
    layoutComponents(); 
    registerHandlers(); 
    setTitle("复利存款应用程序"); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    pack(); 
    } 
    private void  creatComponents()  
    { 
    a1=new JLabel("本  金 "); 
    a1.setFont(new Font("宋体",Font.BOLD,18)); 
    a2=new JLabel("年利率 "); 
    a2.setFont(new Font("宋体",Font.BOLD,18)); 
    a3=new JLabel("年 数 "); 
    a3.setFont(new Font("宋体",Font.BOLD,18)); 
      
    b1=new JTextField(10); 
    b2=new JTextField(10); 
    b3=new JTextField(10); 
    c1=new JButton("计算"); 
    c1.setFont(new Font("宋体",Font.BOLD,15)); 
    c3=new JButton(""); 
    c3.setBackground(Color.GREEN); 
    c3.setToolTipText("LOVE YOU FOREVER"); 
    c3.setBorder(new LineBorder(Color.RED,3)); 
    c3.setFont(new Font("宋体",Font.BOLD,20)); 
    c3.setForeground(Color.YELLOW); 
    c2=new JButton("清除"); 
    c2.setFont(new Font("宋体",Font.BOLD,15)); 
    text=new JTextArea(); 
    } 
    private void layoutComponents() 
    { 
    //Container c=this.getContentPane();     
    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="年"+"/t"+"复利存款"+"/n"; 
         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); 
              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(""); 
    } 
    } 
    public static void main(String[] args) 
    { 
         Interest frame=new Interest(); 
        frame.setVisible(true); 
        frame.setSize(450,200);  
      frame.setResizable(false); 
    } 
    } 

    所用语言与工具:Java,Eclipse

    代码行:90行

    工作量(人时):2个小时

    本来估计要3小时左右,最后请教了别人快了很多

    一开始是用C做的,但C做的界面那些都不好看,改成用JAVA做了,期间遇到很多困难,但在多次的尝试下,慢慢解决,理解了更多JAVA制作窗口,更加熟练,也对函数的调用更加熟悉。

  • 相关阅读:
    适配器
    装饰器
    getOwnPropertyDescriptor
    发布订阅
    策略模式
    window.requestAnimationFrame() 和 window.cancelAnimationFrame()
    L1-056 猜数字
    L1-055 谁是赢家
    L1-054 福到了
    L1-053 电子汪
  • 原文地址:https://www.cnblogs.com/mafu0420/p/5289791.html
Copyright © 2011-2022 走看看