⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taxcalculator.java

📁 java实现的税务计算器程序。中英文操作界面
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.Hashtable;
import javax.swing.table.*;
import java.util.*;
public class TaxCalculator extends JPanel implements ActionListener{
	//基本的变量和对象定义语句
	JTextField 免征起点,收入,计算结果;
	ButtonGroup group=null;
	JButton 计算,重置;
	private PrintAndModify  printAndModify;
    private String infileName="input.dat";
    private float serials[][]=new float [10][3];
	public TaxCalculator(){}
	//构造函数
	public TaxCalculator(int language){
		免征起点=new JTextField(10);
		收入=new JTextField(10);
		计算结果=new JTextField(10);
		计算结果.setEnabled(false);

		group=new ButtonGroup();
		计算=new JButton((language==0)?"Calculate":"计算");
		重置=new JButton((language==0)?"Reset":"重置");

        //添加两个按钮的时间监听
		计算.addActionListener(this);
		重置.addActionListener(this);

        //添加免征起点输入的文本框
		Box box1=Box.createHorizontalBox();
	    box1.add(new JLabel((language==0)?"Enter BaseFree:":"输入免征起点:",JLabel.CENTER));
	    box1.add(免征起点);

        //添加月收入输入的文本框
	    Box box2=Box.createHorizontalBox();
	    box2.add(new JLabel((language==0)?"Enter   Income:":"输入您的收入:"));
	    box2.add(收入);

        //添加计算结果输出的文本框
        Box box3=Box.createHorizontalBox();
	    box3.add(new JLabel((language==0)?"The Result is :":"计算的结果是:"));
	    box3.add(计算结果);

        //下面代码设置上面三个编辑框的水平和垂直位置,属性,并添加到容器中去
	    Box boxH=Box.createVerticalBox();
	    boxH.add(box1);
	    boxH.add(box2);
	    boxH.add(box3);

	    boxH.add(Box.createVerticalGlue());
	    JPanel pCenter=new JPanel();
	    pCenter.add(boxH);
	    setLayout(new BorderLayout());
	    add(pCenter,BorderLayout.CENTER);
	    //下面添加计算和重置按钮
	    JPanel pSouth=new JPanel();
	    pSouth.add(计算);
	    pSouth.add(重置);
	    add(pSouth,BorderLayout.SOUTH);
	    validate();
	}//end of constructor
	public void actionPerformed(ActionEvent e)
	 {
		if(e.getSource()==计算){
			Calculate();
		}
		else if(e.getSource()==重置){
			免征起点.setText(null);
			收入.setText(null);
		}
	 }
    public void Calculate(){
    	Emp t=null;
        String []rowNum;
        //下面读文件的代码在打印报表时调用过了,体现代码重用的功能,不过还要保证两块代码不要同时读文件哦
		printAndModify = new PrintAndModify( "input.dat", "output forinput.dat");
		    printAndModify.read();
		    Enumeration e = printAndModify.getEmps().elements();
		   // dm.addRow((Emp)e.getFieldValues());
		    int count=0;
		    //下面代码将printandmodify类读出的文件数据取出并且存在rowNum数组中备用
		    while ( e.hasMoreElements() ) {
		        t = (Emp) e.nextElement();
		        rowNum=new String[3];
		        rowNum[0]=t.fields[0];
		        rowNum[1]=t.fields[2];
		        rowNum[2]=t.fields[3];

		        serials[count][0]=Float.parseFloat(rowNum[0]);
		        serials[count][1]=Float.parseFloat(rowNum[1]);
		        serials[count][2]=Float.parseFloat(rowNum[2]);
		        count++;                                       //刚开始计数器忘加了,调试了半天,马虎害死人啊
		   }
		   //now calculator begins
		   float basefree=Float.parseFloat(免征起点.getText());
		   float income=Float.parseFloat(收入.getText());
		   float calcNum=income-basefree;
		   float tax=0;
		   //下面代码是计算的主题部分,主要是计算方法和把字符串转换为float
		   for (int i=0;i<count;i++){
			   if(calcNum<=serials[i][1]){
				   tax+=serials[i][2]*(calcNum-serials[i][0]);
				   break;
			   }
			   else if(calcNum>serials[i][1]){
				   tax+=serials[i][2]*(serials[i][1]-serials[i][0]);
			   }
			   }
			   if(calcNum>serials[count][0]){
				   tax+=serials[count][2]*(calcNum-serials[count][0]);
		   }
		   //设置结果文本框的内容
		   String str=Float.toString(tax);
           计算结果.setText(str);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -