zoukankan      html  css  js  c++  java
  • 软件工程---复利计算8.0

    代码如下:

    import java.awt.Container;
    import java.awt.Graphics;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    
    public class main extends JFrame implements ActionListener, ItemListener {
    
    	private String msg[] = { "复利计算", "单利计算", "本金计算", "求期限", "求利率", "投资计算" };
    	Graphics g;
    	private JButton JBfind = new JButton("确认");
    	private JButton JBclearMsg = new JButton("清除信息");
    	private Container con;
    
    	private JComboBox<Object> JCBStart;
    	private JComboBox<Object> JCBEnd;
    	JTextField jP = new JTextField();
    	JTextField ji = new JTextField();
    	JTextField jn = new JTextField();
    	JTextField jm = new JTextField("1");
    	JTextField jF = new JTextField();
    	JLabel j1 = new JLabel("本金");
    	JLabel j2 = new JLabel("利率");
    	JLabel j3 = new JLabel("期限");
    	JLabel j4 = new JLabel("次数");
    	JLabel j5 = new JLabel("终值");
    	JLabel ti = new JLabel("复利计算器");
    
    	/**
    	 * @param args
    	 */
    	public main() {
    		con = this.getContentPane();
    		// 选择框
    		JCBStart = new JComboBox<Object>(msg);
    		JCBStart.setEditable(false);// 不可编辑
    		JCBStart.setBounds(10, 170, 135, 30);
    		// 为选择框添加监听
    		// JCBStart.addItemListener(this);
    		// JCBEnd.addItemListener(this);
    
    		// 按钮位置,大小
    		JBfind.setBounds(220, 420, 90, 30);
    		JBclearMsg.setBounds(320, 420, 90, 30);
    		// 添加动作监听
    		 JBfind.addActionListener(this);
    		 JBclearMsg.addActionListener(this);
    
    		// 文字及显示面板
    		jP.setBounds(220, 170, 220, 30);
    		ji.setBounds(220, 220, 220, 30);
    		jn.setBounds(220, 270, 220, 30);
    		jm.setBounds(220, 320, 220, 30);
    		jF.setBounds(220, 370, 220, 30);
    		j1.setBounds(180, 170, 30, 30);
    		j2.setBounds(180, 220, 30, 30);
    		j3.setBounds(180, 270, 30, 30);
    		j4.setBounds(180, 320, 30, 30);
    		j5.setBounds(180, 370, 30, 30);
    		ti.setBounds(300, 50, 100, 100);
    		// 显示信息
    
    		// 设置容器
    		con.setLayout(null);
    		con.setSize(600, 600);
    		con.setLocation(0, 0);
    
    		// 把组件添加到容器中
    		con.add(JCBStart);
    		con.add(JBfind);
    		con.add(JBclearMsg);
    		con.add(jF);
    		con.add(ji);
    		con.add(jm);
    		con.add(jn);
    		con.add(jP);
    		con.add(j1);
    		con.add(j2);
    		con.add(j3);
    		con.add(j4);
    		con.add(j5);
    		con.add(ti);
    
    		this.setSize(600, 600);
    		this.setLocation(300, 300);
    		this.setResizable(false); // 窗体大小不可变
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 关闭窗体结束程序
    		this.setVisible(true);// 显示窗体;
    
    	}
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		new main();
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		// TODO Auto-generated method stub
    		if (e.getActionCommand().equals("确认")) {
    			double P=0;
    			double i=0;
    			double n=0;
    			double m=0;
    			double F=0;
    			String select = (String) JCBStart.getSelectedItem();
    			if (select == "复利计算") {
    				P = Double.valueOf(jP.getText().toString()).doubleValue();
    				i = Double.valueOf(ji.getText().toString()).doubleValue();
    				n = Double.valueOf(jn.getText().toString()).doubleValue();
    				m = Double.valueOf(jm.getText().toString()).doubleValue();
    				F = P * (Math.pow((1 + i / m), n * m));
    				jF.setText(Double.toString(F));
    			} else if (select == "单利计算") {
    				P = Double.valueOf(jP.getText().toString()).doubleValue();
    				i = Double.valueOf(ji.getText().toString()).doubleValue();
    				n = Double.valueOf(jn.getText().toString()).doubleValue();
    				m = Double.valueOf(jm.getText().toString()).doubleValue();
    			
    				F = P * (1 + i * n);
    				jF.setText(Double.toString(F));
    			} else if (select == "本金计算") {
    				
    				i = Double.valueOf(ji.getText().toString()).doubleValue();
    				n = Double.valueOf(jn.getText().toString()).doubleValue();
    				m = Double.valueOf(jm.getText().toString()).doubleValue();
    				F = Double.valueOf(jF.getText().toString()).doubleValue();
    				P = F / Math.pow((1 + i),n);
    				jP.setText(Double.toString(P));
    			} else if (select == "求期限") {
    				P = Double.valueOf(jP.getText().toString()).doubleValue();
    				i = Double.valueOf(ji.getText().toString()).doubleValue();
    				
    				m = Double.valueOf(jm.getText().toString()).doubleValue();
    				F = Double.valueOf(jF.getText().toString()).doubleValue();
    				n=Math.log((double)(F/P))/(Math.log((double)(1+i)));
    				jn.setText(Double.toString(n));
    			} else if (select == "求利率") {
    				P = Double.valueOf(jP.getText().toString()).doubleValue();
    				
    				n = Double.valueOf(jn.getText().toString()).doubleValue();
    				m = Double.valueOf(jm.getText().toString()).doubleValue();
    				F = Double.valueOf(jF.getText().toString()).doubleValue();
    				i =( Math.pow(F/P, 1.0 / n))-1;
    				ji.setText(Double.toString(i));
    			} else if (select == "投资计算") {
    				P = Double.valueOf(jP.getText().toString()).doubleValue();
    				i = Double.valueOf(ji.getText().toString()).doubleValue();
    				n = Double.valueOf(jn.getText().toString()).doubleValue();
    				m = Double.valueOf(jm.getText().toString()).doubleValue();
    				
    				for (int j = 0; j < n*m; j++) {
    					P = P * (1 + i);
    				}
    				F = P;
    				jF.setText(Double.toString(F));
    			}
    
    		}
    		else if(e.getActionCommand().equals("清除信息")) {
    			jF.setText("");
    			jP.setText("");
    			ji.setText("");
    			jn.setText("");
    			jm.setText("1");
    			
    		}
    
    	}
    
    	@Override
    	public void itemStateChanged(ItemEvent e) {
    		// TODO Auto-generated method stub
    
    	}
    
    }
    

      

    运行结果:

     

    <转载请标明出处及附上本网页的链接,谢谢>

  • 相关阅读:
    python 并发编程 多线程 event
    python 并发编程 多线程 定时器
    python 并发编程 多线程 信号量
    linux top 查看CPU命令
    python 并发编程 多线程 GIL与多线程
    python 并发编程 多线程 死锁现象与递归锁
    python 并发编程 多线程 GIL与Lock
    python GIL全局解释器锁与互斥锁 目录
    python 并发编程 多线程 GIL全局解释器锁基本概念
    执行python程序 出现三部曲
  • 原文地址:https://www.cnblogs.com/wucanlong/p/5288526.html
Copyright © 2011-2022 走看看