Java程序设计计算器实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、设计思路
(1)本应用程序继承自框架类(JFrame),容器 Container c 采用 BorderLayout 边缘布 局,将单行文本框加入到“North”区域,包含各种按钮的面板 JPanel p 加入到”Center”区 域。包含各种按钮的面板 JPanel p 采用 3 行 6 列的网格布局,然后将数字按钮和运算符按钮 以及控制按钮用一个 for 循环添加到面板中同时注册按钮事件监听器。
四、详细实验内容
(1)各运算操作符功能实现 @param key */ private void handleOperator(String key) { if (operator.equals("/")) { // 除法运算 // 如果当前结果文本框中的值等于 0 if (getNumberFromText() == 0.0) { // 操作不合法 operateValidFlag = false; resultText.setText("除数不能为零"); } else { resultNum /= getNumberFromText(); } } else if (operator.equals("1/x")) { // 倒数运算 if (resultNum == 0.0) { // 操作不合法 operateValidFlag = false; resultText.setText("零没有倒数"); } else { resultNum = 1 / resultNum; } } else if (operator.equals("+")) { // 加法运算 resultNum += getNumberFromText();
长江大学工程技术学院实验报告
通信 61302 胡炯
⑵、事件监听器中的事件处理方法 void actionPerformed(ActionEvent e)完成主要的按 钮事件的处理。 ⑶、在事件处理,触发按钮事件时,先判断是或是数字是或是“-/+”是或是“.”,是的 话就将负号“-” 、数字、小数点“.”分别写入文本框并存放在 sum 中,然后判断是或是“退 格”、“求倒”等,是的话进行相应的处理,都不是的话则跳到 doOperation()执行运算同时将 运算符存放在 preOperater 中。触发按钮事件时,要进一步分析,是重新开始计算时触发的按 钮事件还是计算中间触发的按钮事件。 ⑷、计算器完成的是一个数学表达式,如:3+2,所以可以采用一个数组来存储数字或字 符,如 3,+,2 分别存储在数组中,最后运算时,可以一一取出来进行运算。 ⑸、 利用按钮设计计算器的各个运算符和操作符, 通过按钮的事件处理实现按钮计算功能。
长江大学工程技术学院
Java 程序设计 实验报告
专业班级 学 序 姓 号 号 名
ຫໍສະໝຸດ Baidu
通信 61302 201361182 9 胡炯 刘旨阳
指导教师
长江大学工程技术学院实验报告
通信 61302 胡炯
一、实验目的
设计一个具有简单功能的计算器,实现常见运算功能。巩固和加深 java 基础知识的 了解,并且提高实际操作能力。通过实验把课堂上讲的内容融会贯通,学会设计程序、开发简 单的应用软件。掌握语言的语法结构,理解类和对象的概念,准确的使用各种数据类型,对面 向对象中的继承和多态的概念要理解、会使用。在程序中提高代码的重用性,使设计的程序结 构清晰、易于维护。
二、需求分析
1)、开发的技术及功能 本课程设计是要做一个图形界面的计算器,程序实现了计算器的基本功能有:加、减、乘、 除基本算术运算(可以进行浮点和负数运算),同时能进行指数运算和自然对数运算,还有求 倒数、退格和清零功能。 2)、设计思路 设计这个计算器主要是参考 Windows 操作系统中自带的计算器,本计算器除了常用的加 减乘除(可以进行浮点和负数运算)这些基本运算外,还有求余、求倒、退格、清零,甚至还 能进行一些复杂科学的运算,比如求平方根(sqrt)以及对 e 的指数运算(exp),并且还能进 行连续运算。总体上说来,本计算器设计简单,代码很少,程序很小,但功能却很强大,这是 同类计算器所不具备的。 3)、预计设计效果
长江大学工程技术学院实验报告
通信 61302 胡炯
} else if (operator.equals("-")) { // 减法运算 resultNum -= getNumberFromText(); } else if (operator.equals("*")) { // 乘法运算 resultNum *= getNumberFromText(); } else if (operator.equals("sqrt")) { // 平方根运算 resultNum = Math.sqrt(resultNum); } else if (operator.equals("%")) { // 百分号运算,除以 100 resultNum = resultNum / 100; } else if (operator.equals("+/-")) { // 正数负数运算 resultNum = resultNum * (-1); } else if (operator.equals("=")) { // 赋值运算 resultNum = getNumberFromText(); } if (operateValidFlag) { // 双精度浮点数的运算 long t1; double t2; t1 = (long) resultNum; t2 = resultNum - t1; if (t2 == 0) { resultText.setText(String.valueOf(t1)); } else { resultText.setText(String.valueOf(resultNum)); } } (2)主要功能过程说明 1 构造函数 2 初始化计算器 3 处理事件 4 处理 Backspace 键被按下的事件 5 处理数字键被按下的事件 6 处理 C 键被按下的事件 7 处理运算符键被按下的事件 8 从结果文本框中获取数字 (3)功能流程图