收藏 分享(赏)

大学java课程设计实验报告--计算器.doc

上传人:精品资料 文档编号:10751612 上传时间:2020-01-07 格式:DOC 页数:21 大小:234.50KB
下载 相关 举报
大学java课程设计实验报告--计算器.doc_第1页
第1页 / 共21页
大学java课程设计实验报告--计算器.doc_第2页
第2页 / 共21页
大学java课程设计实验报告--计算器.doc_第3页
第3页 / 共21页
大学java课程设计实验报告--计算器.doc_第4页
第4页 / 共21页
大学java课程设计实验报告--计算器.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、JAVA课程设计报告组员信息:第(二)组姓名 学号 职责宋舟 20084042019 算法设计何春伟 20084042025 界面实现周沛 20084042021 代码编写计算器的实现问题问题描述:制作一个计算器基本要求:要求实现类似 Windows操作系统里面的标准计算器。在此基础上实现部分科学性的功能。测试数据:分别对加、减、乘、除和 sin、cos、tan 函数进行测试算法思想:使用 String定义的数组 a25对每个按钮进行按钮赋值,创建一个 Panel进行字符和数字的存放,调用 addActionListener()对各个时间进行监听。调用系统库函数对数值进行运算。模块划分:1、主

2、函数 main()创建一个计算器。2、void actionPerformed(ActionEvent e)对鼠标点击的事件进行响应以及在文本框中的显示。3、各 Buuton对应的功能:“开方”:对输入数字开方“平方”:对输入数字平方“getResult()”:对四则运算进行分别运算操作“backspace”:取消上一次的操作“CE”:取消上一次运算的操作“C”:清空作用“sin”:对输入数据进行 sin运算“cos”:对输入数据进行 cos运算“tan”:对输入数据进行 tan运算“+/-”:对输入的数据取反“+”,“-”,“*”,“/”:对数据进行四则运算源程序:package hecho

3、ngwei;import java.lang.String;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.*;import java.lang.Math;class Calculator extends JFrame implements ActionListener JTextField tf = new JTextField(“ “);String str1 = “ “, str2 = “ “, str3 = “ “; / str1和 str2存放两个输入的数Panel pn1

4、 = 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;/

5、存放操作数的符号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 Button25;for (i = 0; i 1) / 若输入的字符多余一个,则可进行运算getResult();O

6、perate = temp.getLabel(); / 存放加,减,乘,除等的符号frist = false; else if (e.getActionCommand().equals(“=“) if (str1 = “) | (str2 = “) / 两个数没有输全就点击等号,执行ifoperCount = 0;/ 将按键计数器清零frist = true; else getResult();operCount = 0; else if (e.getActionCommand().equals(“平方“) if (str1 = “ “)tf.setText(“0.0“);else doubl

7、e d = Math.pow(Double.parseDouble(str1), 2);str1 = String.valueOf(d);tf.setText(str1);frist = false; else if (e.getActionCommand().equals(“开方“) if (str1 = “ “)tf.setText(“0.0“);else double d = Math.sqrt(Double.parseDouble(str1);str1 = String.valueOf(d);tf.setText(str1);frist = false; else if (e.getA

8、ctionCommand().equals(“sin“) if (str1 = “ “) / 处理sin0 ,cos0等tf.setText(“0.0“);str1 = “0“;else double k = Double.parseDouble(str1);k = k * Math.PI / 180;double d = Math.sin(k);str1 = String.valueOf(d);tf.setText(str1);frist = false; else if (e.getActionCommand().equals(“cos“) if (str1 = “ “) tf.setTe

9、xt(“0.0“);str1 = “0“; else double k = Double.parseDouble(str1);k = k * Math.PI / 180;double d = Math.cos(k);str1 = String.valueOf(d);tf.setText(str1);frist = false; else if (e.getActionCommand().equals(“tan“) if (str1 = “ “) tf.setText(“0.0“);str1 = “0“; else double k = Double.parseDouble(str1);k =

10、k * Math.PI / 180;double d = Math.tan(k);str1 = String.valueOf(d);tf.setText(str1);frist = false; else if (e.getActionCommand().equals(“C“) operCount = 0;/ 清空frist = true;str1 = “ “;str2 = “ “;str3 = “ “;tf.setText(“0.0“); else if (e.getActionCommand().equals(“+/-“) if (str1 = “ “) tf.setText(“0.0“)

11、;str1 = “0“; else double k = Double.parseDouble(str1);str1 = String.valueOf(-k);tf.setText(str1); else if (e.getActionCommand().equals(“CE“) / 取消上一步的运算tf.setText(str1);frist = true;operCount = 0;str2 = “ “; else if (e.getActionCommand().equals(“backspace“) / 退格String s = tf.getText();tf.setText(“);c

12、har b = new char20;for (int i = 0; i s.length() - 1; i+) char a = s.charAt(i);bi = a;tf.setText(tf.getText() + a);if (operCount = 0)str1 = tf.getText();elsestr2 = tf.getText(); catch (Exception f) System.out.println(f.getMessage();void getResult() num1 = Double.parseDouble(str1);num2 = Double.parseD

13、ouble(str2);if (Operate.equals(“+“) result = num1 + num2; else if (Operate.equals(“-“) result = num1 - num2; else if (Operate.equals(“*“) result = num1 * num2;if (Operate.equals(“/“) if (num2 = 0.0) error = true; else result = num1 / num2;if (error) tf.setText(“error“); else tf.setText(String.valueO

14、f(result);str3 = str1;str1 = String.valueOf(result);str2 = “ “;public static void main(String args) new Calculator();程序流程:if (e.getActionCommand().equals(“number“)else if (e.getActionCommand().equals(“oper“)else if (e.getActionCommand().equals(“=“)else if (e.getActionCommand().equals(“平方“)else if (e

15、.getActionCommand().equals(“开方“)else if (e.getActionCommand().equals(“C“)else if (e.getActionCommand().equals(“CE“)void getResult()Main()主函数流程:测试情况:图形界面示意图:测试情况测试数据:输入 4 ,平方 显示结果为 16输入 4,开方 显示结果为 2输入 4,+,2 显示结果为 6输入 4,-,2 显示结果为 2输入 4,*,2 显示结果为 8输入 4,/ ,2 显示结果为 2输入 1,+,2, +,4,CE,+8 显示结果为 11输入 1,+,22,Backspace ,= 显示结果为 3输入 C 显示结果为 0输入 30,sin 显示结果为 0.5

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报