当前位置:文档之家› 符合四则运算的法则的计算器

符合四则运算的法则的计算器

符合四则运算的法则的计算器
符合四则运算的法则的计算器

Dim data(4) As Double '数据数组

Dim b(4) As String '运算符数组

Public i As Integer

Public c As Boolean '重复按键输入的检查

Public d As Boolean '重复按运算符键输入的检查

Public e As Boolean '总体初始化检查

Private Sub Command1_Click(Index As Integer) '数字控键数组

If (c) Then '清空前面的数据

Else

Text2.Text = Text2.Text & b(i)

Text1.Text = ""

End If

If (Command1(Index).Caption <> ".") Then

Text1.Text = Text1.Text & Command1(Index).Caption

Else

If (InStr(1, Text1.Text, ".") = 0) Then '限制小数点的重复输入Text1.Text = Text1.Text & Command1(Index).Caption

End If

End If

data(i) = Text1.Text

c = True

d = True

e = True

End Sub

Private Sub Command2_Click() '正负转换控键

If (c) Then

data(i) = -Val(Text1.Text)

Text1.Text = data(i)

End If

End Sub

Private Sub Command3_Click()

Text1.Text = ""

Text2.Text = ""

i = 0

End Sub

Private Sub Command4_Click()

If (Len(Text1.Text) > 0) Then

Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)

End If

data(i) = Val(Text1.Text)

End Sub

Private Sub Command5_Click(Index As Integer) '+\-的控键数组

If (e) Then '避免没有初始化前使用

If (d) Then '避免重复的运算

If (data(i) < 0) Then

Text2.Text = Text2.Text & "(" & Text1.Text & ")"

Else

Text2.Text = Text2.Text & Text1.Text '将text1中的数据添加到text2中End If

Text1.Text = "" '清空前面的数据

Select Case b(i)

Case "+"

data(i - 1) = data(i) + data(i - 1)

i = i - 1

Case "-"

data(i - 1) = data(i - 1) - data(i)

i = i - 1

Case "*"

data(i - 1) = data(i - 1) * data(i)

i = i - 1

Case "/"

data(i - 1) = data(i - 1) / data(i)

i = i - 1

End Select

If (i = 1) Then '同级运算的计算Select Case b(i)

Case "+"

data(i - 1) = data(i) + data(i - 1)

i = i - 1

Case "-"

data(i - 1) = data(i - 1) - data(i)

i = i - 1

Case "*"

data(i - 1) = data(i - 1) * data(i)

i = i - 1

Case "/"

data(i - 1) = data(i - 1) / data(i)

i = i - 1

End Select

End If

Text1.Text = data(i) '显示前面数据的总值

If (c) Then

i = i + 1

End If

c = False

End If

b(i) = Command5(Index).Caption '运算符的存储

End If

End Sub

Private Sub Command6_Click(Index As Integer) '*\/的控键数组

If (e) Then '避免没有初始化前使用

If (d) Then '避免重复的运算

If (data(i) < 0) Then

Text2.Text = Text2.Text & "(" & Text1.Text & ")"

Else

Text2.Text = Text2.Text & Text1.Text '将text1中的数据添加到text2中End If

Text1.Text = ""

Select Case b(i)

Case "*"

data(i - 1) = data(i - 1) * data(i)

i = i - 1

Case "/"

data(i - 1) = data(i - 1) / data(i)

i = i - 1

End Select

Text1.Text = data(i)

d = False

i = i + 1

End If

c = False

End If

b(i) = Command6(Index).Caption

End If

End Sub

Private Sub Command7_Click() ' 等号控键

If (e) Then '避免没有初始化前使用

If (d) Then '避免重复的运算

If (data(i) < 0) Then

Text2.Text = Text2.Text & "(" & Text1.Text & ")"

Else

Text2.Text = Text2.Text & Text1.Text '将text1中的数据添加到text2中End If

Text1.Text = ""

Select Case b(i)

Case "+"

data(i - 1) = data(i) + data(i - 1)

i = i - 1

Case "-"

data(i - 1) = data(i - 1) - data(i)

i = i - 1

Case "*"

data(i - 1) = data(i - 1) * data(i)

i = i - 1

Case "/"

data(i - 1) = data(i - 1) / data(i)

i = i - 1

End Select

If (i = 1) Then '同级运算的计算Select Case b(i)

Case "+"

data(i - 1) = data(i) + data(i - 1)

i = i - 1

Case "-"

data(i - 1) = data(i - 1) - data(i)

i = i - 1

Case "*"

data(i - 1) = data(i - 1) * data(i)

i = i - 1

Case "/"

data(i - 1) = data(i - 1) / data(i)

i = i - 1

End Select

End If

Text1.Text = data(i)

d = False

End If

If (d) Then

Else

Text2.Text = Text2.Text & "=" & Text1.Text End If

i = 0 '初始化程序

c = False

End If

End Sub

Private Sub Command8_Click() Text1.Text = "" '清空前面的数据

End Sub

Private Sub Command9_Click() Text2.Text = ""

End Sub

Private Sub Form_Load()

i = 0 '初始化程序

e = False

End Sub

简单的四则运算计算器程序

简单的四则运算计算器程序

注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。 2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。

附件:程序源代码 // sizheyunsuan.cpp : Defines the entry point for the console application. #include #include const int MAX=100; class Operand{ private: double operS; public: Operand(){} Operand(double opers){ operS=opers; } void set(double opers){ operS=opers; } double get() { return operS;} }; class Operator{ private: char operF; int priority; public: Operator(){} Operator(char operf) { operF=operf; switch(operf) { case'(':priority=-1;break; case'+':priority=0;break; case'-':priority=0;break; case'*':priority=1;break; case'/':priority=1;break; case')':priority=2;break; } } void set(char operf){ operF=operf; } char get(){ return operF;} int getpriority(){ return priority; } };

简单的计算器

吉首大学课程设计 课程设计名称:简单的计算器 专业班级: 10 网络工程 学生姓名:胡申城唐茂林赖佳 学号:20104045049 20104045006 201040450 指导教师:鲁荣波老师 课程序设计时间:2011.12.18-2011.12.25

目录 一内容 (1) 二.设计要求 (2) 三.计算器的算法 (2) 四..流程图 (5) 五.源程序 (7) 六.执行结果 (8) 七.课程设计总结 (3) 八.参考书目 (3)

一、内容 编写一个功能基本完善的计算器程序,支持四则运算、乘方开方、指数对数等运算,支持带括号的表达式。 二、设计要求 1) 程序采用字符界面 2) 显示功能菜单,用户指定键即可进入相应功能 3) 每次计算完成后输出一个提示符,要计算的数字或表达式由用户在提示后面输入 4) 用户输入完按回车立即显示计算结果 三、计算器的算法 我们现在用的计算器多是一个数一个运算符的输入输出的。一个比较具有现实意义的计算器,应该具有如下功能: 1.能够实现整数的四则运算:如:1+6-9*4+4/3 2.能够实现小数的四则运算:如:0.2+7-4 这样的计算器基本可以使用在我们生活中。如果我们按照栈的使用来描述一下表达式的进栈出栈问题: 表达式例如:1+9*4/4-5。 假设有栈D和数组S;S中放运算数,D栈放入运算符,优先级高的现运算,四则运算中,*和/优先级最高。 第一步:扫描到‘1’,是运算数,放入S; 第二步:扫描到‘+‘进入D

第三步:扫描到9;进S 第四步:扫描‘*’,因为乘比加优先级高,所以9出栈实现:9*4,把结果入S, 第五步:扫描到/,同样计算S的栈顶元素出栈,实现36/4,把结果如S 第六步:扫描到—,进入D栈; 第七步:扫描到‘5’,进S 第八步:扫描到‘\0’,为结束符;把S栈顶元素栈S1,D顶元素出栈,然后S栈顶元素在出栈,实现减操作,接着S栈顶元素出栈,实现加操作。 具体进出栈如图: Next 为下一个字符或数字,run表示运行,空为不操作S[] D S[] D S[] D S[] D S[] D S[] top t top 9 top 36 top 4 - -1 top base 1 + 1 + 1 + 1 + 1 + 0 top top next + 9 * 4 / 4 - 5 = run 9*4 36/4 4-5 -1+1 表1-1 运算数运算符进栈、出栈

四则运算计算器

基于单片机实现的四则运算计算器 姓名 学号: 班级: 专业名称:测控技术与仪器 指导教师: 东北大学 2016年1月

课程设计(论文)任务书课程设计(论文)题目:基于单片机实现的四则运算计算器 基本内容和设计要求: 1、主机的矩阵键盘输入数和运算符号,从机显示运算结果。 2、主从单片机串行通信系统,并在LCD上显示运算内容及结果。 3、计算结果超过十位数字则显示错误。 4、运算除法时,结果只取整数,不是四舍五入。 5、有清零功能。

目录 课程设计(论文)任务书................................................................................................ i i 摘要 (1) 第1章绪论 (2) 1.1计算器简介 (2) 1.2设计主要内容 (2) 第2章系统硬件设计 (4) 2.1硬件组成 (4) 2.2输入模块 (4) 2.3输出模块 (5) 2.4运算模块 (5) 第3章系统软件设计 (7) 3.1 主程序 (7) 3.1.1主程序框图及初始化 (7) 3.1.2LCD程序框图及初始化 (8) 3.1.3键盘程序框图及初始化 (9) 3.1.4运算程序框图 (10) 第4章调试测试与实验分析 (11) 4.1 计算器调试 (11) 参考文献 (12) 心得体会 (13) 附录硬件原理图及PCB图 (14) 附录程序清单 (15) 附录实物照片 (28)

摘要 单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。本设计是基于89C52RC单片机来进行的四则运算计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除的基本四则运算,并在LCD1602液晶显示屏上显示相应的结果。本电路采用89C52RC单片机为主要控制电路,利用4*4矩阵键盘作为计算器以及运算符的输入。显示采用字符LCD静态显示。软件用C语言编程,并用开发板进行演示。 关键词:计算器,89C52RC单片机,LCD,矩阵键盘

HTML5+css+JavaScript进行四则运算简易计算器(用按钮实现)

HTML5+JavaScript: js简易计算器

/* 动画所用图片元素,可自行更换*/

第6章 四则运算计算器

第6章四则运算计算器 本章介绍的项目是大家十分熟悉的计算器,通过该项目的实践,我们将学习状态图的一些基本知识、C# 中方法的概念和应用以及键盘事件的运用,同时,训练编写一个略微复杂的Windows应用程序的设计思路。 为了使读者能够循序渐进地学习此类项目的设计,我们根据难度的不同,分为三个项目分别实现,首先完成项目一:整数的四则运算计算器,然后在此基础上完善,实现项目二:实数四则运算计算器,最后添加记忆功能,完成项目三:带记功能的实数四则运算计算器。 6.1 项目一:整数四则运算计算器设计 6.1.1 工作目标 终极目标:完成一个整数四则运算的计算器,界面如图6.1所示: 图6.1 整数四则运算计算器

促成目标: 1.完成整数四则运算计算器整体设计——状态机分析; 2.完成整数四则运算模块设计——流程分析; 3.完成整数四则运算计算器的程序界面设计及属性设置; 4.完成整数四则运算器的程序编码; 5.对整数四则运算计算器进行必要的运行测试,如有错误进行调试修改。 6.1.2 工作任务 工作任务一:构建计算器的状态图; 工作任务二:设计程序模块的流程图; 工作任务三:设计界面完成窗体及控件的属性设置; 工作任务四:编写程序代码; 工作任务五:测试软件,对错误进行调试修改。 6.1.3 工作任务一:构建计算器的状态图 1、知识准备——状态图 状态图(Statechart Diagram)是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应的。状态图用于显示状态机(它指定对象所在的状态序列)、使对象达到这些状态的事件和条件、以及达到这些状态时所发生的操作。状态机由状态组成,各状态由转移链接在一起。状态是对象执行某项活动或等待某个事件时的条件。转移是两个状态之间的关系,它由某个事件触发,然后执行特定的操作或评估并导致特定的结束状态。图6.2描绘了状态机的各种元素。

简单计算器c++课程设计

简单计算器 1 基本功能描述 简单计算器包括双目运算符和单目运算符。双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦、阶乘、对数、开方、倒数等运算。可对输入任意操作数包含小数和整数及正数和负数进行以上的所有运算并能连续运算。出现错误会给出提示,同时包含清除、退格、退出功能以及有与所有按钮相对应的菜单项。 2 设计思路 如图1,是输入数据子函数的流程图。打开计算器程序,输入数据,判断此次输入之前是否有数字输入,如果有,则在之前输入的数字字符后加上现有的数字字符;如果没有,则直接使编辑框显示所输入的数字字符。判断是否继续键入数字,如果是,则继续进行前面的判断,如果否,则用UpdateData(FALSE)刷新显示。 如图2,是整个计算器的流程图。对于输入的算式,判断运算符是双目运算符还是单目运算符。如果是双目运算符,则把操作数存入数组a[z+2]中,把运算符存入b[z+1]中;如果是单目运算符,则把字符串转化为可计算的数字,再进行计算。下面判断运算符是否合法,如果合法,则将结果存入a[0],不合法,则弹出对话框,提示错误。结束程序。

输入一个数字 在之前输入的数字字符后面加上现在的数字字符。 Eg :m_str+=”9”。 直接使编辑框显示所输入的数字字符。 Eg :m_str=”9”。 pass3=1表示已有数字输入 开始 之前是否有数字输入? pass3==1? 继续键入数字? 用UpdateData(FALSE)刷新显示 图1 输入数据子函数流程图 Y N Y N

输入开始 双目运算符 是否每一个操作数都存入a[]数组? 把操作数存入a[z+2],把运算符存入b[z+1]。 单目运算符 将字符串转换 为可计算的数进行运算 运算是否合法? 将结果存入a[0] 弹出对话框提示错误 结束Y Y N N 图2 简单计算器总流程图

汇编语言课程设计报告实现加减乘除四则运算的计算器

实现加减乘除四则运算的计算器 目录 1 概述 (1) 1.1 课程设计目的 (1) 1.2 课程设计内容 (1) 2 系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (2) 3 系统概要设计 (2) 3.1 系统的功能模块划分 (2) 3.2 系统流程图 (3) 4系统详细设计 (4) 5 测试 (5) 5.1 正确输出 (5) 5.2 实际输出 (6) 6 小结 (7) 参考文献 (8) 附录 (9) 附录1 源程序清单 (9)

汇编语言课程设计报告(2011) 实现加减乘除四则运算计算器的设计 1 概述 1.1 课程设计目的 运用汇编语言,实现简单计算器的一般功能.通过该程序设计,让我们熟悉并掌握DOS系统功能调方法用及BIOS系统功能调用方法,同时在程序设计过程中熟悉并掌握各种指令的应用,知道编程的具体流程,以及掌握DEBUG的一系列的功能执行命令,及用它进行调试,运行功能。 汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。由于汇编语言如此的接近计算机硬件,因此,它可以最大限度地发挥计算机硬件的性能。由此可见汇编语言的重要性,学好这门课程,同样可为相关的专业打下基础。 汇编语言程序设计课程设计是在教学实践基础上进行的一次试验,也是对该课程所学理论知识的深化和提高。因此,要求学生能综合应用所学知识,设计和制造出具有具有一定功能的应用系统,并且在实验的基本技能方面进行了一次全面的训练。 此外,它还可以培养学生综合运用所学知识独立完成汇编程序课题的能力,使学生能够较全面的巩固和应用课堂上所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。它同样可以提高学生运用理论去处理实际问题的能力和独立思考的能力,使学生的编程思想和编程能力有所提高,最终达到熟练地掌握编写汇编源程序的基本方法的目的。 1.2 课程设计内容 设计一个能实现加减乘除取余计算的程序。将键盘输入的表达式预放入一缓冲区中,然后从该缓冲区的第一个字符开始读取判断,当读到一个有效的表达式时对表达式进行相应的运算后,输出用十六进制数表示的运算结果。 2 系统需求分析 2.1 系统目标 1.熟悉汇编指令、宏汇编语言的编程方法 2. BIOS中断调用、系统功能中断调用方法 3.磁盘文件、及文件内容操作 目标:要求该程序接受从键盘输入的十六进制数,执行相应的计算后,计算结 1

汇编语言课程设计报告——实现加减乘除四则运算的计算器

汇编语言课程设计报告( 2011 -- 2012 年度第 2 学期) 实现加减乘除四则运算的计算器 专业计算机科学与技术 学生姓名 班级 学号 指导教师 完成日期

目录 目录 (1) 1概述 0 设计目的 0 设计内容 0 2系统需求分析 0 系统目标 0 主体功能 (1) 开发环境 (1) 3 系统概要设计 (1) 系统的功能模块划分 (1) 系统流程图 (2) 4系统详细设计 (3) 5测试 (4) 测试方案 (4) 测试结果 (4) 6小结 (4) 参考文献 (6) 附录 (7) 附录源程序清单 (7)

实现加减乘除四则运算的计算器 1 概述 设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。 设计内容 能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2 系统需求分析 系统目标 本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。

四则运算计算器

前言 本次课程设计的题目是用汇编语言实现一个简单的计算器,要求:编写一个程序,每运行一次可执行程序,可以实现加减乘除四则运算。计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。通过使用汇编语言设计实现简单计算器,以此进一步了解和掌握对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识的有效运用。本次课程设计以实现一个基本功能完善,界面友好,操作简便易行的计算器为最终目的。通过对具有加减乘除基本功能的计算器的设计实现,学会使用汇编语言实现输入输出模块的设计,模块合理调用的设计,加减乘除运算的判断以及退出程序的判断的设计。通过对各种指令的合理使用,熟悉并加深对各种指令的用法。学会使用汇编语言设计各个功能模块。当实现各个程序模块后,学会通过程序的调用最终实现一个具有基本计算功能的简单计算器。 1

中文摘要 实现一个简单计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 设计当用户根据提示信息输入一个算式后,按下enter键或是‘=’符号键时,程序依据输入的算式进行计算,并将结果显示在屏幕上。如果用户输入错误,则返回,提示信息让用户重新输入算式,当用户按下Q或q键时退出程序。在各个子功能模块设计好的情况下,通过主题模块的合理调用,最终实现一个具有简单运算功能的计算 关键字:计算器、四则运算、进位、错位、清屏

目录 1系统分析 -------------------------------------------------2系统总体设计----------------------------------------------3详细设计-------------------------------------------------- 4统测试 ---------------------------------------------------5软件使用说明书 ------------------------------------------- 设计总结----------------------------------------------------参考文献----------------------------------------------------致谢——————————————————————————————————— 3

简单WINDOWS小程序设计——四则运算计算器

实验一:简单WINDOWS小程序——四则运算计算器 题目基本要求:创建一个Windows程序,在文本框中输入两个整数,按“计算”按钮后输出这两个整数的和、差、积、商。程序运行范例参见所提供的范例。 程序设计的具体要求如下: (1)用户在两个文本框中输入2个整数后单击“计算”按钮,可在标签框中显示计算结果。 (2)要求计算结果标签框中的内容分行显示 (3)当除数输入为0以及输入的是非数值时,观察程序的运行状态,为什么? 程序提示: (1)每个一在窗体中的控件都应该是一个对象,其中name属性为该控件在程序中的名字。(不能使用汉字) (2)文本框控件为:Textbox,其中text属性即为用户输入的文本,其类型为字符串类型(3)字符串String 为系统已经定义的一个类,其中有很多可以直接使用的方法,如:字符串连接、字符串复制等等。 (4)通过文本框输入的数据类型是字符串,并不能直接用于数值计算,同理,计算之后的结果也不能直接显示在文本框或者标签中,需要转换! 相关代码和使用到的方法如下: int.Parse(txtNumber1.Text) //将字符串txtNumber1.Text转换为相应的整数,不考虑字符串输入错误,不能转换为整数的情况。 int x = 5; txtNumber1.Text =x.ToString(); //将整数转换成字符串并赋值给文本框的text属性。 (5)和C语言一样,在C#/C++中,整数和整数相除仍然得整数。 (6)要分行显示,可以使用回车,但它是转义字符,为\n,比如: string s1=”abc”+”\n”+”efg”,可以实现字母的分行显示 (7)所谓文本框清空,也就是文本框的text属性值为空串。也可以使用clear()事件 (8)在Windows窗体程序中,经常使用label控件(标签)完成显示和输出,属性text 用于显示,类型为字符串。 (9)C#中,类的全部属性和方法定义都是放在类中的。不允许类外定义方法。 思考: (1)什么是对象,什么是类,有什么关系,在上述程序中,哪些是类,哪些是对象。 (2)对象和对象之间是如何区分的。 (3)什么是属性,什么是方法,在上述代码中,哪些是属性,哪些是方法,在控件的使用过程中,对象和属性能否改变 (4)你认为面向对象的程序设计的关键应该在哪里?使用系统或者第三方软件公司已经定义好的类有什么好处,又有什么坏处? 需要在网络辅助教学平台上提交的作业: 简要回答上述四道思考题!

汇编语言课程设计报告——实现加减乘除四则运算的计算器

汇编语言课程设计报告 ( 2011 -- 2012 年度第 2 学期) 实现加减乘除四则运算的计算器 专业 计算机科学与技术 学生姓名 班级 学号 指导教师 完成日期

目录 目录错误!未定义书签。 1 概述错误!未定义书签。 设计目的错误!未定义书签。 设计内容错误!未定义书签。 2 系统需求分析错误!未定义书签。 系统目标错误!未定义书签。 主体功能错误!未定义书签。 开发环境错误!未定义书签。 3 系统概要设计错误!未定义书签。 系统的功能模块划分错误!未定义书签。系统流程图错误!未定义书签。 4系统详细设计错误!未定义书签。 5 测试错误!未定义书签。 测试方案错误!未定义书签。 测试结果错误!未定义书签。 6 小结错误!未定义书签。 参考文献错误!未定义书签。 附录错误!未定义书签。 附录源程序清单错误!未定义书签。

实现加减乘除四则运算的计算器 1 概述 设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。 设计内容 能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2 系统需求分析 系统目标 本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 主体功能 系统分析主要包括设计的功能分析和系统的流程,功能分析放在首位,每一个软件都要能满足一定的功能才有使用价值。根据功能需求来创建应用程序。 本设计的功能如下: 1、输入2个数,先判断是加减运算还是乘除运算,再进行计算 2、判断符号是否为运算符 3、回车为换行符 4、用十进制或十六进制输出运算结果 开发环境 集成环境 3 系统概要设计 系统的功能模块划分 本题目实现的模块图如图3-1所示

毕业设计_数据结构【a】十进制整数四则运算计算器

东北大学信息科学与工程学院 数据结构课程设计报告题目十进制整数四则运算计算器课题组长余灏然 课题组成员魏嘉张越 专业名称计算机科学与技术 班级计算机1307 指导教师杨雷 2015 年1月

课程设计任务书 题目: 十进制整数四则运算计算器 问题描述: 由输入的四则运算表达式字符串,动态生成算术表达式所对应的二叉树,通过表达式二叉树自动求值并输出。 设计要求: 设计十进制整数四则运算计算器。 (1)采用二叉树、栈等数据结构。 (2)给定表达式字符串,生成二叉链表的表达式二叉树。 (3)对表达式二叉树采用后序遍历求值并输出。 (4)可以考虑加入复数四则运算功能。 (5)其它完善性功能。 指导教师签字: 2014年12月28日

目录 1 课题概述 (1) 1.1 课题任务 (1) 1.2 课题原理 (1) 1.3 相关知识 (4) 2 需求分析 (4) 2.1 课题调研 (5) 2.2 用户需求分析 (5) 3 方案设计 (5) 3.1 总体功能设计 (5) 3.2 数据结构设计 (5) 3.3 函数原型设计 (5) 3.4 主算法设计 (5) 3.5 用户界面设计 (5) 4 方案实现 (6) 4.1 开发环境与工具 (6) 4.2 程序设计关键技术 (6) 4.3 个人设计实现(按组员分工) 4.3.1余灏然设计实现 (6) 4.3.2 魏嘉设计实现 (9) 4.3.3 张越设计实现 (11) 5 测试与调试 (13) 5.1 个人测试(按组员分工) (13) 5.1.1 余灏然测试 (13) 5.1.2 魏嘉测试 (16) 5.1.3 张越测试 (20) 5.2 组装与系统测试 (25) 5.3 系统运行 (25) 6 课题总结 (26) 6.1 课题评价 (26) 6.2 团队协作 (26) 6.3 个人设计小结(按组员分工) (26) 6.3.1 余灏然设计小结 (26) 6.3.2 魏嘉设计小结 (27)

微机课设简易计算器

微机课程设计报告 题目简易计算器仿真 学院(部)信息学院 专业通信工程 班级2011240401 学生姓名张静 学号33 12 月14 日至12 月27 日共2 周 指导教师(签字)吴向东宋蓓蓓

单片机十进制加法计算器设计 摘要 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计 算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED上相应的显示结果。 软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用全球编译效率最高的KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus仿真。 引言 十进制加法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C52芯片、汇编语言、数码管、加减乘除

汇编语言课程设计四则运算计算器

微机原理实验报告 汇编语言课程设计报告 ( 2012 -- 2013 年度第1 学期) 实验名称:实现加减乘除四则运算的计算器 专业生物医学工程 学生姓名周炳威 班级B100904 学号B10090406 指导教师乐洋

实现加减乘除四则运算的计算器 1 实验目的 深化学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。通过使用汇编语言设计实现简单计算器,以此进一步了解和掌握对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识的有效运用 2 实验内容 课题名称:实现加减乘除四则运算的计算器 主要功能:实现一个简单的计算器,要求:编写一个程序,每运行一次可执行程序,可以实现加减乘除四则运算。计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。 3 实现方法 本次汇编语言课程设计的最终目的是要实现一个简单计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 第一步,用INT 21H的1号功能调用来进行输入。利用1号功能调用来输入,即把单个字符一个个的输入并存储到一个数据区里。我们要做的是两个数的运算,先认定输入的格式为1234+5678=或者1111*2222=,当然如果输入不是这样的格式计算出来的结果就不一定是我们想要的结果了。在存储的时候也是有选择的存储,当输入的并非格式里所要求的字符时则报错。 第二步,设计程序进行判断所输入的算式是做加法运算、减法运算、乘法运算还是除法运算,即判断输入的运算符是‘+’号、‘-’号、‘*’号、‘/’号中的哪一个,因为输入的格式固定了,所以只需要把存进数据区的第三个字符拿来与加减乘除四个运算符号进行比较,和哪一个运算符号一样就调用相对应的运算模块进行计算。 2

简单计算器

毕业论文(设计) 简单计算器 学生姓名: 指导教师: 合作指导教师: 专业名称:应用电子技术所在学院: 2013 年4 月

目录 摘要 .................................................................................................................................... I 第一章前言 . (1) 第二章方案论证与设计 (2) 2.1 目标和要求 (2) 2.2 方案设计 (2) 第三章硬件介绍 (3) 3.1单片机 (3) 3.2 LED显示器 (4) 3.3键盘 (4) 第四章软件编程 (5) 4.1显示程序设计 (5) 4.2 键盘扫描程序 (5) 4.3运算程序设计 (8) 4.4蜂鸣器程序设计 (9) 4.5 汇编程序 (10) 总结 (23) 参考文献 (24) 附录 (25)

摘要 随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是电子技术的发展,更犹如雨后春笋般的变化着。现在单片机的应用已经越来越贴近生活,用单片机来实现一些电子设计也变得容易起来。计算器在人们的日常中是比较的常见的电子产品之一。现阶段的计算器还是比较简单的,电路也并不是特别复杂,但它却还在发展之中,以后必将出现功能更加强大的计算器,基于这样的理念,并结合所学的单片机知识,想到了应用单片机来设计一个可以完成计算器基本功能的程序。该设计系统是选用AT89C51 的单片机为基础, P1和P3 口作为输入端,外接4X4 的键盘,通过键盘扫描来进行对输入数的控制,在P0口,P2 口接入驱动电路。用来保证 LED 的正常工作。计算器将完成的功能有加,减,乘,除,清零的功能。 关键词:计算器,LED,单片机

四则运算计算器数字电路设计

四则运算运算计算器数字电路设计 由于加减乘除计算器的各电路较复杂,就不将其组合在一起了,以下是各个加法,减法,乘法,除法计算器的单独电路图,其中输入均采用二进制四位输入。 一.加法计算器 这个较为简单,可以直接利用中规模四位全加器74LS283,即可制成加法计算器。电路图: A4 A3 A2 A1 为二进制被加数;B4 B3 B2 B1 为二进制加数;SUM4 SUM3 SUM2 SUM1 为二进制得数。加上输入输出后如图所示: 仿真图形为:

前四个图像为被加数,中间四位为加数,后四位为得数。由此可看出,已成功制成加法计算器。 二.减法计算器 电路图:

利用数据选择器和四输入与非门,可以实现减法计算器的功能,其中,C1 C2 C3 C4为四位二进制被减数输入端;B1 B2 B3 B4 为四位二进制减数输入端;输出端 27 26 25 24 为得数。 加上输入输出后如图所示: 仿真图形如下: 前四位为被减数,中间四位为减数,最下面四位为得数,由仿真图形可看出,已成功制成减法计算器。 三.乘法计算器

利用中规模四位全加器74LS283和而输入与门可以实现乘法计算器功能。其中,输入端4 3 2 1 为二进制四位被乘数,输入端5 6 7 8 为二进制四位乘数, 输出端54 50 51 52 53 49 48 46 47为得数。 电路图如下: 加上输入输出后:

仿真图形为: 1被乘数和乘数: 2得数: 由仿真图形可以看出,已成功制成了乘法计算器。 四.除法计算器 这个实在是太难了,想了好久也没想到怎么设计,作业催的紧,就只好先不做了,请老师见谅,哈! 以上就是四则计算器的数字电路设计与仿真。

PICFA简单计算器设计报告汇编语言四位无符号整数加减乘除

课程设计报告 课程名称:单片机原理与接口技术课程设计设计题目:简单计算器 院系:机电工程学院 班级:2010级电气工程及其自动化专业姓名: 学号: 指导教师:史丽萍,闫广明,张波, 张扬,王冠然 设计时间:2013年12月

一、设计方案描述与论证 我们所设计的是一个简单计算器,它具有四位数以内的整数加减乘除运算。可以在输入错误的时候退格,也可以初始化。在初始化的状态下可以进行关机以减少耗能。显示使用的数码管扫描显示的方法来显示数字,所以我们每一次运算前我们都需要将个位、十位、百位和千位相结合。我们使用的是4×4的键盘,检测的时候是进行键盘扫描来完成确定哪一个键被摁下,然后是否释放。键盘被摁下后,先判断是什么键。如果是数字键,则进行数的输入,首先先把百位的数值赋给千位,十位赋给百位,个位赋给十位,然后把摁下键的对应数赋给个位。如果是算法键,则将对应的算法寄存地址赋上相应算法的值,并且在下一次输入数字时把十位、百位和千位清零以完成下一次的赋值,而这一次的值将转换为一个数储存在相应的地址中。当按下的是退格键,则将十位赋值给个位,百位赋值给十位,千位赋值给百位然后千位清零。当按下的是等号键的时候,将前一次储存的数取出与这一次的数进行相应的运算然后将得到的二进制数拆分为个位、十位、百位和千位然后扫描显示就可以。复位键是使用的中断,当个位、十位、百位和千位都不为零的时候按下将会初始化计算器的所有数据,如果个位、十位、百位和千位均为零这进入休眠状态等待下一次中断的唤醒。 二、硬件设计部分

我们使用的是PIC16F877A单片机,使用四位的八段数码管,4×4的键盘和一个独立的中断键。八段数码管我们使用的是共基极的接法,所以当给出低电平的时候导通,给出高电平的时候关断。我们以RD端口来控制段选,分别以RB0控制a、RB1控制b、RB2控制c、RB3控制d、RB4控制e、RB5控制f、RB6控制g和RB7控制dp。以RD1、RD2、RD3和RD4端口分别控制位选的千位、百位、十位和个位。 键盘我们使用RC端口扫描的方法来实现4×4的键盘。其中RC0、RC1、RC2和RC3端口分别设置为输出,RC4、RC5、RC6和RC7端口设置为输入。两组端口分别接入键盘的行和列。RC4、RC5、RC6和RC7端口再通过10K的电阻接VCC以实现为高电平。键盘扫描的时候,首先RC0、RC1、RC2和RC3端口均输入为低电平0,判断RC4、RC5、RC6和RC7端口是否全为高电平1,如果是则无按键被按下。如果不全为高电平1则证明有按键被按下。这时需要依次将RC0、RC1、RC2和RC3端口置低电平0,检测RC4、RC5、RC6和RC7端口何时有一个变为低电平0,这时可以对应出哪一个按键被按下。 中断键是单独接出的,外接电容增加其稳定性,减少被摁下是的抖动。

汇编语言课程设计报告_实现加减乘除四则运算的计算器

汇编语言课程设计报告 ( 2011 -- 2012 年度第 2 学期) 实现加减乘除四则运算的计算器 专业 计算机科学与技术 学 生 班级 学 号 指导教师 完成日期

目录 目录 (2) 1概述 (1) 1.1 设计目的 (1) 1.2 设计容 (1) 2系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (1) 2.3 开发环境 (1) 3 系统概要设计 (2) 3.1 系统的功能模块划分 (2) 3.2 系统流程图 (3) 4系统详细设计 (3) 5测试 (4) 5.1 测试方案 (4) 5.2 测试结果 (4) 6小结 (5) 参考文献 (6) 附录 (7) 附录源程序清单 (7)

实现加减乘除四则运算的计算器 1 概述 1.1 设计目的 本课程设计是在学完教学大纲规定的全部容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。 1.2 设计容 能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2 系统需求分析 2.1 系统目标 本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 2.2 主体功能 系统分析主要包括设计的功能分析和系统的流程,功能分析放在首位,每一个软件都要能满足一定的功能才有使用价值。根据功能需求来创建应用程序。 本设计的功能如下: 1、输入2个数,先判断是加减运算还是乘除运算,再进行计算 2、判断符号是否为运算符 3、回车为换行符 4、用十进制或十六进制输出运算结果 2.3 开发环境 TASM5.0集成环境

简易计算器(加减乘除幂e)

此计算机包含+,-,/,*,!,sin,tan,cos,^,e。 #include #include #include #include #define max 100 #define MaxOp 100 struct //设定运算符优先级 { char ch; //运算符 int pri; //优先级 } lpri[]={{'=',0},{'(',1},{'*',5},{'/',5},{'+',3},{'-',3},{')',6},{'^', 7},{'e',7},{'!',7},{'s',7},{'t',7},{'c',7}}, rpri[]={{'=',0},{'(',6},{'*',4},{'/',4},{'+',2},{'-',2},{')',1},{'^', 6},{'e',6},{'!',6},{'s',6},{'t',6},{'c',6}}; int leftpri(char op) //求左运算符op的优先级 { int i; for(i=0;i

相关主题
文本预览
相关文档 最新文档