实验报告---计算器

合集下载

实验报告 计算器程序

实验报告 计算器程序

实验报告学生姓名:学号:专业班级:网络工程实验类型:□验证□综合■设计□创新实验日期:10.4.5 实验成绩:实验2:栈和队列一、实验目的深入了解栈和队列的特性,学会在实际问题下灵活运用它们。

二、问题描述表达式求值运算是实现程序设计语言的基本问题之一,也是栈应用的一个典型例子。

设计并演示用算符优先级对算术表达式的求解过程。

三、实验要求1、算法优先级别如下:'+', '-', '*', '/', '(', ')', '#''+' '>', '>', '<', '<', '<', '>', '>','-' '>', '>', '<', '<', '<', '>', '>','*' '>', '>', '>', '>', '<', '>', '>','/' '>', '>', '>', '>', '<', '>', '>','(' '<', '<', '<', '<', '<', '=', ' ',')' '>', '>', '>', '>', ' ', '>', '>','#' '<', '<', '<', '<', '<', ' ', '='2、以字符序列的形式从终端输入语法正确、不含变量的算术表达式,利用给出的算符优先级关系,实现对算术四则混合运算的求解过程。

运算器实验报告

运算器实验报告

运算器实验报告实验背景运算器是计算机中一种重要的基本逻辑电路,用于进行算术和逻辑运算。

本次实验旨在设计一个基于逻辑门的4位二进制加法器,以实现两个4位二进制数的加法运算。

实验设备与材料1. 逻辑门:AND门、OR门、XOR门、NOT门2. 电路连接线3. 电压源4. 实验板5. 4个开关、8个LED灯实验原理在二进制数的加法中,我们需要对每一位进行逐个相加,并考虑进位的情况。

对于两个4位二进制数的加法,我们可以将其划分为4个单独的位加法运算,再结合进位的情况进行计算。

实验步骤1. 连接电路:根据逻辑门的真值表和逻辑方程,使用电路连接线将逻辑门按照设计要求连接在一起。

2. 设计输入:使用4个开关分别表示两个4位二进制数的每一位输入。

3. 设计输出:使用8个LED灯分别表示两个4位二进制数的每一位输出和进位。

4. 进行实验:按照设计的输入情况,观察LED灯的亮灭情况,验证加法器的正确性。

5. 记录结果:将实验结果记录在实验报告中。

实验结果与分析实验中,我们设计的4位二进制加法器成功实现了两个4位二进制数的加法运算。

通过观察LED灯的亮灭情况,我们可以判断出加法器的计算是否正确。

在实验过程中,我们发现在某些情况下,LED灯的亮灭可能存在短暂的闪烁现象,这是因为逻辑门的切换速度限制导致的,不会影响加法器的正常运算结果。

实验总结通过本次实验,我们深入理解了运算器的工作原理,并成功设计并实现了一个基于逻辑门的4位二进制加法器。

在实验中,我们熟悉了逻辑门的连接方法,并通过观察LED灯的亮灭情况验证了加法器的正确性。

此外,在实验中我们也发现了逻辑门的切换速度限制会导致LED 灯的闪烁现象。

在实际应用中,我们需要根据逻辑门的性能要求选择适当的门延迟时间,以保证运算器的稳定工作。

总体而言,本次实验对于我们理解运算器的工作原理,掌握逻辑门的应用具有重要意义。

我们相信通过进一步的学习和实践,我们能够设计出更加复杂和高效的运算器,为计算机的发展做出更大的贡献。

电工实验报告 加法计算器

电工实验报告 加法计算器

姓名班级 1 学号
实验日期节次教师签字成绩
加法计算器
1.实验目的
熟悉掌握有关时序逻辑电路的组成原理;
通过设计一个简单的计算器,掌握组合逻辑电路、时序逻辑电路的分析和设计方法;
了解及掌握中规模集成电路,了解各个芯片的管脚图及结构图。

能够掌握全加器、计数器等的功能及实现方法;
锻炼自己的动手实践能力,并自己设计电路,培养自己的兴趣。

2.总体设计方案或技术路线
设计一个多功能计算器,它能实现简单的加法运算,只能显示结果为0—16的和数,并能够在数码管上显示,加法运算的实现要求:用四个开关代表四位二进制数,操纵开关,输入二进制数码,则在对应的数码管1上会显示出相应的十进制数,即代表被加数;用同样的方法在另外的四个开关上输入二进制数,则在对应的数码管2上还会出现相应的十进制数,即代表加数;当加数与被加数都输入后,在数码管3和数码管4上出现两数的和,两个数码管可以显示到和的十位。

3.实验电路图
4.仪器设备名称、型号和技术指标
直流稳压电源、试验箱、万用表;
2个74LS00D、1个74LS283D、1个74LS04D、2个74LS08D、1个74LS20D;
单刀双掷开关9个、导线若干。

大学计实验报告算机

大学计实验报告算机

大学计实验报告算机一、引言计算机实验是大学计算机专业主要的实践环节之一,旨在培养学生动手能力和解决实际问题的能力。

本实验报告将介绍我在大学计算机实验课程中进行的一项实验项目,以及实验过程中的设计思路、实验方法和实验结果等。

二、实验目的本次实验的目的是设计一个简单的计算器程序,实现基本的四则运算功能。

通过这个实验,我们将学习和掌握编程语言中的基本语法、算法设计和软件开发流程等知识。

三、实验环境和工具本次实验的环境是使用C++编程语言,在Windows操作系统下进行开发。

我们使用了Visual Studio代码编辑器和编译器。

四、实验内容我们的计算器程序需要满足以下要求:1.可以进行两个整数之间的加、减、乘、除运算;2.能够处理异常输入,例如除数为0;3.对用户的输入进行合法性检查,确保输入的是数字或者合法的运算符;4.提供友好的用户界面,即使是非技术人员也能够使用;5.可以进行多次计算,直到用户主动选择退出。

五、实验设计为了实现上述要求,我们按照以下步骤进行实验设计:1.设计程序的整体架构,确定分为输入、处理和输出三个模块;2.编写输入模块的代码,读取用户的输入并进行合法性检查;3.编写处理模块的代码,根据用户输入的运算符进行相应的运算;4.编写输出模块的代码,将计算结果显示在用户界面上;5.测试程序是否能够正确处理各种输入情况,并进行错误输入的异常处理。

六、实验步骤1.创建一个新的C++项目,并设置好相关的编译选项;2.编写程序的主要逻辑,包括输入、处理和输出模块;3.编写输入模块的代码,根据用户的输入进行合法性检查;4.编写处理模块的代码,根据运算符进行相应的运算;5.编写输出模块的代码,打印出计算结果;6.进行功能测试和异常输入测试,确保程序的正确性和鲁棒性;7.对程序进行性能测试,评估程序的性能。

七、实验结果经过多次测试和调试,我们的计算器程序能够正确处理各种输入情况,并能够返回正确的计算结果。

东南大学虚拟仪器实验报告-(计算n!,计算器)

东南大学虚拟仪器实验报告-(计算n!,计算器)

东南大学生物科学与医学工程学院虚拟仪器实验报告第二次实验实验名称:程序结构专业:生物医学工程姓名:学号:同组人员:学号:实验室: 综合楼716实验时间:10月14日评定成绩:审阅教师:一、计算n的阶乘 (3)1实验题目 (3)2实验目的 (3)3实验内容 (3)4设计方案选择、方案的优缺点。

(3)5软件设计: (3)6调试: (6)7测试结果和分析。

(6)8使用说明: (7)9结束语、总结、心得体会。

(7)二、实现加减乘除的计算器 (7)1实验题目 (7)2实验目的 (7)3实验内容 (7)4设计方案选择、方案的优缺点。

(7)5软件设计: (8)6调试: (9)7测试结果和分析 (10)8使用说明: (10)9结束语、总结、心得体会。

(10)一、计算n的阶乘1实验题目完成计算n的阶乘2实验目的①前面板数字控制器可随意输入n的值,并能显示结果(注:0!=1)。

②For循环中重复时间不少于100ms(即程序每100ms循环一次)。

3实验内容⑴学习while、For循环的使用方法。

⑵学习移位寄存器的概念,学习移位寄存器的使用。

⑶学习使用Case结构,学习添加和删除分支。

4设计方案选择、方案的优缺点。

计算n的阶乘的计算器方案选择:利用循环语句,进行数字n的阶乘运算,利用移位寄存器实现数据的传送完成数字连乘。

利用时间计时器的差值得出程序运行所用时间。

能够简洁明了的实现计算n的阶乘的功能,数据正确。

5软件设计:虚拟仪器设计步骤详细介绍。

(1)程序前面板设计:数值输入控件:名称:输入n 属性:双精度(DBL)用途:面向用户,手动输入n值数值显示控件:名称:n!的值属性:双精度(DBL)用途:显示n!运算结果名称:运行时间(ms)属性:双精度(DBL)用途:显示程序运行时间面板的布局:。

(2)框图程序设计:程序流程图:源程序:6调试:调试步骤:使用高亮执行该段程序,观察数据流的动向。

调试中问题:一开始使用整型,对于较小数值,结算结果正确,但对于较大的数值计算结果错误。

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;}}。

计算器实验报告

计算器实验报告

实验一计算器的制作一.实验要求1.参照Windows系统提供的计算器功能,制作一个自己的计算器,至少能完成数据的加减乘除的基本功能。

2.控件的焦点以及Tab键的设置和使用3.多个控件(按钮)事件的共享4.键盘的事件的应用二.设计思路1、首先要考虑将输入的内容在textbox上显示出来。

所以整个过程采用全局变量input来记录用户输入的内容(计算器的按键输入或者键盘输入)。

然后再将input的内容显示到textbox上。

2、接下来就是怎么去将用户的输入变成数字和运算符的问题了。

本实验的计算器有“普通运算”和“科学运算”之分。

所以在计算的时候需要判断是哪一种运算,用radioButton.Checked来判断。

3、如果是普通的运算,“+”、“-”、“*”、“/”的优先级一样,所以算法比较简单,只需要将input字符串的内容分割成运算符和数字,然后再push到两个不同的栈中。

其中数字要先转换为double类型,再存入到栈中。

4、如果是科学运算,则需要按照来“+”、“-”、“*”、“/”的优先级来进行运算。

我是运用堆栈来实现的。

算法如下:每当用户点击“+”、“-”、“*”、“/”中的任何一个键时,则进行判断,如果是“*”、“/”,则将“*”、“/”之前的一个数变成double类型,然后再存入栈中。

然后设置乘号的标识符flag1为true,或者设置除号的标识符flag2为true。

如果用户点击的是“+”、“-”,则先判断flag1,flag2是否为true,如果为true,则从栈中pop一个数,然后与当前用户输入的数进行计算,然后再push到栈中,并把“+”、“-”也存入到另一个栈中;如果为false,则将“+”、“-”之前的一个数变为double,然后存入栈中,把“+”、“-”也存入到另一个栈中。

5、当用户点击“=”号的时候,则对两个栈进行运算。

由于实验还要求可以支持键盘输入。

所以需要对Input进行判断。

mfc计算器实验报告

mfc计算器实验报告

mfc计算器实验报告MFC计算器实验报告引言MFC(Microsoft Foundation Class)是微软公司开发的一套用于开发Windows 应用程序的类库。

MFC计算器是使用MFC类库开发的一个简单的计算器应用程序,它可以进行基本的加减乘除运算。

在本实验中,我们将对MFC计算器进行实验,测试其功能和性能。

实验目的1. 测试MFC计算器的基本功能,包括加法、减法、乘法和除法运算。

2. 测试MFC计算器的界面设计和用户交互体验。

3. 测试MFC计算器在不同输入情况下的稳定性和准确性。

实验方法1. 打开MFC计算器应用程序。

2. 依次进行加法、减法、乘法和除法运算,记录运算结果。

3. 测试MFC计算器在输入不同类型的数字和符号时的反应。

4. 测试MFC计算器在输入非法字符时的反应。

5. 测试MFC计算器在进行连续多次运算时的稳定性。

实验结果1. MFC计算器的加法、减法、乘法和除法运算均能正常进行,并且结果准确。

2. MFC计算器的界面设计简洁明了,用户交互体验良好。

3. MFC计算器在输入不同类型的数字和符号时能够正确识别并进行运算。

4. MFC计算器在输入非法字符时能够给出相应的提示并不进行计算。

5. MFC计算器在进行连续多次运算时稳定性良好,没有出现崩溃或错误的情况。

结论通过本次实验,我们测试了MFC计算器的功能和性能,结果表明MFC计算器具有良好的稳定性和准确性,界面设计简洁明了,用户交互体验良好。

MFC计算器是一个功能齐全、稳定可靠的计算器应用程序,适合进行日常的简单运算操作。

在未来的开发中,可以进一步完善MFC计算器的功能,提高其性能和用户体验。

参考文献无。

简易计算器实验报告

简易计算器实验报告

简易计算器实验报告一、实验目的本次实验的目的是设计并实现一个简易计算器,能够进行基本的四则运算(加、减、乘、除),以及处理括号的优先级运算,提高对程序设计和逻辑思维的理解与应用能力。

二、实验原理1、四则运算的优先级规则在数学运算中,先计算括号内的表达式,然后按照先乘除后加减的顺序进行计算。

乘除法的优先级高于加减法,如果在同一级运算中,按照从左到右的顺序进行。

2、数据结构的选择使用栈(Stack)数据结构来存储操作数和运算符。

栈具有先进后出的特点,非常适合处理表达式中的括号和优先级。

3、算法思路首先,将输入的表达式进行解析,将数字和运算符分别存储到不同的栈中。

然后,根据运算符的优先级进行计算,将计算结果重新压入栈中,直到表达式计算完毕。

三、实验设备及环境1、编程工具:选择了 Python 语言作为主要的编程工具,使用PyCharm 集成开发环境进行代码编写和调试。

2、操作系统:Windows 10 操作系统。

四、实验步骤1、定义数据结构定义两个栈,一个用于存储操作数(operandStack),一个用于存储运算符(operatorStack)。

2、表达式解析遍历输入的表达式字符串,将数字转换为整数并压入操作数栈,将运算符压入运算符栈。

遇到左括号直接压入运算符栈,遇到右括号则进行括号内的运算。

3、运算处理当运算符栈不为空时,取出栈顶的运算符和两个操作数进行计算。

根据运算符的优先级进行相应的运算,将结果压入操作数栈。

4、最终结果当表达式解析完毕后,操作数栈中的唯一元素即为表达式的计算结果。

五、代码实现```pythonclass SimpleCalculator:def __init__(self):selfoperandStack =selfoperatorStack =def calculate(self, expression):for char in expression:if charisdigit():selfoperandStackappend(int(char))elif char in '+/()':if char =='(':selfoperatorStackappend(char)elif char ==')':while selfoperatorStack-1!='(':operator = selfoperatorStackpop()operand2 = selfoperandStackpop()operand1 = selfoperandStackpop()result = selfperformOperation(operand1, operand2, operator)selfoperandStackappend(result)selfoperatorStackpop()else:while selfoperatorStack and selfhasHigherPrecedence(selfoperatorStack-1, char):operator = selfoperatorStackpop()operand2 = selfoperandStackpop()operand1 = selfoperandStackpop()result = selfperformOperation(operand1, operand2, operator)selfoperandStackappend(result)selfoperatorStackappend(char)while selfoperatorStack:operator = selfoperatorStackpop()operand2 = selfoperandStackpop()operand1 = selfoperandStackpop()result = selfperformOperation(operand1, operand2, operator)selfoperandStackappend(result)return selfoperandStackpop()def hasHigherPrecedence(self, op1, op2):if op1 in '/' and op2 in '+':return Trueelif op1 in '+' and op2 in '+':return Falseelif op1 in '/' and op2 in '/':return Falsereturn Falsedef performOperation(self, operand1, operand2, operator):if operator =='+':return operand1 + operand2elif operator =='':return operand1 operand2elif operator =='':return operand1 operand2elif operator =='/':if operand2 == 0:raise ValueError("除数不能为 0")return operand1 / operand2if __name__ =="__main__":calculator = SimpleCalculator()expression ="2 + 3 (4 1) / 2"result = calculatorcalculate(expression)print("计算结果:", result)```六、实验结果与分析1、测试用例及结果输入表达式:"2 + 3 4",计算结果:14输入表达式:"(2 + 3) 4",计算结果:20输入表达式:"5 2 3",计算结果:-1输入表达式:"10 / 2 + 1",计算结果:62、结果分析对于简单的四则运算表达式,计算器能够正确计算出结果。

计算器界面制作实训报告

计算器界面制作实训报告

一、引言随着计算机技术的不断发展,软件编程已经成为计算机科学领域的基础技能之一。

为了提高我的编程能力,我参加了本次计算器界面制作的实训。

通过本次实训,我不仅学习了计算器界面的设计方法,还提升了面向对象编程和图形用户界面(GUI)开发的能力。

二、实训目的1. 掌握计算器界面的设计方法。

2. 熟悉面向对象编程的基本思想。

3. 提高图形用户界面(GUI)开发技能。

4. 培养团队协作和沟通能力。

三、实训内容本次实训要求我独立完成一个简易计算器的界面设计,包括以下功能:1. 数字输入:支持输入0-9的数字。

2. 运算符输入:支持加、减、乘、除四则运算。

3. 结果显示:实时显示计算结果。

4. 清除功能:清除输入的数字和运算符。

四、实训过程1. 需求分析:首先,我分析了计算器的功能需求,明确了界面设计的基本框架。

2. 界面设计:根据需求分析,我设计了一个简洁明了的计算器界面,包括数字键盘、运算符按钮、结果显示区域和清除按钮。

3. 编程实现:- 面向对象编程:我采用了面向对象编程的思想,将计算器界面划分为多个类,如数字按钮类、运算符按钮类、结果显示区域类等。

- 图形用户界面(GUI)开发:我使用了Java Swing库中的组件来实现计算器界面,包括JFrame、JButton、JTextField等。

4. 功能实现:- 数字输入:我为数字按钮设置了监听器,当用户点击按钮时,将数字显示在结果显示区域。

- 运算符输入:我为运算符按钮设置了监听器,当用户点击按钮时,将运算符存储在变量中。

- 结果显示:根据输入的数字和运算符,计算结果并显示在结果显示区域。

- 清除功能:我为清除按钮设置了监听器,当用户点击按钮时,清空输入的数字和运算符。

5. 调试与优化:在编程过程中,我遇到了一些问题,如按钮点击事件处理、界面布局等。

通过查阅资料和请教同学,我逐步解决了这些问题,并对程序进行了优化。

五、实训总结1. 技术收获:通过本次实训,我掌握了计算器界面的设计方法,熟悉了面向对象编程和图形用户界面(GUI)开发技能。

关于计算机实验报告的参考范文(精选3篇)

关于计算机实验报告的参考范文(精选3篇)

关于计算机实验报告的参考范文(精选3篇)关于计算机实验报告的参考范文篇1一、实验题目文件和文件夹的管理二、实验目的1.熟悉Windows XP的文件系统。

2.掌握资源管理器的使用方法。

3.熟练掌握在Windows XP资源管理器下,对文件(夹)的选择、新建、移动、复制、删除、重命名的操作方法。

三、实验内容1.启动资源管理器并利用资源管理器浏览文件。

2.在D盘创建文件夹3.在所创建文件夹中创建Word文件。

4.对所创建文件或文件夹执行复制、移动、重命名、删除、恢复、创建快捷方式及设置共享等操作。

四、实验步骤(一)文件与文件夹管理1.展开与折叠文件夹。

右击开始,打开资源管理器,在左窗格中点击“+”展开,点击“—”折叠2.改变文件显示方式。

打开资源管理器/查看,选择缩略、列表,排列图标等3.建立树状目录。

在D盘空白处右击,选择新建/文件夹,输入经济贸易学院,依次在新建文件夹中建立经济类11034..创建Word并保存。

打开开始/程序/word,输入内容。

选择文件/另存为,查找D盘/经济贸易学院/1103班/王帅,单击保存5.复制、移动文件夹6.重命名、删除、恢复。

右击文件夹,选择重命名,输入新名字;选择删除,删除文件7.创建文件的快捷方式。

右击王帅文件夹,选择发送到/桌面快捷方式8.设置共享文件。

右击王帅,选择属性/共享/在网络上共享这个文件/确定9.显示扩展名。

打开资源管理器/工具/文件夹选项/查看/高级设置,撤销隐藏已知文件的扩展名(二)控制面板的设置。

1.设置显示属性。

右击打开显示属性/桌面、屏幕保护程序2.设置鼠标。

打开控制面板/鼠标/按钮(调整滑块,感受速度)、指针3.设置键盘。

打开控制面板/键盘/速度(调整滑块,感受速度)、硬件4.设置日期和时间打开控制面板/日期和时间5.设置输入法。

打开控制面板/区域与语言选项/详细信息/文字服务与输入语言(三)Windows附件的使用1.计算器。

打开开始/所有程序/附件/计算器/查看/科学型,2.画图。

北京理工大学 数据结构 实验报告 实验二 简易计算器

北京理工大学 数据结构 实验报告 实验二  简易计算器

实验二简易计算器姓名:任子龙学号:1120140167 班级:05111451一.需求分析1.程序要求可对一实数算术表达式进行简单的数学运算,可以识别带+、-、*、/、%、^(乘方)等等运算符及括号的中缀表达式,从键盘上输入一算术表达式(一般为中缀表达式),计算出表达式的值。

2.按照四则运算规则,求表达式的值。

一般规则如下:1)先括号内,再括号外。

2)先乘方,再乘除,后加减。

b.同级运算从左到右顺序执行。

3.有良好的提示信息,引导用户在键盘上输入规定的运算指令;如表达式有误,也应给出相应的提示信息。

4.建立两个工作栈,分别保存运算符,操作数或运算结果。

二.概要设计1.抽象数据类型的定义为实现上述功能,建立两个工作栈;算符为字符型变量,算数为单精度浮点型变量,则需要定义两种数据类型分别存储。

typedef struct StackChar{char c;struct StackChar*next;}SC;typedef struct StackFloat{float f;}SF;2.本程序包含两个模块(1)主程序模块主函数只包含了输入输出部分。

流程为:首先输入算式,然后调用算符优先算法函数EvaluateExpression(s)进行计算,结果输出;然后循环下去,直到输入OUT指令,退出程序;(2)链栈单元模块——实现栈的链式存储的抽象数据类型。

各函数之间的调用关系:三.详细设计1.结点类型typedef struct StackChar{char c;struct StackChar*next;}SC;float f;struct StackFloat*next;}SF;2.子函数(1)算符优先算法的主干函数float EvaluateExpression(char*e)实现算符优先算法主干的函数。

首先判断是算符还是算数,如果是算符,与算符栈栈顶元素进行优先级比较,如果该算符优先级比原栈顶元素优先级高,则进栈,否则进行运算;如果是算数,则入算数栈。

vb计算器 实验报告

vb计算器 实验报告

vb计算器实验报告VB计算器实验报告引言:计算器是人们日常生活中常用的工具之一,无论是进行简单的数学运算还是复杂的科学计算,计算器都能提供帮助。

本实验旨在使用VB(Visual Basic)编程语言设计和实现一个功能完善的计算器,通过该实验,我们可以深入了解计算器的原理和实现方法,并掌握VB编程的基本技巧。

一、实验目的本实验的主要目的是设计和实现一个VB计算器,具体包括以下几个方面:1. 学习VB编程语言的基本语法和数据类型;2. 掌握VB窗体的设计和布局;3. 实现基本的计算功能,包括加减乘除、取余、开方等;4. 实现科学计算功能,包括三角函数、指数函数、对数函数等;5. 实现计算器的界面美化和用户友好性。

二、实验原理1. VB编程语言VB是一种事件驱动的编程语言,它提供了丰富的控件和库函数,方便开发者进行图形界面的设计和实现。

在本实验中,我们将使用VB编程语言来实现计算器的功能。

2. VB窗体设计VB窗体是计算器的主界面,通过在窗体上添加各种控件,如按钮、文本框等,来实现计算器的各种功能。

通过设置控件的属性和事件,可以实现用户与计算器的交互。

3. 计算器的基本功能实现计算器的基本功能包括加减乘除、取余、开方等,这些功能可以通过VB编程语言中提供的数学函数和运算符来实现。

通过捕捉用户输入的数据和操作符,计算器可以进行相应的计算并将结果显示在屏幕上。

4. 科学计算功能的实现科学计算功能是计算器的扩展功能,包括三角函数、指数函数、对数函数等。

这些函数可以通过VB编程语言中提供的数学库函数来实现,通过捕捉用户的选择和输入,计算器可以根据用户的需求进行相应的科学计算。

5. 界面美化和用户友好性为了提高计算器的用户体验,我们需要对计算器的界面进行美化和优化。

通过设置控件的样式、颜色和布局,可以使计算器界面更加美观和易用。

三、实验步骤1. 创建VB工程,并添加一个窗体;2. 在窗体上添加各种控件,如按钮、文本框等,用于实现计算器的各种功能;3. 设置控件的属性和事件,实现计算器的基本功能,包括加减乘除、取余、开方等;4. 添加科学计算功能,如三角函数、指数函数、对数函数等,实现科学计算器的功能;5. 美化计算器界面,通过设置控件的样式、颜色和布局,提高用户体验;6. 进行测试和调试,确保计算器的功能正常。

大学大学计算机实验报告实验报告

大学大学计算机实验报告实验报告

大学计算机实验报告实验一:计算器设计实验目的本实验的主要目的是让学生能够够了解计算器的基本原理和结构,学会利用各种键盘实现各类功能,并且能够熟练掌握计算器的基本操作和输入语法。

同时,在本实验过程中,学生还可以通过实践发现计算机中各种错误信息,加深对计算机错误处理的认识与理解。

实验内容本实验主要涉及以下内容:1.计算器的结构和原理。

2.利用各键盘实现计算器的各种功能。

3.计算器的基本操作和输入语法。

4.计算机错误的处理与研究。

实验步骤1.分析计算器的结构和原理,写出计算器的结构图和研究计算器基本原理。

2.编写程序,实现计算器的基本功能,包括加、减、乘、除、取模、求幂等。

3.研究计算器的基本操作,包括输入数字、符号、运算结果、清除结果、重置操作等。

4.记录计算过程、错误信息等,深化对计算机错误的认识与理解。

实验数据分析在本次实验过程中,我们实现了计算器的基本功能,并且也对计算器的基本操作有了更深入的了解。

在输入数字和符号时,我们需要按照一定的语法和操作,输入符号和数字的结构相对比较简单,重要的是输入语法,比如加号+,减号-,乘号*,除号/等等。

在进行计算器功能操作的过程中,我们还需要对计算过程进行记录,以便在出现错误时及时进行处理和分析,比如出现除数为零的情况,计算过程出现错误的信息等等。

实验总结通过本次实验,我们深入了解了计算器的基本结构和原理,掌握了计算器的基本操作和输入语法,加深了对计算机错误处理的认识与理解。

在今后的学习和实践中,我们将进一步完善和扩展计算器的功能,并且不断探索计算器在计算机应用中的广泛应用价值。

实训报告参考(计算器)

实训报告参考(计算器)

实训项目一——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. 熟悉工程测量计算器的功能和使用方法;2. 掌握工程测量中常用的计算公式和计算方法;3. 培养学生严谨、细致的工程测量素养;4. 提高学生在实际工程测量中的计算能力。

三、实训内容1. 工程测量计算器简介2. 工程测量计算器的基本操作3. 工程测量中常用的计算公式及计算方法4. 实际工程测量案例计算四、实训过程1. 工程测量计算器简介在本次实训中,我们使用的是一款品牌为“某品牌”的工程测量计算器。

该计算器具有以下特点:(1)高精度:该计算器具有高精度的计算能力,可以满足工程测量中对数据准确性的要求;(2)多功能:该计算器具备多种测量功能,如角度测量、距离测量、面积计算等;(3)易用性:该计算器操作简便,易于上手。

2. 工程测量计算器的基本操作在实训过程中,我们首先学习了工程测量计算器的基本操作,包括开机、关机、设置单位、切换模式等。

以下是具体操作步骤:(1)开机:按下计算器的开机按钮,计算器进入待机状态;(2)设置单位:根据测量需求,设置计算器的单位,如长度单位为米、角度单位为度等;(3)切换模式:根据测量内容,切换计算器的模式,如角度测量模式、距离测量模式等;(4)关机:按下计算器的关机按钮,计算器进入关机状态。

3. 工程测量中常用的计算公式及计算方法在实训过程中,我们学习了以下工程测量中常用的计算公式及计算方法:(1)角度计算:角度计算公式为:角度 = arctan(对边/邻边);(2)距离计算:距离计算公式为:距离= √(对边² + 邻边²);(3)面积计算:面积计算公式为:面积= 0.5 × 对边× 邻边;(4)高程计算:高程计算公式为:高程 = 观测者高程 + 观测值。

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

实验报告课程名称:java程序设计题目:计算器院(系):信息与控制工程专业班级:计算机1202姓名:张金涛学号:120620226指导教师:张翔2014年12 月17 月一、实验目的1.熟悉java图形用户界面的设计原理和程序结构2.能设计复核问题要求的图形用户界面程序3.熟悉java awt和swing的组合4.掌握常用组建的事件借口5.会应用awt和swing组件进行应用程序设计二、实验环境装有jdk及eclipse的计算机一台三、实验内容使用java编写出具有基本计算功能的计算器,要求具有用户图形界面。

四、代码及注释import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.Vector;public class CalcullatorApp{String str1 = "0"; // 运算数1 初值一定为0String str2 = "0"; // 运算数2初值一定为0String fh = "+"; // 运算符String jg = "";// 结果// 状态开关重要int k1 = 1;// 开关1 用于选择输入方向将要写入str2或 str2int k2 = 1;// 开关2 符号键次数 k2>1说明进行的是2+3-9+8 这样的多符号运算int k3 = 1;// 开关3 str1 是否可以被清0 ==1时可以 !=1时不能被清0int k4 = 1;// 开关4 str2 同上int k5 = 1;// 开关5 控制小数点可否被录入 ==1时可以 !=1 输入的小数点被丢掉JButton jicunqi; // 寄存器记录是否连续按下符号键Vector vt = new Vector(20, 10);JFrame frame = new JFrame("计算器"); //创建一个新的、初始不可见的、具有指定标题的 Frame。

JTextField jg_TextField = new JTextField(jg, 20); //20列JButton clear_Button = new JButton("清除");JButton button0 = new JButton("0");JButton button1 = new JButton("1");JButton button2 = new JButton("2");JButton button3 = new JButton("3");JButton button4 = new JButton("4");JButton button5 = new JButton("5");JButton button6 = new JButton("6");JButton button7 = new JButton("7");JButton button8 = new JButton("8");JButton button9 = new JButton("9");JButton button_Dian = new JButton(".");JButton button_jia = new JButton("+");JButton button_jian = new JButton("-");JButton button_cheng = new JButton("*");JButton button_chu = new JButton("/");JButton button_dy = new JButton("=");////////////////////////////////////////////////////////////////////// public static void main(String[] args){CalcullatorApp tuo = new CalcullatorApp();}/////////////////////////////////////////////////////////////////////// CalcullatorApp(){button0.setMnemonic(KeyEvent.VK_0);// 等效键// 其它等效键略,jg_TextField.setHorizontalAlignment(JTextField.RIGHT);// 文本框右对齐JPanel pan = new JPanel();pan.setLayout(new GridLayout(4, 4, 5, 5));// 四行四列边距为5像素pan.add(button7);pan.add(button8);pan.add(button9);pan.add(button_chu);pan.add(button4);pan.add(button5);pan.add(button6);pan.add(button_cheng);pan.add(button1);pan.add(button2);pan.add(button3);pan.add(button_jian);pan.add(button0);pan.add(button_Dian);pan.add(button_dy);pan.add(button_jia);pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));// pan 对象的边距JPanel pan2 = new JPanel();pan2.add(jg_TextField);JPanel pan3 = new JPanel(); // 为什么要多此一句呢?因为我不会设置按钮的大小pan3.setLayout(new FlowLayout());pan3.add(clear_Button);// clear_Button.setSize(10,10);//设置清零按钮的大小吗的不好使!!frame.setLocation(300, 200); // 主窗口出现在位置frame.setResizable(false); // 不能调大小frame.getContentPane().setLayout(new BorderLayout());//面板方位frame.getContentPane().add(pan2, BorderLayout.NORTH); frame.getContentPane().add(pan, BorderLayout.CENTER); frame.getContentPane().add(pan3, BorderLayout.SOUTH);//frame.add(pan2, BorderLayout.NORTH);//frame.add(pan, BorderLayout.CENTER);//frame.add(pan3, BorderLayout.SOUTH);frame.pack();frame.setVisible(true);// 以上是控件和布局// 下面是事件处理程序// --------------- 数字键 --------------class JianTing implements ActionListener{public void actionPerformed(ActionEvent e){String ss = ((JButton) e.getSource()).getText();jicunqi = (JButton) e.getSource();vt.add(jicunqi);if (k1 == 1){if (k3 == 1){str1 = "";k5 = 1;// 还原开关k5状态}str1 = str1 + ss;// k2=1;k3 = k3 + 1;// System.out.println(str1);jg_TextField.setText(str1);// 显示}else if (k1 == 2){if (k4 == 1){str2 = "";k5 = 1; // 还原开关k5状态}str2 = str2 + ss;// k2=2;k4 = k4 + 1;// /////////////测试////////////////jg_TextField.setText(str2);}}}// --------符号-----------class JianTing_fh implements ActionListener{public void actionPerformed(ActionEvent e){String ss2 = ((JButton) e.getSource()).getText();jicunqi = (JButton) e.getSource();vt.add(jicunqi);if (k2 == 1){k1 = 2;// 开关 k1 为1时,向数1写为2时,向数2写k5 = 1;fh = ss2;k2 = k2 + 1;// 按符号键的次数}else{int a = vt.size();JButton c = (JButton) vt.get(a - 2);if (!(c.getText().equals("+"))&& !(c.getText().equals("-"))&& !(c.getText().equals("*"))&& !(c.getText().equals("/"))){yuns();str1 = jg;k1 = 2;// 开关 k1 为1时,向数1写为2时,向数2写k5 = 1;k4 = 1;fh = ss2;}k2 = k2 + 1;}}}// --------清除-------class JianTing_clear implements ActionListener{public void actionPerformed(ActionEvent e){jicunqi = (JButton) e.getSource();vt.add(jicunqi);k5 = 1;k2 = 1;k1 = 1;k3 = 1;k4 = 1;str1 = "0";str2 = "0";fh = "";jg = "";jg_TextField.setText(jg);vt.clear();}}// ----------------等于 ---------------------class JianTing_dy implements ActionListener{public void actionPerformed(ActionEvent e){jicunqi = (JButton) e.getSource();vt.add(jicunqi);yuns();k1 = 1; // 还原开关k1状态// str1=jg;k2 = 1;k3 = 1;// 还原开关k3状态k4 = 1; // 还原开关k4状态str1 = jg; // 为7+5=12 +5=17 这种计算做准备}}// ----------------小数点 ---------------------class JianTing_xiaos implements ActionListener{public void actionPerformed(ActionEvent e){jicunqi = (JButton) e.getSource();vt.add(jicunqi);if (k5 == 1) {String ss2 = ((JButton) e.getSource()).getText();if (k1 == 1) {if (k3 == 1) {str1 = "";k5 = 1; // 还原开关k5状态}str1 = str1 + ss2;// k2=1;k3 = k3 + 1;// System.out.println(str1);jg_TextField.setText(str1);// 显示} else if (k1 == 2){if (k4 == 1){str2 = "";k5 = 1; // 还原开关k5状态}str2 = str2 + ss2;// k2=2;k4 = k4 + 1;// /////////////测试////////////////jg_TextField.setText(str2);}}k5 = k5 + 1; //}}// 注册监听器JianTing_dy jt_dy = new JianTing_dy();JianTing jt = new JianTing();// 临听数字键JianTing_fh jt_fh = new JianTing_fh();// 临听符号键JianTing_clear jt_c = new JianTing_clear(); // 清除键JianTing_xiaos jt_xs = new JianTing_xiaos();// 小数点键button7.addActionListener(jt);button8.addActionListener(jt);button9.addActionListener(jt);button_chu.addActionListener(jt_fh);button4.addActionListener(jt);button5.addActionListener(jt);button6.addActionListener(jt);button_cheng.addActionListener(jt_fh);button1.addActionListener(jt);button2.addActionListener(jt);button3.addActionListener(jt);button_jian.addActionListener(jt_fh);button0.addActionListener(jt);button_Dian.addActionListener(jt_xs);button_dy.addActionListener(jt_dy);button_jia.addActionListener(jt_fh);clear_Button.addActionListener(jt_c);// 关闭事件处理程序frame.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}// ---------------计算------------------public void yuns(){double a2;// 运算数1double b2;// 运算数2String c = fh;// 运算符double jg2 = 0;// 结果if (c.equals("")){// System.out.println("请输入运算符");jg_TextField.setText("请输入运算符");}else{System.out.println("str1:" + str1);// 调试时使用System.out.println("str2:" + str2);// 调试时使用System.out.println("运算符:" + fh);// 调试时使用if (str1.equals(".")) //字符串"."转换成double型数据时会出错所以手工转str1 = "0.0";if (str2.equals("."))str2 = "0.0";a2 = Double.valueOf(str1).doubleValue();b2 = Double.valueOf(str2).doubleValue();System.out.println("double型的a2:" + a2); //调试时使用System.out.println("double型的b2:" + b2); //调试时使用if (c.equals("+")){jg2 = a2 + b2;}if (c.equals("-")){jg2 = a2 - b2;}if (c.equals("*")){jg2 = a2 * b2;}if (c.equals("/")){if (b2 == 0) {jg2 = 0;} else {jg2 = a2 / b2;}}System.out.println("double型a2" + fh + "b2结果:" + jg2);System.out.println();jg = ((new Double(jg2)).toString());jg_TextField.setText(jg);}}}五、运行结果六、实验总结通过对计算器窗体的编写我熟悉java图形用户界面的设计原理和程序结构熟悉java awt和swing的组合。

相关文档
最新文档