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.d);
CeButton = new Button("CE");
d);
CButton = new Button("C");
CButton.d);
EqButton = new Button("=");
EqButton.d); //将“Backspace”、“CE”、”C”、“=”显示为红
BkButton.addActionListener(this);
nListener(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 = ContentPane(); //采用默认的BorderLayout布局cp
cp.add(p2,BorderLayout.NORTH);
R);
}
(3)方法名:actionPerformed
作用:设置各个按钮的行为
public void actionPerformed(ActionEvent event)
{
boolean sign = false; //判断是否是double型数参与运算,是为true,不是为false
Object temp = Source();
try
{
for (int i = 0; i <= 9; i++) //如果按下数据按钮,将按下的按钮代表的数据插入的当前文本框字符串之后
if (temp == button[i] && clickable == true)
displayField.Text() + String(i));
//按下'.'按钮时,判断当前文本框内字符串中含不含'.',如果已含,则不允许再插入'.'
if (temp == button[14] && clickable == true)
{
……….
}
if ( (temp == button[10] || temp == button[11] || temp == button[12] || temp == button[13]) && clickable == true)
{
//'+'操作
if (temp == button[10])
{
…………
}
//'-'操作
if (temp == button[11])
{
…………
}
基于java的课程设计题目 //'*'操作
if (temp == button[12])
{
…………
}
//'/'操作
if (temp == button[13])
{
…………
}
//'='操作
if (temp == EqButton && clickable == true)
{
…………
}
//按下'+/-'按钮时处理
if (temp == button[15] && clickable == true)
{
…………
}
//按下'Backspace'键,利用循环将当前字符串中的最后一个字母删除
if (temp == BkButton && clickable == true)
{
…………
}
//按下'CE'按钮,将当前文本框内数据清除
if (temp == CeButton)
{
………
}
//按下'C'按钮,文本框内数据清除,同时var,answer清0
if (temp == CButton)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论