计算器课程设计报告
计算器课程设计报告

计算器课程设计报告一、课程目标本节计算器课程设计以提升学生的数学计算能力、逻辑思维能力和实际应用能力为核心,结合三年级学生的认知特点和实际需求,制定以下课程目标:1. 知识目标:(1)学生能够掌握计算器的基本功能及操作方法;(2)学生能够运用计算器进行简单的四则运算,并理解相关数学概念;(3)学生能够运用计算器解决生活中的实际问题,提高数学应用能力。
2. 技能目标:(1)培养学生运用计算器进行快速、准确计算的能力;(2)培养学生运用计算器辅助解决数学问题的能力;(3)提高学生逻辑思维能力,培养学生独立思考和解决问题的能力。
3. 情感态度价值观目标:(1)激发学生对计算器的兴趣,培养学生主动探究新知的习惯;(2)培养学生合作交流、分享成果的团队精神;(3)培养学生将所学知识应用于实际生活的意识,增强学生的自信心和成就感。
本课程旨在通过计算器教学,使学生在掌握基本计算技能的同时,提高数学素养,培养实际应用能力,激发学生对数学学习的兴趣,为学生的终身学习打下坚实基础。
二、教学内容本节计算器课程依据课程目标,结合课本内容,选择以下教学材料和安排:1. 教学大纲:(1)计算器的基本功能介绍与操作方法;(2)使用计算器进行加、减、乘、除四则运算;(3)运用计算器解决实际问题。
2. 教学内容安排与进度:第一课时:认识计算器,了解计算器的基本功能和操作方法,包括开关机、清屏、数字键、运算符号键等。
第二课时:学习使用计算器进行加、减、乘、除四则运算,并通过练习巩固运算方法。
第三课时:运用计算器解决生活中的实际问题,如购物找零、计算面积等。
3. 教材章节及内容列举:(1)第三章《计算器与计算》:介绍计算器的基本功能、操作方法及四则运算;(2)第四章《计算器在实际应用中的作用》:举例说明计算器在生活中的应用,提高学生实际操作能力。
教学内容科学系统地组织,注重理论与实践相结合,使学生能够熟练掌握计算器的使用方法,并能在实际生活中运用计算器解决简单问题,提高学生的数学素养。
人教版四年级上册计算器课程设计 (2)

人教版四年级上册计算器课程设计一、前言随着时代的发展和电子科技的迅猛发展,计算器已经成为人们日常生活中不可或缺的工具之一。
其功能的强大和使用的便捷性使得计算器成为科技创新的重要一环。
为了能够更好地给小学生提供一个自主探究和实践的机会,我们设计了这个人教版四年级上册计算器课程。
本课程设计主要面向四年级的小学生,旨在帮助学生更好地探究计算器的基本结构、基本操作和简单的计算器应用。
通过实践操作,鼓励学生发起自主探究,并让他们在成长过程中 for 认识到计算器在生活中的重要性。
二、课程目标1. 了解日常生活中的计算器,认识计算器的基本结构和功能;2. 掌握计算器的基本操作方法,能够熟练掌握计算器的基本操作;3. 了解和掌握计算器在数学计算中的使用方法;4. 具有一定的计算器应用能力,能够进行数学四则运算。
三、教学内容与教学方法3.1 教学内容1.计算器的基本结构、原理和功能;2.计算器的基本操作方法;3.计算器简单应用技巧;4.算术基本知识和计算器练习。
3.2 教学方法1.通过展示计算器结构图、讲解计算器原理和介绍计算器使用方法,让学生初步了解计算器的基本概念。
2.利用小学生们自主探索和实践的特点,鼓励学生手工操作计算器。
引导学生熟练掌握计算器基本操作;3.根据学生的年龄和兴趣,设计一些简单有趣的计算器应用,例如算数习题解答等,让学生了解计算器在日常生活中的应用。
同时提高学生计算机操作技能。
4.通过教师引导,设计一些数学练习题和计算器应用题,让学生将计算器的应用技巧运用到实际数学计算中,从而更好地提高解题能力。
四、课堂安排本课程计划安排为 3 个课时。
4.1 第一课时1.讲解计算器的基本结构和原理;2.展示计算器的基本功能;3.发放计算器并教授基本的操作方法;4.小学生自主探索计算器,熟悉操作方法并熟练掌握基本操作。
4.2 第二课时1.教授一些简单有趣的计算器应用,引导学生发起兴趣,尝试使用计算器进行一些简单的数学计算;2.引导学生了解计算器在日常生活中的应用。
c课程设计计算器报告

c 课程设计计算器报告一、教学目标本课程的教学目标是使学生掌握C语言的基本语法,熟练使用C语言进行程序设计。
具体分为三个部分:1.知识目标:学生需要掌握C语言的基本语法,包括数据类型、运算符、控制结构、函数等。
2.技能目标:学生能够使用C语言编写简单的程序,解决实际问题。
3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高学生解决问题的能力。
二、教学内容教学内容主要包括C语言的基本语法和程序设计的基本方法。
具体安排如下:1.第一章:C语言概述,介绍C语言的历史和发展,理解C语言的特点。
2.第二章:数据类型和运算符,学习C语言的基本数据类型和运算符。
3.第三章:控制结构,学习C语言的条件语句和循环语句。
4.第四章:函数,学习C语言的函数定义和调用。
5.第五章:数组和字符串,学习C语言的数组和字符串操作。
6.第六章:指针,学习C语言的指针概念和应用。
7.第七章:结构体和文件,学习C语言的结构体和文件操作。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:讲解C语言的基本语法和概念。
2.案例分析法:通过分析实际案例,让学生理解C语言的应用。
3.实验法:安排实验课程,让学生动手编写C语言程序。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C程序设计语言》2.参考书:《C Primer Plus》、《C和指针》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、编程环境五、教学评估本课程的评估方式包括平时表现、作业、考试等。
具体安排如下:1.平时表现:占课程总评的30%,包括课堂参与度、提问回答、小组讨论等。
2.作业:占课程总评的30%,包括课后练习、编程任务等。
3.考试:占课程总评的40%,包括期中考试和期末考试。
评估方式要求客观、公正,能够全面反映学生的学习成果。
我们将根据学生的实际情况,及时给予反馈,帮助学生提高。
六、教学安排本课程的教学进度安排如下:1.每周一次课,每次课2小时。
简单计算器设计报告

简单计算器设计报告045一、基本功能描述通过文本编辑框实现基本整数的加减乘除运算二、设计思路如下图是整个程序进行的流程图, 基本方法是在ItemText文本编辑框输入字符, 程序对字符进行判断, 若输入不是数字则提示错误。
输入正常时, 通过下拉框ComboBox_InsertString选择相应运算符。
点击等号IDC_OK, 即可得出运算结果。
操作简便, 算法简单。
三、软件设计1、设计步骤打开Microsoft Visual C++ 6.0,在文件中点击新建, 在弹出框内选择MFC AppWizard[exe]工程, 输入工程名zhoutong及其所在位置, 点击确定将弹出MFC AppWizard-step 1对话框, 选择基本对话框, 点击完成MFC AppWizard就建立了一个基于对话窗口的程序框架四、主要程序分析1.字符判定函数BOOL IsInt(TCHAR*str) {int i=atoi(str);TCHAR strtemp[256]; wsprintf(strtemp,"%i",i); if(strcmp(str,strtemp)!=0) {return FALSE;}Else{return TRUE;}}3、该函数通过atoi把文本编辑框读取的字符转换为数字, 再通过wsprintf把转换数字转换为字符, 通过strcmp比较原字符和转换得来的字符。
如相同返回true,不通则返回false.4、运算符选择程序BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam){HWND hwndComboOP=GetDlgItem(hwnd,IDC_COMBOOP);ComboBox_InsertString(hwndComboOP,-1,TEXT("+"));ComboBox_InsertString(hwndComboOP,-1,TEXT("-"));ComboBox_InsertString(hwndComboOP,-1,TEXT("*"));ComboBox_InsertString(hwndComboOP,-1,TEXT("/"));return TRUE;}通过ComboBox_InsertString插入要输入的运算符5、主程序字符获取TCHAR str1[256];TCHAR str2[256];GetDlgItemText(hwnd,IDC_EDIT1,str1,sizeof(str1));GetDlgItemText(hwnd,IDC_EDIT2,str2,sizeof(str2));调用子程序判断输入是否为数字if(IsInt(str1)==FALSE){MessageBox(hwnd,TEXT("第一个数不是合法整数"),TEXT("错误"),MB_OK|MB_ICONERROR); return;}if(IsInt(str2)==FALSE){MessageBox(hwnd,TEXT("第二个数不是合法整数"),TEXT("错误"),MB_OK|MB_ICONERROR); return;}将输入字符转换为数字int i1=atoi(str1);int i2=atoi(str2);int i3=0;获取运算符HWND hwndComboOp=GetDlgItem(hwnd,IDC_COMBOOP);int curIndex=ComboBox_GetCurSel(hwndComboOp);运算switch(curIndex){case 0:{i3=i1+i2;}break;case 1:{i3=i1-i2;}break;case 2:{i3=i1*i2;}break;case 3:{i3=i1/i2;}break;}运算结果转换为字符TCHAR str3[256];itoa(i3,str3,10);输出运算结果SetDlgItemText(hwnd,IDC_EDIT3,str3);}break;退出程序case IDC_EXIT:{exit(0);}break;五、结果分析六、该计算器只能实现简单的整数运算, 不能对小数分数进行运算。
简易减法计算器课程设计

简易减法计算器课程设计一、课程目标知识目标:1. 学生能够理解减法的基本概念,掌握减法运算的规则。
2. 学生能够运用减法运算解决实际问题,如计算物品数量减少、温度变化等。
3. 学生了解简易减法计算器的原理,能够运用其进行基本的减法计算。
技能目标:1. 学生能够熟练运用减法运算,提高计算速度和准确性。
2. 学生通过制作简易减法计算器,培养动手操作能力和创新思维。
3. 学生能够运用所学的减法知识,解决生活中的实际问题,提高解决问题的能力。
情感态度价值观目标:1. 学生对数学产生兴趣,积极主动地参与课堂学习。
2. 学生在合作探究中,学会互相尊重、团结协作,培养良好的团队精神。
3. 学生通过解决实际问题,体会数学的实用价值,增强对数学学科的认识和信心。
课程性质:本课程为小学二年级数学课程,以培养计算能力和解决实际问题能力为主要目标。
学生特点:二年级学生具备一定的加减法基础,好奇心强,喜欢动手操作,但注意力集中时间较短。
教学要求:结合学生特点,采用生动有趣的教学方法,激发学生的学习兴趣,注重培养动手操作能力和解决实际问题的能力。
在教学过程中,关注学生的个体差异,因材施教,使每位学生都能达到课程目标。
将目标分解为具体的学习成果,以便后续的教学设计和评估。
二、教学内容本节课教学内容主要包括以下几部分:1. 减法运算的概念与规则:通过实例引入减法运算,让学生理解减法的意义,掌握减法运算的步骤和规则。
2. 简易减法计算器的制作与应用:结合教材中的内容,引导学生动手制作简易减法计算器,学习其工作原理,并能够运用其进行基本的减法计算。
3. 减法运算在实际问题中的应用:选取与学生生活密切相关的实际问题,如购物找零、计算物品减少等,让学生学会运用减法运算解决问题。
4. 教学内容的安排和进度:- 第一节课:回顾加法运算,导入减法运算的概念与规则,进行基础练习。
- 第二节课:介绍简易减法计算器的制作方法,学生分组动手制作,并交流展示。
分数计算器c课程设计

分数计算器c 课程设计一、课程目标知识目标:1. 让学生掌握分数的基本概念,理解分数的加减乘除运算规则。
2. 使学生能够运用所学知识,使用分数计算器进行分数的计算。
3. 培养学生运用分数解决实际问题的能力,例如在日常生活中进行菜谱调整、购物优惠等。
技能目标:1. 培养学生熟练操作分数计算器,进行分数的加减乘除运算。
2. 提高学生运用分数进行问题分析和解决的能力,培养其逻辑思维能力。
3. 培养学生通过合作学习、讨论交流,提高团队协作能力。
情感态度价值观目标:1. 培养学生对数学学科的兴趣,激发其学习积极性。
2. 培养学生严谨、认真的学习态度,养成勤奋刻苦的学习习惯。
3. 引导学生认识到数学知识在实际生活中的重要性,增强其学以致用的意识。
分析课程性质、学生特点和教学要求:本课程为数学学科,针对四年级学生,课程内容以分数计算为主。
四年级学生已经具备一定的数学基础,对分数概念有初步了解,但运算技巧和实际问题解决能力有待提高。
教学要求注重启发式教学,关注学生个体差异,培养其自主学习能力。
根据以上分析,将课程目标分解为具体学习成果:1. 学生能够熟练运用分数计算器进行分数运算。
2. 学生能够运用所学知识解决实际问题,如购物优惠、菜谱调整等。
3. 学生在合作学习中,能够积极参与讨论,与同伴共同解决问题。
4. 学生对数学学科产生兴趣,学习态度积极,养成良好的学习习惯。
二、教学内容1. 分数的基本概念:分数的定义、分子与分母的含义、分数的分类(真分数、假分数、带分数)。
2. 分数的加减法运算:同分母分数加减法、异分母分数加减法、加减混合运算。
3. 分数的乘除法运算:分数乘法、分数除法、乘除混合运算。
4. 分数的化简与约分:分数的化简方法、最大公约数的应用、分数的约分技巧。
5. 分数在实际问题中的应用:购物优惠问题、菜谱调整问题、实际情境中的分数计算。
教学大纲安排与进度:第一课时:分数的基本概念、分类及加减法运算规则。
简易计算器的课程设计

简易计算器的课程设计一、课程目标知识目标:1. 学生能理解简易计算器的基本原理,掌握其功能和使用方法。
2. 学生能运用所学的数学知识,如加、减、乘、除等运算,进行计算器操作。
3. 学生了解计算器在日常生活和学习中的应用场景。
技能目标:1. 学生能够熟练操作简易计算器,完成基本的数学运算。
2. 学生通过计算器解决实际问题,提高问题解决能力和逻辑思维能力。
3. 学生通过小组合作,培养团队协作能力和沟通能力。
情感态度价值观目标:1. 学生培养对数学学习的兴趣,认识到数学与生活的紧密联系。
2. 学生在学习过程中,培养细心、耐心和严谨的学习态度。
3. 学生通过计算器的使用,认识到科技进步对生活的影响,增强科技意识。
课程性质:本课程为实践操作课程,结合数学知识,培养学生的实际操作能力和问题解决能力。
学生特点:考虑到学生所在年级的特点,课程内容难度适中,注重激发学生的学习兴趣和动手能力。
教学要求:教师应注重理论与实践相结合,关注学生的个别差异,引导他们主动探索和解决问题。
在教学过程中,将目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. 计算器的发展历史及分类- 了解计算器的演变过程,认识不同类型的计算器及其功能特点。
2. 简易计算器的结构组成- 学习简易计算器的按键功能、显示屏幕、电池等组成部分。
3. 基本数学运算操作- 学习运用计算器进行加、减、乘、除等基本数学运算。
4. 计算器在生活中的应用实例- 分析计算器在购物、预算、科学研究等领域的实际应用。
5. 计算器操作技巧与注意事项- 掌握计算器操作的快捷键,了解使用计算器时的注意事项。
6. 解决实际问题的方法- 结合实际问题,运用计算器进行数据计算和问题分析。
教学内容安排与进度:第一课时:计算器的发展历史及分类,简易计算器的结构组成。
第二课时:基本数学运算操作,计算器在生活中的应用实例。
第三课时:计算器操作技巧与注意事项,解决实际问题的方法。
计算器教学设计[大全5篇]
![计算器教学设计[大全5篇]](https://img.taocdn.com/s3/m/cc3648f9b04e852458fb770bf78a6529657d3540.png)
计算器教学设计[大全5篇]第一篇:计算器教学设计计算器计算教学设计[教学内容]四年级下册第一单元计算器。
[教学目标]知识与技能:使学生在具体的活动中了解计算器的结构和基本功能,能正确地运用计算器进行较大数目的一、两步式题的计算。
过程与方法:能用计算器探索一些基本的教学规律、解决一些简单的实际问题。
初步感受应根据计算的需要灵活确定不同的计算方式。
情感、态度和价值观使学生体验用计算器进行计算的优点,进一步培养对数学学习的兴趣,感受用计算器计算在人类生活和工作中的价值。
[教学重难点]重点:使学生了解计算器的基本功能,会使用计算器进行大数目的计算。
难点:使学生通过计算探索发现一些简单的数学规律。
[教学过程]一、创设情境,引入计算器1.在过去,我们有许多计算工具,如算筹,算盘来计算数据,但随着这计算越来越复杂,我们会用什么来计算呢?(计算器,电子计算机等等)。
(1)小组合作,认识计算器。
今天我们继续探讨计算器的有关知识。
小组交流:(1)在哪见到过计算器?已经了解计算器的哪些知识?(2)计算器的外部特征、构造及基本功能?(3)计算器主要键的作用、功能及操作方法?2、学生汇报、操作:(1)对以上问题进行汇报。
出示课件:认识计算器上重要按键的名称和作用。
(2)学生尝试开机、关机。
(3)同桌互相说一说自己已经了解的按键的作用,并可以动手试一试。
二、自主探索,会用计算器。
1.摸着石头过河(1)学生尝试完成加法:例1.386+179=。
指名学生汇报输入过程,然后说出结果。
电脑课件实际演示计算过程。
(2)尝试计算加法:4468+1792=,指名学生汇报输入过程,然后说出结果。
电脑课件实际演示计算过程。
(3用计算器计算平均成绩。
学生探讨求平均成绩的方法,然后计算出结果。
2.龟兔赛跑。
现在我们已经了结了计算器主要按键的作用,接下来我们来见识一下计算器的能力怎么样?男生用计算器计算,然后把算出的结果记在纸上,女生用笔算。
课件出示男生请用计算器,女生请笔算:38+27=30×18= 3028-2965=41600÷128= 816÷68×27=126×7÷18= 显而易见,用计算器的男生组明显快于女生组、结果也都正确。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课设报告福建工程学院软件学院题目:汇编计算器班级: 1301姓名学号:指导老师:日期:目录1、设计目的 (3)2、概要设计 (3)2.1 系统总体分析 (3)2.2 主模块框图及说明 (3)3、详细设计 (4)3.1 主模块及子模块概述 (4)3.2各模块详运算 (4)4、程序调试 (7)4.1 运行界面分析 (7)算法分析 (7)4.2 调试过程与分析 (9)5、心得体会 (11)5.1 设计体会 (11)5.2 系统改进 (11)附录: (11)1、设计目的本课程设计是一次程序设计方法及技能的基本训练,通过实际程序的开发及调试,巩固课堂上学到的关于程序设计的基本知识和基本方法,进一步熟悉汇编语言的结构特点和使用,达到能独立阅读、设计编写和调试具有一定规模的汇编程序的水平。
2、概要设计用8086汇编语言编写一个能实现四则混合运算、带括号功能的整数计算器程序。
程序能实现键盘十进制运算表达式的输入和显示(例如输入:“1+2*(3-4)”),按“=”后输出十进制表示的运算结果。
2.1 系统总体分析在8086的操作环境下,该计算器分成输入,数据存储,运算功能,输出几个大模块,实现了使用者使用该计算器时输入一个算式,能让系统进行计算。
此计算器的实现功能是基本的数学的四则运算,结果范围在0~65535。
2.2 主模块框图及说明此流程图简要的表现出了所要实现的功能以及一些功能的大概算法,同时也是我编写的一个总体的框架。
程序流程图说明:通过流程图,可以看出程序运行时,首先输出提示语气,当用户输入后,程序根据所输入内容进行判断,通过判断的结果来决定调用哪个功能模块,首要先要要判断的是否为0-9,“+”“-”“*”“/”这些字符,若不是就会报错,实则根据运算符号调用其功能模块完成运算。
最后将运算的结果显示在主频幕上,返回主程序,使用户可以重新输入。
3、详细设计3.1 主模块及子模块概述根据题目要求,可以把程序的工作过程划分为运算表达式输入、计算、结果输出三部分。
因此在编写程序时可以按此把程序大致划分为三个模块。
输入:界面的显示设置,以及输入的字符问题进行设计计算:该模块为计算器的核心部分,其中包括运算级的优先级转换和基本的加减乘除函数的函数的编写。
显示:对其结果进行一个输出显示。
3.2 各模块详运算1运算表达式输入2.加减乘除函数(1)加法指令指令格式:加法ADD DST,SRC;(DST)←(SRC)+(DST)带进位加法ADC DST,SRC;(DST)←(SRC)+(DST)+CF加1 INC OPR;(OPR)←(OPR)+1(2)减法指令格式:SUB DST,SRC ;(DST)←(DST)-(SRC)带进位减法SBB DST,SRC ;(DST)←(DST)-(SRC)-CF减1 DEC OPR ;(OPR)←(OPR)-1求补NEG OPR ;(OPR)←0FFFFH-(0PR)+1比较CMP OPR1,OPR2 ;(OPR1)-(OPR2)(3)乘法指令乘法运算分为无符号数运算和有符号数运算,各有相应的指令,并使用双操作数。
指令格式:无符号数乘法MUL SRC;(AX)←(AL)×(SRC)8位数乘法(DX,AX)←(AX)×(SRC)16位数乘法(4)除法指令除法运算分为无符号数运算和有符号数运算,各有相应的指令,并使用双操作数。
当除数是8位或16位二进制数时,要求被除数是16位或32位的二进制数。
指令格式:无符号数除法DIV SRC;(AL)←(AX)/(SRC)8位二进制数除法的商(AH)←(AX)/(SRC)8位二进制数除法的余数或(AX)←(DX,AX)/(SRC)16位二进制数除法的商(DX)←(DX,AX)/(SRC)16位二进制数除法的余数3.输出显示指令格式:当数值存储区里面剩下一个数值(或者符号存储区里面没有符号)时,运算结束,需要把运算结果输出显示。
分析运算结果的特点:运算结果为一个2进制补码,整数,如果数据长度为16位,则运算结果范围是:0~65535。
运算结果的输出要解决的主要问题是:正负数区分、补码到ASCII 码转换并输出显示。
运算结果的输出流程如图所示。
(1)正负数区分运算结果有三种情况:正整数、负整数、零。
运算结果以补码形式对这三种情况进行统一的存储,显示输出时不同。
负整数前面需要显示“-”号,因此要在进行器转换该程序直接对执行结果一补码形式输出。
另一方面,正整数和零的补码与原码相同。
而负整数的补码则不一样。
把负整数进行取补码运算,把它转换为原码,可以实现运算结果统一的ASCII 码转换输出方法,而不需要分别为正整数和零、负整数分别设计两个不同的ASCII码转换程序。
(2)补码到ASCII码转换计算结果在屏幕上的输出显示实际上是ASCII码的输出显示。
假设程序采用的数据长度为16位,则运算结果范围是:0~65535,即屏幕最多得显示5位ASCII码。
(3)利用除最高位法将一个多位数的各位进行一个输出。
分离方法是先除以10位数-1,得到的商即为最高位,余数为删除最高位后的多位数。
接着令余数除以10位数-2,得到的商为次高位,……。
例如123,其位数是3(个位、十位、百位),则计算过程为:123/103-1,商是1,余数是2323/103-2,商是2,余数是33/103-3,商是3,余数是0可见经过三次计算,得到的三个商刚好是对123的各位的分离结果,而且顺序跟输出方向相同。
可以直接加30H转换输出,屏幕显示为“123”。
该图的流程程图所示。
把原码转换为ASCII码这个转换过程实际上跟上文的“数值的补码转换方法”是相反操作。
例如要把123在屏幕上输出显示,即要把123的百位、十位、个位分离,得到1、2、3,然后转换为31H、32H、33H三个ASCII码。
众所周知,把一位数转换为ASCII码只需加30H即可。
4、程序调试4.1 运行界面分析整体一个架构可以直观的看出整个计算器界面和基本的加减运算以及输入提示。
算法分析主程序模块.主程序模块首先实现调用子程序加减乘除,优先级运算等,初始化数据段,将寄存器ax,bx,cx,dx初始化赋初值为0,,输入字符或数字并判断,调用子程序AAAA,BBBB等子程序,判断优先级,调用加减乘除运算子程序对所输入的式子判断出的相应运算符进行运算,输出运算结果,判断是否继续,继续则返回输入,不继续则退出程序.1.显示计算器界面利用09H的功能号调用将所设计的界面直观的显示出来源代码:TAB1 DB 13,10,"HUI BIAN JI SUAN QI SHE JI$"TAB2 DB 13,10," 1 2 3 4 $"TAB3 DB 13,10," 5 6 7 8 $"TAB4 DB 13,10," 9 0 + - $"TAB5 DB 13,10," * / ( ) $"TAB6 DB 13,10,"PLEASE INPUT A FORMULA: $"TAB7 DB 13,10,"$"MOV DX,OFFSET TAB1MOV AH,09HINT 21H…..2输入字符及转换程序模块在输入字符或数字该程序要需要将其所输入的子符进行转换,此模块包括运算符号和数字的ASCⅡ码的转换、负数的补码(该计算器输出范围为0~65535)转换。
源程序代码:ACⅡ码的转换MANA: ;MOV C0,AXADD C1,1MOV AX,BXMOV CX,10MUL CXADD AX,C0MOV BX,AXJMP STARTW4符号的优先级运算符号的运算优先问题,该程序利用静态的优先级判断所输入的式子的四则运算优先顺序。
5.子运算程序加减乘除的子程序调用例如:加法源程序代码:ADDD:ADD DI,2MOV BX,NUM4[DI]ADD AX,BXADD DI,2JMP INT36.输出显示对于结果的一个输出,该计算器采用除最高位输出各位。
源程序代码段:OUTPUT PROC NEAR....OUT1:MOV AX,BX ;将余数赋还给AX 因为除数十16位,所以余数在DX中ADD SI,2 ;BP加二,用以调用下一个被除数LOOP OUTTCALL ENTERJMP STARTA ;跳回程序开始RETAADD:INC OLTJMP OUT2OUTPUT ENDP注:该计算器的除法的结果以取整的形式输出4.2 调试过程与分析,1.初始化程序界面2.当操作错误时会报错注:该计算器只能是按“=”才正确的输出计算结果,按“enter”等其他无效方式也会进行报错3.计算器的四则运算结果举例4关于补码和溢出问题当在进行四则运算过程中,若结果为负数则结果一补码的形式输出,若结果超出结果范围则溢出。
5、心得体会5.1 设计体会本次的课程设计对于计算器的设计要怎么用汇编语言编写四则运算。
编写计算简单的不带括号的没有优先级的+、- 或*、/、运算程序还是不太难的,因为没有优先级程序只要根据表达式运算符的顺序从左到右进行运算,最后输出结果。
而该课程设计要求设计能进行简单的的+、- 或*、/、混合运算的四则运算程序,这样程序设计时相对于有括号的计算要用到设定权值的办法来设置符号的优先级比起来简单很多。
这次的课程设计等于将本学期所学习的汇编知识对其进行一个综合的应用,而且对其汇编有了基本的了解。
在本次的课程设计中我主要负责四则函数的编写和输出显示,在过程中也遇到挺多的困难,对于汇编掌握的不透彻,只能通过查找资料和同学的帮助下来编写程序当然还是有效果的,对于这两部分的难点所在我觉得是输出部分,首先要分析计算结果为多位数的各位问题要采用哪种方法进行输出,在经过分析后最终采用除最高位法进行一个输出。
此方法较为简单相比较于除十法,因为在除十法还设计到堆栈问题增加了程序量,且该计算器纸对其进行简单的四则运算所以除最高位法适用。
5.2 系统改进这个计算器设计的较为简单,只能进行一些简单的不带括号的进行运算,对于一些较为复杂的四则混合运算不适用。
则此外界面系统可以利用BIOS中断和DOS中断和调用显示功能进行程序设计,显示相应的图形或字符对其进行界面美化。
此外在输出方面在除法的运算的输出可以对其修改例如不能整除的可以一小数输出等以及除高位法有个缺陷必须首先确定要输出的数值有多少位,编程者必须十分清楚需要输出的数值的数值范围可以对其进行一个改进。
附录:DA TA SEGMENTTAB1 DB 13,10,"HUI BIAN JI SUAN QI SHE JI$"TAB2 DB 13,10," 1 2 3 4 $"TAB3 DB 13,10," 5 6 7 8 $"TAB4 DB 13,10," 9 0 + - $"TAB5 DB 13,10," * / ( ) $"TAB6 DB 13,10,"PLEASE INPUT A FORMULA: $"TAB7 DB 13,10,"$"NUM1 DW 100 DUP(0)NUM3 DW 100 DUP(0)NUM4 DW 100 DUP(0)C0 DW 0C1 DW 0C2 DW 0SUM1 DW 0SUM2 DW 0OLT DW 0RESULT DW 0TABLE DW 10000,1000,100,10,1WRONG DB 13,10,"WRONG INPUT!$";OVER DB 13,10,"NOT OPERATIONAL CHARACTER!$" DA TA ENDS;----------------------------;------代码段----------------CODE SEGMENTASSUME CS:CODE,DS:DA TA;------主程序---------------START:MOV AX,DATAMOV DS,AXCALL DISPMENU ; 显示汇编计算器菜单STARTA:MOV BX,-1MOV SI,0MOV DI,30MOV CX,0MOV C0,0MOV C1,0MOV C2,0 ; 初始化各个变量CALL INPUTCALL YUNSUANCALL OUTPUTEXIT:MOV AH,4CHINT 21H;------计算器显示菜单子程序--------DISPMENU PROC NEARMOV DX,OFFSET TAB1MOV AH,09HINT 21HMOV DX,OFFSET TAB2MOV AH,09HINT 21HMOV DX,OFFSET TAB3MOV AH,09HINT 21HMOV DX,OFFSET TAB4MOV AH,09HINT 21HMOV DX,OFFSET TAB5MOV AH,09HINT 21HMOV DX,OFFSET TAB6MOV AH,09HINT 21HMOV DX,OFFSET TAB7MOV AH,09HINT 21HRETDISPMENU ENDP;---------------------------;输入字符及转换程序模块;----输入并转换子程序,结果式存入NUM1------- INPUT PROC NEARSTARTW:MOV AH,1INT 21HMOV AH,0CMP AL,1BH ; 'ESC'JZ EXITCMP AL,2AH ; '*'JZ MARKCMP AL,2FH ; '/'JZ MARKCMP AL,2BH ; '+'JZ MARKCMP AL,2DH ; '-'JZ MARKCMP AL,29H ; ')'JZ MARKCMP AL,28H ; '('JZ MARKCMP AL,3DH ; '='JZ EQUALSUB AL,30HCMP AL,0JL ERRORCMP AL,9JA ERRORJMP ARITHERROR: ;显示输入错误LEA DX,WRONGMOV AH,9INT 21HJMP STARTAARITH:CMP C1,0JE TTOMMANA: ;数值的补码转换MOV C0,AXADD C1,1MOV AX,BXMOV CX,10MUL CXADD AX,C0MOV BX,AXJMP STARTWTTOM:MOV BX,0JMP MANAMARK:CMP BX,-1JE GGONMOV NUM1[SI],BXADD SI,2MOV NUM1[SI],AXMOV BX,-1MOV C1,0ADD SI,2JMP STARTWGGON:MOV NUM1[SI],AXADD SI,2JMP STARTWEQUAL: ;输入是等号时,调到主程序执行运算CMP BX,-1JE LLOPMOV NUM1[SI],BXADD SI,2MOV NUM1[SI],AXJMP ENDWLLOP:MOV NUM1[SI],AXJMP ENDWENDW:RETINPUT ENDP;---------------------------;-----运算的子程序----------; YUNSUAN PROC NEAR AAAA:MOV BP,0MOV DI,0MOV BX,0MOV C0,0MOV C1,0MOV SUM2,0MOV SI,0BBBB:MOV AX,NUM1[SI]CMP AX,29H ;JE RSEEADD SI,2CMP AX,3DH ; =JE LASTLJMP BBBBRSEE:SUB SI,2MOV AX,NUM1[SI]CMP AX,28H ;JE MOTTJMP RSEEMOTT:MOV SUM2,SIMOV DI,0KKTY:ADD SI,2MOV AX,NUM1[SI]MOV NUM3[DI],AX ;CMP AX,29H ;ADD DI,2JMP KKTYRCOUNT:MOV SUM1,SICALL CALCMOV DI,SUM2MOV AX,RESULTMOV NUM1[DI],AXMOV SI,SUM2CCOO:ADD SI,2ADD DI,2MOV AX,NUM1[SI]MOV NUM1[DI],AXCMP AX,3DH ; =JE AAAAJMP CCOOLASTL:MOV SI,0UUCC:MOV AX,NUM1[SI]MOV NUM3[SI],AXADD SI,2CMP AX,3DH ; =JE ENDLJMP UUCCENDL:CALL CALCRETYUNSUAN ENDP;---------------------------------;------ 计算混合运算的子程序------------------ CALC PROC NEARMOV AX,NUM3MOV NUM4,AXMOV DI,2MOV C0,SIMOV SI,2INT1:MOV BX,NUM3[SI]CMP BL,2AH ;'*'JE MULLCMP BL,2FH ;'/'CMP BL,3DH ;'='JE CHUBUCMP BL,29H ;')'JE CHUBUCMP BL,2BH ;'+'JE POTTCMP BL,2DH ;'-'JE POTTINT2:MOV NUM4[DI],BXADD DI,2ADD SI,2MOV AX,NUM3[SI]MOV NUM4[DI],AXADD DI,2ADD SI,2JMP INT1POTT:SUB DI,2MOV NUM4[DI],AXADD DI,2JMP INT2MULL:ADD SI,2MOV BX,NUM3[SI]MUL BXADD SI,2JMP INT1DIVV:ADD SI,2MOV BX,NUM3[SI]DIV BXADD SI,2JMP INT1ADDD:ADD DI,2MOV BX,NUM4[DI]ADD AX,BXADD DI,2JMP INT3SUBB:ADD DI,2MOV BX,NUM4[DI]SUB AX,BXADD DI,2JMP INT3CHUBU:MOV NUM4[DI],BXSUB DI,2MOV NUM4[DI],AXMOV AX,NUM4MOV DI,2INT3:MOV BX,NUM4[DI]CMP BX,2BH ;'+'JE ADDDCMP BX,2DH ;'-'JE SUBBMOV RESULT,AXRETCALC ENDP;---------------------------------;-----输出最终结果的子程序---------------OUTPUT PROC NEARLEA SI,TABLEMOV C0,SIADD C0,8MOV CX,5MOV AX,RESULTMOV OLT,0OUTT:XOR DX,DX ;异或清零DIV WORD PTR [SI] ;求万位,千位,百位,十位,个位;商存在了AX中,余数存在了DX中OR AL,30H ;转换成ASCLL码MOV BX,DX ;将DX的值存入BX中,因为下面输出AX值时会改变DX值CMP SI,C0JE OUT2CMP OLT,0JNE OUT2CMP AX,30HJE OUT1JNE AADDOUT2:MOV DX,AX ;输出商值MOV AH,02INT 21HOUT1:MOV AX,BX ;将余数赋还给AX 因为除数十16位,所以余数在DX中ADD SI,2 ;BP加二,用以调用下一个被除数LOOP OUTTCALL ENTERJMP STARTA ;跳回程序开始RETAADD:INC OLTJMP OUT2OUTPUT ENDP;---------------------------------;---------回车换行的子程序---------------------ENTER PROC NEARMOV DL,0DH ;回车MOV AH,02HINT 21HMOV DL,0AH ;换行MOV AH,02HINT 21HRETENTER ENDPCODE ENDSEND START(完整程序)。