JAVA计算器综合实验报告
java简易计算器实训报告(一)
java简易计算器实训报告(一)Java简易计算器实训报告实训目的通过编写一个简易的Java计算器,深入了解Java基础语法,并掌握对象的属性和行为。
实训过程本次实训采用Eclipse编写Java程序,具体过程如下:1.首先创建一个名为“Calaulator”的Java项目,再在其中创建一个名为“Calaulator”的类。
2.在Calaulator类中定义一个名为“calculate”的方法,此方法接收3个参数:一个char类型的操作符,两个double类型的操作数,返回值为double类型。
3.在方法体中根据传入的操作符进行相应的加、减、乘、除运算。
4.创建一个主函数,在其中调用calculate方法并输出结果。
实训收获通过本次实训,我掌握了Java的基础语法,并深入了解了对象的属性和行为。
同时,我还学会了如何使用Eclipse编写Java程序,提高了自己的编程水平。
实训总结Java语言作为一种强大而稳定的编程语言,具有广泛的应用场景。
通过本次实训,我深刻认识到Java的重要性,并希望能够在以后的学习中不断探索Java语言的更多使用方法。
实训反思在实训过程中,我发现自己对Java的基础语法了解不够深入,导致编写代码时遇到一些困难,需要不断查阅相关资料。
同时,在调试代码时也遇到了许多问题,发现自己对IDE的使用不够熟练,需要更多的实践和学习。
实训展望通过本次实训,我已经初步掌握了Java的基础语法和编程思想,但我认为这只是一个开始。
我需要不断地练习,深入了解Java的各种特性,将其应用到实际开发中。
未来,我希望能够成为一名优秀的Java工程师,为社会做出自己的贡献。
结语本次Java简易计算器实训让我收获颇丰,不仅加深了对Java的认识,也增强了自己的编程实践能力。
希望今后能够在Java的学习和实践中不断提高自己,取得更好的成果。
java_计算器实验报告
Java_计算器实验报告学校:成都理工大学学院:信心科学与技术学院专业:计算机科学与技术班级:2010级计科2班姓名:梁光祥学号:201005030218指导老师:冷小鹏目录一、实验目的 (3)二、类结构图(UML图) (3)三、总体设计 (3)四、详细设计 (4)五、程序截图 (4)六、总结 (8)一、实验目的1.熟悉掌握java GUI应用程序的开发设计2.了解计算器各个按钮及面板之间的结构关系3.熟悉计算器机制二、类结构图(UML图)三、总体设计程序中在PanelClass类中添加了四个面板,分别是:四、详细设计在PanelClass中,定义了三个监听器类和还有三个成员函数,分别是:1.InsertAction实现ActionListener中的actionPerformed(ActionEvent e)用于点击数字按钮时候的触发函数mandAction实现ActionListener中的actionPerformed(ActionEvent e),用于双目运算符是的触发函数。
3.S_CommadnAction实现ActionListener中的actionPerformed(ActionEvent e),用于单目运算符的触发函数。
4.public void calculate(double x),双目运算符实现函数5.public void calculate(),单目运算符实现函数6.和一个构造函数JFframe类中,定义一个构造函数,实现对主窗口的初始化及主面板的归附。
Cal_MainClass类中,定义一个main函数。
五、程序截图1.初始化截图2.简单运算截图实现7+9=16操作:键入7加入“+”键入9键入“=”3.缓冲区操作截图下面是实现,缓冲区8+9=17操作:清空缓冲区键入8将8保存至缓冲区键入9加入“M+”六、总结1.在设计计算器过程中,对容器、面板、布局及彼此间的联系和操作不熟悉。
Java计算器实验报告
一、目標:通過Java程序開發實訓使學生掌握《面向對象程序設計(Java)》課堂講授の內容,靈活運用到Java程序の開發與設計中。
二、要求:按時參加Java程序開發實訓訓練,不得遲到和早退;獨立完成程序設計;按要求撰寫實踐報告。
三、詳細內容:使用《面向對象程序設計(Java)》課程講授內容,編寫一個簡單の計算器,要求實現如下功能:1.進行圖形界面設計通過圖形界面設計,掌握Frame類、Panel類、5種布局管理器、文本框、標簽及按鈕の使用方法。
2.實現計算器の基本功能包括加減乘除四則運算、清除結果等功能。
3.實現計算器の存儲計算功能包括清空、使用清零、退格。
和基本運算4.類の屬性及所用到の方法布局布局:整個界面(Frame)采用BorderLayout布局P1組件添加到Frameの南部P1采用默認の流式布局添加文本框P2組件添加到Frameの中部P2采用網格布局四行五列放各種按鈕用到の類:mycalKeyAdapterWindowAdapterMyCal類:mycal類の屬性:b[];按鈕數組保存各種按鍵以後放到Panel2中tf;文本匡顯示輸入及運算結果num1,num2,jieguo運算數char c,ch;運算符號,ch為輸入の運算符號,c保存ch輸入の“+-*/”Panel p1,p2;//兩個組件p1放文本匡p2放按鈕P2の布局為網格布局5行4列mycal類の方法:1.構造方法:設置標題;設置文本框;文本框中添加匿名內置類(KeyAdapter)實現鍵盤の輸入和運算;將各種組件添加到容器,設置各種按鍵の顏色;添加WindowListenr監聽器設置關閉按鈕;2.Main方法:新建一個mycal類;4.actionPerformed 方法:設置按鈕の輸入和運算,當按下運算數將其顯示在文本匡中如果之前清零則將零去除當按下運算符將其保存在c中並將文本匡內容清空當按下等號判斷字符cの符號進行相應の運算並將結果顯示在文本框中。
java 计算器实验报告
java 计算器实验报告Java计算器实验报告一、引言计算器是我们日常生活和学习中经常使用的工具之一。
它可以帮助我们进行简单的数学运算,提高计算效率。
在本实验中,我们将使用Java编程语言设计并实现一个简单的计算器。
二、实验目的1. 学习Java编程语言的基本语法和数据类型;2. 掌握Java图形用户界面(GUI)的设计和实现;3. 熟悉计算器的基本功能和运算规则。
三、实验步骤1. 界面设计在Java中,我们可以使用Swing库来设计和实现GUI界面。
首先,我们创建一个窗口对象,并设置窗口的标题、大小和布局。
然后,我们在窗口中添加文本框和按钮,用于显示计算结果和接收用户输入。
2. 功能实现计算器的基本功能包括加法、减法、乘法和除法运算。
我们可以通过监听按钮点击事件,获取用户输入的数字和操作符,然后进行相应的运算,并将结果显示在文本框中。
3. 异常处理在进行计算过程中,可能会出现一些异常情况,例如除数为零或输入非法字符等。
为了保证程序的健壮性,我们需要对这些异常进行处理,并给出相应的提示信息。
4. 测试和优化完成代码编写后,我们需要进行测试和优化。
通过输入一系列测试用例,检查计算器是否能够正确处理各种情况,并对可能存在的bug进行修复和优化。
四、实验结果经过多次测试和优化,我们的计算器程序已经能够正确地进行加减乘除运算,并能够处理各种异常情况。
用户友好的界面设计和清晰的提示信息,使得计算器易于使用和操作。
五、实验总结通过本次实验,我学习了Java编程语言的基本语法和数据类型,并且掌握了Java图形用户界面(GUI)的设计和实现方法。
通过实践,我深入理解了计算器的基本功能和运算规则,并学会了如何处理异常情况。
此外,我还培养了代码编写、测试和优化的能力,提高了自己的编程水平。
六、实验感想本次实验让我更加熟悉了Java编程语言,并且提高了我的代码设计和编程能力。
通过自己动手实现一个计算器,我对计算机科学的理论知识有了更深入的理解,并且增强了我的实践能力。
实验报告Java计算器
一、实验目的1.熟悉java图形用户界面的设计原理和程序结构。
2.能设计复合问题要求的图形用户界面程序。
3.熟悉java.awt和swing的组合。
4.掌握常用组件的事件接口。
5.会应用awt和swing组件进行应用程序设计。
二、实验内容设计一个计算器,计算器的界面大体是按照windowsXP上自带的微软的计算器的布局设计的。
主要功能包括:实现基本的加减乘除运算,并且能实现连续的运算,能显示运算数和运算结果。
还包括MC、MR 、MS、M+ 、Backspe、+/-、 C、CE、 % 、Sqrt 、1/x 键,能实现相应的功能。
三、整体设计与描述1.点击相应的按钮,输入运算数,显示框内能显示当前输入的数字2、在任何时候按下“+/-”键,计算器文本框上的数字置反号。
3、MC :Memory Clear 清除存储器中的数值4、MR :Memory Read 存储器读出5、MS :Memory Save 存入存储器6、M+ :Memory Plus 将数值与存储器中的数值相加7、M- :Memory Subtract 存储的数字减去显示栏中的数字8、C键为清除键(CLEAR的缩写)9、CE键为纠错键(CLEAR ERROR的缩写)10、Backspase 键为退格键,消去最低位。
11、sqrt是开方键,点击后显示开方后的结果。
12、按下a(运算)b后,不按等于,再按别的运算符,a和b的运算结果会作为第一个操作数再次参与运算。
13、按下“选项”键,点“退出”键退出14、点击帮助的“关于我们”,会弹出一个对话框,显示信息。
整体显示界面如下:四、算法分析与程序设计1、控件的布局界面布局分为三个面板panel1,panel2,panel3.第一个面板上存放数字输入框。
第二个存放存储器标志、回车键、CE、C键四个按钮。
第三个面板存放各个数字和剩下的运算符,布局为4*6的GridLabel。
为了使界面更美观,需要设置适当的行间距和列间距,以及适当的背景色。
java实验报告计算器
java实验报告计算器Java实验报告:计算器引言:计算器是我们日常生活中常用的工具之一,它能够帮助我们进行各种数学运算,提高计算的效率。
本实验旨在使用Java编程语言设计和实现一个简单的计算器,通过实践来加深对Java语言和面向对象编程的理解。
一、需求分析在设计计算器之前,我们首先需要明确计算器的功能需求。
一个基本的计算器应该包括加、减、乘、除四种基本运算,同时还应该具备清零、取反、百分比等附加功能。
在本实验中,我们将实现这些基本功能,并尝试添加一些额外的功能,如开根号、求平方等。
二、设计思路1. 用户界面设计我们可以使用Java的图形用户界面(GUI)库来设计计算器的界面。
可以使用按钮来表示数字和运算符,使用文本框来显示计算结果。
2. 数据结构设计为了实现计算器的功能,我们需要设计一个合适的数据结构来存储用户输入的数字和运算符。
可以使用栈(Stack)数据结构来实现这个功能。
当用户按下数字按钮时,将数字入栈;当用户按下运算符按钮时,将运算符入栈。
当用户按下等号按钮时,从栈中取出数字和运算符进行计算,并将结果显示在文本框中。
3. 运算逻辑设计计算器的运算逻辑可以使用逆波兰表达式来实现。
逆波兰表达式是一种不需要括号的数学表达式表示方法,通过后缀表达式的形式来表示运算符的优先级。
在计算器中,我们可以使用栈来实现逆波兰表达式的计算。
三、实验步骤1. 创建一个Java项目,并导入GUI库。
2. 设计计算器的用户界面,包括按钮和文本框。
3. 实现按钮的点击事件,根据用户输入的数字和运算符来更新栈的状态。
4. 实现等号按钮的点击事件,从栈中取出数字和运算符进行计算,并将结果显示在文本框中。
5. 实现清零、取反、百分比等附加功能的按钮点击事件。
6. 运行程序,测试计算器的各项功能是否正常。
四、实验结果与分析经过测试,我们的计算器能够正常地进行加、减、乘、除等基本运算,并且附加功能也能正常使用。
通过这个实验,我们不仅学习了Java语言的基本语法和面向对象编程的思想,还加深了对数据结构和逆波兰表达式的理解。
Java计算器实验报告-V1
Java计算器实验报告-V1Java计算器实验报告一、实验目的本次实验旨在巩固Java语言的基础知识,提高学生对于面向对象程序设计思想的理解能力,以及能够使用Java实现一个简单的计算器程序。
二、实验原理计算器程序是一种非常基础的应用程序,其功能主要就是进行数字运算。
在实现计算器程序时,需要设计出一个能够接受用户输入的界面,并能够将输入的数据进行运算后输出结果。
在实现计算器程序时应采用面向对象的编程方式,按照设计模式分为模型、视图和控制器三个模块进行设计和编码。
三、实现步骤1. 模型层的实现在模型层中,需要定义一个Calculator类,其中包括了数字、运算符等运算元素以及进行运算的方法。
可以根据需求,实现加、减、乘、除、取余、开方等基本计算功能。
2. 视图层的实现视图层主要是实现用户界面,将用户输入的数据以及计算结果显示在界面上。
可以采用Java Swing技术进行实现,在面板中添加按钮、文本框等控件,提供操作按钮接收用户输入,再通过文本框将结果输出到界面上。
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)||一、实验目的综合应用所学的知识分析问题、解决问题,提高实际编程能力及程序调试能力。
二、实验内容及要求用图形界面GUI编程,编写一个能够实现加减乘除的简单的计算器,要求使用监听类,还要能够连续加减,有清除功能,能够准确的计算出正确结果。
三、实验仪器与设备计算机,JDK,我用的是eclipse。
四、问题分析与系统设计问题分析:首先需要把图形界面设计出来,给组件注册监听器,转换事件信息,实现对数据的加、减、乘、除等计算器的基本的功能设计思想与设计结果:在主类Caculater中使用监听内部类 MyMonitor 对各个组件进行监听,在MyMonitor中对按键信息进行分类处理(数字,算术符号,功能键)。
数据成员主要有各个按钮以及计算器的各个状态(如初始状态等)。
成员函数有:1、对退格键的处理:backSpace() 2、对算是符号的处理:operater() 3、将数字字符串转换成数字:getDate()五、实验结果相反数、平方根等功能,能够将图形界面设计出来给注册监听器,实现界面与基本实现了简单的的加、减、乘、除以及倒数和取内部代码结合。
六、总结与体会1·我以前不清楚界面与内部代码是怎么连接的,现在知道了。
还学会简单的GUI编程,能够实现对界面进行布局2·跟c++有很大的不同,java多了许多的包,类呀,这样是编译快捷而且安全正确,学会使用了内部类,懂得了事件的响应以及如何处理事件。
3·锻炼了编程的逻辑思维,能够对数据进行逻辑的处理以及对整个程序的逻辑部署4·还知道了要想吧java学好是很难的,里面有许许多多的包,类。
要想好好运用java 就必须运用好java类包,java的简单编程只是基础,掌握系统提供的package和class 才是成为java厉害者的必经之路。
附件:源程序清单import java.awt.BorderLayout;import java.awt.Button;import java.awt.Color;import java.awt.Frame;import java.awt.GridLayout;import java.awt.Panel;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.ArrayList;import java.util.List;public class Caculator extends Frame {List<String> list = new ArrayList<String>();public static int step = 0; // 处理刚开始第一次计算的时候dataResult为零的问题private String command[] = { "BackSpace", "CE", "C" };private String normal[] = { "7", "8", "9", "/", "sqrt", "4", "5", "6", "*", "%", "1", "2", "3", "-", "1/x", "0", "+/-", ".", "+", "=" };private String special[] = { "", "MC", "MR", "MS", "M+" };private boolean firstInput = true;private boolean legal = true;private double dataResult = 0;private String s = null;private TextField tf = new TextField();private Button bn[] = new Button[normal.length]; private Button bc[] = new Button[command.length]; private Button bs[] = new Button[special.length]; private Mymonitor mn = new Mymonitor();public static void main(String[] args) {CouterClient cc = new CouterClient();unchFrame();}public void launchFrame() {this.setLocation(200, 250);this.setBackground(Color.blue);this.setTitle("计算器");this.setSize(300, 400);this.setResizable(false);this.setLayout(new BorderLayout(2, 2));this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);}});Panel pn = new Panel(new GridLayout(4, 5, 2, 2));for (int i = 0; i < normal.length; i++) {bn[i] = new Button(normal[i]);bn[i].addActionListener(mn);pn.add(bn[i]);}Panel pc = new Panel(new GridLayout(1, 3, 2, 2));for (int i = 0; i < command.length; i++) {bc[i] = new Button(command[i]);bc[i].addActionListener(mn);pc.add(bc[i]);}Panel ps = new Panel(new GridLayout(5, 1, 2, 2));for (int i = 0; i < special.length; i++) {bs[i] = new Button(special[i]);bs[i].addActionListener(mn);ps.add(bs[i]);}Panel p = new Panel(new BorderLayout(2, 2));p.add(BorderLayout.NORTH, pc);p.add(BorderLayout.CENTER, pn);tf.setEditable(false);tf.setBackground(Color.white);this.add(BorderLayout.CENTER, p);this.add(BorderLayout.WEST, ps);this.add(BorderLayout.NORTH, tf);tf.setText("0");this.setVisible(true);this.pack();}private class Mymonitor implements ActionListener {public void actionPerformed(ActionEvent e) {s = e.getActionCommand();if (s.equals(command[2])) { // 按下了 C 键时归零计算器回到最初的状态tf.setText("0");firstInput = true;legal = true;dataResult = 0;step = 0;} else if (s.equals(command[1])) { // 按下 CE 键时,显示零tf.setText("0");firstInput = true;} else if (s.equals(command[0])) { // 按下退格键时backSpace();} else if ("0123456789.".indexOf(s) >= 0) {if (firstInput) {tf.setText(s);}if (firstInput && s.equals(".")) {tf.setText("0.");firstInput = false;} else if (!firstInput) {if (s.equals(".")) {if (tf.getText().indexOf(".") <= 0) {tf.setText(tf.getText() + s);} else {String str = (tf.getText() + s).substring(0, tf.getText().length());tf.setText(str);}} else {tf.setText(tf.getText() + s);}} else if (firstInput && !s.equals(".")) {firstInput = false;}} else {operator(s);}}}public void operator(String key) {if (key != "=")list.add(key);if (key.equals("+")) {this.dataResult += getData();} else if (key.equals("-")) {if (step == 0) {this.dataResult = getData();step++;} else {this.dataResult -= getData();}} else if (key.equals("*")) {if (step == 0) {this.dataResult = getData();step++;} else {this.dataResult *= getData();}} else if (key.equals("/")) {if (step == 0) {this.dataResult = getData();step++;} else {if (getData() == 0) {tf.setText("除数不能是0!请按C键重新开始输入");this.legal = false;} else {this.dataResult /= getData();}}} else if (key.equals("+/-")) {this.dataResult = -1 * getData();} else if (key.equals("sqrt")) {if ((this.dataResult = getData()) > 0) {this.dataResult = Math.sqrt(this.dataResult);} else {tf.setText("负数没有平方根");}} else if (key.equals("1/x")) {this.dataResult = getData();if (this.dataResult == 0) {tf.setText("0没有倒数");} else {this.dataResult = 1 / this.dataResult;}} else if (key.equals("=") && this.legal) {this.operator(list.get(list.size() - 1));this.firstInput = true;step = 0;}if (legal) {long l = (long) this.dataResult;double d;d = this.dataResult - l;if (d == 0) {tf.setText("" + l);} else {tf.setText("" + this.dataResult);}this.firstInput = true;if (key == "=")this.dataResult = 0;}}public void backSpace() {if (firstInput) {tf.setText("0");firstInput = true;} else {if (tf.getText().length() >= 1) {String temp = tf.getText().substring(0,tf.getText().length() - 1);tf.setText(temp);if (tf.getText().length() == 0) {tf.setText("0");this.firstInput = true;}}}}public double getData() {double result = 0;try {result = Double.valueOf(tf.getText()).doubleValue();} catch (NumberFormatException e) {tf.setText("0");firstInput = true;legal = true;dataResult = 0;}return result;}}。
java计算器设计实验报告
java计算器设计实验报告Java计算器设计实验报告引言:计算器是人们日常生活中常见的工具之一,它能够进行基本的数学运算,方便人们进行快速计算。
本实验旨在通过使用Java编程语言设计一个简单的计算器,探索计算器的基本原理和实现方法。
一、实验目的本实验的主要目的是通过设计和实现一个基本的计算器,加深对Java编程语言的理解和应用。
通过这个实验,我们可以学习到如何设计一个简单的界面,实现基本的计算功能,并对用户输入进行处理和错误处理。
二、实验步骤1. 界面设计首先,我们需要设计一个简单的计算器界面。
可以使用Swing或JavaFX等工具包来实现界面设计。
界面应该包括数字按钮、运算符按钮以及一个显示屏幕等组件。
2. 事件处理接下来,我们需要为每个按钮添加事件处理程序。
当用户点击按钮时,程序应该能够根据按钮的类型执行相应的操作。
例如,当用户点击数字按钮时,程序应该能够将数字显示在屏幕上;当用户点击运算符按钮时,程序应该能够执行相应的运算。
3. 运算逻辑在实现运算逻辑时,我们需要考虑用户的输入和错误处理。
例如,当用户输入非法字符或进行非法操作时,程序应该能够给出相应的提示或错误信息。
同时,我们还需要考虑运算的优先级和顺序,确保计算结果的准确性。
4. 测试和调试完成代码编写后,我们需要进行测试和调试。
通过输入一系列数字和运算符,检查计算器是否能够正确计算并显示结果。
如果发现错误或异常,需要对代码进行调试,找出并解决问题。
三、实验结果经过测试和调试,我们成功实现了一个简单的计算器。
用户可以通过界面上的按钮输入数字和运算符,并在屏幕上显示计算结果。
计算器能够处理用户的输入并进行相应的运算,同时还能够对错误输入进行处理和提示。
四、实验总结通过本实验,我们深入了解了Java编程语言的应用和实践。
通过设计和实现一个简单的计算器,我们掌握了界面设计、事件处理和运算逻辑的基本原理和方法。
同时,我们也学会了如何进行测试和调试,提高了代码的可靠性和稳定性。
(完整word版)Java计算器实验报告
一、目标:通过Java程序开发实训使学生掌握《面向对象程序设计(Java)》课堂讲授的内容,灵活运用到Java程序的开发与设计中。
二、要求:按时参加Java程序开发实训训练,不得迟到和早退;独立完成程序设计;按要求撰写实践报告。
三、详细内容:使用《面向对象程序设计(Java)》课程讲授内容,编写一个简单的计算器,要求实现如下功能:1.进行图形界面设计通过图形界面设计,掌握JFrame类、JPanel类、5种布局管理器、文本框、标签及按钮的使用方法。
2.实现计算器的基本功能包括加减乘除四则运算、倒数、平方根及清除结果等功能。
3.实现计算器的存储计算功能包括存储中间结果(MS)、使用中间结果(MR)、累加中间结果(M+)及清除中间结果(MC)的功能。
4.计算器的扩展功能包括乘方、对数、正弦、余弦、正切、余切、反正弦、反余弦、反正切、反余切及2进制、8进制、16进制、10进制之间的相互转换等功能.四、源代码import java。
awt.BorderLayout;import java.awt.Color;import java。
awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java。
awt.event.ActionListener;import java.awt。
event。
KeyEvent;import java.text.DecimalFormat;import javax。
swing.JButton;import javax.swing.JFrame;import javax。
swing.JLabel;import javax。
swing.JMenu;import javax.swing。
JMenuBar;import javax。
swing。
JMenuItem;import javax。
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的模块化设计有了更为深入的了解。
计算器_实验报告
一、实验目的1. 熟悉计算器的基本原理和设计方法。
2. 掌握计算器程序的设计与实现。
3. 提高编程能力和软件工程实践能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Java3. 开发工具:Eclipse三、实验内容1. 计算器界面设计2. 计算器功能实现3. 计算器测试与优化四、实验步骤1. 计算器界面设计(1)创建一个Java项目,命名为“Calculator”。
(2)在项目中创建一个名为“CalculatorFrame”的类,继承自JFrame。
(3)在“CalculatorFrame”类中,创建一个JPanel作为计算器的面板,命名为“calculatorPanel”。
(4)在calculatorPanel中,添加一个JTextField作为显示输入和计算结果的文本框,命名为“resultField”。
(5)添加一个JButton数组,作为计算器的按钮,包括数字按钮、运算符按钮和功能按钮。
(6)为每个按钮设置事件监听器,实现按钮点击事件。
2. 计算器功能实现(1)在“CalculatorFrame”类中,定义一个私有成员变量,用于存储当前输入的字符串。
(2)为每个按钮的事件监听器添加逻辑,实现以下功能:- 数字按钮:将按钮对应的数字字符串添加到当前输入字符串中。
- 运算符按钮:将当前输入字符串、运算符和下一个输入字符串组合成一个表达式,并计算结果。
- 功能按钮:实现计算器的其他功能,如清除、求倒数、开平方等。
(3)计算结果存储在resultField中。
3. 计算器测试与优化(1)对计算器进行测试,确保所有功能正常运行。
(2)优化计算器的性能,提高计算速度。
(3)美化计算器界面,提高用户体验。
五、实验结果与分析1. 实验结果成功设计并实现了一个具有基本功能的计算器,界面简洁、操作方便。
2. 实验分析(1)通过学习计算器的基本原理和设计方法,掌握了计算器程序的设计与实现。
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-计算器实验报告
计算器实验报告一、实验目的1.熟悉java图形用户界面的设计原理和程序结构2.能设计复核问题要求的图形用户界面程序3.熟悉java awt和swing的组合4.掌握常用组建的事件借口5.会应用awt和swing组件进行应用程序设计二、实验内容运用所学的java语言,实现计算器的基础功能,及科学计算器的一些功能。
三、实验设计按钮。
第二类按钮式功能式按钮,例如+、-、*、/、%等按钮。
JMenuBar按钮设置了工具条菜单栏,这次总共设置了两个菜单。
这两种按钮需要注册监听,需要实现public void actionPerformed(ActionEvent e)函数,通过e.getSource()可以识别注册监听的按钮,并进行相应的操作。
计算器界面如下所示:菜单栏代码如下:jmb=new JMenuBar();jm1=new JMenu("选项(V)");//助记符,Alt+vjm1.setMnemonic('v');jm2=new JMenu("关于(A)");jm2.setMnemonic('a');jmi1=new JMenuItem("标准");//注册监听jmi1.addActionListener(this);jmi1.setActionCommand("标准");jmi2=new JMenuItem("科学");jmi2.addActionListener(this);jmi2.setActionCommand("科学");jmi3=new JMenuItem("关于计算器");jmi3.addActionListener(this);jmi3.setActionCommand("about");窗体设置的代码:this.setIconImage(new ImageIcon("images/计算器图片.jpg").getImage());this.setTitle("计算器");this.setBounds(500, 180,300,300);this.setVisible(true);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setResizable(false);时间监听处理函数代码://通常在按钮被按下,或双击一个列表项或选中某个菜单时发生@Overridepublic void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubif(e.getSource()==jb[18]){//等于double result=0;num2=Double.parseDouble(jtf.getText());switch(ch){case'+':result=num1+num2;break;case'-':result=num1-num2;break;case'*':result=num1*num2;break;case'/':if(num2!=0)result=num1/num2;elsejtf.setText("0");break;case'%':if(num2!=0)result=num1%num2;elsejtf.setText("0");break;case'e':result=num1*Math.pow(10, num2);break;}if(num2!=0){if(result==(int)(result))jtf.setText((int)(result)+"");elsejtf.setText(result+"");}isdecnum=false;}四、实验总结:通过对计算器窗体的编写我熟悉java图形用户界面的设计原理和程序结构熟悉java awt和swing的组合。
java 计算器 实验报告
java 计算器实验报告Java计算器实验报告一、引言计算器是我们日常生活中常用的工具之一,它可以帮助我们进行简单的数学运算。
随着计算机技术的发展,计算器也逐渐从传统的机械计算器转变为电子计算器,甚至是手机上的应用程序。
本实验旨在利用Java编程语言设计一个简单的计算器,并通过实现基本的数学运算功能来加深对Java编程的理解和应用。
二、实验目的1. 掌握Java编程语言的基本语法和数据类型;2. 理解面向对象编程的概念和思想;3. 学习如何使用Java编写简单的用户界面;4. 实现基本的数学运算功能。
三、实验方法本实验采用Java编程语言,使用Eclipse集成开发环境进行开发。
主要步骤如下:1. 创建一个Java项目;2. 在项目中创建一个计算器类,实现基本的数学运算功能;3. 使用Swing库设计一个简单的用户界面,包括数字按钮、运算符按钮和显示结果的文本框;4. 将用户界面与计算器类进行关联,实现用户输入和计算结果的交互。
四、实验过程1. 创建Java项目并导入Swing库在Eclipse中创建一个新的Java项目,并导入Swing库,以便后续设计用户界面。
2. 设计用户界面使用Swing库提供的组件,设计一个简单的用户界面。
界面包括数字按钮、运算符按钮和显示结果的文本框。
通过设置按钮的事件监听器,实现用户输入和计算结果的显示。
3. 实现计算器类创建一个名为"Calculator"的Java类,该类包含实现基本数学运算的方法。
例如,实现加法运算的方法"add",减法运算的方法"subtract"等。
4. 关联用户界面和计算器类在用户界面的事件监听器中,调用计算器类的相应方法,实现用户输入和计算结果的交互。
五、实验结果经过以上步骤的设计和实现,我们成功创建了一个简单的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实验报告[Calculator]-计算器
计算机科学系实验报告(首页)课程名称: Java2 程序设计班级: 03计(2)班实验名称: 计算器指导教师: 刘 *姓名: 学号: 13 日期: 2005-10-9一: 实验任务和目的:图形界面设计熟悉java.awt包中的组件, 掌握图形界面设计方法, 理解委托事件处理模型。
二: 实验题意和要求:设计并实现Windows系统中的“计算器”的窗口及功能1.设计图形界面, 窗口上添加各种组件及菜单, 并处理组件及菜单的事件监听程序。
实现多种运算, 保证运算正确性。
三: 程序分析讨论、体会:1.界面布局: 主框架:list, 网格布局如图(采用Panel容器), 计算结果显示文本行:show (JTextField), 关于对话框:about(Dialog),据自己掌握的知识, 发觉TextField里面的字符无法靠右显示。
查阅资料后, 发现JTextField可以, 它是属于javax.swing包的, 和TextField几乎一样, 但是其具有的功能属性更丰富。
关于运算:进行运算时, 必须先把文本行的字符串类型(String)的数值转换成数字型(Double)才能进行。
四: 应用主程序清单://package Calculator;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Calculator extends WindowAdapter implements ActionListener{Frame list;JTextField show;Button bc,c,ce,ab,jia,jian,cheng,chu,equ,point,sqrt,ds,bfh,zf;//按钮退格, 清空, 复位, 关于, 加, 减, 乘, 除, 等号, 小数点, 2次方根, 倒数, 百分号, 正负号Button b[]=new Button[10]; //按钮数组, 数字键0~9double sum=0,getValue;int i=0,j=0,p=0,l,action;final int slength=30; //设置结果显示有效长度public void disp(){list=new Frame("Calculator");list.setSize(250,190);list.setLocation(320,250);list.setBackground(Color.LIGHT_GRAY);list.setLayout(new FlowLayout(FlowLayout.CENTER));list.setResizable(false);show=new JTextField(20);show.setText("0");show.setHorizontalAlignment(SwingConstants.RIGHT);show.setEditable(false);list.add(show);Panel dispTop=new Panel();list.add(dispTop);dispTop.setLayout(new GridLayout(1,4,3,3));bc=new Button(" Back ");bc.setForeground(Color.BLUE);dispTop.add(bc);ce=new Button(" CE ");ce.setForeground(Color.BLUE);dispTop.add(ce);c=new Button(" C ");c.setForeground(Color.BLUE);dispTop.add(c);ab=new Button(" About ");ab.setForeground(Color.BLUE);dispTop.add(ab);about=new Dialog(list,"About Calculator",true);Label ct=new Label("CopyRight (c) HZU 03J2 Jastby",1);ct.setForeground(Color.RED);about.add(ct,"Center");about.setSize(200,100);about.setLocation(500,300);about.addWindowListener(this);Panel dispMain=new Panel();list.add(dispMain);dispMain.setLayout(new GridLayout(1,2,10,10));Panel dispLeft=new Panel();dispMain.add(dispLeft);dispLeft.setLayout(new GridLayout(4,3,3,3));Panel dispRight=new Panel();dispMain.add(dispRight);dispRight.setLayout(new GridLayout(4,2,3,3));for(l=9;l>=0;l--){b[l]=new Button(String.valueOf(l));dispLeft.add(b[l]);b[l].addActionListener(this);}jia=new Button("+");jia.setForeground(Color.RED);jian=new Button("-");jian.setForeground(Color.RED);cheng=new Button("*");cheng.setForeground(Color.RED);chu=new Button("/");chu.setForeground(Color.RED);equ=new Button("=");equ.setForeground(Color.RED);point=new Button(".");zf=new Button(" +/- ");sqrt=new Button("sqrt");bfh=new Button("%");ds=new Button("1/x");dispRight.add(chu);dispRight.add(sqrt);dispRight.add(cheng);dispRight.add(bfh);dispRight.add(jian);dispRight.add(ds);dispRight.add(jia);dispRight.add(equ);dispLeft.add(zf);dispLeft.add(point);bc.addActionListener(this);ce.addActionListener(this);c.addActionListener(this);ab.addActionListener(this);jia.addActionListener(this);jian.addActionListener(this);cheng.addActionListener(this);chu.addActionListener(this);equ.addActionListener(this);point.addActionListener(this);zf.addActionListener(this);sqrt.addActionListener(this);bfh.addActionListener(this);ds.addActionListener(this);list.addWindowListener(this);list.setVisible(true);}public void actionPerformed(ActionEvent e){getValue=Double.valueOf(show.getText()).doubleValue();//getValue=Double.valueOf(show.getText());//如果该行出错, 则在后面加上.doubleValue(); 属版本兼容问题if(e.getSource()==jia){ //加运算, 可连加if(j==0){sum=getValue;}else if(action==1){sum+=getValue;}setSum();j++;p=0;i=0;action=1;}else if(e.getSource()==jian){ //减运算, 可连减if(j==0){sum=getValue;}else if(action==2){sum-=getValue;}setSum();j++;p=0;i=0;action=2;}else if(e.getSource()==cheng){ //乘运算, 可连乘if(j==0){sum=getValue;}else if(action==3){sum*=getValue;}setSum();j++;p=0;i=0;action=3;}else if(e.getSource()==chu){ //除运算, 可连除if(j==0)sum=getValue;else if(action==4){sum/=getValue;}setSum();j++;p=0;i=0;action=4;}else if(e.getSource()==equ){ //等号,运算最后一个操作数switch(action){case 1:show.setText(String.valueOf(sum+=getValue));break;case 2:show.setText(String.valueOf(sum-=getValue));break;case 3:show.setText(String.valueOf(sum*=getValue));break;case 4:show.setText(String.valueOf(sum/=getValue));break;}setSum();i=0;j=0;action=0;}else if(e.getSource()==point){ //小数点,只能按一个小数点if(p==0)show.setText(show.getText()+e.getActionCommand());p=1;}else if(e.getSource()==c||e.getSource()==ce){ //清空与复位i=0;j=0;p=0;sum=0;action=0;show.setText("0");}else if(e.getSource()==bc){ //退格String s=show.getText();if(s.length()>1){show.setText("");for (l=0;l<s.length()-1;l++){ //按一下,删除尾部一位char a=s.charAt(l);show.setText(show.getText()+a);}}elseshow.setText("0");}else if(e.getSource()==ab){ //关于,弹出对话框about.setVisible(true);}else if(e.getSource()==sqrt){ //开2次方根sum=Math.sqrt(getValue);setSum();j++;}else if(e.getSource()==ds){ //求倒数sum=1/getValue;setSum();j++;}else if(e.getSource()==bfh){ //百分号sum=getValue/100;setSum();j++;}else if(e.getSource()==zf){ //正负号切换,正号不显示String s=show.getText();char a=s.charAt(0);if(a=='-'){show.setText("");for(l=1;l<s.length();l++){ //去掉负号show.setText(show.getText()+s.charAt(l));}}else if(getValue!=0){ //加上负号show.setText("-"+s);}}for(l=0;l<10;l++){ //0~9数字键触发if(e.getSource()==b[l]){if(i==0)show.setText("");String s = show.getText();if(s.length()<slength)show.setText(show.getText()+e.getActionCommand());if(e.getSource()==b[0] && getValue==0 && p==0)show.setText("0");if(e.getSource()!=b[0] && getValue==0 && p==0)show.setText(e.getActionCommand());i++;}}}public void setSum(){ //把计算结果显示出来show.setText(String.valueOf(sum));String s = show.getText();char a=s.charAt((s.length()-1));char b=s.charAt((s.length()-2));if (a=='0' && b=='.'){ //如果是整数,则去掉后面的小数点和0show.setText(String.valueOf(Math.round(sum)));}}public void windowClosing(WindowEvent e){if(e.getSource()==about)about.setVisible(false);else if(e.getSource()==list)System.exit(0);}public static void main(String args[]){(new Calculator()).disp();}}。
JAVA计算器实验报告
JA V A计算器实验报告一、实验目的实现计算器的加减乘除基本运算了解JA V A程序设计中的类与对象,类及成员的定义掌握运算符及基本的表达式与异常处理掌握JA V A 的系统类语言包,工具包,数学包二﹑实验原理运用JA V A语言设计出具有运算功能的计算器。
计算器的设计要点有以下两个1、界面的设计:Swing布局。
2、数据输入:鼠标事件响应。
三实验要求实现计算器的加减乘除运算。
四实验结果(程序)与分析import java.awt.*;import java.awt.event.*;import javax.swing.*;public class CalculatorJFrame extends JFrame implements ActionListener{private JTextField text; //显示计算结果的文本行private char op; //当前运算符private float value; //当前计算结果值private boolean first; //表示是否为数值的第1个数字public CalculatorJFrame(){super("计算器");this.setSize(280,210);this.setLocation(300,240);this.display(); //显示图形用户界面this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setV isible(true);op='+';value=0.0f;first=true;}private void display() //图形用户界面{text = new JTextField("0.",30);text.setHorizontalAlignment(JTextField.RIGHT); //设置对齐方式,右对齐text.setEditable(false); //只能显示,不允许编辑this.getContentPane().add(text,"North");JPanel panel = new JPanel(new GridLayout(5,4,5,5));//面板采用网格布局this.getContentPane().add(panel);Stringstr[]={"sqrt","+/-","Backspace","C","7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"} ;JButton buttons[] = new JButton[str.length];for (int i=0; i<buttons.length; i++){buttons[i] = new JButton(str[i]);panel.add(buttons[i]);buttons[i].addActionListener(this); //为按钮注册单击事件监听器}}public void actionPerformed(ActionEvent e) //按钮单击的事件处理方法{String current = e.getActionCommand(); //获取按钮标签if (current=="C") //清除{text.setText("0."); //重新设置文本内容value = 0.0f;first = true;return;}if (current=="Backspace") //退格{String str=text.getText().substring(0,text.getText().length()-1);text.setText(str);if (str==""){text.setText("0.");first = true;}return;}if (current.charAt(0)>='0' && current.charAt(0)<='9' || current==".") //0~9数字按钮{if (first){text.setText("");first = false;}text.setText(text.getText()+current);}else{System.out.print(""+value+op+text.getText()+"=");switch (op){case '+': value += Float.parseFloat(text.getText());break; //转换成浮点数后运算case '-': value -= Float.parseFloat(text.getText());break;case '*': value *= Float.parseFloat(text.getText());break;case '/': value /= Float.parseFloat(text.getText());break;}System.out.println(""+value);text.setText(""+value);op = current.charAt(0); //字符串中取第1个字符first = true;}}public static void main(String arg[]){new CalculatorJFrame();}}实验结果:实验分析:计算器中有具有计算功能的类,myframewithmenu,在myframewithmenu中有窗口,按键,面板,菜单等组件,然后将组件添加到panel中,接着把panel添加到frame中,设置布局。
Java计算器实验报告(1)
Java计算器实验报告(1)Java计算器实验报告一、实验目的本实验旨在通过设计一个基于Java语言的计算器程序,以深入了解Java语言的面向对象编程思想及Java Swing界面编程技术,并能够熟练掌握Java语言实现简单的计算器功能。
二、实验环境本实验使用的软件环境为:JDK1.8版本、Eclipse开发工具。
三、实验内容1.设计Java计算器的UI界面通过Java Swing界面编程技术设计出计算器UI界面,包含数字按钮、运算符按钮、等号按钮、清空按钮等基本功能。
2.通过Java语言实现简单的计算器功能在UI界面中通过Java语言代码实现如下计算器功能:(1)数字按键可以输入多位数,并能实现小数点的输入。
(2)运算符按键可实现加、减、乘、除四则运算。
(3)“=”按钮可完成计算,并显示计算结果。
(4)清空按钮可清除显示屏上显示的数据。
四、实验步骤1.设计Java计算器UI界面的步骤(1)使用Swing容器类JFrame创建主窗体。
(2)添加JPanel面板,用于放置数字按钮和运算符按钮。
(3)设计数字按钮和运算符按钮的布局。
(4)通过Swing组件JTextField创建显示屏,并设置其属性。
(5)为数字按钮和运算符按钮添加事件监听器,实现相应的操作。
2.实现计算器功能的步骤(1)将数字及运算符分别存储在两个栈内。
(2)按照栈的特性先入后出,将输入的数字符解析为整数或小数,并放入数字栈内。
(3)当输入运算符时,根据优先级可以决定是否需要进行计算。
(4)若当前输入的运算符优先级小于栈顶运算符优先级,则将栈顶运算符出栈,并从数字栈中取出两个数据进行计算,并将结果存入数字栈中,直到当前输入的运算符优先级大于等于栈顶运算符优先级为止。
(5)等号按钮的实现是将剩余的运算符依次取出,从数字栈中取出两个数字进行计算,计算后的结果存入数字栈中。
(6)清空按钮的实现是将数字栈、运算栈及显示屏内的内容全部清空。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华北科技学院计算机学院综合性实验
实验报告
课程名称JAVA程序设计
实验学期2012至2013学年第1学期学生所在系部计算机学院
任课教师白磊
实验成绩
计算机学院制
《JAVA程序设计》课程综合性实验报告
开课实验室:基础四2012年12月09日
实验题目简单计算器设计
一、实验目的
通过编写Java的应用系统综合实例——简单计算器软件,总结、回顾和实践面向对象的编程思想以及编程方法,并通过编写程序来掌握Java语言编程技巧,将学习到的知识融会贯通,同时提高调试程序的能力,养成良好的编程习惯,并增强对程序设计整体思路的把握。
熟悉在集成开发环境下编写Java程序。
二、设备与环境
Eclipse、JDK开发包、集成开发环境
三、实验内容及代码
首先设计的是程序的结构。
程序中主要是一计算器公共类(implements ActionListener),包括构造函数(用于计算器的外观设置,布局)。
在设计一个界面时先设计Frame容器,在north添加一个TextField,center添加一个Panel容器。
再在Panel容器中添加两个panel容器,第一个panel中添加“CE”(西端)、“backspace”(中间)、“C”(东端)三个按钮。
第二个panel容器中GridLaout把容器分成四行五列,添加1,2,3,4,5,6,7,8,9,0,+,-,*,/,%,+\-,1/x,sqrt,=,这些按钮。
定义各个按钮逐个添加给ActionListener监听器进行注册。
界面构造号后接着定义算法。
定义加减乘除,倒数,开方等这些基本运算包含于actionPerformed 方法(用于事件的响应),一个public static void main(String arg[])程序运行入口。
在main中创建一个计算器类对象,在创建对象的同时,初始化各组件,创建图形用户界面。
代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
价。