第6章 四则运算计算器2

合集下载

学生计算器使用方法

学生计算器使用方法

学生计算器使用方法学生是每个国家的希望与未来,而计算器作为学生的得力助手,是学习中不可或缺的工具之一、计算器的功能多样,使用方法也各有不同。

下面我将详细介绍学生计算器的使用方法。

首先,学生计算器主要有基本四则运算、科学计算和统计运算三大类功能,我们可以根据需要选择相应的功能模式。

以下是详细的使用方法:1.基本四则运算:基本四则运算是计算器最常用的功能,包括加、减、乘、除四种运算。

使用基本四则运算功能,首先需要将计算器设置为基本计算模式。

一般来说,计算器上会有加、减、乘、除四个按键,我们可以依次按下需要进行的运算符号,然后输入数字,最后按下等号键得到结果。

例如,计算3加4的结果可以按下3+4=。

2.科学计算:科学计算是计算器的高级功能,适合进行复杂的数学运算,例如开平方、乘方、三角函数等。

使用科学计算功能,我们需要将计算器设置为科学计算模式。

一般来说,计算器上会有sin、cos、tan、x^2、√等按键,我们可以按下这些按键进行相应的运算。

例如,计算2的平方可以按下2^2=,计算sin30度可以按下sin30=。

3.统计运算:统计运算适合进行数据统计和分析,例如计算平均值、标准差、方差等。

使用统计运算功能,我们需要将计算器设置为统计计算模式。

一般来说,计算器上会有sum、avg、sd等按键,我们可以按下这些按键进行相应的运算。

例如,计算一组数据的平均值可以按下1,2,3,4,sum=4,avg=。

除了以上三大类功能,学生计算器还具有其他实用的功能,如百分数计算、倒数计算、阶乘计算、分数计算等等。

使用这些功能,我们可以更方便地进行各种数值计算和转换。

此外,学生计算器还具有存储记忆功能,可以存储一个数值或一个运算结果。

我们可以使用M+、M-、MR等按键将数据存储到存储器中,然后使用MR按键进行读取。

这个功能可以很方便地保存和调用计算结果,节省时间和精力。

总结一下,学生计算器的使用方法分为基本四则运算、科学计算、统计运算和其他实用功能。

用数学公式编辑器编辑四则运算竖式(2)

用数学公式编辑器编辑四则运算竖式(2)

在数学公式编辑器中输入除法竖式作为一个小学数学教师,免不了需要在文档中编辑除法竖式,很多人通常利用图片拼凑的办法完成,但本人则更喜欢在数学公式编辑器中编辑,对于长期与数学打交道的人来说,
数学公式编辑器的好处就不用多说了吧。

以下是本人在日常教学中的常用方法,自己摸索出的,与大家分享一下,随眼有点麻烦,但暂时还没有更好的方法,还希望各位同仁有更好方法能介绍一下。

数学公式编辑器都很熟悉了,以下以计算400÷75=5.333···为例,
如图:
Word 中插入数学竖式加法如下的竖式加法
6
931
7)5
23步骤1:
点工具栏的,(如果没有,可以从菜单“工具”“自定义”
“命令”“插入”,在右边一栏中找到“公式编辑器”的图标,拖动至工具栏即可!
)出现如下所示:
步骤2:
点击工具栏最右下角空白处左侧的项目:“矩阵模板”,出现的选项中,选择或下角的
出现如图所示的界面:
在其中的选项中,主要是行和列的数目要设好,比如本文开头的式子6
9317)5
23,需要
4 列3行,加号“+”单独占一列:
在上图中红色框标示的位置,单击即可出现一条横线,每个空白处都可以添加横线!在此我们只用一条。

在黄色框位置,选择对齐方式,一般选择“居中”或“右对齐”,其他的选项顾名思义
然后确定,出现如图所示界面:
在每个虚线框处填上数字即可,第二行开头的框里,填上“+)”
填完数字就OK了!
注意:加减乘的方法是一样的。

函数计算器使用说明

函数计算器使用说明

函数计算器使用说明函数计算器是一款功能强大的工具,可以帮助用户进行各种函数相关的计算。

无论是数学、统计学、工程学还是科学实验中的函数计算,都可以通过函数计算器方便地进行操作。

以下是函数计算器的使用说明,希望对用户有所帮助。

一、界面介绍1.输入栏:用户在输入栏中输入函数表达式或数值,作为计算的输入。

2.函数图像显示区:用于显示函数图像,方便用户进行函数分析和可视化操作。

3.计算结果显示区:用于显示函数计算结果,包括函数值、导数、积分、极限等。

4.菜单栏:包括各种计算功能,如基本计算、代数运算、三角函数、指数函数、对数函数、微积分、矩阵运算等。

二、基本计算功能1.四则运算:函数计算器支持基本的加减乘除运算,用户可直接在输入栏中输入表达式进行计算。

例如:输入"2+3",计算结果为52.幂运算:可以进行指数运算,使用符号"^"表示。

例如:输入"2^3",计算结果为83.开方运算:可以进行开方运算,使用符号"√"表示。

例如:输入"√16",计算结果为44.取模运算:可以对两个数取模运算,使用符号"%"表示。

例如:输入"5%2",计算结果为1三、代数运算功能1.方程求解:函数计算器可以求解一元方程,用户只需输入方程表达式即可。

例如:输入"x^2-4=0",计算结果为x=2或x=-22.不等式求解:函数计算器可以求解一元不等式,用户只需输入不等式表达式即可。

例如:输入"x^2-4>0",计算结果为x<-2或x>23.线性方程组求解:函数计算器可以求解线性方程组,用户只需输入方程组即可。

例如:输入"2x+y=5,x-y=1",计算结果为x=2,y=1四、三角函数功能1. 正弦函数:使用符号"sin"表示,计算结果为[-1, 1]之间的实数。

四则运算计算器

四则运算计算器

前言本次课程设计的题目是用汇编语言实现一个简单的计算器,要求:编写一个程序,每运行一次可执行程序,可以实现加减乘除四则运算。

计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。

通过使用汇编语言设计实现简单计算器,以此进一步了解和掌握对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识的有效运用。

本次课程设计以实现一个基本功能完善,界面友好,操作简便易行的计算器为最终目的。

通过对具有加减乘除基本功能的计算器的设计实现,学会使用汇编语言实现输入输出模块的设计,模块合理调用的设计,加减乘除运算的判断以及退出程序的判断的设计。

通过对各种指令的合理使用,熟悉并加深对各种指令的用法。

学会使用汇编语言设计各个功能模块。

当实现各个程序模块后,学会通过程序的调用最终实现一个具有基本计算功能的简单计算器。

1中文摘要实现一个简单计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。

运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。

设计当用户根据提示信息输入一个算式后,按下enter键或是‘=’符号键时,程序依据输入的算式进行计算,并将结果显示在屏幕上。

如果用户输入错误,则返回,提示信息让用户重新输入算式,当用户按下Q或q键时退出程序。

在各个子功能模块设计好的情况下,通过主题模块的合理调用,最终实现一个具有简单运算功能的计算关键字:计算器、四则运算、进位、错位、清屏目录1系统分析 -------------------------------------------------2系统总体设计----------------------------------------------3详细设计-------------------------------------------------- 4统测试 ---------------------------------------------------5软件使用说明书 ------------------------------------------- 设计总结----------------------------------------------------参考文献----------------------------------------------------致谢———————————————————————————————————31.系统分析本次汇编语言课程设计的最终目的是要实现一个简单计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。

用计算器计算课件2

用计算器计算课件2
(二)化繁为简,探寻规律
用计算器计算下面左边各题。
9999×1=9999 9999×2= 19998 9999×3= 29997 9999×4= 39996
9999×5= 49995 9999×7= 69993 9999×9= 89991
四、巩固练习
⒈ 做一做第1题 ⒉ 教材第28页第3题 ⒊ 做一做第2题 ⒋ 教材第28页第4题
总结
同学们,今天这节课 你们有什么收获?和 你的同桌交流一下。
三、借助计算器探索规律
(二)化繁为简,探寻规律
数太大,这可道以题先等把于它几变?小,发 现规律,再用规律解决难题。 1×1= 1 11×11= 121 111×111=12321 1111×1111=1234321
111111111×111111111= 12345678987654321
三、借助计算器探索规律
两个因数太大,怎么办?
111111111×111111111=
把因数变小,找到规律, 解决问题。
三、借助计算器探索规律
(二)化繁为简,探寻规律
自己算一算,你发现了什么?
1×1= 1 11×11= 121 111×111=12321 1111×1111=1234321
从1开始,因数有几位就写 到几,再倒过来写到1。
386+179= 565 26×39= 1014
825-138= 687 312÷8=39
按错了怎么办?
按退格键“←”,清除输错的数字, 然后输入正确的;也可以按“CE” 键,清除然后再重新输入。
二、用计算计算器
比一比,看谁算得又对又快。 说说你怎么算得这么快?
计算器的种类
一、复习引入
这些是什么键?
清除键 数字键

计算器的使用技巧

计算器的使用技巧

计算器的使用技巧计算器是我们日常生活和工作中经常使用的工具之一,熟练地掌握计算器的使用技巧不仅能提高工作效率,还能减少计算错误的发生。

本文将介绍一些常见的计算器使用技巧,帮助读者更好地利用计算器进行计算。

一、基本操作技巧1. 开关机操作 - 计算器的开关通常位于左上角或右上角,按下相应的开关按钮即可进行开关机操作。

在不使用计算器时,应及时关闭以节省电源。

2. 电池更换 - 当计算器显示屏出现模糊或无法正常显示时,可能是电池即将耗尽,此时应更换新电池。

不同型号的计算器更换电池的方式可能有所不同,建议参考计算器说明书进行操作。

二、基本运算技巧1. 四则运算 - 计算器可以进行基本的加减乘除运算。

在进行复杂运算时,可以先计算每个运算符号前的数字,再按顺序进行运算。

例如,计算3 + 4 × 2,应先计算4 × 2的结果,再加上3。

2. 百分数计算 - 计算器通常内置了百分数计算功能。

要计算一个数的百分之几,可以输入该数,按下百分号键,在输入百分数所占的比例。

例如,计算100的30%,可以输入100,按下百分号键,再输入30。

3. 开平方和平方根 - 计算器可以进行数的开平方和平方根的计算。

开平方使用的是平方根符号(√),而平方根使用的是平方根符号上边带有数字2。

例如,要计算4的平方根,可以输入4,再按下平方根符号。

4. 科学计数法 - 计算器通常支持科学计数法的输入和计算。

科学计数法可以简化大数字或小数字的表达,用于表示非常大或非常小的数值。

例如,用科学计数法表示1,000,000为1e6,表示0.000001为1e-6。

三、高级功能技巧1. 存储和检索 - 计算器通常具有存储和检索功能,可以暂存中间结果,方便后续计算。

存储和检索的操作方式可能因计算器型号而有所不同,建议参考计算器说明书进行操作。

2. 统计功能 - 一些高级计算器具有统计功能,可以进行简单的数据分析和统计计算。

这些功能可以帮助用户计算平均值、方差等统计指标,提供更全面的信息。

c语言四则运算计算器

c语言四则运算计算器

c语言四则运算计算器C语言四则运算计算器摘要:计算器是我们日常生活中常见和实用的工具之一。

本文将介绍如何使用C语言编写一个简单的四则运算计算器。

首先,我们将了解四则运算的定义和原则。

然后,我们将逐步介绍计算器的实现,包括用户输入、运算符识别和运算结果输出。

最后,我们将通过示例演示计算器的使用,并讨论一些功能的改进。

1.引言计算器是一种用于执行基本数学运算的设备或工具。

它通常可以进行加法、减法、乘法和除法等四个基本运算符的操作。

许多计算器还具有其他功能,如求平方根、百分比计算等。

编写一个计算器程序涉及到基本的输入、运算和输出。

2.四则运算的定义与原则四则运算是指加法、减法、乘法和除法四个基本运算。

这些运算符有一定的运算规则和优先级,如乘法和除法优先于加法和减法。

在编写计算器程序时,我们需要遵循这些原则来确保正确的运算结果。

3.计算器的实现3.1 用户输入使用C语言编写计算器程序的第一步是获取用户的输入。

通常,用户可以通过控制台或图形用户界面输入计算表达式。

在本文中,我们将使用控制台输入。

用户输入应该是一个合法的表示式,其中包含数值和运算符。

3.2 运算符识别在得到用户输入后,我们需要识别表达式中的运算符,以便进行运算。

常见的运算符有加号(+)、减号(-)、乘号(*)和除号(/)。

我们可以使用条件语句或函数来判断输入的运算符,并将其转化为相应的计算操作。

3.3 运算结果输出一旦我们完成了运算,我们需要将结果输出给用户。

输出可以是一段文字或数字,可以打印在控制台上,也可以显示在图形界面上。

在C语言中,我们可以使用printf函数来输出结果。

根据需要,我们可以将结果四舍五入,设置特定的精度或格式。

4.示例演示让我们通过一个示例来展示计算器的使用。

假设用户输入表达式\。

第6章 四则运算计算器1

第6章 四则运算计算器1
设计
工作任务一:构建计算器的状态图

状态机的各种元素
《C#程序设计》
项目:整数四则运算计算器的设计
工作任务一:构建计算器的状态图

灯泡的状态图:
off
turnon turnoff
on
burnout
《C#程序设计》
《C#程序设计》
项目:整数四则运算计算器的设计
函数参数

params参数 params参数必须是一维数组(含一维交错数组),且不需 指定长度。 定义形参时要使用params关键字;调用时,实参不需要用 params关键字,实参可以是任意个数的元素,也可以是一个 同类型的数组。 params参数只能作为参数列表的最后一个参数,并且在方 法的声明中只允许一个params关键字。 params参数不能再用ref或out修饰。
工作任务二:设计程序模块的流程图

小组讨论三个方法的实现 流程,画出流程图
开始
初始化
输入0~9的数字
F
T Numbers_Click(I)
输入运算符号OP
Operators_Click(OP) 结束
《C#程序设计》
项目:整数四则运算计算器的设计
工作任务二:设计程序模块的流程图

问题:
–必须判断一下输入的是第一个数字还是 第一个以后的数字
请问:如何处理?
《C#程序设计》
项目:整数四则运算计算器的设计
工作任务二:设计程序模块的流程图

定义一个bool类型的变量bNumBegins,其初值为 true,当输入第一个数字之后就将它置为false, 直到此数输入完成后再置为true,准备进行下一 轮的计算。
《C#程序设计》

四则运算习题

四则运算习题

四则运算习题在数学学习中,四则运算是基础中的基础。

它包括加法、减法、乘法和除法四种运算。

掌握四则运算不仅能够为日常生活提供实际的计算能力,还能够为进一步学习更高级的数学知识打下坚实的基础。

在本篇文档中,我们将提供一系列的四则运算习题,帮助读者更好地理解和掌握这些运算。

这些习题既包括基础的计算问题,又包括一些应用题,以便读者能够将四则运算运用到实际生活中。

1. 加法题目1:计算 38 + 15 = ?题目2:计算 123 + 456 = ?题目3:计算 789 + 246 = ?题目4:计算 897 + 456 + 123 = ?2. 减法题目1:计算 75 - 23 = ?题目2:计算 365 - 156 = ?题目3:计算 890 - 246 = ?题目4:计算 897 - 456 - 123 = ?3. 乘法题目1:计算 6 × 8 = ?题目2:计算 15 × 25 = ?题目3:计算 123 × 7 = ?题目4:计算 897 × 123 × 2 = ?4. 除法题目1:计算 36 ÷ 6 = ?题目2:计算 300 ÷ 25 = ?题目3:计算 890 ÷ 10 = ?题目4:计算 897 ÷ 123 ÷ 3 = ?这些习题的难度逐渐递增,涵盖了加法、减法、乘法和除法四则运算的不同类型和难度级别。

读者可以按照自己的实际情况选择适合自己的习题进行练习。

此外,在解题过程中,读者可以采用不同的方法进行计算。

比如,可以使用竖式计算、列竖式计算或者利用计算器。

这样有助于培养灵活的思维和计算能力。

当然,这些习题只是起到练习和巩固的作用。

要真正掌握四则运算,还需要通过大量的练习、理解运算法则和掌握运算规律。

只有通过不断地积累和实践,才能真正培养出熟练的计算能力。

在日常生活中,四则运算无处不在。

无论是在购物、打折、计算面积、计算时间还是理财规划等等,四则运算都是必不可少的技能。

2四则运算计算器

2四则运算计算器

四则运算计算器本案例知识要点● Visual C++ 6.0下创建MFC AppWizard (exe )并运行的方法● 利用常用控件来设计程序界面● 为控件添加事件处理程序一、案例需求1.案例描述设计一个四则运算器,要求能够进行加、减、乘、除运算。

2.案例效果图四则运算计算器运行效果如图3-1所示。

从前两个文本框中分别输入参加运算的两个操作数,鼠标点击下边的运算方式按钮时,在第三个文本框中显示运算结果。

3.功能说明(1)通过操作界面输入参加运算的操作数并选择运算符,将运算结果显示出来。

(2)能够进行整数运算和小数运算。

二、案例分析本案例通过简单的MFC 来实现四则运算,由于系统界面相对较为简单,所以通过建立简单的单文档类型的应用程序来实现系统操作界面。

通过文本框控件来获得用户输入和显示计算结果,通过按钮控件来实现运算方式选择以及相应的事件处理程序代码来实现具体运算过程。

三、案例设计基于上述分析,定义一个calculators 类来实现两个数据的四则运算,calculators 类结构如图3-2所示。

● 数据成员double Number1用来表示参加运算的第一个操作数。

double Number2用来表示参加运算的第二个操作数。

本例可执行文件下载: 下载函数成员void calculators(double dNumber1,double dNumber2)构造函数,用来初始化参加运算的两个操作数。

double Add()实现两个操作数的加法运算并返回运算结果。

double Sub()实现两个操作数的减法运算并返回运算结果。

double Mul()实现两个操作数的乘法运算并返回运算结果。

double Div()实现两个操作数的除法运算并返回运算结果。

四、上机过程利用MFC在Visual C++ 6.0环境下创建应用程序,是Visual C++强大功能最有力的体现。

利用MFC,可以创建“多文档类型”、“单文档类型”、“基于对话框类型”等不同类型和规模的应用程序。

四则运算计算器程序设计javagui

四则运算计算器程序设计javagui

四则运算计算器程序设计(java-gui) 四则运算计算器程序是一种常见的计算机程序,用于执行基本的数学运算,包括加法、减法、乘法和除法。

本文将介绍如何设计一个使用Java GUI实现的四则运算计算器程序。

首先,我们需要创建一个Java GUI窗体,用于显示计算器的界面。

可以使用Java Swing或JavaFX来创建窗体,本文以Java Swing为例。

可以使用JFrame类来创建一个窗体,并添加各种组件,如按钮、标签和文本框等。

在窗体中,我们需要添加一个文本框用于输入表达式和显示结果。

可以使用JTextField类来创建一个文本框,并设置合适的大小和位置。

另外,我们还需要添加一些按钮来表示数字和运算符,可以使用JButton类来创建按钮,并将其添加到窗体中。

接下来,我们需要为按钮添加事件监听器,以便在用户点击按钮时执行相应的操作。

例如,当用户点击数字按钮时,我们需要将相应的数字添加到文本框中;当用户点击运算符按钮时,我们需要将相应的运算符添加到文本框中;当用户点击等号按钮时,我们需要解析文本框中的表达式,并执行相应的运算。

为了实现四则运算,我们可以使用Java的数学库来执行相应的运算。

例如,可以使用Integer.parseInt方法将文本框中的字符串转换为整数,使用加法运算符执行加法运算,使用乘法运算符执行乘法运算等。

在解析和执行表达式时,我们需要考虑一些错误情况,例如除数为零或表达式不合法等。

可以使用try-catch语句来捕获这些异常,并显示相应的错误信息。

最后,我们需要将计算结果显示在文本框中,并提供清除按钮,以便用户可以清除文本框中的内容。

可以使用setText方法将计算结果显示在文本框中,使用setText("")方法来清除文本框中的内容。

综上所述,一个基本的四则运算计算器程序的设计包括创建窗体、添加组件、添加事件监听器、解析和执行表达式、处理异常和显示结果等步骤。

四则运算练习小工具

四则运算练习小工具

四则运算练习小工具
四则运算练习器适合小学一、二年级学生四则运算的练习,可根据学生的学习进度设置计算的范围,以及自动判断对错,有声音提示。

程序以20道题为一组完成时自动计分。

定义方法
加法:把两个数合并成一个数的运算。

减法:在已知两个加数的和与其中的一个加数,求另--个Jm数的运算。

除法:已知两个因数的积与其中的一个因数,求另一个因数的运算。

乘法:求两个数乘积的运算。

1、一个数乘分数,是求这个数的几分之几是多少。

2、一个数乘整数,是求几个相同加数和的简便运算。

3、一个数乘小数,是求这个数的十分之几、百分之几、千分之几……是多少。

使用方法
本练习器操作简单,学生完全可以自己练习,无需家长帮助,它特别适用一年级学生学数起步巩固练习及二年级乘法口诀巩固训练。

增加了“24点大师”可以考查学生的应用能力,家长也可以参与其中,增添了乐趣。

C++课件案例三四则运算计算器

C++课件案例三四则运算计算器
C++ 课件案例 - 四则运算 计算器
本课件将介绍如何用C++编写一个能进行四则运算的计算器。我们将学习输入 和输出的基本原理、不同的数据类型、各种运算符,以及实现一个完整的计 算器的方法。
输入
接收用户输入
理解用户输入并将其用 于计算。
验证输入
确保输入符合预期的格 式与范围。
错误处理
处理无效的或错误的输 入,避免程序崩溃。
小结
学习了四则运算的 基本原理
掌握了输入、数据类型 和运算符的应用。
实现了一个简单的 计算器
了解了计算器的核心算 法和实现方法。
准备迈向更高级的 计算机编程
为进一步学习提供了扎 实的基础。
2
中缀表达式求值
将中缀表达式转换为后缀表达式,然后进行运算。
3
后缀表达式求值
根据后缀表达式的规则进行运算,并得到最终结果。
计算器核心算法
栈的应用
使用栈来实现表达式求值 的算法,保证运算符和操 作数的顺序。
递归思想
利用递归来处理嵌套的表 达式,实现复杂运算。
优先级与结合性
考虑运算符的优先级和结 合性,避免运算结果出现 错误。
数据类型
整数类型
用于存储整数,支持基本的算术运算。
浮点数类型
用于存储小数,支持精确的数学运算。
字符类型
用于存储单个字符,可以进行逻辑运算。
字符串类型
用于存储文本,支持字符串连接与比较。
运算符
1 加法 3 乘法2 减法4 除法计算器实现1
前缀表达式求值
根据前缀表达式的规则进行运算,并得到最终结果。

四则运算计算器设计说明书

四则运算计算器设计说明书

四则运算计算器设计说明书一、设计目标本次计算器的程序设计,通过使用JAVA中的AWT包和Swing包的类库设计图形界面的计算器。

此计算器能够完成加减乘除的四则混合运算。

利用面向对象程序设计的思想,将各个组件的事件响应分别用不同的方式表达出来,并且使用了图形界面中的事件委托机制来处理事件响应。

二、设计流程1.分析该计算器需要完成的功能。

用户能够完成添加负号的四则混合运算,开方,取倒数,并且计算器能够自动识别运算符的优先级,根据用户输入的运算表达式,自动计算出相应的结果。

同时还完成了计算器中C按钮清屏功能和Backspace退格键。

2. 考虑异常处理。

(1)当输入的表达式中出现除零的操作,显示框将显示“Infinity(无穷大)”。

(2)当输入的表达式错误时,将弹出提示框显示“表达式错误请重新输入”(3)当计算器的显示文本框里为没有输入内容时直接点击等号按钮3. 编码实现计算器的功能。

(1)新建相关的文件。

(2)引入JAVA中相关的包。

(3)定义相关的变量,创建相关组件,并对组件的属性进行设置。

(4)对所创建的组件进行布局,完成界面的实现。

(5)为各个组件添加事件监听器。

(6)重写事件接口ActionListener的方法public voidactionPerformed(ActionEvent e)。

(7)为各个组件编写事件代码,完成每个按钮的不同功能。

三、程序截图四、程序代码import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;public class Calc extends JFrame implements ActionListener { JPanel topPanel = null;JPanel midPanel = null;JPanel bottomPanel = null;JTextField tResult = null;JButton backspaceButton = null;JButton ceButton = null;JButton cButton = null;JButton button1 = null;JButton button2 = null;JButton button3 = null;JButton button4 = null;JButton button5 = null;JButton button6 = null;JButton button7 = null;JButton button8 = null;JButton button9 = null;JButton button0 = null;JButton buttonDiv = null;JButton buttonPlus = null;JButton buttonMinus = null;JButton buttonMul = null;JButton buttonSqrt = null;JButton buttonMod = null;JButton buttonPM = null;JButton buttonX = null;JButton buttonPoint = null;JButton buttonEquals = null;StringBuffer str = new StringBuffer();boolean isDouble = false;// 是否为实数int opFlag = -1;static double t1 = 0, t2 = 0, t3 = 0, result = 0;static int opflag1 = -1, opflag2 = -1, flag = 0, resflag = 1;int preOp, currentOp = 0;// 标准位double op1 = 0, op2 = 0;// 操作数double n3;// 取得屏幕对象Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // 取得屏幕的宽度int width = screenSize.width;// 取得屏幕的高度int heigth = screenSize.height;public Calc() {tResult = new JTextField("0.");tResult.setColumns(26);tResult.setHorizontalAlignment(JTextField.RIGHT);topPanel = new JPanel();topPanel.add(tResult);backspaceButton = new JButton("Backspace");backspaceButton.addActionListener(this);ceButton = new JButton("CE");ceButton.addActionListener(this);cButton = new JButton("C");cButton.addActionListener(this);midPanel = new JPanel();midPanel.add(backspaceButton);midPanel.add(ceButton);midPanel.add(cButton);bottomPanel = new JPanel(new GridLayout(4, 5, 3, 3));button7 = new JButton("7");button7.addActionListener(this);bottomPanel.add(button7);button8 = new JButton("8");button8.addActionListener(this);bottomPanel.add(button8);button9 = new JButton("9"); button9.addActionListener(this); bottomPanel.add(button9);buttonDiv = new JButton("/"); buttonDiv.addActionListener(this); bottomPanel.add(buttonDiv);buttonSqrt = new JButton("sqrt"); buttonSqrt.addActionListener(this); bottomPanel.add(buttonSqrt);button4 = new JButton("4"); button4.addActionListener(this); bottomPanel.add(button4);button5 = new JButton("5"); button5.addActionListener(this); bottomPanel.add(button5);button6 = new JButton("6"); button6.addActionListener(this); bottomPanel.add(button6);buttonMul = new JButton("*"); buttonMul.addActionListener(this); bottomPanel.add(buttonMul);buttonMod = new JButton("%"); buttonMod.addActionListener(this); bottomPanel.add(buttonMod);button1 = new JButton("1"); button1.addActionListener(this); bottomPanel.add(button1);button2 = new JButton("2"); button2.addActionListener(this); bottomPanel.add(button2);button3 = new JButton("3"); button3.addActionListener(this); bottomPanel.add(button3);buttonMinus = new JButton("-");buttonMinus.addActionListener(this);bottomPanel.add(buttonMinus);buttonX = new JButton("1/x");buttonX.addActionListener(this);bottomPanel.add(buttonX);button0 = new JButton("0");button0.addActionListener(this);bottomPanel.add(button0);buttonPM = new JButton("+/-");buttonPM.addActionListener(this);bottomPanel.add(buttonPM);buttonPoint = new JButton(".");buttonPoint.addActionListener(this);bottomPanel.add(buttonPoint);buttonPlus = new JButton("+");buttonPlus.addActionListener(this);bottomPanel.add(buttonPlus);buttonEquals = new JButton("=");buttonEquals.addActionListener(this);bottomPanel.add(buttonEquals);this.setLayout(new BorderLayout());this.add(topPanel, "North");this.add(midPanel, "Center");this.add(bottomPanel, "South");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(310, 225);this.setResizable(false);// 设置窗体出现在屏幕的中央this.setLocation((width - this.getWidth()) / 2,(heigth - this.getHeight()) / 2);this.setVisible(true);}/*** @param args*/public static void main(String[] args) {new Calc();}@Overridepublic void actionPerformed(ActionEvent e) {String s = e.getActionCommand().trim();if (s.equals("CE")) {// 如果是CE则清除文本框tResult.setText("0.");} else if (s.equals("Backspace")) {if (!tResult.getText().trim().equals("0.")) {// 如果文本框中有内容if (str.length() != 1 && str.length() != 0) {tResult.setText(str.delete(str.length() - 1, str.length()).toString());} else {tResult.setText("0.");str.setLength(0);}}op2 = Double.parseDouble(tResult.getText().trim());} else if (s.equals("C")) {// 如果是C删除当前计算tResult.setText("0.");op1 = op2 = 0;str.replace(0, str.length(), " ");preOp = currentOp = 0;} else if (s.equals("1/x")) {// 如果按键为1/x则将文本框中的数据为它的倒数String temp = tResult.getText().trim();double dtemp = Double.parseDouble(temp);tResult.setText("" + 1 / dtemp);} else if (s.equals("sqrt")) {// 如果按键为sqrt则将文本框中的内容求平方根String temp = tResult.getText().trim();double dtemp = Double.parseDouble(temp);tResult.setText("" + Math.sqrt(dtemp));} else if (s.equals("+")) {str.setLength(0);if (currentOp == 0) {preOp = currentOp = 1;op2 = 0;tResult.setText("" + op1);} else {currentOp = preOp;preOp = 1;switch (currentOp) {case 1:op1 += op2;tResult.setText("" + op1);break;case 2:op1 -= op2;tResult.setText("" + op1);break;case 3:op1 *= op2;tResult.setText("" + op1);break;case 4:op1 /= op2;tResult.setText("" + op1);break;}}} else if (s.equals("-")) {str.setLength(0);if (currentOp == 0) {preOp = currentOp = 2;// op1=op2;op2=0;tResult.setText("" + op1);} else {currentOp = preOp;preOp = 2;switch (currentOp) {case 1:op1 = op1 + op2;tResult.setText("" + op1);break;case 2:op1 = op1 - op2;tResult.setText("" + op1);break;case 3:op1 = op1 * op2;tResult.setText("" + op1);break;case 4:op1 = op1 / op2;tResult.setText("" + op1);break;}}} else if (s.equals("*"))// *{str.setLength(0);if (currentOp == 0) {preOp = currentOp = 3;// op1=op2;op2=1;tResult.setText("" + op1);// op1=op2;} else {currentOp = preOp;preOp = 3;switch (currentOp) {case 1:op1 = op1 + op2;tResult.setText("" + op1);break;case 2:op1 = op1 - op2;tResult.setText("" + op1);break;case 3:op1 = op1 * op2;tResult.setText("" + op1);break;case 4:op1 = op1 / op2;tResult.setText("" + op1);break;}}} else if (s.equals("/"))// /{str.setLength(0);if (currentOp == 0) {preOp = currentOp = 4;// op2=1;tResult.setText("" + op1);// op1=op2;} else {currentOp = preOp;preOp = 4;switch (currentOp) {case 1:op1 = op1 + op2;tResult.setText("" + op1);break;case 2:op1 = op1 - op2;tResult.setText("" + op1);break;case 3:op1 = op1 * op2;tResult.setText("" + op1);break;case 4:op1 = op1 / op2;tResult.setText("" + op1);break;}}} else if (s.equals("="))// ={if (currentOp == 0) {str.setLength(0);tResult.setText("" + op2);} else {str.setLength(0);currentOp = preOp;switch (currentOp) {case 1:op1 = op1 + op2;tResult.setText("" + op1);break;case 2:op1 = op1 - op2;tResult.setText("" + op1);break;case 3:op1 = op1 * op2;tResult.setText("" + op1);break;case 4:op1 = op1 / op2;tResult.setText("" + op1);break;}currentOp = 0;op2 = 0;}} else if (s.equals(".")) {isDouble = true;if (tResult.getText().trim().indexOf('.') != -1);else {if (tResult.getText().trim().equals("0")) {str.setLength(0);tResult.setText((str.append("0" + s)).toString());}// else// if(tResult.getText().trim().equals("")){}//如果初时显示为空则不做任何操作else {tResult.setText((str.append(s)).toString());}}} else if (s.equals("0"))// 如果选择的是"0"这个数字键{if (tResult.getText().trim().equals("0.")) {} else {tResult.setText(str.append(s).toString());op2 = Double.parseDouble(tResult.getText().trim());}} else if (s.equals("%"))// 如果选择的是"0"这个数字键{} else {tResult.setText(str.append(s).toString());op2 = Double.parseDouble(tResult.getText().trim());if (currentOp == 0)op1 = op2;}}}。

四则运算计算器

四则运算计算器

四则运算计算器一、程序功能简介可以计算整数四则运算,例如:7+5*(3+4)二、课程设计要求(1)按要求在提供的框架程序源程序的基础上对程序进行修改、补充,并调试通过。

(2)修改主程序结构,使程序可以反复运算,直到选择退出为止。

(3)增加文件的输入输出功能,是计算过的式子和结果可以根据需要设置命令存储到文件中,同时也可以直接从文件中输入四则运算的式子,运算后,结果输出到原文件中。

(4)扩充程序功能,使程序适合实型数运算。

(5)增加程序的判断功能,当有非法的输入时(如字母等),给出提示信息并退出运算。

(6)扩充程序功能,使程序可以进行关系表达式(>=,>,<=,<,==等)的运算,运算结果为TRUE 或FALSE 。

在VC++6 环境下编译已经完美实现上述功能注:包含Debug 的语句如:if (Debug) printf(""); 都可以忽略,这些显示是编写工程中需要观察的信息,如果要打开,请在主菜单下输入大写的'D'。

Log:20060703 开始分析框架程序,并规划程序结构20060704 计算的核心部分基本完成,并封装成Operation()20060705 编写Menu_Sel() Do_Press() strChk() Do_File() FileCHK() Nexus() 整体功能和界面基本完成20060706 强化strChk(),增加Debug 模式,修正符号优先级问题。

20060707 郁闷,在英化程序-_-/// ...在Do_File() 增加输出文件另存功能...20060708 ....20060709 ....20060710 强化strChk(),增加结果整形识别,增加'!=' 处理,文件名非法字符校验。

最后更新20060710*//* =============================================== *//* 头文件声明*/#include <stdio.h> /* In Out printf().. */#include <math.h> /* pow(M,n) 开M^n */#include <string.h> /* strcpy... */#include <stdlib.h> /* atof... */#include <conio.h> /* getch()... */#define Max 256 /* 表达式长度定义,可以在这里调节*//* =============================================== *//* 函数声明*//* 计算字符串(不带括号的),计算的核心部分*/char*Calculate_f(char*chpString);/* 主操作过程,输入式子串,返回double 型结果*/double Operation(char*chpString);/* Source1、Source2 加起来到Destination 中*/char*AddStrings_f(char*chpDestination,char*chpSource1,char*chpSource2);/* 寻找char_to_find 在Source 中的位置,后移一位*/int FindChar(char*chpSource,char chCharToFind);/* 获取字符串的长度*/int Len_f(char*chpSource);/* 将Source 左边Length 个字符放在Destination 中*/char*Left_f(char*chpSource,char*chpDestination,int nLength);/* 将Source 右边Length 个字符放在Destination 中*/char*Right_f(char*chpSource,char*chpDestination,int nLength);/* 将Source 中从Start 开始Length 长度的字符串截下来放在Destination 中*/ char*Midstr_f(char*chpSource,char*chpDestination,int nStart,int nLength);/* 在字符串中删除一个字符del '+' */void DelChar(char*chpString,int sPos);/* 在字符串中插入一个字符*/int InsChar(char*chpString,int sPos,char sChar);/* 替换字符串中的某个字符*/void StrReplace(char*chpString,char strOld ,char strNew);/* 将实数值变为字符串*/char*Str_f(double nValue,char*chpDestination);/* 计算字符串的值,返回实数值*/double Val_f(char*chpSource);/* =============================================== *//* 主菜单... */int Menu_Sel();/* 手工输入表达式求值*/int Do_Press();/* 文件导入表达式求值*/int Do_File();/* 文件检查0 重新输入,1 继续*/int FileChk(char*FN);/* 式子的合法性检查0 含有非法字符,1 正常2 关系运算*/int StrChk(char*chpSource);/* 关系运算*/int Nexus(char strIn[]);/* 显示关于*/void Show_About();/* =============================================== *//* 全局变量声明*/int Debug=0;/* 调试信息显示开关0 不显示,1 显示*/char*TF_Info[3]={"FALSE","TURE","Error"};/* 关系运算信息*//* 将Source 左边Length 个字符放在Destination 中*/char*Left_f(char*chpSource,char*chpDestination,int nLength){*(chpDestination+--nLength+1)=0;/* 设置目标字符串最后一个为NULL*/while(nLength>=0)/* 直到目标字符串的最后一个*/{*(chpDestination+nLength)=*(chpSource+nLength--);}return chpDestination;}/* 将Source 中从Start 开始Length 长度的字符串截下来放在Destination 中*/char*Midstr_f(char*chpSource,char*chpDestination,int nStart,int nLength){chpSource+=nStart-1;/* 设置源起点*/*(chpDestination+--nLength+1)=0;/* 设置目标字符串最后一个为NULL */while(nLength>=0)/* 直到目标字符串的最后一个*/{*(chpDestination+nLength)=*(chpSource+nLength--);}return chpDestination;}/* 将Source 右边Length 个字符放在Destination 中*/char*Right_f(char*chpSource,char*chpDestination,int nLength){while(*chpSource !=0){chpSource++;}/* 将源指针移到最后*/chpSource-=nLength;/* 将源指针跳到开始复制点*/ *(chpDestination+--nLength+1)=0;/* 设置目标字符串最后一个为NULL */while(nLength>=0)/* 直到目标字符串的最后一个*/{*(chpDestination+nLength)=*(chpSource+nLength--);}return chpDestination;}/* 在字符串中删除一个字符del '+' */void DelChar(char*chpString,int sPos){char sBuf[Max];int nCount;strcpy(sBuf,chpString);for(nCount=sPos;sBuf[nCount];nCount++){sBuf[nCount]=sBuf[nCount+1];}strcpy(chpString,sBuf);}/* 在字符串中插入一个字符*/int InsChar(char*chpString,int sPos,char sChar){char sBuf[Max];int iLen;int nCount;strcpy(sBuf,chpString);iLen=strlen(sBuf);if(iLen<Max){sBuf[iLen+1]='\0';for(nCount=iLen;nCount>=sPos;nCount--){sBuf[nCount+1]=sBuf[nCount];}sBuf[sPos]=sChar;strcpy(chpString,sBuf);}elsereturn0;return1;}/* 替换字符串中的某个字符'#' to '-' */void StrReplace(char*chpString,char strOld ,char strNew){char sBuf[Max];int nCount=0;strcpy(sBuf,chpString);while(sBuf[nCount]){if(sBuf[nCount]==strOld) sBuf[nCount]=strNew;nCount++;}strcpy(chpString,sBuf);}/* 寻找char_to_find 在Source 中的位置,后移一位*/int FindChar(char*chpSource,char chCharToFind){int nPos=0;while(*(chpSource+nPos)!=0)/* 直到目标字符串的最后一个*/ {if(chCharToFind ==*(chpSource+nPos++))/* 比较.. */{return nPos;/* 返回第一个出现点,加一*/ }}return0;}/* 获取字符串的长度*/int Len_f(char*chpSource){int nRetval=0;/* 初始化长度*/while(*(chpSource+nRetval++)!=0){}/* 移动指针到Null */return--nRetval;}/* 将实数值变为字符串*/char*Str_f(double nValue,char*chpDestination){char strTmp[Max];gcvt(nValue,sizeof(double)+1,strTmp);/* 实数值转字符串*/if(strTmp[0]=='-')/* 将'-' 负号转译为'#' */{strTmp[0]='#';}strcpy(chpDestination,strTmp);if(Debug) printf("...Conversion Double to String:%f - >%s\n",nValue,chpDestination);return chpDestination;}/* Source1、Source2 加起来到Destination 中*/char*AddStrings_f(char*chpDestination,char*chpSource1,char*chpSource2){char*chpTempdest=chpDestination;while(*chpSource1!=0)/* 先把chpSource1 放入chpDestination */{*(chpTempdest++)=*(chpSource1++);}while(*chpSource2!=0)/* 在chpDestination 后继续写入chpSource2 */{*(chpTempdest++)=*(chpSource2++);}*chpTempdest=0;/* 指针位置归零*/return chpDestination;}/* 计算字符串的值,返回实数值*/double Val_f(char*chpSource){double nResult=0.;char strTmp[Max];strcpy(strTmp,chpSource);if(strTmp[0]=='#')/* 将'#' 转译为'-' 负号*/{strTmp[0]='-';}nResult=atof(strTmp);/* 字符串转为实数*/if(Debug)printf("...Conversion String to Double:%s -> %s -> %f\n",chpSource,strTmp,nResult);return nResult;}。

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

讨论:如何解决? 讨论:如何解决?
2、如果同一个数中输入第二个或第二个以上的小 数点,就发生了输入错误,讨论:如何解决? 数点,就发生了输入错误,讨论:如何解决?
《C#程序设计》 C#程序设计》 程序设计
项目: 项目:实数四则运算计算器的设计

习惯上, 3、习惯上,用户很可能在不输入第一个数的情况下直 接输入小数点, 接输入小数点 , 这时程序应能够自动调整显示为 我们如何判断? “0.”,我们如何判断? 操作数和运算结果的数据类型不能为long long, 4、操作数和运算结果的数据类型不能为 long, 应该是
项目: 项目:实数四则运算计算器的设计
工作任务

以小组为单位, 以小组为单位,编制工作任务及进度 讨论修改后, 讨论修改后,按工作任务完成项目
《C#程序设计》 C#程序设计》 程序设计
项目: 项目:实数四则运算计算器的设计

主要问题: 主要问题: 当输入第一个小数点时, 1、当输入第一个小数点时,操作数就被分为整 数部分和小数部分, 数部分和小数部分,如果再用构建整数计算器的 办法去构造操作数, 办法去构造操作数,就比较麻烦
什么? 什么? 5、程序结构上可以如何设计? 程序结构上可以如何设计?
《C#程序设计》 C#程序设计》 程序设计
项目: 项目:实数四则运算计算器的设计

答 1 : 将每一次输入的数字和小数点都顺序地以 字符串的形式保存, 字符串的形式保存,最后计算时再把字符串转换 double类型的浮点数 类型的浮点数; 成double类型的浮点数; 增加一个bool 类型的变量bDot bool类型的变量 bDot, 答 2 : 增加一个 bool 类型的变量 bDot, 以存放有 没有输入过小数点的状态; 没有输入过小数点的状态; 可以通过判断bNumBegins bNumBegins变量的值来确定 答 3 : 可以通过判断 bNumBegins 变量的值来确定 小数点之前有没有输入过数字; 小数点之前有没有输入过数字; 可以使用double double; 答4:可以使用double; 可以增加一个Dot_Click()方法, Dot_Click()方法 答5:可以增加一个Dot_Click()方法,来处理按 下小数点时程序的逻辑。 下小数点时程序的逻辑。
项目: 项目:计 算 器
子项目二:实数四则运算计算器 实数四则运算计算器设计 实数四则运算计算器
常州工程职业技术学院 计算机技术系
项目: 项目:实数四则运算计算器的设计
工作目标

终极目标:完成一个实数四则运算的计算器 终极目标:
与前一个子项目在界面上的不同
《C#程序设计》 C#程序设计》 程序设计

《C#程序设计》 C#程序设计》 程序设计
项目: 项目:实数四则运算计算器的设计

《C#程序设计》 C#程序设计》 程序设计
项目: 项目:实数四则运算计算器的设计
小结: 小结:编写计算器项目的工作任务

1.进行项目的整体设计。 进行项目的整体设计。 进行项目的模块设计。 2.进行项目的模块设计。 设计程序界面并进行对象的属性设置。 3.设计程序界面并进行对象的属性设置。 编写程序代码,并进行调试。 4.编写程序代码,并进行调试。 对软件进行测试, 5.对软件进行测试,如果发现错误应进行调试 和修改。 和修改。
《C#程序设计》 C#程序设计》 程序设计
《C#程序设计》 C#程序设计》 程序设计
项目: 项目:实数四则运算计算器的设计

1、程序流程图
《C#程序设计》 C#程序设计》 程序设计
项目: 项目:实数四则运算计算 程序设计
项目: 项目:实数四则运算计算器的设计
相关文档
最新文档