JavaSwing计算器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JavaSwing计算器设计
《java程序设计》课程设计报告
课题名称:GUI计算器设计
略
……
略
提交报告时间:2008 年12 月20 日1. 课程设计题目
基于GUI的计算器设计
2. 课程设计目的
1. 巩固和加深课堂所学知识;
2. 将课本上的理论知识和实际应用有机的结合起来,培养同学们分析和解决实际问题的能力;
3. 通过对java语言程序代码的阅读、修改、设计,理解和掌握复杂的java语言应用程序的编程,提高实践编程能力。
3. 程序运行环境及开发工具
本程序在Windows XP的PC机上利用Jbuilder9.0的软件开发实现,在Windows XP平台上Jbuilder9.0及Eclipse环境中运行通过。
4. 程序功能使用说明
运行该程序后,参与运算的操作数可有鼠标点击相应按钮输入,也可有键盘输入,但操作符应有鼠标点击相应的按钮,当:
1.在简易计算中可以按照常规输入计算,基本无bug,
“%”未设置其用途;
2.简易计算中,可以进行+、-、*、/、乘方(^)、开方(√)及阶乘(!)运算;
3.科学计算中有许多功能为实现,主要能进行加、减、乘、除、乘方、开方、幂、开n次方、倒数、阶乘、ln、e的x 次幂、三角函数等高级运算;
4.例如:
(1). 1 + 9 = 10
(2). 25 + -8 = 17
(3). 98 - 35 = 63
(4). 96 * 2 = 192
(5). 96 / 4 = 24
(6). 4 ^ 3 = 64
(7). 100 √ = 10
(8). -9 √ = 不能执行此操作!!
(9). 20 ! = 2432902008176640000
(10). -20 ! = 不能执行此操作!!
(11). 0 ! = 1
(12). 8 ln =
2.0794415416798357
(13). 2 Exp = 7.38905609893065
(14). 8 x^y 3 = 512
(15). 20 x^2 = 400
(16). 100 n!= 933262154439441526816992388562667004907159682643816 214685929638952175999932299156089414639761565182862 536979208272237582511852109168640000000000000000000 00000
(17). 30 sin = 0.49999999999999994(0.5) (求sin30度)
其他(cos,tan)依次类推;
(18).1/x计算有bug;
(19). 3 x√ 8 = 2 (求8开3
次方);
(20). 95 Mod 10 = 5 (95对10
求余)
5. 关键算法与技术:
1.大数阶乘;
2.界面切换;
3.GirdLayout布局管理器的使用;
4.事件响应;
5.匿名内部类的使用;
6.
6. 设计思路:
本程序采用模块化设计,调试方便,程序的可读性好。在老师的指导下,由主程序启动简易计算器,根据使用者的需要可以在简易计算器中进行运算操作,若不能满足用户功能,可以选择使用科学计算器,具体操作与目前市面上的计算器差不多,用户还可以选择使用说明进行查看具体操作。由于时间及个人水平的问题,科学计算中还有很多功能未实现。
具体思路:用户输入(点击)某一数字或操作符,程序将自行判断是操作数还是操作符,
1. 若为一操作数的首次输入,则将显示区的
“0”替换,若该操作数不为首次输入则将显示区的数字串接上此次输入的数字;
2. 若为操作符,将判断是否为带符号操作数,若是则保存符号,反之为纯操作符:若为二元操作符就将显示区的字符串转化为双精度数;若为等号就进行计算结果并显示结果;若为一目操作符就进行相应的一目运算并显示结果;
3. 进行相应的初始化操作,为下一次输入做准备;
4. 根据自己的理解画了下面的简单的流程图。
7.编码实现:
//package 计算器;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.math.*;
import java.util.*;
/**
* <p>Title: 用户应用界面计算器</p>
* <p>Description: 包含简易计算与功能更加强大的科学计算</p>
* <p>Copyright: Copyright (c) 2008</p>
* <p>Company: 四……学</p>
* @author chwencong@
* @version 1.0
*/
public class Calculat {
static JTextField show;//设置输入区,显示区
static double opNum = 0;//存放操作数
static String opChar = "=";//存放操作符
static boolean flag = true;//设置标志
public static void main(String[] args) {
new EasyFrame();//产生首界面——简易计算器
}
}
class EasyFrame//构建简易计算器框架界面
{
static JFrame frame;