java课程设计报告(完整版)
- 格式:doc
- 大小:132.50 KB
- 文档页数:18
目录
1、摘要
2、概要设计
3、详细设计
4、测试分析
5、总结
6、参考文献
【前言】
Java不依赖平台的特点使得它受到广泛的关注,Java已成为网络时代最重要的语言之一。Java语言不仅是一门正在被广泛使用的编程语言,而且已成为软件设计开发者应当掌握的一门基础语言。目前,很多新的技术领域都涉及Java语言,国内外许多大学已将Java语言列入了本科教学计划,掌握Java已经成为共识。
本次课程设计就是利用java语言来编写简单的计算器,能进行加、减、乘、除四则运算,下面给出了该设计的理论分析和具体步骤。
一、摘要
本计算器可以进行简单的四则运算(加、减、乘、除),但仅限于十进制下。“Backspace”按钮表示退格,“CE”按钮表示清除当前文本框内的数据,“C”按钮表示清除文本框内数据,同时var、answer清零。该程序可在JCreator环境下直接运行。
二、概要设计
1、自定义说明
(1)类名:Calculator
作用:主类
继承的父类:JFrame类
实现的接口:ActionListener类
public class Calculator extends JFrame implements ActionListener
{
private static String[] btnTexts = {"0","1","2","3","4","5","6","7","8","9","+","-","*","/",".","+/-"}; //定义数组bstTexts来存放计算器上的各个按钮
Button button[] = new Button[16];
Button BkButton,CeButton,CButton,EqButton;
boolean clickable; //控制当前能否按键
double vard, answerd; //用来保存double型数据的中间值(vard)和最后结
果(answerd)
short key = -1, prekey = -1; //key用来保存当前进行何种运算,prekey用
来保存前次进行何种运算DecimalFormat df; //设置数据输出精度
private JTextField displayField = new JTextField(" "); //计算结果显示区
public Calculator()
{
………
}
public void actionPerformed(ActionEvent event)
{
………
}
}
(2)方法名:Calculator
作用:设置窗体布局
public Calculator()
{
//Frame frame = new Frame("Calculator");
super("Calculator"); //显示主窗口标题“Calculator”
df = new DecimalFormat("0.00000000"); //设置数据输出精度(对于double
型值)
BkButton = new Button("Backspace");
BkButton.setForeground(Color.red);
CeButton = new Button("CE");
CeButton.setForeground(Color.red);
CButton = new Button("C");
CButton.setForeground(Color.red);
EqButton = new Button("=");
EqButton.setForeground(Color.red); //将“Backspace”、“CE”、”C”、
“=”显示为红色
BkButton.addActionListener(this);
CeButton.addActionListener(this);
CButton.addActionListener(this);
EqButton.addActionListener(this);
displayField.setHorizontalAlignment(JTextField.RIGHT); //将计算结
果显示在displayField的右面
JPanel p1 = new JPanel(new FlowLayout()); //以FlowLayout布局p1 p1.add(BkButton);
p1.add(CeButton);
p1.add(CButton);
p1.add(EqButton); //设置四个按钮:"Backspace","CE","C","="
JPanel p2 = new JPanel(new GridLayout(2,1)); //以GridLayout布局p2 p2.add(displayField);
p2.add(p1); //加入显示结果的JTextField和p1
JPanel p3 = new JPanel(new GridLayout(4,4)); //以GridLayout布局p3 for(int i = 0;i < btnTexts.length;i++)
{
button[i] = new Button(btnTexts[i]); //将数组btnTexts[]的值
赋给数组button[] button[i].setForeground(Color.blue); //组件button的前景色显
示蓝色
p3.add(button[i]);
button[i].addActionListener(this);
}
Container cp = this.getContentPane(); //采用默认的BorderLayout
布局cp
cp.add(p2,BorderLayout.NORTH);
cp.add(p3,BorderLayout.CENTER);
}
(3)方法名:actionPerformed
作用:设置各个按钮的行为
public void actionPerformed(ActionEvent event)
{
boolean sign = false; //判断是否是double型数参与运算,是为true,
不是为false
Object temp = event.getSource();
try
{
for (int i = 0; i <= 9; i++) //如果按下数据按钮,将按下的按钮代表
的数据插入的当前文本框字符串之后