第02讲 简易计算器的设计

合集下载

简易计算器的课程设计

简易计算器的课程设计

简易计算器的课程设计一、课程目标知识目标:1. 学生能理解简易计算器的内部工作原理,掌握其基本功能操作。

2. 学生能运用计算器进行基本的算术运算,包括加、减、乘、除以及百分比计算。

3. 学生理解并掌握计算器上各个按键的功能及其在数学运算中的应用。

技能目标:1. 学生能够使用计算器辅助解决实际问题,如购物找零、面积计算等。

2. 学生通过计算器的使用,提高数据输入、结果读取和运算过程纠错的能力。

3. 学生能够结合数学知识,利用计算器进行数据的简单统计分析。

情感态度价值观目标:1. 培养学生对待科学技术的积极态度,认识到计算器在日常生活和学习中的便捷性。

2. 增强学生的团队协作意识,通过小组活动,学会分享和交流使用计算器的经验。

3. 培养学生遵守计算器使用的规则,养成良好的计算器使用习惯,珍惜公共资源。

本课程设计针对的学生群体为小学高年级学生,他们已经具备了一定的数学基础和操作简单电子设备的能力。

课程性质为实用技能型,旨在通过简易计算器的教学,将理论知识与实践操作相结合,提高学生解决实际问题的能力。

在教学要求上,注重培养学生的动手操作能力和创新思维,同时强调情感态度的培养,使学生在学习技能的同时,也能形成正确的价值观。

通过具体学习成果的分解,教师可进行有针对性的教学设计和学习效果评估。

二、教学内容本章节教学内容依据课程目标,结合教材内容,科学系统地组织以下部分:1. 简易计算器基础知识:介绍计算器的发展历程、种类及简易计算器的结构组成,对应教材第二章第一节。

2. 计算器按键功能:详细讲解各按键的功能及其在数学运算中的应用,对应教材第二章第二节。

3. 基本运算操作:教授如何使用计算器进行加、减、乘、除以及百分比计算,对应教材第二章第三节。

4. 计算器在实际应用中的使用:结合实际案例,如购物找零、面积计算等,展示计算器的实用性,对应教材第二章第四节。

5. 数据的简单统计分析:利用计算器进行数据输入、处理和简单统计分析,对应教材第二章第五节。

数字逻辑电路课程课程设计--简易加减计算器

数字逻辑电路课程课程设计--简易加减计算器

摘要本次课程设计的任务是设计一个具有加减运算功能的简易计算器,并通过合适的方式来显示最后的计算结果。

此次设计电路的完成主要是利用简单的数字电路和电路逻辑运算来进行的。

简易加减计算器电路主要是对数据的输入与显示,数据的加减运算,数据的输出与显示三个主要的方面来设计研究完成的。

在输入电路的部分,我们通过开关的闭合与断开来实现数据的输入,开关闭合接入高电平“1”,断开接入低电平“0”。

而输入的数据将通过显示译码管以十进制的形式显示出来。

由于输入二进制的位数较多,我们采用个位十位分别输入的方式来简化电路。

加减运算电路则主要通过加法器来实现的。

设计电路时,我们将个位和个位、十位和十位分别接入一片加法器。

在进行加法运算时我们所选择的加法器是完全符合要求的,但是在进行减法运算时加法器就不能满足我们的设计要求了。

因此我们将减法转换为加法进行运算,运算时采用补码的形式。

在进行减法时通过异或门将减数的原码全部转换为补码,输入加法器中进行相加。

最后将进位信号加到十位的运算电路上就实现了加减法的运算电路。

在显示电路中,由加法器输出的数据是二进制码。

这些码可能表示超过十的数字,所以显示译码管就不能正确的显示出数字了。

此时要将二进制转化成BCD码,再将BCD 码送到显示译码管中就可以将计算所得的数字显示出来了。

概述1.1设计题目:简易加减计算器1.2设计任务和要求:1)用于两位以下十进制数的加减运算。

2)以合适的方式显示输入数据及计算结果。

1.3设计方案比较:方案一:输入十进制的数字,再通过编码器对十进制的数字进行编码,输出二进制的数据。

运用显示译码器对输入的数字以十进制的形式进行显示。

在进行加减计算的时候将二进制数字运用数模转换,然后再进行相加减。

然后将这些模拟信号再次转换成数字信号转换成数字信号,再将数字信号输入到显示译码管中来显示数剧。

这个方案中要进行数模转换和模数转换所需要的电路器件有些复杂,并且转换的时候需要很长的时间,而且转换以后数值的精度不高。

简易计算器课程设计

简易计算器课程设计

山东大学控制科学与工程学院课程设计报告书课程设计名称:简易计算器班级:测控一班学号:201000171202姓名:魏凯峰一、电路工作原理该电路主要由以下几部分组成,1、51系列单片机最小系统板,由AT89C51单片机,复位电路,晶振电路(晶振频率是11.0592MHZ),这部分是控制中心,晶振电路可产生程序运行所需要的时钟频率。

2、显示部分,由8位共阴数码管和两个74HC573锁存器、排阻(1K)组成,74HC573锁存器用于动态显示数据,也有驱动显示作用,排阻是限流作用。

3、按键部分,由20位独立键盘组成,按矩阵形式连接,用到9个IO口。

原理:键盘作为数字输入,矩阵键盘的工作原理是当某个键按下时,其两端的IO口电平变化,程序中通过相应位的与或运算,就可以判断出是哪个按键被按下,单片机中的程序不断读取键盘的输入并实时显示在数码管上,数码管用段位选不断切换显示,如当位选为高电平时即为点亮,然后再输入相应的数字段码(该电路中用的是共阴极数码管的字码),这样数码管上便可以显示相应数字。

锁存器中的LE口就是段位选口,高电平有效,数码管中的A、B......G、DP是数码管中的每一段,只要某个字母为高电平,则该段二极管就会被点亮(共阴极)。

在同时显示多个数字时要利用到动态显示,视觉动态显示主要就是利用人眼的视觉感来设计的,一般来说如果显示的频率过慢,则会有断断续续的显示;如果显示的频率加快,则人眼就分辨不出这种视觉残余!二、程序简要说明从主函数开始,先是定义一些变量,然后是调用显示函数displaypro(0),先显示0,然后进入一个大循环while(1),在循环里面先检测键盘keyscan(),并把检测值赋给K,然后是段位选循环8次检测,然后用switch(k)函数来执行键盘操作,k的值从0到9表示输入数字0到9,10到13表示加减乘除,17、15分别表示十六进制和二进制,16表示小数点,14表示正负号,18表示清除,19是等于号。

C语言程序设计-简单的计算器

C语言程序设计-简单的计算器

- - . 《程序设计基础(C)》课程设计报告简易计算器设计学生姓名:学号:班级:指导老师:日期:309工作室设计目录一、设计目标2二、总体设计4三、详细设计6四、调试与测试12五、分析及结论13六、参考文献14【附录】16一、设计目标设计一个C语言程序(简单计算器设计)具体要求:在功能上功能尽量模拟windows操作系统中的计算器,系统界面不做强制要求。

主要功能:进行+、-、*、/、三角函数、对数、幂等各项数学运算,能够进行进制间的相互转换与计算。

二、总体设计1、程序设计组成框图2、设计思路简单计算器的设计的程序中主要调用的函数有:数学函数的定义和I/O函数;设计思路和理念在于一切追求简便易操作原理,通过个人的构思和设计以及调试运行设计出这一款简单的计算器。

3、程序设计流程图三、详细设计1、功能函数①函数的功能:两数的+、-、*、/计算、求平均函数的入口:从main()的if(flag==1)开关结构中进入,即flag的值为1时进入该函数,从而进行该功能函数的计算。

函数调用关系:被主函数调用,由if()开关结构中进入。

函数的出口:函数的出口为printf("是否继续运算?(Y/N) :"),此时输入“Y”,继续前面的结构。

2、功能函数②函数的功能: x的y次方的计算、两数的求余、以x为底y的对数函数的入口:从main()的if(flag==2)开关结构中进入,即flag的值为2时进入该函数,从而进行该功能函数的计算。

函数调用关系:被主函数调用,由if()开关结构中进入。

函数的出口:函数的出口为printf("是否继续运算?(Y/N) :"),此时输入“Y”,继续前面的结构。

3、功能函数③函数的功能: 单个数值sin、cos、tan的计算,以e为底的指数、求绝对值函数的入口:从main()的if(flag==3)开关结构中进入,即flag的值为3时进入该函数,从而进行该功能函数的计算。

简易计算器的设计

简易计算器的设计

学号:课程设计题目简易计算器的设计学院自动化专业电气工程及其自动化班级姓名指导教师2014 年1月9日课程设计任务书学生姓名:专业班级:指导教师:工作单位:自动化学院题目: 简易计算器的设计初始条件:用8086CPU、8255A并行通信接口、七段LED数码管接口、小键盘控制电路接口、外围电路芯片及元器件实现一个简易计算器,完成相应的程序编写。

要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)可进行2位十进制的加减乘除法运算。

(2)键盘输入数据,同时LED数码管显示,模拟计算器的工作。

(3)键盘上要求有0~9数字键,+、-、×、÷、=功能键,清除键C。

(4)撰写课程设计说明书。

内容包括:摘要、目录、正文、参考文献、附录(程序清单)。

正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。

时间安排:12月26日----- 12月 28 日查阅资料及方案设计12月29日----- 1 月 2 日编程1 月 3日----- 1 月 7日调试程序1 月 8日----- 1 月 9日撰写课程设计报告指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (1)1设计的任务及要求 (2)2方案的设计 (3)2.1方案设计论证 (3)2.2方案概述与原理硬件电路图 (3)3系统模块与功能 (5)3.18086CPU芯片 (5)3.2 8255A 并行通信接口芯片 (5)3.3 译码电路 (6)3.4 小键盘电路 (6)3.5 四位七段 LED 数码管显示电路 (7)4软件设计框图与程序 (8)4.1计算器系统程序总体流程图 (8)4.2 模块程序流程图与程序 (8)4.2.1流程图 (8)4.2.2键盘扫描流程图 (9)4.3输入运算 (10)4.3.1输入运算的流程图 (10)4.3.2输入运算程序 (10)4.4显示部分 (11)4.4.1显示部分流程图 (11)4.4.2显示部分程序 (12)5系统仿真 (14)6小结与体会 (15)参考文献 (16)附录:设计源程序 (17)本科生课程设计成绩评定表摘要这次微机原理的课程设计的题目是简易计算器的设计,设计一个可以实现2位十进制加减乘除运算功能的电路,并用LED显示出来。

微机原理简易计算器课程设计

微机原理简易计算器课程设计

告计报课程设简易计算器课程设计名称:三系系别:张梦瑶学生姓名:1 11通信班班级:20110306111 学号:成绩:指导教师:袁静开课时间:2013-2014 学年 1 学期微机原理课程设计——简易计算器一.设计题目简易计算器二.主要内容1、采用模块化程序结构设计软件,可将整个软件分成若干功能模块。

2、画出程序流程图。

3、根据流程图,编写源程序。

4、上机调试程序。

三.具体要求1、利用BIOS和DOS的中断来设计一个计算器,要求在屏幕上显示一个主菜单,提示用户输入相应的数字键,分别执行加、减、乘、除四种计算功能和结束程序的功能。

2、利用BIOS中断的10号功能调用来设置显示方式。

3、利用DOS中断的01号和02号子功能来完成键盘接收,结果显示。

四.进度安排五.成绩评定考核方法:现场验收(占50%),课程设计报告(占50%)。

考核内容:学习态度(出勤情况,平时表现等)、方案合理性、程序编制质量、演示效果、设计报告质量。

成绩评定:优,良,中,及格,不及格。

:如发现抄袭,按照不及格处理。

特别说明页24共页2第微机原理课程设计——简易计算器目录前言 .....................................................41、设计题目 (5)2、设计内容 (5)2.1 基本内容 (5)2.2 主要功能 (5)3、设计原理及方案 (6)3.1 总体方案 (6)3.2 程序流程图 (7)3.2.1 主程序 (7)3.2.2 计算子程序 (8)3.3 系统模块详细设计 (9)3.3.1 界面设置 (9)3.3.2 算法选择设置 (10)3.3.3 数制转换设置 (11)4.汇编源程序代码 ........................................135、调试运行结果 (20)5.1 操作说明 (20)5.2 调试运行结果 (20)6、心得体会 (23)7、参考文献 (24)页24共页3第微机原理课程设计——简易计算器前言课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。

简易计算器设计

简易计算器设计
自定义边框(border.xml)
引用边框文件
设置边距 设置边框大小 设置边框颜色
网增了一种网格布局(GridLayout),该布局 吸纳了线性布局、表格布局、相对布局的一些优点。它把整个容器划分 成rows行columns列个网格,每个网格可以放置一个控件,除此之外 可以设置一个控件横跨多少列、纵跨多少行,以及控件的摆放方向,是 一行行排列,还是一列列摆放。
直,默认是水平的即按行排列,如果不指定包含多少列,则网格布局只 包含一行,类似于水平的线性布局,如果指定包含多少列,则会根据列 来自动换行;如果是按列排列,则需要指定网格布局中包含多少行,否 则只有一列,类似于垂直的线性布局,如果指定包含多少行,则会根据 行来自动换列; android:layout_row:设置该控件所在网格行的序号; android:layout_rowSpan:设置该控件纵跨多少行; android:layout_column:设置该控件所在网格列的序号; android:layout_columnSpan:设置该控件横跨多少列;
本例中,仅简单实现加、减、乘、除、取余、退格和清空等功能, 单击“←”按钮实现退格功能,将刚刚输入的数字消除,单击“C”按 钮实现清空功能,一切恢复原状。此外,在执行计算过程中,还需处理 多次单击操作符、多次单击小数点、多次单击0等特殊情况。
用户单击按钮
简 易 计 算 器 业 务 流 程

是否第一 次单击
由于大部分按钮都是规则的,并且整体按照行列的形式摆放,因此可 考虑采用表格布局,而表格布局中不允许控件跨行,因此需要嵌套其它 布局管理器。根据最后两行的特点,选择相对布局比较方便,因此可采 用在表格布局中嵌入一个相对布局来实现计算器界面设计。
关键代码

简易计算器课程设计摘要

简易计算器课程设计摘要

简易计算器课程设计摘要一、课程目标知识目标:1. 学生能够掌握简易计算器的基本功能,包括加、减、乘、除等四则运算。

2. 学生能够理解计算器的操作原理,了解显示屏、按键与内部电路之间的关系。

3. 学生能够运用计算器解决日常生活中遇到的基础数学问题。

技能目标:1. 学生能够熟练操作简易计算器,进行快速准确的计算。

2. 学生能够通过使用计算器,培养解决问题的能力和逻辑思维能力。

3. 学生能够通过小组合作,共同探讨计算器的使用技巧,提高团队协作能力。

情感态度价值观目标:1. 学生能够增强对数学学科的兴趣,认识到数学在生活中的重要性。

2. 学生能够树立正确的计算观念,注重计算的准确性和效率。

3. 学生能够培养严谨的学习态度,对待计算任务认真负责。

4. 学生能够学会尊重他人,学会倾听和分享,形成良好的团队合作精神。

课程性质:本课程为信息技术与数学学科的融合课程,以实践操作为主,注重培养学生的动手能力和解决问题的能力。

学生特点:四年级学生具备一定的数学基础和逻辑思维能力,对新鲜事物充满好奇心,喜欢动手操作。

教学要求:教师应结合学生特点,以实际操作为主,引导学生主动探究,注重培养学生的自主学习能力和团队合作精神。

在教学过程中,关注学生的个体差异,鼓励学生积极参与,确保每个学生都能达到课程目标。

通过本课程的学习,使学生能够将所学知识运用到实际生活中,提高综合素质。

二、教学内容本课程教学内容紧密结合课程目标,确保学生掌握简易计算器的使用及其背后的数学概念。

1. 计算器基础知识:- 计算器的发展历程- 计算器的种类及功能- 认识简易计算器的外观、按键布局及其功能2. 基本操作与四则运算:- 认识显示屏,理解操作结果- 学习加、减、乘、除四则运算的操作方法- 练习使用计算器解决实际问题3. 进阶操作与问题解决:- 掌握计算器上的额外功能,如百分比、乘方等- 解决涉及复合运算的数学问题- 通过计算器进行数据比较和分析教学大纲安排如下:- 第一课时:计算器基础知识介绍,认识简易计算器- 第二课时:基本操作学习,加、减、乘、除四则运算- 第三课时:进阶操作学习,掌握额外功能键的使用- 第四课时:综合练习,解决实际生活中的数学问题教学内容与教材关联性:- 章节一:数学基础知识与计算器操作- 章节二:四则运算在实际生活中的应用- 章节三:计算器的进阶功能及其在数学中的应用教学内容注重科学性和系统性,通过理论与实践相结合,使学生在学习过程中逐步提高计算能力和解决问题的能力。

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

第02讲计算器2.1 计算器简介大家都知道,计算器是日常生活中不可缺少的一个工具,在Microsoft的Windows操作系统中,附带了一个计算器程序,有标准型和科学型两种模式。

Windows XP下的标准型和科学型计算器程序分别如图2-1和图2-2所示。

图2-1 Windows XP下的标准型计算器图2-2 Windows XP下的科学型计算器Windows操作系统下附带的计算器程序功能相当的强大,本课我们将模仿Windows的计算器,使用Visual C# 2005开发平台开发一个功能相对简单的计算器应用程序,它能完成加、减、乘、除运算。

接下来详细的介绍简易计算器的设计方法和步骤。

2.2 界面设计及属性设置用户界面设计是软件开发中非常重要的一个部分,用户界面的好坏直接影响软件的质量,本节将介绍如何设计简易计算器的用户界面以及界面上各控件的属性设置。

2.2.1 界面设计打开Visual Studio 2005开发工具,新建一个Windows应用程序,然后在窗体上依次放置1个TextBox和17个Button控件,如图2-1所示(设置好属性后)。

图2-1 计算器用户界面2.2.2 属性设置窗体和各控件的属性设置如表2-1所示。

表2-1 窗体和各控件的属性2.3 编写代码本程序需要用到一些公共变量,例如用来接收操作数、运算结果,判断输入的是否为小数等,因此首先在代码的通用段声明以下变量://******************************************************************double num1, num2, result; // 操作数及运算结果bool decimalFlag = false; // 判断输入的是否为小数string myOperator; // 操作类型//******************************************************************接下来编写一个名为“NumClick”的方法,单击数字按钮时,调用NumClick 方法,将输入的数字追加到文本框中,代码如下://******************************************************************// 单击数字按钮时,调用如下NumClick方法//******************************************************************public void NumClick(int myNumber){if (decimalFlag) // 输入小数{txtReadout.Text = txtReadout.Text + myNumber;}else{if (txtReadout.Text == "0.") // 输入整数{// 输入的是整数的第一个数字txtReadout.Text = myNumber + ".";}else{// 输入的不是整数的第一个数字txtReadout.Text = txtReadout.Text.Substring(0, txtReadout.Text.Length - 1) + myNumber + ".";}}}//******************************************************************//******************************************************************编写窗体的载入事件代码如下://******************************************************************// 窗体载入事件代码//******************************************************************private void Form1_Load(object sender, EventArgs e){txtReadout.Text = "0.";// 指定文本框的对齐方式为右对齐txtReadout.TextAlign = HorizontalAlignment.Right;}//******************************************************************//******************************************************************编写数字按钮【0】~【9】的单击事件代码如下://******************************************************************// 数字按钮【0】~【9】的单击事件代码//******************************************************************private void btnNum0_Click(object sender, EventArgs e){NumClick(0);}private void btnNum1_Click(object sender, EventArgs e){NumClick(1);}private void btnNum2_Click(object sender, EventArgs e){NumClick(2);}private void btnNum3_Click(object sender, EventArgs e){NumClick(3);}private void btnNum4_Click(object sender, EventArgs e){NumClick(4);}private void btnNum5_Click(object sender, EventArgs e){NumClick(5);}private void btnNum6_Click(object sender, EventArgs e){NumClick(6);}private void btnNum7_Click(object sender, EventArgs e){NumClick(7);}private void btnNum8_Click(object sender, EventArgs e){NumClick(8);}private void btnNum9_Click(object sender, EventArgs e){NumClick(9);}//****************************************************************** //****************************************************************** 编写小数点按钮【.】的单击事件代码如下://******************************************************************// 【.】按钮的单击事件代码//****************************************************************** private void btnDot_Click(object sender, EventArgs e){decimalFlag = true; // 输入小数点}//******************************************************************//****************************************************************** 编写复位按钮【C】的单击事件代码如下://******************************************************************// 【C】按钮的单击事件代码//****************************************************************** private void btnC_Click(object sender, EventArgs e){num1 = 0;num2 = 0;txtReadout.Text = "0.";decimalFlag = false;}//******************************************************************//****************************************************************** 编写【+】、【-】、【*】、【/】按钮的单击事件代码如下://******************************************************************// 【+】、【-】、【*】、【/】按钮的单击事件代码//****************************************************************** private void btnAdd_Click(object sender, EventArgs e){myOperator = "add";num1 = double.Parse(txtReadout.Text);txtReadout.Text = "0.";decimalFlag = false;}private void btnSub_Click(object sender, EventArgs e){myOperator = "Sub";num1 = double.Parse(txtReadout.Text);txtReadout.Text = "0.";decimalFlag = false;}private void btnMul_Click(object sender, EventArgs e){myOperator = "Mul";num1 = double.Parse(txtReadout.Text);txtReadout.Text = "0.";decimalFlag = false;}private void btnDiv_Click(object sender, EventArgs e){myOperator = "Div";num1 = double.Parse(txtReadout.Text);txtReadout.Text = "0.";decimalFlag = false;}//****************************************************************** //****************************************************************** 最后编写【=】按钮的单击事件代码如下://****************************************************************** // 【=】按钮的单击事件代码//****************************************************************** private void btnAmount_Click(object sender, EventArgs e){num2 = double.Parse(txtReadout.Text);switch (myOperator){case "add":result = num1 + num2;txtReadout.Text = result.ToString();break;case "Sub":result = num1 - num2;txtReadout.Text = result.ToString();break;case "Mul":result = num1 * num2;txtReadout.Text = result.ToString();break;case "Div":if (num2 == 0){txtReadout.Text = "除数不能为“0”!";}else{result = num1 / num2;txtReadout.Text = result.ToString();}break;}}//****************************************************************** //******************************************************************2.4 运行结果运行程序,计算加法“23 + 1.8”,结果如图2-4所示。

相关文档
最新文档