当前位置:文档之家› Java基础实验报告-图形用户界面设计

Java基础实验报告-图形用户界面设计

南京工程学院实验报告课程名称 JAVA基础实验项目名称图形用户界面设计实验学生班级实验学生姓名学号同组学生姓名实验时间实验地点实验成绩评定指导教师签字年月日一、实验目的和要求1.掌握Java Swing组建的使用方法,包括窗口、框架、对话框、面板、文本编辑框、按钮、组合框等多种布局方式,掌握窗口菜单和快捷菜单设计方式。

2.理解委托时间处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面。

3.熟悉在组件上绘图的方法。

二、实验题目用表格存储并显示个人所得税税率表,给定一个月收入值,计算应缴的个人所得税。

三、实验方法与步骤(需求分析、算法设计思路、流程图等)算法设计思路:本次实验题目为计算个人所得税,所以本人从网上找到了国家最新的税收政策,以下为截图:因此,我设计了以下核心算法public void actionPerformed(ActionEvent e){if(e.getSource()==button_b){doublewage=Double.parseDouble((String)text_wage.getText());double tax = 0;if(wage<=3500)tax=0;if(wage>3500&&wage<=5000)tax=(wage-3500)*0.03;if(wage>5000&&wage<=8000)tax=(wage-3500)*0.1-105;if(wage>8000&&wage<=12500)tax=(wage-3500)*0.2-555;if(wage>12500&&wage<=38500)tax=(wage-3500)*0.25-1005;if(wage>38500&&wage<=58500)tax=(wage-3500)*0.3-2755;if(wage>58500&&wage<=83500)tax=(wage-3500)*0.35-5505;if(wage>83500)tax=(wage-3500)*0.45-13505;text.setText(""+tax);}}以上算法是根据税率表设计的,具体为:我国规定个人收入在3500元起征个人所得税,分了多个阶段:3500以下:不收税3500以上到5000以下部分:3%5000以上到8000以下部分:10%8000以上到以下部分:20%125000以上到385000以下部分:25%385000以上到585000以下部分:30%585000以上到835000以下部分:35%83500以上:45%首先算出每个阶段的速扣数,然后用此公式:应纳个人所得税税额=(应纳税所得-扣除标准)*适用税率-速算扣除数。

然后就得出以上算法。

四、实验原始纪录(源程序、数据结构等)import java.awt.*;import java.awt.event.*;import javax.swing.*;public class WageJFrame extends JFrame implements ActionListener{private JTable table;//表格private Button button_b;//按钮private Object datas[][];//数据String titles[];//标题(为空)private JTextField text;//个人所得税private JTextField text_wage;//输入的工资public WageJFrame(){super("计算个人所得税");Dimension dim=getToolkit().getScreenSize();//获得屏幕分辨率this.setBounds(dim.width/4,dim.height/4,dim.width/2,dim.height/2);/ /设置窗口大小this.setDefaultCloseOperation(EXIT_ON_CLOSE);//关闭窗口this.datas=new Object[8][4];//设置表格长宽JLabel label=new JLabel("工资");//“工资”标签text_wage=new JTextField("5000",7);//默认工资JPanel jpane1=new JPanel();//面板jpane1.add(label);//把标签加入面板中jpane1.add(text_wage);//把输入工资的文本框加入面板中 this.getContentPane().add(jpane1,"North");//把上述面板插入主面板中for(int i=0;i<=7;i++){datas[i][0]=i+1+"";}titles=new String[4];//设置标题titles[0]="级数";titles[1]="含级数距";titles[2]="税率";titles[3]="速扣数";datas[0][1]="不超过3500元";datas[1][1]="超过3500,不超过5000元";datas[2][1]="超过5000,不超过8000元";datas[3][1]="超过8000,不超过12500元";datas[4][1]="超过12500,不超过38500元";datas[5][1]="超过38500,不超过58500元";datas[6][1]="超过58500,不超过83500元";datas[7][1]="超过83500";datas[0][2]="0%";datas[1][2]="3%";datas[2][2]="10%";datas[3][2]="20%";datas[4][2]="25%";datas[5][2]="30%";datas[6][2]="35%";datas[7][2]="45%";datas[0][3]="0";datas[1][3]="0";datas[2][3]="105";datas[3][3]="555";datas[4][3]="1005";datas[5][3]="2755";datas[6][3]="5505";datas[7][3]="13505";table=new JTable(datas,titles);//创建一个表格this.getContentPane().add(new JScrollPane(table),"Center");button_b=new Button("计算个人所得税");button_b.addActionListener(this);//单击按钮响应事件JLabel label1=new JLabel("个人所得税");//创建个人所得税标签text=new JTextField(" ",7);//设置输出框text.setEditable(false);//输出文本框不可编辑JPanel jpane2=new JPanel();//创建一个面板jpane2.add(button_b);//把按钮加到面板中jpane2.add(label1);//把标签加入面板中(个人所得税)jpane2.add(text);//把输出文本框加入面板this.getContentPane().add(jpane2,"South");//把面板2加入主面板this.setVisible(true);//显示界面}public void actionPerformed(ActionEvent e)//响应单击事件{if(e.getSource()==button_b){doublewage=Double.parseDouble((String)text_wage.getText());double tax = 0;if(wage<=3500)tax=0;if(wage>3500&&wage<=5000)tax=(wage-3500)*0.03;if(wage>5000&&wage<=8000)tax=(wage-3500)*0.1-105;if(wage>8000&&wage<=12500)tax=(wage-3500)*0.2-555;if(wage>12500&&wage<=38500)tax=(wage-3500)*0.25-1005;if(wage>38500&&wage<=58500)tax=(wage-3500)*0.3-2755;if(wage>59500&&wage<=83500)tax=(wage-3500)*0.35-5505;if(wage>83500)tax=(wage-3500)*0.45-13505;text.setText(""+tax);}}public static void main(String args[]){new WageJFrame();//创建一个WageJFrame对象}}五、实验结果及分析(计算过程与结果、数据曲线、图表等)1初始界面2 工资为3500时的个人所得税3工资为28850时的个人所得税4工资为85000时的个人所得税六、实验总结与思考通过这次JAVA实验,我清晰地感受到了JAVA语言的魅力,作为现在使用很广的一种编程语言,的确有其补课替代的作用。

相关主题