Java基础实验报告图形用户界面设计.docx
《Java基础实验报告图形用户界面设计.docx》由会员分享,可在线阅读,更多相关《Java基础实验报告图形用户界面设计.docx(10页珍藏版)》请在冰豆网上搜索。
Java基础实验报告图形用户界面设计
南京工程学院
实验报告
课程名称JAVA基础
实验项目名称图形用户界面设计
实验学生班级
实验学生姓名
学 号
同组学生姓名
实验时间
实验地点
实验成绩评定
指导教师签字年月日
1、实验目的和要求
1.掌握JavaSwing组建的使用方法,包括窗口、框架、对话框、面板、文本编辑框、按钮、组合框等多种布局方式,掌握窗口菜单和快捷菜单设计方式。
2.理解委托时间处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面。
3.熟悉在组件上绘图的方法。
二、实验题目
用表格存储并显示个人所得税税率表,给定一个月收入值,计算应缴的个人所得税。
3、实验方法与步骤(需求分析、算法设计思路、流程图等)
算法设计思路:
本次实验题目为计算个人所得税,所以本人从网上找到了国家最新的税收政策,以下为截图:
因此,我设计了以下核心算法
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==button_b)
{
doublewage=Double.parseDouble((String)text_wage.getText());
doubletax=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%
首先算出每个阶段的速扣数,然后用此公式:
应纳个人所得税税额=(应纳税所得-扣除标准)*适用税率-速算扣除数。
然后就得出以上算法。
四、实验原始纪录(源程序、数据结构等)
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassWageJFrameextendsJFrameimplementsActionListener
{
privateJTabletable;//表格
privateButtonbutton_b;//按钮
privateObjectdatas[][];//数据
Stringtitles[];//标题(为空)
privateJTextFieldtext;//个人所得税
privateJTextFieldtext_wage;//输入的工资
publicWageJFrame()
{
super("计算个人所得税");
Dimensiondim=getToolkit().getScreenSize();//获得屏幕分辨率
this.setBounds(dim.width/4,dim.height/4,dim.width/2,dim.height/2);//设置窗口大小
this.setDefaultCloseOperation(EXIT_ON_CLOSE);//关闭窗口
this.datas=newObject[8][4];//设置表格长宽
JLabellabel=newJLabel("工资");//“工资”标签
text_wage=newJTextField("5000",7);//默认工资
JPaneljpane1=newJPanel();//面板
jpane1.add(label);//把标签加入面板中
jpane1.add(text_wage);//把输入工资的文本框加入面板中
this.getContentPane().add(jpane1,"North");//把上述面板插入主面板中
for(inti=0;i<=7;i++)
{
datas[i][0]=i+1+"";
}
titles=newString[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=newJTable(datas,titles);//创建一个表格
this.getContentPane().add(newJScrollPane(table),"Center");button_b=newButton("计算个人所得税");
button_b.addActionListener(this);//单击按钮响应事件
JLabellabel1=newJLabel("个人所得税");//创建个人所得税标签
text=newJTextField("",7);//设置输出框
text.setEditable(false);//输出文本框不可编辑
JPaneljpane2=newJPanel();//创建一个面板
jpane2.add(button_b);//把按钮加到面板中
jpane2.add(label1);//把标签加入面板中(个人所得税)
jpane2.add(text);//把输出文本框加入面板
this.getContentPane().add(jpane2,"South");//把面板2加入主面板
this.setVisible(true);//显示界面
}
publicvoidactionPerformed(ActionEvente)//响应单击事件
{
if(e.getSource()==button_b)
{
doublewage=Double.parseDouble((String)text_wage.getText());
doubletax=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);
}
}
publicstaticvoidmain(Stringargs[])
{
newWageJFrame();//创建一个WageJFrame对象
}
}
5、实验结果及分析(计算过程与结果、数据曲线、图表等)
1初始界面
2工资为3500时的个人所得税
3工资为28850时的个人所得税
4工资为85000时的个人所得税
6、实验总结与思考
通过这次JAVA实验,我清晰地感受到了JAVA语言的魅力,作为现在使用很广的一种编程语言,的确有其补课替代的作用。
从这次实验上看,我对JAVA变成有我资深的只是局限性,毕竟这么厚一本书,在这么点时间内还是很难读透搞懂的,真正等到自己亲自去实验时,却发现问题多多,有的人写代码程序,实现一个功能用了几十行,而有的人却用简短几行就能搞定,开始让我觉得不可思议,但后面慢慢的编程中,我真四体会到了,所以我觉得这方面很重要。
我觉得JAVA对未来走向社会很重要,而这个大作业的编写,正好锻炼了我对JAVA的编程能力。
对JAVA有了更深的认识,知识不是瞬间获得的,是靠平时一点一滴的积累和吸收每次的经验得来的。
教师评语: