java课程设计 计算器实际与实现

合集下载

Java实现简易计算器

Java实现简易计算器

Java实训作业题目:Java实现简易计算器学院:姓名:学号:班级:20 年月一、实验目的通过课程设计,主要要达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力。

此次课程设计实训主要是Java语言程序设计的实现。

通过该课程设计,可以将课堂上掌握的理论知识与处理数据的业务相结合,以检验自己掌握知识的宽度、深度及对知识的综合运用能力。

二、实验要求用Java编写一个简单的计算器,使其能够实现最基本的功能,如简单的加、减、乘、除;平方根,倒数,平方等功能。

三、详细内容1.界面设计界面设计使用GUI,其中有用到swing组件的TextField和Button,用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如图1-1所示:图1-1其中主要代码为:public mainWindow(){this.setTitle("计算器");//用户图形界面标题this.setVisible(true);//用户图形界面可缩小this.setResizable(false);//用户图形界面不可放大this.setSize(350,300);//设置用户图形界面的大小this.setLocation(400,150);//用户图形界面在屏幕中的显示位置JPanel panel1 = new JPanel();//新建一个画板JPanel panel2 = new JPanel();button1 = new JButton("1");...reset = new JButton("CE");Container container = this.getContentPane();container.add(panel2,BorderLayout.NORTH);container.add(panel1);panel1.setLayout(new GridLayout(5,4));//将画板1分为4行5列result.setEnabled(false);result.setFont(new Font("Dialog",Font.BOLD,25));//运算结果的字体大小result.setEditable(false);result.setHorizontalAlignment(SwingConstants.RIGHT);panel1.add(reciprocal);//分别将20个按钮依次添加到画板panel1中,并设置各自的大小reciprocal.setFont(new Font("Dialog",Font.PLAIN,20));...panel1.add(divide);divide.setFont(new Font("Dialog",Font.PLAIN,20));panel2.setLayout(new GridLayout());panel2.add(result);//画板panel2添加运算结果2.四则运算较为简单的实现了简单的加、减、乘、除运算,主要代码如下:ActionListener equal1 = new ActionListener(){ //实现四则运算public void actionPerformed(ActionEvent e){String str = result.getText();b = DatatypeConverter.parseDouble(str);{if(flag == "+")c = a + b;else if(flag == "-")c = a - b;else if(flag == "*")c = a * b;else if(flag == "/" || b != 0)c = a / b;}if(flag != "=")result.setText("" + c);elseresult.setText("零不能做除数!");a = 0;b = 0;c = 0;flag = "";}};3.其他功能另外添加了平方根,倒数,平方等功能,主要代码如下:平方根运算的实现:ActionListener sqrt1= new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = Math.sqrt(i);result.setText("" + i);}};倒数运算的实现:ActionListener reciprocal1 = new ActionListener(){ public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = 1/i;result.setText("" + i);}};平方运算的实现:ActionListener square1 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = i*i;result.setText("" + i);}};4.程序测试经测试发现本计算器基本功能均能实现,可正常运行计算,针对功能实现的代码部分过于简单,可以对其进行改善提高,方便用户使用!5.实训小结通过对计算器窗体的编写,熟悉了java图形用户界面的设计原理和程序结构,熟悉了java中awt和swing的组合。

java计算器实验报告

java计算器实验报告

课程设计论文设计题目:java计算器学生姓名:指导教师:专业名称:所在院系:摘要在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。

Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。

该程序是一个图形界面的java 计算器,其界面主要采用了swing包,程序实现了:(1)实现简单加、减、乘、除的运算。

(2)实现除了加、减、乘、除按钮外其他按钮功能。

(3)给软件添加一个编辑、查看、帮助的主菜单。

(4)在数据输入方面,提高程序代码的健壮性,增强其对非法输入数据的识别能力。

(5)科学型计算器与标准计算器之间的菜单切换。

Java的早期版本以来,抽象窗口工具包为用户界面组件提供了平台独立的API。

在AWT中,每个组件都由一个原生的等同组件生成和控制,这个原生组件是由当前的图形窗口系统决定的。

与此相对,Swing 组件经常被描述为轻量级的,因为它们不需要操作系统本身所带窗口工具包的原生资源来生成。

目录第1章概要设计 (1)1.1查找资料 (1)1.2选题 (1)1.3标准型计算器界面设计 (1)1.4本章小节 (3)第2章程序整体设计说明 (4)2.1程序中所用到的变量 (4)2.2程序部分源代码及注释 (4)2.3本章小节 (15)第3章程序运行效果 (16)3.1程序运行主界面 (16)3.2程序中各按钮运行界面 (16)3.3本章小节 (20)第4章设计中遇到的重点及难点 (21)4.1设计中遇到的重点 (21)4.2设计中的遇到的难点 (21)4.3本章小节 (23)第5章本次设计中存在不足与改良方案 (24)5.1本次设计中存在的不足 (24)5.2本次设计的改良方案 (24)5.3本章小节 (24)结论 (25)参考文献 (26)致谢 (27)指导教师评语 (28)答辩委员会评语 (29)第1章概要设计1.1查找资料21世纪,随着社会经济的迅速发展和科学技术的全面进步,人类社会已进入信息和网络时代。

java课程设计报告计算器

java课程设计报告计算器

目录一、课程设计目的 (2)二、课程设计任务 (2)2.1、设计任务 (2)2.2、课程设计要求: (2)2.3、需求分析 (2)三、开发工具与平台 (3)3.1、开发工具 (3)3.2、开发平台 (3)四、设计思路 (4)4.1、界面设计 (4)4.2.1、逻辑设计 (4)4.2.2、程序流程图 (5)4.2.3、主要代码展示及说明 (5)4.3、程序测试 (10)五、实验小结 (11)六、附录(程序代码) (12)一、课程设计目的1、熟练掌握java面向对象编程。

2、选择合适的数据结构实现需求。

3、熟练使用各种控制结构。

4、GUI组件、事件处理技术。

二、课程设计任务2.1、设计任务设计一个简易的计算器,可以进行四则运算:加、减、乘、除等(限于十进制下)程序要求:(1)应具有相应的界面,可参考Windows操作系统自带的计算器界面。

(2)操作符号定为:“+”,“-”,“*”,“/”,“+/-”等。

(按国际惯例设计)(3)用户通过点击程序界面上按钮,实现数字、运算符的输入操作。

(4)以上部分为必须完成的内容。

选作部分:(1)具有操作符号“1/x”,“sqrt”(开方),“.”(小数功能)等。

2.2、课程设计要求:(1)应用自己所学课程知识完成对计算器的基本任务。

(2)查阅相关资料,学习和掌握项目中涉及的新知识,提高自学能力。

(3)通过应用java程序编写计算器来提升自己对简单的图形界面有一定的掌握和了解。

2.3、需求分析1.设计的计算器可以完成加法、减法、乘法、除法的简单运算。

2.实现一些简单的扩展运算,如:正负号、倒数、退格、清零等功能。

3.添加小数点功能,用以实现浮点型数据的计算。

4.使用布局管理器设计一个计算器的界面,使用事件监听器处理数据的输入,并完成相关的计算。

三、开发工具与平台3.1、开发工具Microsoft Windows 7旗舰版3.2、开发平台JDK1.6.0-02 和UE编译器四、设计思路4.1、界面设计:(如图3-1)图3-14.2.1、逻辑设计:(1)根据所设计出来的界面,首先要设计其GUI界面,总体界面有一个文本框,20个按钮,总体界面用BorderLayout布局,文本框放置在最NORTH,然后0到9以及+,-,*,/等按钮放置到一个面板Panel中,完成界面设计。

JAVA计算器论文

JAVA计算器论文

JAVA计算器论文摘要:本文介绍了JAVA计算器的设计和实现过程。

计算器是一种常见的工具,方便人们进行数学运算。

本文使用JAVA编程语言,采用面向对象的设计思想,实现了一个简单的计算器功能。

通过用户界面,用户可以输入数学表达式,并进行运算。

在实现过程中,使用了JAVA的图形用户界面库Swing,通过文本框和按钮等控件,实现了用户界面的设计。

通过对用户的输入进行解析,通过JAVA的计算功能,计算出结果。

在实验阶段,本文对计算器进行了一系列的测试,并找到了一些可能出现的问题并进行了改进,保证了计算器的正确性和稳定性。

实验结果表明,该计算器能够进行简单的数学运算,具有较高的精确性和用户友好性。

1.引言计算器是一种常见的工具,用于计算、解决各种数学问题。

计算器的出现大大方便了人们的生活和学习。

随着计算机的发展,计算器也逐渐发展成为计算机软件的一部分,通过软件实现计算器的功能,使计算器更易于使用和拓展。

本文使用JAVA编程语言,设计和实现了一个简单的计算器功能。

2.设计和实现2.1设计思路JAVA计算器的设计采用了面向对象的设计思想,将计算器的各个功能抽象成对象,并通过调用对象的方法来实现计算器的各种功能。

为了方便用户的使用,设计了一个用户界面,用户可以输入计算表达式,并通过点击按钮来进行运算。

JAVA的图形用户界面库Swing提供了丰富的组件和容器,本文使用了文本框、按钮等控件,来实现用户界面的设计。

2.2用户界面设计用户界面是用户和计算器之间的纽带,影响用户对计算器的使用体验。

本文实现了一个简单的用户界面,主要由一个文本框和一系列按钮组成。

用户可以在文本框中输入需要计算的表达式,并通过点击按钮来触发相应的计算操作。

2.3计算过程在用户输入表达式后,通过解析表达式,将其分解为操作数和操作符。

操作数可以是整数、小数或者其他表达式。

通过调用JAVA的计算功能,对操作数进行计算,并得到计算结果。

将结果显示在用户界面中。

java实验报告——简单计算器的编写五篇范文

java实验报告——简单计算器的编写五篇范文

java实验报告——简单计算器的编写五篇范文第一篇:java实验报告——简单计算器的编写JAVA实验报告——简单计算器的编写班级:学号:姓名:一、实验目的1.掌握java图形用户界面(GUI)的设计原理和程序结构2.能设计复核问题要求的图形用户界面程序3.掌握常用组件的事件接口4.应用awt和swing组件进行应用程序设计二、实验条件1.计算机一台2.java软件开发环境三、实验步骤1、编写代码:mport java.awt.*;import java.awt.event.*;import javax.swing.*;public class JCalculator extends JFrame implements ActionListener {private static final long serialVersionUID =-***457Lprivate class WindowCloser extends WindowAdapter {public void windowClosing(WindowEvent we){System.exit(0);}}int i;private final String[] str = { “7”, “8”, “9”, “/”, “4”, “5”, “6”, “*”, “1”,“2”, “3”, “-”, “.”, “0”, “=”, “+” };JButton[] buttons = new JButton[str.length]; JButton reset = new JButton(“CE”); JTextField display = new JTextField(“0”);public JCalculator(){super(“Calculator”);JPanel panel1 = new JPanel(new GridLayout(4, 4)); for(i = 0;i < str.length;i++){buttons[i] = new JButton(str[i]);panel1.add(buttons[i]);}JPanel panel2 = new JPanel(new BorderLayout()); panel2.add(“Center”, display);panel2.add(“East”, reset);getContentPane().setLayout(new BorderLayout()); getContentPane().add(“North”, panel2); getContentPane().add(“Center”, panel1);for(i = 0;i < str.length;i++)buttons[i].addActionListener(this);reset.addActionListener(this);display.addActionListener(this); addWindowListener(new WindowCloser()); setSize(800, 800);setVisible(true);pack();}public void actionPerformed(ActionEvent e){ Object target = e.getSource();String label = e.getActionCommand();if(target == reset)handleReset();else if(“0123456789.”.indexOf(label)> 0)handleNumber(label);elsehandleOperator(label);}boolean isFirstDigit = true;public void handleNumber(String key){if(isFirstDigit)display.setText(key);else if((key.equals(“.”))&&(display.getText().indexOf(“.”)< 0))display.setText(display.getText()+ “.”);else if(!key.equals(“.”))display.setText(display.getText()+ key);isFirstDigit = false;}public void handleReset(){display.setText(“0”);isFirstDigit = true;operator = “=”;}double number = 0.0;String operator = “=”;public void handleOperator(String key){if(operator.equals(“+”))number += Double.valueOf(display.getText());else if(operator.equals(“-”))number-= Double.valueOf(display.getText());else if(operator.equals(“*”))number *= Double.valueOf(display.getText());else if(operator.equals(“/”))number /= Double.valueOf(display.getText());else if(operator.equals(“=”))number = Double.valueOf(display.getText());display.setText(String.valueOf(number));operator = key;isFirstDigit = true;}public static void main(String[] args){new JCalculator();} }2、运行结果,见截图计算测试:123+456=579结果正确,程序无误。

JAVA课程设计----计算器小程序报告共13页文档

JAVA课程设计----计算器小程序报告共13页文档

#####学院JA V A语言课程设计报告小程序计算器系统管理班级:#######姓名:###指导老师:###时间:2012年6月25日至6月29日目录1、课程设计概述--------------------------------------------------31.1利用java编写计算器,使之具备一定的功能:-----------------31.2 课程设计的主要思想--------------------------------------------------31.3 该项目设计的目的-----------------------------------------------------32、需求分析方案--------------------------------------------------42.1功能需求分析-----------------------------------------------42.2 性能需求分析-----------------------------------------------43、总体设计方案--------------------------------------------------53.1界面设计----------------------------------------------------------------------53.2功能介绍-----------------------------------------------------------------------54、详细说明、调试---------------------------------------------64.1程序流程图-------------------------------------------------------64.2部分代码说明-----------------------------------------------------64.3程序调试与结果示例-------------------------------------------85、个人总结-----------------------------------------------------106、附录(代码)-----------------------------------------------116.1登陆界面代码--------------------------------------------116.2计算器主界面--------------------------------------------126.3 退出界面代码-------------------------------------------151.课程设计概述1.1利用java编写计算器,使之具备一定的功能:(1)使用图形用户界面:一个文本框;0-9数字按钮;加、减、乘、除运算符;“等于”符号;复位按钮;(2)完成整数、实数的四则运算(加、减、乘、除);(3)通过按钮点击实现数据的复位(清零);(4)实数运算中小数位的精度一致。

Java程序设计计算器实验报告

Java程序设计计算器实验报告

长江大学工程技术学院实验报告
通信 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)功能流程图

基于java的简易计算器的设计

基于java的简易计算器的设计

基于java的简易计算器的设计摘要自从java语言诞生以来,java语言就以不可抵挡的趋势很快成为国际上广泛流行的面向对象编程语言,它既具有高级语言的特点,又少了C语言中指针特点,因而变得简单了很多。

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,其具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

本文介绍了用java语言编写一个简易计算器。

实现数学上的加、减、乘、除、乘方、开方、阶乘、正弦、余弦运算等相关运算。

利用这个程序可以方便的进行日常性的小规模运算,小巧简易,是个实用的工具。

关键词:程序设计;简易计算器;java语言THE DESIGN OF SIMPLE CALCULATOR BASED ON JA V AABSTRACTSince the inception of the java language, java language Take irresistible trend soon beca me widespread international popular object-oriented programming language, both with advan ced language features, and less of the C language pointer characteristics, and thus becomes a l ot simpler . Java is a cross-platform application software can write object-oriented programmi ng language, which has excellent versatility, efficiency, platform portability, and security, are widely used in personal PC, data center, gaming consoles, scientific super-computers, mobile phones and the Internet, also has the world's largest developer of professional community. In t he global cloud computing and mobile Internet industry environment, Java and more have sig nificant advantages and broad prospects.This article describes the use java language a simple calculator. Achieve mathematical addition, subtraction, multiplication, division, involution, evolution, factorial, sine, cosine op erations and other related operations. With this program you can easily carry out daily operati ons of small-scale, small simple, is a useful tool.Key words:program design;simple calculator;java language目录1前言 (1)1.1 课程设计背景 (1)1.2 需求环境 (1)1.3 课程设计思路 (1)2课程设计概要 (2)3 计算器详细设计 (3)3.1 计算器界面……….………….........………………………………………. .33.1.1 CAL主类的显示分布 (3)3.1.2计算器显示界面实现代码 (3)3.2 监听各个按钮的类 (5)3.2.1 编写监听类目的 (5)3.2.2 监听类实现代码 (5)3.3 按键响应类 (7)3.3.1 响应类编写的目的 (7)3.2.2 响应类实现代码 (7)3.3 运算处理类 (9)3.3.1 处理方式 . (9)3.2.2 处理类实现代码 (9)4 运行与调试 (12)4.1 进入程序主界面 (12)4.2 加减乘除功能实现 (12)4.3 正余弦、正切功能实现 (13)4.4 阶乘功能实现 (13)4.5 乘方、开方功能实现 (14)5 实验总结 (15)参考文献 (16)附录:源代码 (17)1 前言1.1 课程设计背景日常生活中我们经常会遇到一些小型数据计算的问题,本课程设计就是以此为出发点,设计了这样一个简单的计算器,用以实现基本的数学运算。

Java语言程序设计实训【计算器】

Java语言程序设计实训【计算器】

目录一、课程设计的目的与要求 (2)1.1 课程设计目的 (2)1.2 课程设计要求 (2)二、题目说明 (2)2.1 题目说明 (2)2.2 开发工具介绍 (2)三、总体设计 (3)3.1 系统开发平台 (3)3.2 系统结构图 (3)四、详细说明 (3)4.1 计算器主界面 (3)4.2 系统实施 (4)五、遇到的问题和解决方法 (9)六、总结 (10)七、参考文献 (10)附录(源程序代码) (11)八、教师评语 (20)一、课程设计的目的与要求1.1 课程设计目的1) 复习,巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握。

2) 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力。

3) 培养学生在项目开发中团队合作精神,创新意识及能力。

1.2 课程设计要求◆功能要求:该程序显示GUI用户界面,至少能实现整数的加,减,乘,除四则运算.◆界面要示:用图形界面实现◆实训条件:计算机房◆硬件要求:装有Winxp等操作系统的机器◆软件要求: JDK、JCreator等开发工具二、题目说明2.1 题目说明随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。

文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的计算器,可以实现简单的运算功能,满足日常基本的工作学习和娱乐需要。

该程序是一个图形界面的简单的java计算器,使用人员能快捷简单地进行操作。

即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间。

可以进行简单的四则运算(加、减、乘、除,以及求倒数,求相反数),以及常用的数学函数(sin,cos,log,1/x,pow,sqrt,%,)和记忆处理功能,有退格,清零, 归零等应用。

界面颜色为白色,数字字体颜色为蓝色,函数及其他功能键为红色。

java编写的计算器设计报告

java编写的计算器设计报告

java编写的计算器设计报告实验7:综合实验二一、试验目的进一步掌握图形用户界面GUI,了解Swing组件的使用,以及系统提供的该工具的作用,进一步掌握JAVA事件响应机制的原理,更好的掌握面向对象编程的思路。

二、实验要求创建一个界面来实现一个简单的计算器,要求:1、实现最基本的计算器界面,包括:0~9的10个数字按钮,加、减、乘、除、等于5个运算符按钮,一个结果存放的文本区域。

2、实现最基本的加、减、乘、除运算,并能得到正确结果。

3、实现连续的运算,小数点的使用,并考虑各种可能导致异常的情况,将程序作完善;4、可以通过关闭按钮实现关闭窗口。

三、实验步骤、结果1、程序代码:import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent; importjava.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class ZhxCacu extends JFrame implements ActionListener { JPanel jpResult = new JPanel();JPanel jpButton = new JPanel();JTextField jtfResult = new JTextField("0");JButton zero = new JButton("0"); //数字键0JButton one = new JButton("1"); //数字键1JButton two = new JButton("2"); //数字键2JButton three = new JButton("3"); //数字键3JButton four = new JButton("4"); //数字键4JButton five = new JButton("5"); //数字键5JButton six = new JButton("6"); //数字键6JButton seven = new JButton("7"); //数字键7JButton eight = new JButton("8"); //数字键8JButton nine = new JButton("9"); // 数字键9JButton plus = new JButton("+");JButton sub = new JButton("-");JButton mul = new JButton("*");JButton div = new JButton("/");JButton equal = new JButton("=");JButton ce = new JButton("ce"); // 置零键JButton point = new JButton(".");JButton tzero = new JButton("00");//com代表敲击运算符,digit代表敲击数字键boolean com = false;boolean digit = false;float total=0;String sum="";int symbol=0;int b,c=0;public ZhxCacu(){// 添加结果输入框并设置对齐方式jpResult.setLayout(new BorderLayout());jpResult.add(jtfResult);jtfResult.setEditable(false);jtfResult.setHorizontalAlignment(SwingConstants.RIGHT); //将组件添加到窗体上this.add(jpResult,"North");this.add(jpButton,"Center");// 定义按钮区域布局管理器为网格布局jpButton.setLayout(new GridLayout(6, 3, 10, 10));// 添加各个按钮键jpButton.add(seven);jpButton.add(eight);jpButton.add(nine);jpButton.add(four);jpButton.add(five);jpButton.add(six);jpButton.add(one);jpButton.add(two);jpButton.add(three);jpButton.add(zero);jpButton.add(tzero);jpButton.add(plus);jpButton.add(sub);jpButton.add(mul);jpButton.add(div);jpButton.add(point);jpButton.add(equal);jpButton.add(ce);one.addActionListener(this);//对1按钮添加监听事件two.addActionListener(this);//对2按钮添加监听事件three.addActionListener(this);//对3按钮添加监听事件four.addActionListener(this);//对4按钮添加监听事件five.addActionListener(this);//对5按钮添加监听事件six.addActionListener(this);//对6按钮添加监听事件seven.addActionListener(this);//对7按钮添加监听事件eight.addActionListener(this);//对8按钮添加监听事件nine.addActionListener(this);//对9按钮添加监听事件zero.addActionListener(this);//对0按钮添加监听事件ce.addActionListener(this);//对置零按钮添加监听事件plus.addActionListener(this);//对+按钮添加监听事件equal.addActionListener(this);//对=按钮添加监听事件sub.addActionListener(this);//对-按钮添加监听事件mul.addActionListener(this);//对*按钮添加监听事件div.addActionListener(this);//对/按钮添加监听事件tzero.addActionListener(this);//对00按钮添加监听事件point.addActionListener(this);//对.按钮添加监听事件pack();//初始化窗体大小最合适大小this.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});this.setSize(300,300);this.setVisible(true);}public static void main(String[] args) {// TODO 自动生成方法存根new ZhxCacu();}public void actionPerformed(ActionEvent e) {// TODO 自动生成方法存根//数字if(e.getSource()==one){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("1");com = false;digit = true;}else{sum = jtfResult.getText()+"1"; jtfResult.setText(sum);}}else if(e.getSource()==two){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("2");com = false;digit = true;}else{sum = jtfResult.getText()+"2"; jtfResult.setText(sum);}}else if(e.getSource()==two){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("2");com = false;digit = true;}else{sum = jtfResult.getText()+"2"; jtfResult.setText(sum);}}else if(e.getSource()==two){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("2");com = false;digit = true;}else{sum = jtfResult.getText()+"2"; jtfResult.setText(sum);}}else if(e.getSource()==two){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("2");com = false;digit = true;}else{sum = jtfResult.getText()+"2"; jtfResult.setText(sum);}}else if(e.getSource()==three){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("3");com = false;digit = true;}else{sum = jtfResult.getText()+"3"; jtfResult.setText(sum);}}else if(e.getSource()==four){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("4");com = false;digit = true;}else{sum = jtfResult.getText()+"4"; jtfResult.setText(sum);}}else if(e.getSource()==five){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("5");com = false;digit = true;}else{sum = jtfResult.getText()+"5"; jtfResult.setText(sum);}}else if(e.getSource()==six){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("6");com = false;digit = true;}else{sum = jtfResult.getText()+"6"; jtfResult.setText(sum);}}else if(e.getSource()==seven){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("7");com = false;digit = true;}else{sum = jtfResult.getText()+"7";jtfResult.setText(sum);}}else if(e.getSource()==eight){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("8");com = false;digit = true;}else{sum = jtfResult.getText()+"8"; jtfResult.setText(sum);}}else if(e.getSource()==nine){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("9");com = false;digit = true;}else{sum = jtfResult.getText()+"9"; jtfResult.setText(sum);}}else if(e.getSource()==zero){if(com||digit==false){//第一次敲击数字按jtfResult.setText("0");com = false;digit = true;}else{sum = jtfResult.getText()+"0"; jtfResult.setText(sum);if(Float.parseFloat(sum)!=0){}else{if(b==1){sum = jtfResult.getText()+"0"; jtfResult.setText(sum);}elsejtfResult.setText("0");}}}else if(e.getSource()==tzero){if(com||digit==false){//第一次敲击数字按jtfResult.setText("00");com = false;digit = true;}else{sum = jtfResult.getText()+"00";jtfResult.setText(sum);}}else if(e.getSource()==point){if(com||digit==false){//第一次敲击数字按钮b=1;com = true;digit = false;}else if(c==1); else{b=1;sum = jtfResult.getText()+".";jtfResult.setText(sum);c=1;}}//运算else if(e.getSource()==plus){symbol = 1;c=0;total = Float.parseFloat(jtfResult.getText()); com = true;digit = false;}else if(e.getSource()==sub){symbol = 2;c=0;total = Float.parseFloat(jtfResult.getText()); com = true;digit = false;}else if(e.getSource()==mul){symbol = 3;c=0;total = Float.parseFloat(jtfResult.getText()); com = true;digit = false;}else if(e.getSource()==div){symbol = 4;c=0;total = Float.parseFloat(jtfResult.getText()); com = true;digit = false;}else if(e.getSource()==ce){com = true;digit = false;total=0;sum ="0" ;jtfResult.setText(sum);}//=else if(e.getSource()==equal){com = true;digit = false;switch(symbol){case 1:jtfResult.setText(newFloat(total+Float.parseFloat(jtfResult.getText())).toString());b=0;c=0;b reak;case 2:jtfResult.setText(newFloat(total-Float.parseFloat(jtfResult.getText())).toString());b=0;c=0;break;case 3:jtfResult.setText(newFloat(total*Float.parseFloat(jtfResult.getText())).toString());b=0;c =0;break;case 4:if( Float.parseFloat(jtfResult.getText())==0 ){try{throw new Exception();}catch(Exception a){jtfResult.setText("错误~被除数不能为0,请重新输入:");}}elsejtfResult.setText(newFloat(total/Float.parseFloat(jtfResult.getText())).toString());b=0;c =0;break;}digit=false;total = 0;}}}2、界面:四、实验中的问题以及解决方案:1、问题: 被除数为0解决:抛出异常2、问题: 阻止0、小数点在同一数字中重复出现解决: 设置标志,五、总结:1、进一步了解了项目开发的步骤,思路,以及程序的布局和框架结构,尤其是对JAVA的模块化设计有了更为深入的了解。

Java实现计算器

Java实现计算器

Java实现简易计算器,可以计算算术表达式:Java源码如下://GridFrame.java文件import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;//计算机框架布局public class GridFrame extends JFrame{//定义面板,并设置为网格布局,4行4列,组件水平、垂直间距均为3JPanel p=new JPanel(new GridLayout(5,4,3,3));JTextArea out=new JTextArea();//定义文本框String temp="";//定义字符串数组,为按钮的显示文本赋值//注意字符元素的顺序与循环添加按钮保持一致Stringstr[]={"C","(",")","BS","7","8","9","/","4","5","6"," *","1","2","3","-","0",".","=","+"};JButton btn[]=new JButton[str.length]; //声明按钮数组public GridFrame(String s){super(s);//为窗体名称赋值setLayout(new BorderLayout());//定义窗体布局为边界布局//循环定义按钮,并添加到面板中for(int i=0;i<str.length;i++){btn[i]=new JButton(str[i]);btn[i].addActionListener(al);p.add(btn[i]);}//将文本框放置在窗体NORTH位置getContentPane().add(out,BorderLayout.NORTH);out.setRows(2);//将面板放置在窗体CENTER位置getContentPane().add(p,BorderLayout.CENTER);setVisible(true);setSize(350,250);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setLocationRelativeTo(null);//让窗体居中显示}//实现监听器ActionListener al=new ActionListener(){public void actionPerformed(ActionEvent e){Object currKey=e.getSource();if(currKey==btn[12]){out.setText(out.getText()+"1");}else if(currKey==btn[13]){out.setText(out.getText()+"2");}else if(currKey==btn[14]){out.setText(out.getText()+"3");}else if(currKey==btn[8]){}else if(currKey==btn[9]){ out.setText(out.getText()+"5"); }else if(currKey==btn[10]){ out.setText(out.getText()+"6"); }else if(currKey==btn[4]){ out.setText(out.getText()+"7"); }else if(currKey==btn[5]){ out.setText(out.getText()+"8"); }else if(currKey==btn[6]){ out.setText(out.getText()+"9"); }else if(currKey==btn[16]){ out.setText(out.getText()+"0"); }else if(currKey==btn[17]){ out.setText(out.getText()+"."); }else if(currKey==btn[1]){ out.setText(out.getText()+"("); }else if(currKey==btn[2]){ out.setText(out.getText()+")"); }else if(currKey==btn[7]){ out.setText(out.getText()+"/"); }else if(currKey==btn[11]){}else if(currKey==btn[15]){out.setText(out.getText()+"-");}else if(currKey==btn[19]){out.setText(out.getText()+"+");}else if(currKey==btn[18]){out.setText(out.getText()+"\n=");temp=out.getText();temp=temp.substring(0,out.getText().length()-2);;Calculator cal=new Calculator(temp);out.setText(out.getText()+String.valueOf(cal.getRes ult()));}//清除键if(currKey==btn[0]){out.setText("");}//退格键if(currKey==btn[3]){String str=out.getText();if(str.length()!=0){String str1=str.substring(0, str.length()-1);out.setText(str1);}}}};public static void main(String[]args){GridFrame gl=new GridFrame("简易计算机!");}}//ArithHelper.java文件public class ArithHelper{//默认除法运算精度private static final int DEF_DIV_SCALE=16;//这个类不能实例化private ArithHelper(){}/***提供精确的加法运算。

Java程序设计实验报告_2

Java程序设计实验报告_2

Java程序设计实验报告姓名:学号:班级:课题名称(附程序名):JAVA计算器(Calculator.java)一、实验目的通过JAVA图形接口的应用,编写出一图形界面的科学计算器;熟悉JAVA程序开发的一般步骤,掌握事件驱动,并能掌握一定的Java 编程能力,在实践中能感受Java的奥秘!同时检验自己的学习成果。

二、实验任务具有加减乘除的计算器,可以延伸到开方等其他的一些计算。

三、开发工具与平台Microsoft Visual Studio 2005四、设计思路:1)界面设计2)逻辑设计首先明确该实验设计的要求实现的基本功能,其次设计布局,将空间划分为由行和列组成的网格单元,每个单元放一个组件,网格单元大小可以不同,尽量将相同属性的按钮放在一个区域,方便操作。

3)软件调试与测试经过调试之后,能实现基本的四则运算,并能实现开方和消除错误的数。

4)软件设计优化该软件的界面应该更加流畅,同时我相信随着自己只是的日益丰富,开发软件的速度更快,效率更高,功能更加全面!5)实验总结不足:没有实现Mc,MR,MS,M+以及菜单栏几个功能,有待进一步完善。

这样才能够完成自己的第一个应用软件设计!优点:通过本次实验设计,大体了解了Java图形接口的应用,并在过程中增强了对程序的调试能力。

对JAVA有了更深一步的理解,学会如何解决问题,如何坚持对程序的调试,同时也增强了自己学习Java的信心。

五、附录源程序如下:import java.awt.BorderLayout;import java.awt.Container;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JPanel;import javax.swing.JTextField;public class Calculator extends JFrame implements ActionListener { boolean init = true;boolean isMath = false;boolean clear = true;boolean clickable = true;double qian;String fuhao;int all = 0;JTextField text = new JTextField(25);JButton bM = new JButton();JButton bMC = new JButton("MC");JButton bMR = new JButton("MR");JButton bMS = new JButton("MS");JButton bMADD = new JButton("M+");JButton b0 = new JButton("0");JButton b1 = new JButton("1");JButton b2 = new JButton("2");JButton b3 = new JButton("3");JButton b4 = new JButton("4");JButton b5 = new JButton("5");JButton b6 = new JButton("6");JButton b7 = new JButton("7");JButton b8 = new JButton("8");JButton b9 = new JButton("9");JButton bNOP = new JButton("+/-");JButton bDot = new JButton(".");JButton bDiv = new JButton("/");JButton bMul = new JButton("*");JButton bSub = new JButton("-");JButton bAdd = new JButton("+");JButton bSprt = new JButton("sprt");JButton bMod = new JButton("%");JButton bDao = new JButton("1/x");JButton bEqual = new JButton("=");JButton bBackspace = new JButton("Backspace"); JButton bCE = new JButton("CE");JButton bC = new JButton("C");public Calculator() {this.setTitle("计算器");JMenuBar mainMenu = new JMenuBar();setJMenuBar(mainMenu);JMenu editMenu = new JMenu("编辑");JMenu viewMenu = new JMenu("查看");JMenu helpMenu = new JMenu("帮助");mainMenu.add(editMenu);mainMenu.add(viewMenu);mainMenu.add(helpMenu);JPanel jpDisplay = new JPanel();JPanel jpInput = new JPanel();JPanel jpLeft = new JPanel();JPanel jpRight = new JPanel();text.setText("0.");text.setHorizontalAlignment(JTextField.RIGHT); jpDisplay.add(text);bM.addActionListener(this);bMC.addActionListener(this);bMS.addActionListener(this);bMR.addActionListener(this);bMADD.addActionListener(this);jpLeft.setLayout(new GridLayout(5, 1)); jpLeft.add(bM);jpLeft.add(bMC);jpLeft.add(bMR);jpLeft.add(bMS);jpLeft.add(bMADD);JPanel jpInnerN = new JPanel();JPanel jpInnerS = new JPanel();bBackspace.addActionListener(this);bCE.addActionListener(this);bC.addActionListener(this);jpInnerN.setLayout(new GridLayout(1, 3)); jpInnerN.add(bBackspace);jpInnerN.add(bCE);jpInnerN.add(bC);b0.addActionListener(this);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);bNOP.addActionListener(this);bDot.addActionListener(this);bDiv.addActionListener(this);bMul.addActionListener(this);bSub.addActionListener(this);bAdd.addActionListener(this);bSprt.addActionListener(this);bMod.addActionListener(this);bDao.addActionListener(this);bEqual.addActionListener(this);jpInnerS.setLayout(new GridLayout(4, 5));jpInnerS.add(b7);jpInnerS.add(b8);jpInnerS.add(b9);jpInnerS.add(bDiv);jpInnerS.add(bSprt);jpInnerS.add(b4);jpInnerS.add(b5);jpInnerS.add(b6);jpInnerS.add(bMul);jpInnerS.add(bMod);jpInnerS.add(b1);jpInnerS.add(b2);jpInnerS.add(b3);jpInnerS.add(bSub);jpInnerS.add(bDao);jpInnerS.add(b0);jpInnerS.add(bNOP);jpInnerS.add(bDot);jpInnerS.add(bAdd);jpInnerS.add(bEqual);jpRight.setLayout(new BorderLayout());jpRight.add(jpInnerN, BorderLayout.NORTH);jpRight.add(jpInnerS, BorderLayout.CENTER);jpInput.setLayout(new BorderLayout());jpInput.add(jpLeft, BorderLayout.WEST);jpInput.add(jpRight, BorderLayout.CENTER);Container pane = this.getContentPane();pane.setSize(333, 208);this.setLocation(300, 200);this.setLayout(new BorderLayout());pane.add(jpDisplay, BorderLayout.CENTER);pane.add(jpInput, BorderLayout.SOUTH);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.pack();this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (init)this.text.setText("0.");init = false;Object source = e.getSource();if (source == bBackspace) {String s = text.getText();text.setText("");for (int i = 0; i < s.length() - 1; i++) { char a = s.charAt(i);text.setText(text.getText() + a);}System.out.println("backspace");}if (source == bCE) {text.setText("0.");clear = true;init = true;System.out.println("CE");}if (source == bC) {text.setText("0.");clear = true;init = true;System.out.println("C");}if (source == bM) {System.out.println("M");}if (source == bMC) {System.out.println("MC,功能末实现");}if (source == bMR) {System.out.println("MR,功能末实现");}if (source == bMS) {System.out.println("MS,功能末实现");}if (source == bMADD) {System.out.println("M+,功能末实现");}if (source == b0) {System.out.println("0");if (clear == false)// 判断是否点击了符号位text.setText("");text.setText(text.getText() + "0");}if (source == b1) {if (clear == false)text.setText("");text.setText(text.getText() + "1");clear = true;// 第二次不在清空(前二句)}if (source == b2) {System.out.println("2");if (clear == false)text.setText("");text.setText(text.getText() + "2");clear = true;}if (source == b3) {System.out.println("3");if (clear == false)text.setText("");text.setText(text.getText() + "3");clear = true;}if (source == b4) {System.out.println("4");if (clear == false)text.setText("");text.setText(text.getText() + "4");clear = true;}if (source == b5) {System.out.println("5");if (clear == false)text.setText("");text.setText(text.getText() + "5");clear = true;}if (source == b6) {System.out.println("6");if (clear == false)text.setText("");text.setText(text.getText() + "6");clear = true;}if (source == b7) {System.out.println("7");if (clear == false)text.setText("");text.setText(text.getText() + "7");clear = true;}if (source == b8) {System.out.println("8");if (clear == false)text.setText("");text.setText(text.getText() + "8");clear = true;}if (source == b9) {System.out.println("9");if (clear == false)text.setText("");text.setText(text.getText() + "9");clear = true;}try{if (source == bNOP) {System.out.println("+/-");boolean isNumber = true;String s = text.getText();for (int i = 0; i < s.length(); i++)if (!(s.charAt(i) >= '0' && s.charAt(i) <= '9'|| s.charAt(i) == '.' || s.charAt(i) == '-')) {isNumber = false;break;}if (isNumber == true) {// 如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉if (s.charAt(0) == '-') {text.setText("");for (int i = 1; i < s.length(); i++) {char a = s.charAt(i);text.setText(text.getText() + a);}}// 如果当前字符串第一个字符不是符号,则添加一个符号在首字母处elsetext.setText('-' + s);}}if (source == bDot) {System.out.println(".");clickable = true;for (int i = 0; i < text.getText().length(); i++)if ('.' == text.getText().charAt(i)) {clickable = false;break;} // 第一层判断是否里面含有小数点;if (clickable == true)// 第二层判断text.setText(text.getText() + ".");}if (source == bDiv) {System.out.println("/");qian = Double.parseDouble(text.getText());fuhao = "/";clear = false;}if (source == bMul) {System.out.println("*");qian = Double.parseDouble(text.getText());fuhao = "*";clear = false;}if (source == bSub) {System.out.println("-");qian = Double.parseDouble(text.getText());fuhao = "-";clear = false;}if (source == bAdd) {System.out.println("+");qian = Double.parseDouble(text.getText());fuhao = "+";clear = false;}if (source == bSprt) {System.out.println("sprt");String s = text.getText();if (s.charAt(0) == '-') {text.setText("负数不能开根号");} elsetext.setText(Double.toString(ng.Math.sqrt(Double.parseDouble(text.getText()))));clear = false;}if (source == bMod) {System.out.println("%,功能末实现");}if (source == bDao) {System.out.println("1/x");if (text.getText().charAt(0) == '0'&& text.getText().length() == 1) {text.setText("除数不能为零");} else {boolean isDec = true;int i, j, k;String s= Double.toString(1 / Double.parseDouble(text.getText()));for (i = 0; i < s.length(); i++)if (s.charAt(i) == '.')break;for (j = i + 1; j < s.length(); j++)if (s.charAt(j) != '0') {isDec = false;break;}if (isDec == true) {String stemp = "";for (k = 0; k < i; k++)stemp += s.charAt(k);text.setText(stemp);} elsetext.setText(s);}clear = false;}if (source == bEqual) {System.out.println("=");Double ss=Double.parseDouble(text.getText());text.setText("");if (fuhao == "+")text.setText(qian + ss + "");if (fuhao == "-")text.setText(qian - ss + "");if (fuhao == "*")text.setText(qian * ss + "");if (fuhao == "/")text.setText(qian / ss + "");clear = false;// 要清空前一次的数据;}}catch (Exception ee) {System.out.println("请正确输入");text.setText("运算出错,给您带来不便,sorry");clear = false;}}public static void main(String[] args) {new Calculator();}}11。

java 计算器实验报告

java 计算器实验报告

java 计算器实验报告Java计算器实验报告引言:计算器是我们日常生活中常用的工具,使用计算器可以快速进行数学运算。

在计算器中,我们可以通过输入数字和运算符来执行各种算术操作。

为了更好地理解计算器的工作原理,我们进行了Java计算器的实验。

一、实验目的本次实验的目的是设计和实现一个简单的Java计算器。

通过这个实验,我们可以加深对Java编程语言的理解,并且掌握Java图形用户界面(GUI)的基本知识。

二、实验环境本次实验使用的是Java开发工具包(JDK)和Eclipse集成开发环境(IDE)。

在实验之前,我们需要确保已经正确安装了JDK和Eclipse。

三、实验步骤1. 创建一个新的Java项目,并命名为"Calculator"。

2. 在项目中创建一个新的Java类,命名为"CalculatorGUI"。

3. 在"CalculatorGUI"类中,创建一个窗口,并设置窗口的标题和大小。

4. 在窗口中添加一个文本框,用于显示计算结果。

5. 在窗口中添加一些按钮,用于输入数字和运算符。

6. 为每个按钮添加事件监听器,以便在用户点击按钮时执行相应的操作。

7. 实现计算器的基本功能,包括加法、减法、乘法和除法。

8. 运行程序,测试计算器的功能。

四、实验结果经过实验,我们成功地实现了一个简单的Java计算器。

用户可以通过按钮输入数字和运算符,并且计算器可以正确地执行相应的运算。

计算结果会显示在文本框中。

五、实验总结通过这个实验,我们学习了如何使用Java编程语言创建图形用户界面,并且掌握了Java计算器的基本实现方法。

在实验过程中,我们遇到了一些问题,比如如何处理用户输入错误的情况,如何处理除数为零的情况等。

通过不断调试和改进,我们最终解决了这些问题,并实现了一个功能完善的计算器。

在今后的学习和工作中,我们可以进一步扩展这个计算器的功能,比如添加科学计算功能、实现复杂运算等。

java实现简单的加减乘除计算器

java实现简单的加减乘除计算器

java实现简单的加减乘除计算器本⽂实例为⼤家分享了java实现加减乘除计算器的具体代码,供⼤家参考,具体内容如下代码123456 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.awt.FlowLayout;import javax.swing.*;@SuppressWarnings("unused")class Sumjp {JOptionPane jp = new JOptionPane();Sumjp(String str) {JOptionPane.showMessageDialog(null, str);System.exit(0);}Sumjp(String[] str){}}public class JiSuan extends JFrame implements ActionListener,ItemListener{ /****/private static final long serialVersionUID = 1L;double x1,x2,sum = 0;String f;JTextField txt = new JTextField(30);JTextField txt1 = new JTextField(5);JTextField txt2 = new JTextField(5);JTextField txt3 = new JTextField(5);JLabel lb1 = new JLabel("数据1:");JLabel lb2 = new JLabel("符号:");JLabel lb3 = new JLabel("数据2:");JButton jbtn = new JButton("确定");JiSuan(){setSize(350,150);setVisible(true);setTitle("计算器:");setDefaultCloseOperation(EXIT_ON_CLOSE);setLayout(new FlowLayout());add(lb1);add(txt1);// add(lb2);// add(txt2);JComboBox<String> jc = new JComboBox<String>();jc.addItem("加");jc.addItem("减");jc.addItem("乘");jc.addItem("除");545556575859606162636465666768697071727374757677787980818283848586878889add(jc); add(lb3);add(txt3); add(jbtn); add(txt);validate();jc.addItemListener(this);jbtn.addActionListener(this); } public void itemStateChanged(ItemEvent ie){ f = (String)ie.getItem().toString(); }public void actionPerformed(ActionEvent e){x1 = Double.parseDouble(txt1.getText());//f = txt2.getText(); x2 = Double.parseDouble(txt3.getText()); if(f.equals("加")){ sum = x1 + x2;}if(f.equals("减")){sum = x1 - x2; } if(f.equals("乘")){sum = x1*x2;}if(f.equals("")){ sum = x1/x2; }txt.setText(x1 + f + x2 + "=" + sum);new Sumjp(x1 + f + x2 + "=" + sum);}public static void main(String[] args) {// TODO ⾃动⽣成的⽅法存根new JiSuan();} }⼩编再为⼤家分享⼀段代码,感谢作者分享:利⽤java 语法做⼀个很简单的加减乘除计算器:12345678910111213/* 实现思路:1.选择所有数据从键盘输⼊2.使⽤switch 语句进⾏判断3.需要从控制台上输⼊三次 *第⼀个数字 *运算符*第⼆个数字最终在控制台上显⽰:欢迎使⽤简单计算器系统: 请输⼊第⼀个数字:10 请输⼊运算符:+1415161718192021222324252627282930313233343536373839404142434445464748495051525354请输⼊第⼆个数字:20运算结果:10+20=30s.nextInt(); */public class Calculator {public static void main(String[] args){java.util.Scanner s = new java.util.Scanner(System.in); System.out.println("欢迎使⽤简单计算器");System.out.print("请输⼊第⼀个数字:"); int num1 = s.nextInt();System.out.print("请输⼊运算符:"); String operator = s.next(); System.out.print("请输⼊第⼆个数字:"); int num2 = s.nextInt();int result = 0;switch (operator){case "+":result = num1 + num2;break;case "-":result = num1 - num2; break; case "*": result = num1 * num2; break;case "/":result = num1 * num2;break;case "%": result = num1 % num2; } System.out.println(num1+operator+num2+"="+result); }}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

计算器的设计与实现

计算器的设计与实现

报告编号:第 10组综合课程设计报告计算器的设计与实现学生:周敏黄厚变兴欣钰指导教师:杰所在系:电子工程系所学专业:计算机科学与技术年级班级: 15级计算机(1)班2016 年12月13日计算器的设计与实现摘要在日常生活或工作中,为避免复杂繁琐的计算过程,我们在eclipse的环境下用Java语言实现了计算器。

该系统实现了加法、减法、乘法、除法、求余、开平发根等运算功能以及退格、清零、非法小数点报错等功能。

在计算器的设计过程中,需要对面向对象程序设计有一定的了解。

计算器设计的核心在于其健壮性,我们的程序只体现了部分健壮性,例如在做除法运算时除数不能为零。

因为只体现了部分健壮性,所以我们的程序只能满足用户的基本计算需求,帮助用户节省计算时间。

关键字:计算器设计面向对象健壮性第一章前言1.1项目名称java 简易计算器的设计与实现1.2设计目的1)熟悉并掌握常用组件的事件接口和应用awt,swing组件进行应用程序设计2)该系统实现了基本的四则运算功能。

我们在日常生活中经常遇到一些简单而繁琐的计算问题,而我们设计的简易计算器可以帮助我们节省计算时间。

1.3设计特点该程序与其他程序不同之处在于此设计为简易版的计算器,能使用户快速掌握操作方法,为用户节省运算时间,提高工作效率。

同时用户在使用此设计时不一定能正确输入字符的顺序和次数,所以根据这类情况,程序做出了相应提示或纠正,更倾向于人性化。

第二章需求分析2.1前景分析随着科技的发展,在人们的日常生活中电子产品越来越常见,而人们也越来越依赖于计算器。

生意人用它来算账,学生用它来做数学算术题。

计算器除了实用以外,它的耐用程度也不能小看。

一个好的计算器能够使用几年甚至于十几年而不坏。

由此可见计算器还是一种很受人们喜爱的电子产品。

2.2功能需求分析在程序设计的过程中,要求计算器实现简单的加、减、乘、除四则运算和开平方根,取余等功能。

同时还要实现数据的输入、输出、存储、清零等功能。

Java计算器实验报告(包括普通型和科学型)

Java计算器实验报告(包括普通型和科学型)

一、计算器实验报告一、实验名称及其要求:A)名称: java计算器的设计B)要求:1.实验目的:图形界面设计。

熟悉java.awt包中的组件,掌握图形界面设计方法,理解委托事件处理模型。

2.题意:请设计并实现Windows系统中“计算器”的窗口及功能。

3.实验要求:(1)设计图形界面添加菜单:窗口上添加各种组件及菜单,并处理组件及菜单的事件监听程序。

(2)运算:实现多种运算,保证运算正确性。

二、实验步骤先新建两个类,一个类是普通型计算器的Count1,另一个类是科学性计算器的Count2一)、普通型计算器1、先利用Java各种图形组件完成计算的整体界面,在界面中添加按钮以及菜单项,如图①先定义各按钮以及菜单、菜单项JPanel p2= new JPanel();JTextField jt2 = new JTextFiled();JMenuBar jmb = new JMenuBar () ;JMenu check = new JMenu ("查看(V)") ;JMenu edit = new JMenu ("编辑(E)") ;JMenu help = new JMenu ("帮助(H)") ;JMenuItem help_about = new JMenuItem("关于") ;JMenuItem help_help = new JMenuItem("操作说明") ;JMenuItem exit = new JMenuItem("退出") ;JRadioButton rb2 = new JRadioButton("标准型",true) ;JRadioButton rb1 = new JRadioButton("科学型") ;ButtonGroup bg = new ButtonGroup() ;按钮的定义形式如下:JButton b = new JButton(”i”),i表示各按钮上的字符将各按钮添加到面板p2中至于添加按钮进面板的由于比较简单,这里就不做说明了。

实训报告参考(计算器)

实训报告参考(计算器)

实训项目一——Java电子计算器【需求分析】在日常生活中经常需要用到计算器,比如科学计算、数值计算、会计业务等,在Applet中实现一个精巧实用的计算器,可以让用户在使用网站服务的同时,可以很方便地进行数据运算,可增加页面的实用性,同时让用户的操作也更方便与快捷。

本项目需要实现一个简单的四则运算的计算器,拥有加、减、乘、除功能。

【项目目的】理解并掌握Java中的类、对象、继承、方法等概念,以及Applet的基本框架和事件处理的方法。

学会使用JDK编写、调试和运行Java Applet应用程序。

利用awt组件编写一个计算器,实现基本的四则运算。

【项目分解】1、界面设计整个界面由3个面板组成,第1个面板放置输入信息和运算结果的显示文本域以及一个清除输入的按钮。

setLayout方法用于设置容器的布局管理器,这里采用流布局,即FlowLayout,所有放置的组件按大小依次排列。

第2个面板放置数字按钮、点按钮及等于按钮。

在for循环中,依次实例化9个数字按钮,并将按钮用add方法加入到第2面板中。

setForeground方法可为组件设置前景色,这里将按钮文字设置为红色(Color.red)显示,以将功能按钮与数字按钮区分开来。

第3个面板放置4个运算符:加、减、乘、除。

最后,将3个面板放置到Applet中,Applet按照FlowLayout布局,依次加入的3个面板会按照加入的顺序及它们的尺寸放置到合适的位置。

2.事件处理事件处理流程如下图所示:事件处理通过action方法来完成,方法体如下所示:public boolean action(Event e, Object o) {}可通过Event类的target变量来获取事件来源,如下面的语句,将e.target与等于按钮bEqual相比较,如果相符,则事件来源于等于按钮,这里应调用对应的方法处理运算结果,并显示出来。

if(e.target == bEqual) {doOperator();}初始化过程:(1)定义相关组件和变量(2)Applet的初始化(init)(3).事件处理 (actionPerformed)(4).其他自定义方法方法:doOperator,doClear, doForeText按钮输入的处理过程如下:(1)输入数据→ForeText(2)输入运算符→CurrentOpForeText→BackText(第一运算数), ForeText=""CurrentOp→PreOp(3)输入数据→ForeScreen(4)输入运算符→OpCurrent3. 数值运算从输入得到的都是字符串,在运算之前,需要转换成其他数据类型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《面向对象程序设计》课程设计报告题目: 计算器设计与实现专业:班级:姓名:指导教师:成绩:xx201x 年 x 月xx 日xxxxxx目录1 设计内容及要求 (1)1.1设计内容 (1)1.2设计任务及具体要求 (1)2 概要设计 (1)2.1 功能需求 (1)2.2 系统的开发运行环境 (2)3 设计过程 (2)3.2系统功能模块 (3)4 设计结果与分析 (4)4.1功能模块的划分 (4)4.2功能模块的实现 (4)小结 (10)5 参考文献 (11)1 设计内容及要求1.1设计内容该程序是一个图形界面的简单Java计算器,具有良好的界面,使用人员能快捷简单的进行操作。

即时准确地获得需要的计算结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。

可以进行简单的四则运算(加、减、乘、除,等)1.2设计任务及具体要求计算器的设计与实现,使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。

在日常生活中经常需要用到计算器,比如科学计算、数字计算、会计业务甚至是日常生活中的一些运算,当运算比较复杂时没有计算器就会显得很麻烦。

为了解决日常生活中的困难,特意设计了这个计算器系统。

2 概要设计2.1 功能需求在日常生活中人们总是难以避免的要进行一些运算,当运算比较复杂时没有计算器就会显得很麻烦。

为了解决日常生活中的困难,特意设计了这个计算器系统。

在该系统中不仅可以进行整数的加、减、乘、除等简单运算,也可以进行浮点数的加、减、乘、除等运算。

除此之外还可以进行三角函数、指数、对数、平方等运算。

人们应用它可以解决日常生活中的一些运算问题,比如做买卖时进行交易的过程中就可以利用该计算器进行数量、价格以及金额的统计计算。

学生也可以利用该计算器进行数学运算,解决简单的三角函数运算。

2.2 系统的开发运行环境本系统开发平台: Java本系统集成开发环境:MyEclipse和UltraEdit本系统运行环境: windows xp3 设计过程3.1 系统体系结构设计本应用程序继承自框架类(Frame),此程序使用Frame布局管理器GridLayout,在Container容器中将单行文本框放在窗体上方区域,将选项、进制转换、帮助等按钮添加到菜单条。

包含各种按钮的面板Jpanel采用n行m列的网格布局,然后将数字按钮和运算按钮以及控制按钮添加到面板中。

同时注册事件监听器:计算器总体结构如图1所示:图1总体分析图3.2系统功能模块3.2.1系统功能描述(1)基本运算,包括对整数和浮点数进行加、减、乘、除以及乘方、三角函数、指数等运算;(2)进制运算,包括十进制和二进制数、十进制和八进制之间的转换;(3)其他功能,包括对输入、输出结果的复制、粘贴、剪切和退格、清零等。

3.2.2系统流程图根据系统要求和和系统功能的划分可以得到如图2所示的流程图:图2程序流程图3.2.3主要类设计public class Calculator extends Frame implements ActionListener;WindowListener{}// Calculator是初始化界面,整体布局及响应用户的各种按钮操作class WinCloseimplementsWindowListener{public void windowClosing(WindowEvent e)}// WinClose是设置计算器整个窗体的显示、退出、隐藏的操作。

4 设计结果与分析4.1功能模块的划分(1)界面模块:实现计算器的运算界面,该界面表示数据的按钮、表示浮点型的按钮运算符按钮和实现显示运算结果界面以及菜单选项界面。

(2)监听器模块:该模块为每一个按钮设置监听器,当鼠标点击按钮时通过监听器来判断该按钮代表的什么数据、实现什么运算功能、执行什么功能等。

(3)动作响应模块:该模块通过按钮事件,进行对应的处理功能其主要是将运算数据,以浮点型类型保存在内存中,然后通过判断运算符类型对数据进行相应的运算,并将运算结果以String类型在结果文本区域中显示,其中包括菜单条里的进制转换和各选项菜单的动作响应。

(4)主函数模块:调用已经设计好的函数,来实现计算器的全部功能。

4.2功能模块的实现4.2.1计算器界面模块在界面设计中,应用Frame框架,Frame是独立于浏览器的可运行的窗口,所以应用Frame框架来设计计算器界面比较合适。

在Frame框架的容器分别设置菜单条JmenuBar、文本区JTextField、然后在其中设置了五个面板分别都采用GirdLayout 布局完成数字键盘和运算符的设置。

实现该界面的部分代码如下:public class Calculator extends Frame implements ActionListener, WindowListener{ private Container container;private GridBagLayout layout;private GridBagLayout layout;private GridBagConstraints constraints;private JTextField displayField; //保存+,-,*,/,=命令定义各种组件JPanel panel1=new JPanel();panel1.setLayout(new GridLayout(1,5,4,4));//定义为GridLayout布局this.add(panel1);button_sqrt=new JButton("sqrt");button_plusminus=new JButton("+/-");panel1.add(button_sqrt);//面板的定义和按钮添加4.2.2监听器模块通过继承ActionListener和WindonListener接口来实现事件监听。

当Buttoin或Item对象上用鼠标进行点击时,将发送一个ActionEvent事件。

这个事件ActionEvent事件会被使用addAtionListener()方法注册的所有ActionListener的actionPerformed()方法接收,首先为所有具有时间动作的组件用addAtionListener(this)进行监听,当被监听的组件发生事件时就进行反馈,同时进行动作事件处理。

该模块的部分代码如下:button_plusminus.addActionListener(this);button_exp.addActionListener(this);button_CE.addActionListener(this);//各按钮的监听器设置this.addWindowListener(new WinClose()); //注册窗口监听器this.setVisible(true);dialog.add(label_dialog);dialog.addWindowListener(this);//为对话框注册窗口事件监听器JMenuItem m1_exit=new JMenuItem("复制");m1_exit.addActionListener(this);//设置菜单按钮的监听器4.2.3动作响应模块该模块通过public void actionPerformed(ActionEvent e)函数来实现动作响应事件。

首先通过e.getSource()来获得当前发生动作,然后根据不同的按钮产生不同动作响应,在实现动作响应之前定义了lastCommand、resul 、start 变量界面效果,其中若鼠标点击的是数字按钮则e.getSource()获取lastCommand ,if(e.getSource().equals(button_1)||e.getSource().equals(button_2)|| if (start)displayField.setTiext("");//设置计算器初始为空if(input.equals("+/-"))displayField.setText(displayField.getText()+"-")if(!input.equals("+/-"))当首先输入的符号是+/-时初始if(input.equals("退格")) //退格键的实现方if(str.length()>0)displayField.setText(str.substring(0,str.length()-1 ));lse if(input.equals("C")) //清零键的实现方displayField.setText("0");else if (e.getActionCommand()=="复制") //各按钮的动作响应方式代码displayField.copy();else if (e.getActionCommand()=="剪切")else if (e.getActionCommand()=="二进制") //二进制的转换if(displayField.getText()==null)若为空则弹出对话框JOptionPane.showMessageDialog(this,"不能为空!请输入要进行转换的字符"," 消息对话框",JOptionPane.WARNING_MESSAGE);else if (e.getActionCommand()=="用法") //按'帮助'菜单栏用法的处理方法label_dialog.setText("sqrt,exp,log等键是先输运算符再输数字,其他运算是先输入数字再输入运算符\n");else if (e.getActionCommand()=="关于")//按'关于'菜单栏用法的处理方法JOptionPane.showMessageDialog(label_dialog,"Java的计算器\n" + "JAVA课程设计" + "详情咨询mail:****************\n","关于计算器", RMATION_MESSAGE)if (lastCommand.equals("+"))//各运算符的具体运算方法result+= x;public void windowClosing(WindowEvent e)if(e.getSource()==dialog)dialog.setVisible(false);//隐藏对话框elseSystem.exit(0);基于前面三块模板的功能,定义一个主函数来实现计算器的所有功能,同时定义一个windowClosing 控制窗口关闭事件,其具体代码如下:public static void main(String args[])Calculator calculator=new Calculator()Calss WinClose implements WindowListener public void windowClosing(WindowEvent e)4.3功能模块的测试图 3 初始化界面图 4 求平方根图 5 cos 运算图 6 exp 运算结果图7 加减运算小结设计,给人以创作的冲动,但也要为这次冲动承担一定的痛苦,但事后发现,这一切都是值得的,本次的JAVA课程设计让我对JAVA的理论知识又有深一步的了解,温故而知新,开始设计之时完全没头绪,对与理论学习不够扎实的我深感“书到用时方恨少”只好再把书上介绍的相关知识重新阅读一遍,对知识进行了全面而系统的梳理,遇到难处首先是苦思冥想寻求方法,再向同学请教,终于熟练掌握了基本理论知识,而且领悟了诸多平时学习难以理解掌握的的较难的知识,学会了如何思考的方式,找到了设计的灵感。

相关文档
最新文档