简单的计算器

合集下载

简易计算器(源码)

简易计算器(源码)

简易计算器(源码)以下是一个简易计算器的Python源码,用于执行基本的加、减、乘、除运算:```python#简易计算器def add(x, y):"""相加"""return x + ydef subtract(x, y):"""相减"""return x - ydef multiply(x, y):"""相乘"""return x * ydef divide(x, y):"""相除"""if y != 0:return x / yelse:return "除数不能为零!"print("选择操作:")print("1. 相加")print("2. 相减")print("3. 相乘")print("4. 相除")choice = input("输入你的选择(1/2/3/4): ")num1 = float(input("输入第一个操作数: "))num2 = float(input("输入第二个操作数: "))if choice == '1':print(num1, "+", num2, "=", add(num1, num2))elif choice == '2':print(num1, "-", num2, "=", subtract(num1, num2)) elif choice == '3':print(num1, "*", num2, "=", multiply(num1, num2)) elif choice == '4':print(num1, "/", num2, "=", divide(num1, num2)) else:print("无效的选择")```以上代码中,我们定义了四个函数:`add`、`subtract`、`multiply`和`divide`,分别用于执行相加、相减、相乘和相除的操作。

简易计算器实验报告

简易计算器实验报告

简易计算器实验报告简易计算器实验报告引言:计算器是我们日常生活中常用的工具之一。

它可以帮助我们进行简单的数学运算,提高计算的效率。

在本次实验中,我们将设计并制作一台简易计算器,通过实践来掌握计算器的原理和工作原理。

实验目的:1. 了解计算器的基本原理和工作原理;2. 掌握计算器的设计和制作方法;3. 提高动手能力和创造力。

实验材料:1. 电路板;2. 按键;3. LED显示屏;4. 电容;5. 电阻;6. 电源。

实验步骤:1. 连接电路板和电源,确保电路板能够正常工作;2. 将按键连接到电路板上,用于输入数字和运算符;3. 连接LED显示屏,用于显示计算结果;4. 添加电容和电阻,用于控制电路的稳定性和电流;5. 调试电路,确保计算器能够正确运行。

实验结果:经过一番调试,我们成功制作出了一台简易计算器。

它可以进行基本的加减乘除运算,并且在LED显示屏上显示结果。

通过按键输入数字和运算符,我们可以进行各种运算,从而得到我们想要的结果。

这台计算器虽然简单,但是它的实用性和便携性都非常高。

实验分析:在本次实验中,我们主要学习了计算器的基本原理和工作原理。

计算器是通过按键输入数字和运算符,然后经过电路的计算和控制,最终在显示屏上显示结果。

在电路中,电容和电阻的作用是为了保证电路的稳定性和电流的控制。

通过这个实验,我们更加深入地了解了计算器的内部结构和工作原理。

实验总结:通过本次实验,我们成功制作了一台简易计算器,并且对计算器的原理和工作原理有了更深入的了解。

实验过程中,我们不仅提高了动手能力和创造力,还培养了解决问题的能力。

计算器作为一种常见的工具,它的设计和制作过程并不复杂,但是它的实用性和便携性却非常高,为我们的生活带来了很大的便利。

未来展望:通过这次实验,我们对计算器的原理和工作原理有了初步的了解。

在未来,我们可以进一步深入研究计算器的更高级功能和更复杂的电路设计。

同时,我们也可以将这种简易计算器的设计思想应用到其他领域,如电子设备、机器人等,从而提高我们的创造力和创新能力。

基于LABVIEW的简易计算器设计

基于LABVIEW的简易计算器设计

基于LABVIEW的简易计算器设计1.引言计算器是一种用于进行基本数学运算的设备或程序。

在本文中,将使用LABVIEW软件设计一个简单的计算器。

在这个计算器中,我们将实现加法、减法、乘法和除法运算,并且能够进行小数和负数的计算。

2.设计框图首先,我们将使用LABVIEW软件创建一个新的项目。

在项目中,我们将创建一个前面板和一个图表用于计算器的图形化表达。

在前面板中,我们将使用几个数字输入控件和一个字符串显示控件。

数字输入控件用于输入操作数和运算符,而字符串显示控件用于显示结果。

3.功能模块计算器的功能可以被分成几个独立的模块,包括数字输入、运算符输入和计算结果。

让我们详细了解每个模块的实现。

3.1.数字输入数字输入模块负责接收用户输入的操作数。

我们可以使用数字输入控件来获取用户输入的操作数并将其存储在内存变量中。

3.2.运算符输入运算符输入模块负责接收用户输入的运算符。

我们可以使用数字输入控件来获取用户输入的运算符并将其存储在内存变量中。

3.3.计算结果计算结果模块负责执行数学运算并将结果显示在字符串显示控件中。

我们可以使用数字输入变量和运算符变量来执行相应的计算操作。

4.程序实现在LABVIEW中,我们可以使用块图对上述功能模块进行编程。

以下是一个简单的程序实现示例:4.1.数字输入模块实现数字输入模块的实现非常简单。

我们只需要创建一个数字输入控件,并将其连接到数字输入变量。

这将使用户能够输入操作数。

4.2.运算符输入模块实现运算符输入模块的实现也很简单。

我们只需要创建一个数字输入控件,并将其连接到运算符输入变量。

这将使用户能够输入运算符。

4.3.计算结果模块实现计算结果模块的实现需要一些数学运算。

我们可以使用分支结构来根据用户输入的运算符执行相应的运算。

-如果运算符是加法,则将两个操作数相加。

-如果运算符是减法,则将第一个操作数减去第二个操作数。

-如果运算符是乘法,则将两个操作数相乘。

-如果运算符是除法,则将第一个操作数除以第二个操作数。

Python之实现一个简易计算器

Python之实现一个简易计算器

Python之实现⼀个简易计算器⾃⼰动⼿写计算器⼀、功能分析 ⽤户输⼊⼀个类似这样 3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 这样的表达式,假设表达式⾥⾯除了包含空格、'+'、'-'、'*'、'/'和括号再⽆其他特殊符号,然后⾃⼰动⼿写代码解析其中的表达式,实现加减乘除,最后得出的结果与真实的计算机所算的结果必须⼀致。

⼆、所需的知识点字符串的处理正则表达式的运⽤函数递归三、程序实现流程分析1. ⽤正则表达式处理字符串,只提取其中的数字和运算符,并转换成列表2. 编写⼀个函数,处理没有括号的基本运算的基本表达式3. 再写⼀个函数递归处理带有括号的函数,先计算最内部括号中的表达式, 然后将最内部的括号替换为计算后的结果, 在递归外部⼀层的,最后返回的就是所需的结果四、具体实现过程1.正则表达式处理⽤户输⼊字符串 这⾥我不会讲正则表达式具体的⽤法,要将的话都可以讲⼀本书了,我只讲本⽂⽤到的正则表达式。

根据需求,我们需要提取出⽤户输⼊字符串中的数字和运算符到⼀个列表中,⽽空格将会被忽略掉,假设⽤户输⼊的表达式是 expression,我们可以写出下⾯的代码:1 2 3 4import reexpression='(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4)'l=re.findall('([\d\.]+|/|-|\+|\*)',expression)print(l) #['100', '+', '40', '*', '5', '/', '2', '-', '3', '*', '2', '*', '2', '/', '4', '+', '9', '*', '3', '+', '4', '-', '4', '-', '4'] ⾸先我们先看⼀下 findall 的⽤法,findall可以匹配所有符合规律的内容,返回包含结果的列表。

单片机的简易计算器

单片机的简易计算器

单片机的简易计算器在现代科技的不断发展中,单片机已经成为了人们生活中不可或缺的一部分,其广泛应用于各个领域中。

其中,单片机作为计算器的应用是人们最为熟悉的,本文将介绍一个基于单片机的简易计算器。

1.引言计算器作为一种广泛使用的工具,早已融入人们的生活中。

随着电子技术的不断发展,计算器逐渐从机械式逐渐转变为电子式。

而单片机作为电子计算器中的核心,因其体积小、功耗低、成本低等优点,成为了电子计算器的首选之一2.原理介绍单片机简易计算器的原理是通过单片机对输入的数字和运算符进行解析,然后利用内部的算法进行计算,最后将结果显示在输出设备上。

该计算器主要包括输入模块、解析模块、计算模块以及显示模块四个部分。

3.输入模块输入模块主要包括键盘和显示屏。

键盘用于用户输入数字和运算符,显示屏用于显示输入和计算结果。

在单片机上,键盘和显示屏一般通过矩阵按键扫描和数码管显示等方式实现。

4.解析模块解析模块负责解析用户的输入,并将其转化为内部可以处理的格式。

例如,用户输入的数字和运算符将被解析为二进制码或其他表示形式。

解析模块一般通过状态机等方式实现。

5.计算模块计算模块是单片机简易计算器的核心部分,主要负责对输入的数字和运算符进行计算,并生成计算结果。

计算模块可以使用常见的算法,如加法、减法、乘法、除法,也可以实现特殊的运算功能,如开方、幂运算等。

6.显示模块显示模块负责将计算结果显示在输出设备上。

单片机简易计算器一般采用数码管显示,可以显示整数和小数。

在显示过程中,还需要考虑显示精度和位数等问题。

7.程序设计单片机简易计算器的程序设计需要考虑输入和输出的实时性和准确性。

需要设计相应的中断处理函数,实现按键的响应和显示的更新。

程序设计还需要考虑算法的优化和计算结果的溢出等问题。

8.功能扩展单片机简易计算器还可以进行功能的扩展,如添加转换功能、存储功能等。

例如,可以添加进制转换功能,实现十进制与二进制、八进制、十六进制之间的转换;还可以添加存储功能,实现计算结果的存储和读取。

《制作简易计算器》课件

《制作简易计算器》课件
《制作简易计算器》PPT 课件
本PPT课件将教你如何制作简易计算器。通过简单直观的讲解和演示,你将 学会使用PPT创建一个实用的计算器应用程序。
一、引言
目的和意义
介绍制作计算器PPT的目的和意义,以及为什么学习制作计算器是有益的。
使用场景
简述计算器的使用场景,包括商务、教育、日常生活等各个方面的应用。
二、制作工具
PPT制作工具
介绍使用的PPT制作工具,包括Microsoft PowerPoint和Google Slides等。
使用PPT创作计算器
详细讲解如何使用PPT来创建一个计算器应 用程序的演示,包括界面设计和功能实现。
三、计算器的部件
计算器需要的元素
简述计算器应用程序所需的基本元素,例如 屏幕、按钮、数字键盘等。
1
实现计算器功能
2
通过演示,展示如何在代码中实现计 算器的基本功能,如加法、减法、乘
法、除法等。
计算器代码编写过程
使用步骤演示如何编写计算器应用程 序的代码,从创建项目到实现基本功 能。
六、编写计算器UI
设计计算器界面
指导如何设计计算器应用程序的用户界面,包括 布局、颜色、字体和图标等。
计算器的样式
演示如何选择合适的样式,使计算器的界面更加 美观和易于使用。

七、添加计算器所需功能
1
添加更多功能
介绍如何为计算器应用程序添加更多
演示更高级功能
2
高级功能,如求平方、开平方、百分 比等。
通过演示,向观众展示如何添加和使
用计算器应用程序的更高级功能。
八、总结
总结制作计算器PPT的过程
简要总结制作计算器PPT的整个过程和所涵盖的内容。

电子计算器的种类和型号介绍

电子计算器的种类和型号介绍

电子计算器的种类和型号介绍电子计算器是当今日常生活中不可或缺的工具之一,它们在各行各业中被广泛使用。

随着科技的不断进步,电子计算器的种类和型号也越来越多样化。

本文将介绍几种常见的电子计算器,并探讨其不同的应用场景和特点。

1. 基本计算器基本计算器是最简单、最常见的电子计算器类型。

它们由各种基本数学运算功能组成,如加减乘除、取余、开方等。

基本计算器通常只有一个显示屏,按钮布局简单明了,便于日常计算使用。

这种计算器适合学生、业务员、办公室职员等进行简单数学计算。

2. 科学计算器科学计算器是一种功能更为强大的计算器,适用于复杂的科学计算和工程计算。

除了基本数学运算功能,科学计算器还具备三角函数、对数和指数函数、统计学函数、线性代数运算等高级数学运算功能。

科学计算器通常配备多个显示屏,显示结果更清晰,按钮布局更复杂,以便于用户进行复杂的计算。

3. 金融计算器金融计算器是专门用于金融和商业领域的计算器。

它们具备计算贷款利率、现值和未来值等金融指标的功能,可以帮助用户进行财务分析和投资决策。

金融计算器通常配备一些特殊键,如年利率、利率计算和现金流量等,以方便用户进行复杂的金融计算。

4. 编程计算器编程计算器是为程序员和软件开发人员准备的计算器。

它们具备基本的数学运算功能,还可以进行二进制、八进制和十六进制等进制转换,支持逻辑运算和位运算等编程特定功能。

编程计算器通常配备更多的按钮和功能键,以满足程序员在编程过程中的需求。

5. 打印计算器打印计算器是一种具备打印功能的计算器,通常用于商务和会计领域。

它们可以将计算结果打印成纸质文档,方便保存和查阅。

打印计算器通常配备一个小型打印机,输出的纸质文档清晰可读,帮助用户进行会计账目和报告的编制。

6. 图形计算器图形计算器是针对数学和科学领域的高级计算器,可以绘制数学函数和图形方程。

它们可以显示二维和三维图形,在数学教学、科学研究和工程设计等领域具有重要应用。

图形计算器通常配备一个大屏幕,支持触控和绘图功能,以便用户可以直接在屏幕上操控图形和函数。

简易计算器 带小数点

简易计算器 带小数点

简易计算器(带小数点)一.主要实现功能1.能完成五位数以内的加减乘除运算(其中整数部分最多为3位,小数部分最多为2位,多余的输入无效)。

2.运算结果数码管显示。

3.在进行减法运算时,如果差是负数,数码管能够显示负数。

4.能及时显示输入的值和运算的结果二.操作方法(类似普通的计算器)显示板上的1--9数字键作为运算是数字的输入,上档键作为加法键,下档键作为减法键,左键作为乘法键,右键作为除法键,Esc键是取消键,用来取消上一次的操作或是返回上一状态。

Enter键在数字输入时作为小数点的键入键,当完成第二个的数输入后,Enter键则作为计算器中的“=”键,得出运算的结果,并且在数码管上显示,其余的操作步骤与方法与普通的计算器类似。

三.程序流程图1.思想从计算器的操作步骤来看,可以把计算器的输入过程分解由四个状态来实现,如下图所示第一个数的输入加减乘除键的输入Enter键得结果第二个数的输入与整数计算器不同的是,带小数的计算器要完成小数点的键入,须记录小数点后面的位数,所以我们又可以把数字的输入分为两个状态,一个是整数部分的键入,另一个是小数部分的键入。

如下所示:数字的输入整数的输入小数的输入程序流程图由程序流程图可以画出程序流程图0 1 2 3以上只是从整体把握计算器程序,也就是程序是通过几个模块实现的。

各个模块之间互不影响的。

各个模块实现的算法可以不同,加减乘除和等号的输入比较简单在这就不描述了,下面对数字的输入和显示做简要的描述,如下图所示:0 1 0 1 2开始 初始化 第一位数加减乘除的输入 第二位数等号键的输入 Num =?显示结束数字的输入Num1=? 整数的输入 小数的输入数字的显示F=?显示第一位 数显示第二位 数显示结果四.算法数字的输入与显示1>.如何从键盘上读出键入的值并且如实的表示出来?例如按顺序输入12.12,则在数码管上显示12.12,我们可设一变量th,从键盘上所读出来的值key ,th=th*10+key,如果按顺序输入1 2 .1 2 ,则th的值为1212。

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

吉首大学课程设计课程设计名称:简单的计算器专业班级: 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/32.能够实现小数的四则运算:如: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表示运行,空为不操作表1-1 运算数运算符进栈、出栈含括号的运算表达式本文是实现带括号的表达式的运算并输出结果。

与上面的相类似,只不过优先级最高的为‘(’,其次为‘*’和‘/’最后为‘+’和‘-’,最最后是‘)’。

当遇到‘(’时,就直接保留立即做下面遇到的优先级较高‘*’和‘/’的运算。

方法类似上面的:例如:3+5*(3-1)=我们实际上计算为:3-1=2;5*2=10;3+10=13. 按照我们给定的运算优先级,进栈出栈的实际情况为下图:其中D为运算符栈,S为数组表1-2 带括号的运算数运算符进栈、出栈所以,运行结果为13.四、流程图4.1主体流程图4.2细节程序的流程图2-1 计算带括号的表达式流程图五、源程序编写(附上了运行图)#include<stdio.h>#include<math.h>#include<stdlib.h>#define N 1000double expe[N]; //操作数栈int top_exp;char op[N]; // 运算符栈int top;int top_op;int mark;double calc(double a,double b,int c) //进行运算的函数{switch(c){case '+':return a+b;case '-':return a-b;case '*':return a*b;case '^':return pow(a,b);case '/':{if(b==0){printf("错误:除数含0啦\n\n");mark=0;return 0;}return a/b;;}}return 0;}char Priority(char y,char x) //判断优先级的函数{char ch='<';switch(x){case '+':case '-':if(y=='(' || y=='\0') ch='>';break;case '*':case '/':case '^':if(y=='(' || y=='\0'|| y=='+' || y=='-') ch='>';break;case '(':ch='>';break;case ')':if(y=='(') ch='=';break;case '\0':if(y=='\0') ch='=';break;}return ch;}void process(char *str) //处理表达式{double a,b;char c;double x,s;int i=0,flag,t;while (str[i]!='\0' || op[top_op]!='\0'&&mark){if (str[i]>='0' && str[i]<='9'){x=0, flag=0,t=1;while (str[i]>='0' && str[i]<='9'||str[i]=='.'){if(flag) t*=10;if(str[i]=='.') flag=1;else{x=x*10+ str[i] - '0';}i++;}expe[++top_exp]=x/t;}else{if(str[i]=='l') //处理对数{i+=2;if (str[i]>='0' && str[i]<='9'){s=0;flag=0,t=1;while (str[i]>='0' && str[i]<='9'||str[i]=='.'){if(flag) t*=10;if(str[i]=='.') flag=1;else{s=s*10+ str[i] - '0';}i++;}expe[++top_exp]=log10(s);}continue;}switch (Priority(op[top_op],str[i])) /判断操作符的优先级{case '>':op[++top_op]=str[i];i++;break;case '<':c=op[top_op--]; //先把优先级高的操作符出栈b=expe[top_exp--]; //运算的2个操作数出栈a=expe[top_exp];expe[top_exp]=calc(a,b,c); //calc(a,b,c)运算出来的2个操作数,把结果入栈break;case '=':top_op--;i++;break;}}}}int main(){char str[N];int n;int flag=1;while(flag){printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");printf("◆◆\n");printf("◆说明;本计算器支持四则运算、乘方开方、指数对数等运算,支持带括号的表达式◆\n");printf("◆乘方和指数所用符号为^号, 对数用的符号为两个字符'lg'构成◆\n");printf("◆◆\n");printf("◆1:请输入将要计算的表达式2:退出计算器◆\n");printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");printf("请选择相应的阿拉伯数字:");scanf("%d",&n);system("cls");if(n==1){printf("请输入将要计算的表达式:");mark=1;top_exp=-1;top_op=0;op[top_op]='\0';scanf("%s",str);process(str);if(mark){printf("〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇\n");printf("所得结果为:%s=%lf\n",str,expe[top_exp]);printf("〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇\n\n");}}else{flag=0;}}return 0;}六、执行结果图1 计算器的主界面图2 进行简单的四则运算图3 进行乘方运算图4 进行开方运算图5 进行指数运算七、心得体会本次课程实验是设计一个简单计算器。

这次的课程设计我们这组成员都有不少的收获:在分配好题目之后,我们组立即分配任务,时不时的讨论,彼此增进了解。

通过课程设计,学会了更多的计算机知识,觉得编程是一件很有意思的事,特别是课程设计完成之后的那种心情,难以言表。

同时增强对不同问题的运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,规范编程思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下了基础。

当然也遇到了很多的犯了很多的错,这些都让我们意识到编写C语言是需要一些耐心、细心的。

更让我们体会到团队精神的重要性。

八、参考书目[1] 谭浩强.《C程序设计》.清华大学出版社[2] 谭浩强.《C++程序设计》.清华大学出版社[3]严蔚敏、吴伟民.《数据结构》.清华大学出版社。

相关文档
最新文档