java实训报告090123014 王政文档格式.docx

上传人:b****2 文档编号:5830564 上传时间:2023-05-05 格式:DOCX 页数:20 大小:27.50KB
下载 相关 举报
java实训报告090123014 王政文档格式.docx_第1页
第1页 / 共20页
java实训报告090123014 王政文档格式.docx_第2页
第2页 / 共20页
java实训报告090123014 王政文档格式.docx_第3页
第3页 / 共20页
java实训报告090123014 王政文档格式.docx_第4页
第4页 / 共20页
java实训报告090123014 王政文档格式.docx_第5页
第5页 / 共20页
java实训报告090123014 王政文档格式.docx_第6页
第6页 / 共20页
java实训报告090123014 王政文档格式.docx_第7页
第7页 / 共20页
java实训报告090123014 王政文档格式.docx_第8页
第8页 / 共20页
java实训报告090123014 王政文档格式.docx_第9页
第9页 / 共20页
java实训报告090123014 王政文档格式.docx_第10页
第10页 / 共20页
java实训报告090123014 王政文档格式.docx_第11页
第11页 / 共20页
java实训报告090123014 王政文档格式.docx_第12页
第12页 / 共20页
java实训报告090123014 王政文档格式.docx_第13页
第13页 / 共20页
java实训报告090123014 王政文档格式.docx_第14页
第14页 / 共20页
java实训报告090123014 王政文档格式.docx_第15页
第15页 / 共20页
java实训报告090123014 王政文档格式.docx_第16页
第16页 / 共20页
java实训报告090123014 王政文档格式.docx_第17页
第17页 / 共20页
java实训报告090123014 王政文档格式.docx_第18页
第18页 / 共20页
java实训报告090123014 王政文档格式.docx_第19页
第19页 / 共20页
java实训报告090123014 王政文档格式.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

java实训报告090123014 王政文档格式.docx

《java实训报告090123014 王政文档格式.docx》由会员分享,可在线阅读,更多相关《java实训报告090123014 王政文档格式.docx(20页珍藏版)》请在冰点文库上搜索。

java实训报告090123014 王政文档格式.docx

使用组件构建的C/S应用程序

各项功能的组织合理搭配应用

图标控制功能实现

构建基于C/S架构的应用程序

Swing组件应用

项目打包方法应用

Swing组件的应用

事件监听器的使用

异常处理

一、项目需求

计算器在人们的生活中处处可见,人们的生活已经离不开便捷的计算器。

本次实训项目—计算器实现如下功能:

(1)计算机主界面

包含了计算机的0~910个数字按钮,“+”、“-”、“×

”、“÷

”简单的四则运算符号,另外本项目还增加了一个求倒数算法,表达符号为:

“1/x”。

(2)功能介绍

数字按钮:

向计算器传递数字消息,0~9数字信息

算术运算按钮:

向计算器传递“+”、“-”、“×

”运算信息,进行计算功能的判断和实现。

其他按钮:

小数点按钮--将整形的0~9数字转化为浮点型数字,用于精确计算。

正负号按钮–将数字转化为正、负形式。

退格按钮--清楚当前屏幕显示数字中的数值,从后向前清除。

求倒数按钮–计算当前数字的倒数。

等号按钮--计算表达式的值。

清零按钮--清除当前屏幕数字信息,符号为“C”。

二、项目设计

在设计记事本系统中包含了3个Java源文件:

ComputerPad.java、NumberButton.java、OperationButton.java其中ComputerPad.java中包含了程序的的入口main()方法。

下面是3个源文件实现的各个功能介绍:

(1)ComputerPad.java源文件(public主类)

ComputerPad类继承了Frame类,并实现了事件监听的接口。

在该public类中定义了计算器需要的图形界面,框架,按钮等成员数据(成员属性)。

ComputerPad类中定义的成员方法有ComputerPad()构造器,初始化计算器界面。

重写了接口ActionListener的方法actonPerformed(ActionEvente),对计算器的按钮实现监听控制。

Main()方法,计算器程序启动的入口。

(2)NumberButton.java源文件

NumberButton类设置了计算器的数字按钮为blue颜色。

(3)OperationButton.java源文件

OperationButton类设置了计算器的操纵按钮(运算符号)等为red颜色。

程序的入口ComputerPad主类,其中的成员对象和成员方法如下所示:

1)成员对象

NumberButtonnumberButton[];

数字数组,存放0~9数组

OperationButtonoprationButton[];

操纵按钮数组,运算符号等

Buttonxsdb,zfb,tgb,dsb,db,qlb;

小数点按钮,正负号按钮,退格按钮,

求倒数按钮,等号按钮,清零按钮。

Panelpanel;

框架

JTextFieldresultShow;

文本域,计算器的显示的文本信息

Stringysf[]={"

+"

"

-"

*"

/"

};

LinkedListlb;

booleanadh=false;

2)成员方法

publicComputerPad()是无参构造方法,在构造方法中实现了计算器界面的初始化操作。

PublicvoidactionPreformed(actionEvente)是接口ActionListener的事件监听方法。

publicstaticvoidmain(String[]args)是main主方法,在主方法中通过无参构造方法ComputerPad()实例化了计算器。

3)代码

packagejsq;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.border.*;

importjava.util.LinkedList;

importjava.text.NumberFormat;

publicclassComputerPadextendsFrameimplementsActionListener

{

NumberButtonnumberButton[];

Buttonxsdb,zfb,tgb,

dsb,db,qlb;

booleanadh=false;

publicComputerPad()

{

super("

计算器"

);

lb=newLinkedList();

numberButton=newNumberButton[10];

for(inti=0;

i<

=9;

i++)

numberButton[i]=newNumberButton(i);

numberButton[i].addActionListener(this);

}

oprationButton=newOperationButton[4];

4;

oprationButton[i]=newOperationButton(ysf[i]);

oprationButton[i].addActionListener(this);

xsdb=newButton("

."

zfb=newButton("

+/-"

db=newButton("

="

dsb=newButton("

1/x"

tgb=newButton("

退格"

qlb=newButton("

C"

qlb.setForeground(Color.red);

tgb.setForeground(Color.red);

db.setForeground(Color.red);

dsb.setForeground(Color.blue);

zfb.setForeground(Color.blue);

xsdb.setForeground(Color.blue);

tgb.addActionListener(this);

qlb.addActionListener(this);

db.addActionListener(this);

xsdb.addActionListener(this);

zfb.addActionListener(this);

dsb.addActionListener(this);

resultShow=newJTextField(10);

resultShow.setHorizontalAlignment(JTextField.RIGHT);

resultShow.setForeground(Color.blue);

resultShow.setFont(newFont("

TimesRoman"

Font.PLAIN,14));

resultShow.setBorder(newSoftBevelBorder(BevelBorder.LOWERED));

resultShow.setBackground(Color.white);

resultShow.setEditable(false);

panel=newPanel();

panel.setLayout(newGridLayout(4,5));

panel.add(numberButton[1]);

panel.add(numberButton[2]);

panel.add(numberButton[3]);

panel.add(oprationButton[0]);

panel.add(qlb);

panel.add(numberButton[4]);

panel.add(numberButton[5]);

panel.add(numberButton[6]);

panel.add(oprationButton[1]);

panel.add(tgb);

panel.add(numberButton[7]);

panel.add(numberButton[8]);

panel.add(numberButton[9]);

panel.add(oprationButton[2]);

panel.add(dsb);

panel.add(numberButton[0]);

panel.add(zfb);

panel.add(xsdb);

panel.add(oprationButton[3]);

panel.add(db);

add(panel,BorderLayout.CENTER);

add(resultShow,BorderLayout.NORTH);

addWindowListener(newWindowAdapter()

{publicvoidwindowClosing(WindowEvente)

System.exit(0);

});

setVisible(true);

setBounds(100,50,240,180);

setResizable(false);

validate();

publicvoidactionPerformed(ActionEvente)

if(e.getSource()instanceofNumberButton)

NumberButtonb=(NumberButton)e.getSource();

if(lb.size()==0)

intnumber=b.getNumber();

lb.add("

"

+number);

resultShow.setText("

adh=false;

elseif(lb.size()==1&

&

adh==false)

Stringnum=(String)lb.getFirst();

Strings=num.concat("

lb.set(0,s);

resultShow.setText(s);

adh==true)

lb.removeFirst();

elseif(lb.size()==2)

elseif(lb.size()==3)

Stringnum=(String)lb.getLast();

lb.set(2,s);

elseif(e.getSource()instanceofOperationButton)

OperationButtonb=(OperationButton)e.getSource();

if(lb.size()==1)

Stringfuhao=b.getysf();

lb.add(fuhao);

elseif(lb.size()==2)

lb.set(1,fuhao);

elseif(lb.size()==3)

Stringnumber1=(String)lb.getFirst();

Stringnumber2=(String)lb.getLast();

Stringysf=(String)lb.get

(1);

try

doublen1=Double.parseDouble(number1);

doublen2=Double.parseDouble(number2);

doublen=0;

if(ysf.equals("

))

n=n1+n2;

elseif(ysf.equals("

n=n1-n2;

n=n1*n2;

n=n1/n2;

lb.clear();

+n);

catch(Exceptionee)

elseif(e.getSource()==db)

adh=true;

if(lb.size()==1||lb.size()==2)

+num);

lb.set(0,"

lb.removeLast();

elseif(e.getSource()==xsdb)

elseif(lb.size()==1)

Stringdot=xsdb.getLabel();

Strings=null;

if(num.indexOf(dot)==-1)

s=num.concat(dot);

else

s=num;

if(num.indexOf(dot)==-1)

}

elseif(e.getSource()==tgb)

if(lb.size()==1)

if(num.length()>

=1)

num=num.substring(0,num.length()-1);

lb.set(0,num);

resultShow.setText(num);

0"

{num=num.substring(0,num.length()-1);

lb.set(2,num);

elseif(e.getSource()==zfb)

doubled=Double.parseDouble(number1);

d=-1*d;

Stringstr=String.valueOf(d);

lb.set(0,str);

resultShow.setText(str);

doubled=Double.parseDouble(number2);

lb.set(2,str);

elseif(e.getSource()==dsb)

if(lb.size()==1||lb.size()==2)

d=1.0/d;

elseif(e.getSource()==qlb)

{

publicstaticvoidmain(Stringargs[])

newComputerPad();

}

4)计算器使用效果图

图1计算器图

三、项目总结

通过这次实训,增加了我学习Java技术的兴趣,虽然还不明确软件技术包含的具体内容,但从java语言这门课程开始,已发现程序设计的乐趣,在学习java语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。

这次实训是老师给了范例程序,经过自己的改写,实现要求。

先做简单框架,一步步的再做其它子框架,在实际操作过程中犯的一些错误还会有意外的收获,感觉实训很有意思。

在具体操作中对这学期所学的java语言的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到java语言具有的语句简洁,使用灵活,执行效率高等特点。

四、心得体会

这次实习,与我而言收获颇丰,它不仅让我认识到自己的不足所在和以后努力的方向。

还让我进一步理解面向对象程序设计的基本概念,掌握程序设计的基本方法和技巧,灵活的使用包,进一步的理解接口,熟练的掌握在接口中对事件的实现。

深入理解和灵活运用面向对象程序设计的基本特性,培养良好的程序设计风格,提高抽象思维、逻辑思维的能力。

我很庆幸能在这样有限的时间里,在这么和谐的气氛中学习,和同学们一起相处,我也努力向他们学习,不懂就问,认真完成老师交给我的每一项任务。

他们也都尽力帮助我,给我讲授Java相关的编程知识,耐心解答我的疑难困惑,帮助我尽快达到了实训的目的,再次感谢我的指导老师及各位同学对我的无私帮助。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2