java实训报告1.docx
《java实训报告1.docx》由会员分享,可在线阅读,更多相关《java实训报告1.docx(23页珍藏版)》请在冰点文库上搜索。
![java实训报告1.docx](https://file1.bingdoc.com/fileroot1/2023-7/8/691131f4-a785-4a6c-8c86-e557075cd2d3/691131f4-a785-4a6c-8c86-e557075cd2d31.gif)
java实训报告1
四川机电职业技术学院
《JAVA课程设计》
题目:
简易计算器设计
班级:
10网络六班
姓名:
林璐
指导教师:
向模军
2011年1月2日
课程设计任务书
一、设计任务及要求:
采用项目化综合教程进行课程设计,制作一个简单的计算器,要求实现事件响应,完成各个部分,并进行调试,编写课程设计报告。
1、设计任务要求
(1)进一步巩固和加深“JAVA课程设计”课程的基本知识,了解JAVA设计知识在实际中的应用。
(2)综合运用“JAVA设计”课程和先修课程的理论及生产实际知识去分析和解决问题,进行的相关训练。
(3)学习JAVA设计的一般方法,了解和掌握JAVA在实现对象响应,培养正确的设计思想和分析问题、解决问题的能力。
3、设计报告要求
1)、设计报告要有封面、有页码;
2)、设计报告必须在2012年1月2日提交;
3)、设计报告必须交打印文档。
指导教师签名
年月日
二、指导教师评语:
指导教师签名
年月日
三、成绩评定
指导教师签名
年月日
目录
一、课题名称:
5
二、设计时间:
6
三、设计环境7
四、设计目的:
8
4.1进一步巩固和加深“JAVA课程设计”课程的基本知识,了解JAVA知识在实际中的应用。
8
4.2综合运用“JAVA课程设计”课程和先修课程的理论及生产实际知识去分析和解决问题,进行的相关训练。
8
五、设计要求9
5.1独立完成课程设计。
9
5.2要求熟练掌握JCreator的操作使用。
9
5.3熟练掌握JAVA设计基本方法。
9
六、设计内容与步骤10
6.1设计一个简单的计算器面板,添加相应的内容。
10
6.2在计算器面板上添加菜单及菜单项目11
6.3实现计算器上数字按钮的响应13
6.4添加标签、内容、按钮16
6.5完成计算器的所有制作,实现计算器的所有功能。
17
七、实训总结22
参考文献23
致谢24
一、课题名称:
JAVA实训
二、设计时间:
2011年12月26日——2011年1月2日
时间安排:
12月26日——1月2日设计、编码
1月2日:
书写设计报告、提交
三、设计环境
硬件:
多媒体机房
软件:
JCreatorprov4.0
四、设计目的:
4.1进一步巩固和加深“JAVA课程设计”课程的基本知识,了解JAVA知识在实际中的应用。
4.2综合运用“JAVA课程设计”课程和先修课程的理论及生产实际知识去分析和解决问题,进行的相关训练。
五、设计要求
5.1独立完成课程设计。
5.2要求熟练掌握JCreator的操作使用。
5.3熟练掌握JAVA设计基本方法。
六、设计内容与步骤
6.1设计一个简单的计算器面板,添加相应的内容。
importjava.util.*;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassCal1extendsJFrame
{
JPanelpl;
JTextFieldtxt;
String[]a={"","Back","Clear","","7","8","9","","4","5","6","","1","2","3","","0","+/-",".",""};
JButton[]b=newJButton[20];
publicvoidCalculater()
{
txt=newJTextField();
txt.setHorizontalAlignment(JTextField.RIGHT);
add(txt,BorderLayout.NORTH);
pl=newJPanel();
pl.setLayout(newGridLayout(5,4,1,1));
add(pl,BorderLayout.CENTER);
for(inti=0;i{
b[i]=newJButton(a[i]);
pl.add(b[i]);
}
setBounds(150,150,270,210);
setTitle("简易计算器");
setResizable(false);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
publicstaticvoidmain(Stringargs[])
{
newCal1().Calculater();
}
}
运行效果如图1-1
图片1
做一个简单的计算器界面,界面布局和内容应该和一般的计算器差不多,能实现加减乘除,清除后退这些简单的功能就可以。
6.2在计算器面板上添加菜单及菜单项目
importjava.util.*;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassCal2extendsJFrame
{
JMenuBarmbar;
JMenum1,m2;
JRadioButtonMenuItemm11,m12;
JMenuItemm21,m22;
ButtonGroupbg;
JPanelpl;
JTextFieldtxt;
String[]a={"","Back","Clear","","7","8","9","","4","5","6","","1","2","3","","0","+/-",".",""};
JButton[]b=newJButton[20];
publicvoidCalculater()
{
mbar=newJMenuBar();
bg=newButtonGroup();
m1=newJMenu("查看");
m11=newJRadioButtonMenuItem("科学型",true);
m12=newJRadioButtonMenuItem("标准型");
bg.add(m11);
bg.add(m12);
m1.add(m11);
m1.add(m12);
mbar.add(m1);
m2=newJMenu("");
m21=newJMenuItem("");
m22=newJMenuItem("");
m2.add(m21);
m2.add(m22);
mbar.add(m2);
txt=newJTextField();
txt.setHorizontalAlignment(JTextField.RIGHT);
add(txt,BorderLayout.NORTH);
pl=newJPanel();
pl.setLayout(newGridLayout(5,4,1,1));
add(pl,BorderLayout.CENTER);
for(inti=0;i{
b[i]=newJButton(a[i]);
pl.add(b[i]);
}
setBounds(150,150,270,210);
setTitle("简易计算器");
setResizable(false);
setJMenuBar(mbar);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
publicstaticvoidmain(Stringargs[])
{
newCal2().Calculater();
}
}
运行效果如图2-2
图片2
添加菜单栏:
查看、帮助,并且添加菜单项目列表,点击菜单项目不作出响应
6.3实现计算器上数字按钮的响应
importjava.util.*;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassCal3extendsJFrameimplementsActionListener
{
JMenuBarmbar;
JMenum1,m2;
JRadioButtonMenuItemm11,m12;
JMenuItemm21,m22;
ButtonGroupbg;
JPanelpl;
JTextFieldtxt;
String[]a={"","Back","Clear","","7","8","9","","4","5","6","","1","2","3","","0","+/-",".",""};
JButton[]b=newJButton[20];
publicvoidCalculater()
{
mbar=newJMenuBar();
bg=newButtonGroup();
m1=newJMenu("查看");
m11=newJRadioButtonMenuItem("科学型",true);
m12=newJRadioButtonMenuItem("标准型");
bg.add(m11);
bg.add(m12);
m1.add(m11);
m1.add(m12);
mbar.add(m1);
m2=newJMenu("帮助");
m21=newJMenuItem("反馈");
m22=newJMenuItem("关于作者");
m2.add(m21);
m2.add(m22);
mbar.add(m2);
txt=newJTextField();
txt.setHorizontalAlignment(JTextField.RIGHT);
add(txt,BorderLayout.NORTH);
pl=newJPanel();
pl.setLayout(newGridLayout(5,4,1,1));
add(pl,BorderLayout.CENTER);
for(inti=0;i{
b[i]=newJButton(a[i]);
b[i].addActionListener(this);
pl.add(b[i]);
}
setBounds(150,150,270,210);
setTitle("简易计算器");
setResizable(false);
setJMenuBar(mbar);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
publicstaticvoidmain(Stringargs[])
{
newCal3().Calculater();
}
publicvoidactionPerformed(ActionEvente)
{
JButtonbv=(JButton)e.getSource();
Stringsc=txt.getText();
if(bv==b[1])
if(sc.length()>=1)
txt.setText(sc.substring(0,sc.length()-1));
if(bv==b[2])
txt.setText("");
if(bv==b[4]||bv==b[5]||bv==b[6]||bv==b[8]||bv==b[9]||bv==b[10]||bv==b[12]||bv==b[13]||bv==b[14])
txt.setText(sc+bv.getText());
if(bv==b[16])
if(sc.length()>=1)
txt.setText(sc+"0");
if(bv==b[17])
{
booleanisNumber=true;
if(sc.length()==0)
isNumber=false;
for(inti=0;iif(!
(sc.charAt(i)>='0'&&sc.charAt(i)<='9'||sc.charAt(i)=='.'||sc.charAt(i)=='-'))
{
isNumber=false;
break;
}
if(isNumber==true)
if(sc.charAt(0)=='-')
txt.setText(sc.substring(1,sc.length()));
else
txt.setText('-'+sc);
}
if(bv==b[18])
{
booleanclickable=true;
if(sc.length()==0)
clickable=false;
for(inti=0;iif('.'==txt.getText().charAt(i))
{
clickable=false;
break;
}
if(clickable==true)
txt.setText(sc+".");
}
}
}
运行效果如图3
图片3
实现数字和清除、后退按钮的响应,此时只能响应数字键。
6.4添加标签、内容、按钮
importjava.util.*;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassCal4extendsJFrameimplementsActionListener
{
JMenuBarmbar;
intn,shu=(int)Math.random()*100;
JLabellab=newJLabel("");
JTextFieldtxt=newJTextField("");
JButtonbtn=newJButton("");
publicvoidCalculater()
{
add(lab);
add(txt);
add(btn);
btn.addActionLister(this);
setBounds(150,150,270,210);
setTitle("简易计算器");
setResizable(false);
setJMenuBar(mbar);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
publicstaticvoidmain(Stringargs[])
{
newCal4().Calculater();
}
publicvoidactionPerformed(ActionEvente)
{
}
}
运行效果如图4-4
图片4
这一步主要是完成计算器的个数字键的响应,但还不能响应运算符,计算结果,一个简单的界面就这样产生了
6.5完成计算器的所有制作,实现计算器的所有功能。
importjava.util.*;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassCal5extendsJFrameimplementsActionListener
{
intn;
doublenum1,num2;
JMenuBarmbar;
JMenum1,m2;
JRadioButtonMenuItemm11,m12;
JMenuItemm21,m22;
ButtonGroupbg;
JPanelpl;
JTextFieldtxt;
String[]a={"","Back","Clear","","7","8","9","","4","5","6","","1","2","3","","0","+/-",".",""};
JButton[]b=newJButton[20];
publicvoidCalculater()
{
mbar=newJMenuBar();
bg=newButtonGroup();
m1=newJMenu("查看");
m11=newJRadioButtonMenuItem("科学型",true);
m12=newJRadioButtonMenuItem("标准型");
bg.add(m11);
bg.add(m12);
m1.add(m11);
m1.add(m12);
mbar.add(m1);
m2=newJMenu("帮助");
m21=newJMenuItem("反馈");
m22=newJMenuItem("关于作者");
m2.add(m21);
m2.add(m22);
m22.addActionListener(newMyActLister());
mbar.add(m2);
txt=newJTextField();
txt.setHorizontalAlignment(JTextField.RIGHT);
add(txt,BorderLayout.NORTH);
pl=newJPanel();
pl.setLayout(newGridLayout(5,4,1,1));
add(pl,BorderLayout.CENTER);
for(inti=0;i{
b[i]=newJButton(a[i]);
b[i].addActionListener(this);
pl.add(b[i]);
}
setBounds(150,150,270,210);
setTitle("简易计算器");
setResizable(false);
setJMenuBar(mbar);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
publicstaticvoidmain(Stringargs[])
{
newCal5().Calculater();
}
publicvoidactionPerformed(ActionEvente)
{
JButtonbv=(JButton)e.getSource();
Stringsc=txt.getText();
if(bv==b[1])
if(sc.length()>=1)
txt.setText(sc.substring(0,sc.length()-1));
if(bv==b[2])
txt.setText("");
if(bv==b[4]||bv==b[5]||bv==b[6]||bv==b[8]||bv==b[9]||bv==b[10]||bv==b[12]||bv==b[13]||bv==b[14])
txt.setText(sc+bv.getText());
if(bv==b[16])
if(sc.length()>=1)
txt.setText(sc+"0");
if(bv==b[17])
{
booleanisNumber=true;
if(sc.length()==0)
isNumber=false;
for(inti=0;iif(!
(sc.charAt(i)>='0'&&sc.charAt(i)<='9'||sc.charAt(i)=='.'||sc.charAt(i)=='-'))
{
isNumber=false;
break;
}
if(isNumber==true)
if(sc.charAt(0)=='-')
txt.setText(sc.substring(1,sc.length()));
else
txt.setText('-'+sc);
}
if(bv==b[18])
{
booleanclickable=true;
if(sc.length()==0)
clickable=false;
for(inti=0;iif('.'==sc.charAt(i))
{
clickable=false;
break;
}
if(clickable==true)
txt.setText(sc+".");
}
if(bv==b[19]||bv==b[15]||bv==b[11]||bv==b[7])
{
if(sc.length()!
=0)
num1=Double.parseDouble(sc);
txt.setText("");
}
if(bv==b[19])n=1;
if(bv==b[15])n=2;
if(bv==b[11])n=3;
if(bv==b[7])n=4;
if(bv==b[3])
{
if(sc.length()!
=0)
num2=Double.parseDouble(sc);
switch(n)
{
case1:
txt.setText(String.valueOf(num1+num2));break;
case2:
txt.setText(St