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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

南京工程学院实验报告课程名称JAVA基础实验项目名称图形用户界面设计实验学生班级实验学生姓名学号同组学生姓名实验时间实验地点实验成绩评定指导教师签字年月日一、实验目的和要求1.掌握JavaSwing组建的使用方法,包括窗口、框架、对话框、面板、文本编辑框、按钮、组合框等多种布局方式,掌握窗口菜单和快捷菜单设计方式。2.理解委托时间处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面。3.熟悉在组件上绘图的方法。二、实验题目用表格存储并显示个人所得税税率表,给定一个月收入值,计算应缴的个人所得税。三、实验方法与步骤(需求分析、算法设计思路、流程图等)算法设计思路:本次实验题目为计算个人所得税,所以本人从网上找到了国家最新的税收政策,以下为截图:因此,我设计了以下核心算法publicvoidactionPerformed(ActionEvente){if(e.getSource()==button_b){doublewage=Double.parseDouble((String)text_wage.getText());doubletax=0;if(wage=3500)tax=0;if(wage3500&&wage=5000)tax=(wage-3500)*0.03;if(wage5000&&wage=8000)tax=(wage-3500)*0.1-105;if(wage8000&&wage=12500)tax=(wage-3500)*0.2-555;if(wage12500&&wage=38500)tax=(wage-3500)*0.25-1005;if(wage38500&&wage=58500)tax=(wage-3500)*0.3-2755;if(wage58500&&wage=83500)tax=(wage-3500)*0.35-5505;if(wage83500)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(wage3500&&wage=5000)tax=(wage-3500)*0.03;if(wage5000&&wage=8000)tax=(wage-3500)*0.1-105;if(wage8000&&wage=12500)tax=(wage-3500)*0.2-555;if(wage12500&&wage=38500)tax=(wage-3500)*0.25-1005;if(wage38500&&wage=58500)tax=(wage-3500)*0.3-2755;if(wage59500&&wage=83500)tax=(wage-3500)*0.35-5505;if(wage83500)tax=(wage-3500)*0.45-13505;text.setText(+tax);}}publicstaticvoidmain(Stringargs[]){newWageJFrame();//创建一个WageJFrame对象}}五、实验结果及分析(计算过程与结果、数据曲线、图表等)1初始界面2工资为3500时的个人所得税3工资为28850时的个人所得税4工资为85000时的个人所得税六、实验总结与思考通过这次JAVA实验,我清晰地感受到了JAVA语言的魅力,作为现在使用很广的一种编程语言,的确有其补课替代的作用。从这次实验上看,我对JAVA变成有我资深的只是局限性,毕竟这么厚一本书,在这么点时间内还是很难读透搞懂的,真正等到自己亲自去实验时,却发现问题多多,有的人写代码程序,实现一个功能用了几十行,而有的人却用简短几行就能搞定,开始让我觉得不可思议,但后面慢慢的编程中,我真四体会到了,所以我觉得这方面很重要。我觉得JAVA对未来走向社会很重要,而这个大作业的编写,正好锻炼了我对JAVA的编程能力。对JAVA有了更深的认识,知识不是瞬间获得的,是靠平时一点一滴的积累和吸收每次的经验得来的。教师评语:

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功