JAVA程序设计课程实训报告
一、实训目的
知识目标
1.了解图形用户界面的编程思路及方法;
2.了解事件及事件处理机制;
3.掌握常用的图形用户界面组件;
4.掌握容器布局的设置方法及组件的添加方法;
5.掌握常见事件类型及事件处理方法;
能力目标
1.与客户沟通的基本能力;
2.团队协作的基本能力;
3.编程的良好习惯;
4.软件调试和测试的能力;
5.查阅文献的能力;
二、项目设置:
1、实训内容
利用所学Java程序设计语言实现一个图形化的计算器。
2、实训要求
1.程序运行正常无误,系统层次清晰合理;
2.实训内容里的要求必须要全面实现;
3.实训过程中要仔细操作,细心观察,勤于思考,注意记录;
4.实训报告要做到文字通畅、论点正确、论述有据;
5.要求学生在指导教师的指导下,独立完成实训的全部内容;
6.在规定时间内完成实训的全部任务,并按规定格式上交实训报告;
三、实训设备
硬件:个人电脑、
软件:JCreator Pro 3。50、JDK1.6.0_23
四、实训过程
以上的图表示实训编写的程序没有错误,可以正常的运行
以上的图是运行程序时所显示出来的小小计算机的界面
为了实际的运行一下计算机的功能,此时输入1加2
此时计算机上显示的是数字1和数字2相加的结果,3.
为了实际的运行一下计算机的功能,此时输入数字1乘数字2
此时计算机上显示的是数字1和数字2相乘的结果,2。
因为上述的两个小算数成功的运算出正确的结果所以此时关闭小小简单计算机的界面此时出现的编程图面为:
计算机程序的源码:
import java.awt.*;
import java。awt。event。*;
import javax。swing。*; //计算机界面
class CalculatorPanel extends JPanel
{
private JLabel display;
private JPanel panel;
private double result; //用以存放最后的计算结果
private String lastCommand; //计算你选择的运算方式
private boolean start;
public CalculatorPanel()
{
setLayout(new BorderLayout());
result=0;
lastCommand=\"=\";
start=true;
display=new JLabel(”0\RIGHT);
display.setBorder(BorderFactory。createCompoundBorder(BorderFactory。createLineBorder(Color。black),BorderFactory。createEmptyBorder(5,5,5,
5)));
//createCompoundBorder意为设置组合边框,createLineBorder意为设置线边框,createEmptyBorder意为设置一个空的边框,因为是空边框在此处是看不见的,目的是为了占位子
add(display,BorderLayout.NORTH);
ActionListener insert=new InsertAction();
ActionListener command=new CommandAction();
panel=new JPanel(); //计算机按钮的布局
panel。setLayout(new GridLayout(4,4)) //添加按钮及相应的事件监听
addButton(\"7”,insert);
addButton(”8”,insert);
addButton(”9”,insert);
addButton(”/\
addButton(\"4”,insert);
addButton(\"5”,insert);
addButton(\"6\",insert);
addButton(\"*”,command);
addButton(”1\;
addButton(”2”,insert);
addButton(”3”,insert);
addButton(\"-\",command);
addButton(\"0”,insert);
addButton(”。”,insert);
addButton(”=”,command);
addButton(\"+\",command);
add(panel,BorderLayout.CENTER);
}
//点击按钮会触发ActionEvent事件,事件监听器接口ActionListener,接口实现的方法ActionPerformed,注册事件的监听器add ActionListener。
private void addButton(String label,ActionListener listener)
{
JButton button=new JButton(label);
button。addActionListener(listener);
panel。add(button); //按钮监听器类,用于显示
}
private class InsertAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String input=event。getActionCommand();
if(start)
{
display。setText(””);
start=false;
}
display.setText(display.getText()+input);
}
}
//按钮监听器类,用于监听计算
private class CommandAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String command=event。getActionCommand();
//获取你点击的那个按钮
if(start)
{
if(command。equals(”=”))
{
display。setText(”command\");
start=false;
}
else
{
lastCommand=command;
}
}
else
{
calculate(Double。parseDouble(display。getText()));
//进行数据计算,输入的是字符串,所以要进行强制类型的转换
lastCommand=command;
start=true;
}
}
}
//计算类 两个方法:setTest()设置标签中的内容,getTest()获取标签中的方法;
public void calculate(double x)
{
if(lastCommand.equals(”+\"))
{
result+=x;
}
else if(lastCommand.equals(”-”))
{
result-=x;
}
else if(lastCommand。equals(\"*”))
{
result*=x;
}
else if(lastCommand。equals(”/\"))
{
result/=x;
}
else if(lastCommand.equals(”=\"))
{
result=x;
}
display。setText(”\"+result);
}
}
class CalculatorFrame extends JFrame
{
public CalculatorFrame()
{
setTitle(”计算机\");
Container contentPane=getContentPane();
CalculatorPanel panel=new CalculatorPanel();
contentPane。add(panel);
}
}
public class CalculatorExample
{
public static void main(String[] args)
{
CalculatorFrame frame=new CalculatorFrame();
frame。setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame。setSize(200,200);
frame。setVisible(true);
frame。setResizable(false);
}
}
五、实训总结
在本学期的期末临近之时很高兴我们能有一个星期的实训课程,我们在学校机房进行了为期一周的JAVA实训。一周的实训现在即将结束了,回首本学期的java学习,重点还是在学习概念等一些常识性的东西,关于类型、变量、接口、输入输出流、分析异常、抛出异常,后期主要是用JAVA编写一个应用程序,目的是实现简单的计算机的计算,在编程中遇到了很多不懂的难题,但是经过我们大家的讨论和老师细心的一一指导,问题得到了解决,同时也更深刻的认识到要做一个合格的程序员并非我以前想像的那么容易,最重要的还是细致严谨,并将理论与实践相结合才可以写好一段代码,以下是我在这次一周中的一些感悟和体会:
本次老师要求我们做的简单编程“小小计算机”基本功能已经较好的完成,像平常的加减乘除已经可以实际的运用了,可是还是有一些不完善,比如我们的计算机不能计算平方,立方,根号,所以我觉得总体还是有些不完善,我们的指导老师对我们编程时遇到的问题作出了大体评价,粗心并且还不细心,因为我们往往一个程序编写下来很多的错误是因为花括号的乱运用,前后相同字母大小写的不符,标点符号的有无,和标点符号的书写环境(中文输入法,拼音输入法)……当发现很多错误的情况下我们往往还不能及时的发现这些潜在
的问题,每当这时我都才深刻的感觉到认识到了自己不足,在编写这些应用程序时,一个小小的符号,一个常量变量的设定,这都无不考量着我们的细心和严谨,所以学习JAVA,不仅对我们以后学习其他语言有很大的好处,而且也让我们知道了和理解了作为一个编程人员首先应具有的良好心理素质,那就是冷静思考和专心致志。对待学术知识应该是严谨和认真。 通过这一周的实训,个人觉得总体上收获挺大的,通过这次的实训我想我们更多学到的是不懂就问和自己应该尽自己的全力去尝试,哪怕失败,只要自己尽自己的全力,和身边同学一起探讨而不是抄袭,团结合作,发挥团队意识,只有将所学知识充分融入到平时的学习生活中去,为以后的工作做好坚实的基础.感谢学校和老师能够为我们提供这次机会,同时也更深刻的认识到要认真的学习好一门课程不仅是学习它的理论知识还要将其用生活的去,在生活中去实践,去更好的学习,很多事情都不像我们看到的那么容易,需要认真,严谨,和探求知识实践热情的态度,在此次实训的一周中我想我们今后应该学习的东西还有很多,在今后的学习生活中我们会更加努力.
因篇幅问题不能全部显示,请点此查看更多更全内容