大学java课程设计实验报告_计算器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA课程设计报告
组员信息:
第(二)组
计算器的实现问题
问题描述:制作一个计算器
基本要求:要求实现类似Windows操作系统里面的标准计算器。
在此基础上实现部分科学性的功能。
测试数据:分别对加、减、乘、除和sin、cos、tan函数进行测试
算法思想:使用String定义的数组a[25]对每个按钮进行按钮赋值,创建一个Panel进行字符和数字的存放,调用
addActionListener()对各个时间进行监听。调用
系统库函数对数值进行运算。
模块划分:1、主函数main()创建一个计算器。
2、void actionPerformed(ActionEvent e)对鼠标
点击的事件进行响应以及在文本框中的显示。
3、各Buuton对应的功能:
“开方”:对输入数字开方
“平方”:对输入数字平方
“getResult()”:对四则运算进行分别运算操
作
“backspace”:取消上一次的操作
“CE”:取消上一次运算的操作
“C”:清空作用
“sin”:对输入数据进行sin运算
“cos”:对输入数据进行cos运算
“tan”:对输入数据进行tan运算
“+/-”:对输入的数据取反
“+”,“-”,“*”,“/”:对数据进行四则
运算
源程序:
package hechongwei;
import ng.String;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import ng.Math;
class Calculator extends JFrame implements ActionListener
{
JTextField tf = new JTextField(" ");
String str1 = " ", str2 = " ", str3 = " "; // str1和str2存放两个输入的数
Panel pn1 = new Panel();// new 一个Panel存放符号与数字
String a[] = { "平方", "开方", "backspace", "CE", "C", "7", "8", "9", "/",
"sin", "4", "5", "6", "*", "cos", "1", "2", "3", "-", "tan", "0",
"+/-", ".", "+", "=" };// 用于对每个Button进行赋值
boolean frist = true;// 判断是否输入的为第一个字符
int operCount = 0;
int i; // 统计符号的数目
String Operate = null;// 存放操作数的符号
boolean error = false;
double num1 = 0.0, num2 = 0.0;// 两个输入的数作运算时转化为double存放
double result = 0.0;// 暂时保留计算结果
public Calculator() {
super("简单计算机 ");
tf.setHorizontalAlignment(JTextField.RIGHT);// 显示框中由右想左输出
tf.setEditable(false);
Button b[] = new Button[25];
for (i = 0; i < 5; i++) { // 将符号加到对应的Button 上
b[i] = new Button(String.valueOf(a[i]));
pn1.add(b[i]);
b[i].setActionCommand(a[i]);
b[i].addActionListener(this);// 调用addActionListener()方法注册事件监听器
}
for (i = 5; i <= 7; i++) {
b[i] = new Button(String.valueOf(a[i]));
pn1.add(b[i]);
b[i].setActionCommand("number");
b[i].addActionListener(this);
}
b[8] = new Button(String.valueOf(a[8]));
pn1.add(b[8]);
b[8].setActionCommand("oper");
b[8].addActionListener(this);
b[9] = new Button(String.valueOf(a[9]));
pn1.add(b[9]);
b[9].setActionCommand(a[9]);
b[9].addActionListener(this);
for (i = 10; i <= 12; i++) {
b[i] = new Button(String.valueOf(a[i]));
pn1.add(b[i]);
b[i].setActionCommand("number");
b[i].addActionListener(this);
}
b[13] = new Button(String.valueOf(a[13]));