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

简易计算器c 课程设计一、课程目标知识目标:1. 让学生掌握简易计算器C的基本结构,包括算术表达式、运算符和操作数。
2. 使学生了解计算器C中的数据类型及其在内存中的存储方式。
3. 让学生理解顺序结构程序设计的原理,并能够运用到简易计算器C的开发中。
技能目标:1. 培养学生运用计算器C编写简单程序的能力,如加减乘除运算。
2. 培养学生分析问题、解决问题的能力,能够针对特定需求设计相应的计算器功能。
3. 提高学生的编程实践能力,通过动手编写代码,实现简易计算器的功能。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发他们主动探索新知识的欲望。
2. 培养学生团队协作意识,学会与他人共同分析问题、解决问题,共同进步。
3. 培养学生严谨、细致的学习态度,养成良好的编程习惯,为今后的学习打下基础。
课程性质:本课程属于编程启蒙课程,以实践操作为主,结合理论讲解,让学生在动手实践中掌握编程基础。
学生特点:本课程面向的学生为具有一定计算机操作基础,对编程感兴趣的年级学生。
教学要求:教师需结合学生特点,以实例为主线,引导学生主动参与课堂,注重培养学生的动手实践能力和团队协作精神。
通过本课程的学习,使学生在掌握计算器C基本知识的同时,提高编程技能和综合素质。
二、教学内容1. 计算器C基本语法:介绍计算器C的数据类型、变量、常量的定义及使用,让学生掌握基本语法规则。
- 教材章节:第一章 计算器C概述- 内容列举:数据类型、变量定义、常量定义、运算符、表达式。
2. 算术表达式:讲解算术表达式的构成,以及加减乘除运算符的使用方法。
- 教材章节:第二章 算术表达式- 内容列举:算术表达式构成、运算符优先级、括号的使用。
3. 顺序结构程序设计:引导学生学习顺序结构程序设计,掌握程序的基本执行流程。
- 教材章节:第三章 程序结构与控制流程- 内容列举:顺序结构、程序执行流程、输入输出语句。
4. 简易计算器C程序设计:结合前面的知识,设计一个简易计算器C程序,实现加减乘除运算。
计算器课程设计c

计算器课程设计c一、教学目标本课程的教学目标是使学生掌握计算器的基本使用方法,包括加减乘除、科学计算等功能,能够运用计算器解决实际问题。
知识目标为学生能够理解计算器的基本工作原理和各种功能的使用方法;技能目标为学生能够熟练操作计算器,进行正确的数值计算和科学计算;情感态度价值观目标则是培养学生的计算思维,使他们认识到计算器在现代学习和工作中的重要性,养成良好的学习习惯和科学精神。
二、教学内容根据课程目标,本课程的教学内容主要包括计算器的基本操作、各种功能的使用方法以及计算器在实际问题中的应用。
具体的教学大纲如下:1.计算器的基本操作:学习如何开机、关机、清屏等基本操作。
2.数值计算:学习如何进行加减乘除等基本的数值计算。
3.科学计算:学习如何进行幂次计算、平方根、倒数等科学计算。
4.实际问题应用:通过实例讲解计算器在解决实际问题中的应用,如面积、体积计算等。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。
讲授法用于讲解计算器的基本操作和功能使用方法;讨论法用于引导学生交流计算器使用的心得和遇到的问题;案例分析法用于分析计算器在实际问题中的应用;实验法用于让学生亲自动手操作计算器进行实际计算。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
教材和参考书用于提供理论知识的学习,多媒体资料用于辅助讲解和演示计算器的操作,实验设备则是让学生进行实际操作的重要工具。
在教学过程中,教师应充分利用这些资源,丰富学生的学习体验,提高学习效果。
五、教学评估本课程的评估方式包括平时表现、作业、考试等多个方面,以全面客观地评价学生的学习成果。
平时表现主要评估学生在课堂上的参与度、提问回答等情况;作业则主要评估学生的动手操作能力和对知识的理解运用;考试则是对学生学习成果的全面检验,包括理论知识和实际操作两部分。
评估方式应公正客观,能够全面反映学生的学习成果。
c简单计算器课程设计

c 简单计算器课程设计一、课程目标知识目标:1. 让学生掌握简单计算器的基本操作,包括开机、关机、清除屏幕、输入数字和运算符号。
2. 使学生理解加、减、乘、除四则运算的基本概念,并能够在简单计算器上进行正确的运算操作。
3. 帮助学生识别计算器上各个按键的功能,了解其对应的数学意义。
技能目标:1. 培养学生运用简单计算器解决实际问题的能力,如购物找零、计算面积等。
2. 提高学生进行四则运算的速度和准确性,提高计算效率。
3. 引导学生掌握计算器使用技巧,如连续计算、顺序计算等。
情感态度价值观目标:1. 培养学生对计算器的正确态度,认识到计算器是学习数学的工具,而非替代品。
2. 激发学生学习数学的兴趣,让学生在轻松愉快的氛围中体验数学计算的乐趣。
3. 培养学生的合作意识,使学生在小组讨论和互助学习中提高沟通能力,培养团队精神。
本课程针对小学三年级学生设计,结合学生年龄特点,注重激发兴趣和培养动手操作能力。
课程内容紧密联系教材,将目标分解为具体的学习成果,便于后续教学设计和评估。
通过本课程的学习,学生将能够熟练运用简单计算器,提高数学计算能力,培养良好的学习习惯和团队协作能力。
二、教学内容1. 计算器的基本结构:引导学生认识计算器的外观、各部分名称及其功能。
- 教材章节:第三章第1节《认识计算器》- 内容列举:计算器按键布局、显示屏、开机与关机、清除键等。
2. 四则运算操作:讲解加、减、乘、除四则运算在计算器上的操作方法。
- 教材章节:第三章第2节《计算器的四则运算》- 内容列举:按键输入、运算顺序、连续运算、计算结果读取等。
3. 计算器使用技巧:教授计算器的高级使用技巧,提高计算效率。
- 教材章节:第三章第3节《计算器使用技巧》- 内容列举:百分比计算、乘方运算、记忆功能等。
4. 实践应用:结合实际生活场景,让学生运用计算器解决实际问题。
- 教材章节:第三章第4节《计算器在实际生活中的应用》- 内容列举:购物找零、计算面积、体积、速度等。
C课程设计(计算器)[转载]
![C课程设计(计算器)[转载]](https://img.taocdn.com/s3/m/b3a47009a9956bec0975f46527d3240c8447a1f8.png)
04
C语言函数
函数的定义和声明
函数定义:函数是完成特定任务的独立代码块,可以重复使用 函数声明:在函数定义之前,需要先声明函数,以便编译器知道函数的存在 函数参数:函数可以接受参数,参数可以是变量、常量或其他表达式 函数返回值:函数可以返回一个值,返回值可以是任何类型的数据
2010年代,全球科学家共 同研发了第一台量子计算
机
计算器的应用场景
家庭日常计算:如购物、做饭等 学校教育:如数学、物理等学科的教学和练习 商业计算:如财务、会计等业务的计算和统计 科研计算:如科学研究、工程计算等数据的处理和分析
02
C语言基础
C语言概述
C语言是一种高级 编程语言,广泛应 用于系统编程、嵌 入式系统、驱动程 序等领域。
01
计算器概述
计算器的基本功能
加减乘除运算 平方、开方、求余等高级运算 存储和读取数据
计算器模式切换(如科学计算器、工 程计算器等)
单位转换(如长度、重量、温度等)
计算器设置(如时间、日期、闹钟等)
计算器的发展历程
1820年,英国数学家查尔 斯·巴比奇发明了第一台差
分机
1960年代,日本科学家发 明了第一台便携式电子计
执行流程:函 数被调用后, 会按照函数体 中的代码顺序
执行
返回值:函数 执行完成后,
可以通过 return语句返
回一个值
结束调用:函 数执行完成后, 会返回到调用 函数的位置, 继续执行后面
的代码
05
计算器功能实现
输入输出处理
输入:键盘输入,支持数字、运算符号等 输出:显示屏显示计算结果 处理:计算器内部进行计算,包括加减乘除等基本运算 错误处理:输入错误时,给出提示信息,如“输入错误,请重新输入”
C语言课程设计简单计算器程序文件

课程设计名称:C语言课程设计课程设计题目:简单计算器程序目录第1章需求分析 (1)1.1设计要求 (1)1.2任务 (1)第2章总体设计 (2)2.1设计简介及设计方案论述 (2)2.2功能模块层次图 (2)第3章详细设计 (3)3.3由(后缀)逆波兰表达式计算中缀表达式原理 (8)3.3.1算法描述 (9)第4章调试分析 (11)4.1程序设计中所遇到的错误及犯错的原因 (11)4.2错误的解决方法 (11)第5章用户手册 (12)总结 (16)参考文献 (17)附录(程序清单) (18)第1章需求分析1.1 设计要求(1)用 C 语言数据结构实现程序设计;(2)利用结构体、栈、进行相关信息处理;(2)系统的各个功能模块要求用函数的形式实现;(4)界面简单.可操作性高。
1.2 任务(1)定义一个结构体类型数组.输入 0~9 及+、--、*等符号的信息.将其信息存储起来;(2)输入简单的加减乘除算术计算式.并在屏幕上显示逆波兰(后缀式)表达式和计算结果;(3)编写代码;(4)程序分析与调试。
说明:本课程设计将实现一个简单计算器。
在功能上尽量模仿 windows 的计算器。
系统界面不做牵制要求。
该程序能实现标准型中+、-、*、/、(、)、.、的混合运算表达式(一般意义上的中缀表达式).将其转换成逆序波兰表达式(后缀表达式)并计算输出结果。
在进行运算后可以选择继续运算或者结束当前运算。
即时准确地获得需要的计算的结果.充分降低了数字计算的难度和节约了时间.对人们的生活有一定的帮助。
第2章 总体设计2.1设计简介及设计方案论述逆波兰表达式又叫做后缀表达式。
在通常的表达式中.二元运算符总是置于与之相 关的两个运算对象之间.所以.这种表示法也称为中缀表达式。
波兰逻辑学家 J.Lukasiewicz 于 1929 年提出了另一种表示表达式的方法。
按此方法.每一运算符都置 于其运算对象之后.故称为后缀表达式。
后缀表达式的优点是显而易见的. 编译器在处理时候按照从左至右的顺序读取逆波 兰表达式.遇到运算对象直接压入堆栈.遇到运算符就从堆栈提取后进的两个对象进行计算.这个过程正好符合了计算机计算的原理。
c简单计算器课程设计报告

c 简单计算器 课程设计报告一、课程目标知识目标:1. 让学生掌握简单计算器的基本功能,包括加、减、乘、除等四则运算。
2. 使学生理解计算器操作规则,如先算乘除后算加减、括号的作用等。
3. 帮助学生掌握计算器上的其他功能键,如清除、取反、百分比等。
技能目标:1. 培养学生运用计算器进行四则运算的能力,提高计算速度和准确性。
2. 培养学生运用计算器解决实际问题的能力,如购物找零、计算面积等。
3. 培养学生通过观察、思考、提问等方式,发现计算器使用过程中的问题,并尝试解决。
情感态度价值观目标:1. 培养学生对待计算器等电子设备的正确态度,爱护设备,遵守使用规范。
2. 培养学生在合作学习中互相帮助、共同进步的精神,增强团队意识。
3. 通过计算器教学,激发学生对数学学科的兴趣,提高学生的自信心和自主学习能力。
本课程针对年级学生的特点,注重培养学生的学习兴趣和实践能力。
课程性质为实践操作类,强调学生在动手实践中掌握知识。
在教学过程中,教师需关注学生的学习需求,及时调整教学策略,确保学生能够达到课程目标。
课程目标分解为具体学习成果,以便于后续教学设计和评估。
在教学结束后,学生应能独立使用计算器完成四则运算,解决实际问题,并在学习过程中培养良好的情感态度和价值观。
二、教学内容1. 计算器基本结构认知:让学生了解计算器各部分名称及其功能,如数字键、运算符号键、等于键、清除键等。
2. 四则运算操作方法:教学加、减、乘、除四则运算的计算器操作方法,以及运算顺序和括号的使用。
- 加法和减法运算- 乘法和除法运算- 混合运算及括号应用3. 计算器其他功能键使用:介绍取反、百分比、开方等特殊功能键的操作方法。
4. 实践应用:设计实际应用场景,让学生运用计算器解决购物找零、计算面积、计算速度等问题。
- 购物找零问题- 长度、面积、体积计算- 速度、时间、路程计算教学内容参考教材相关章节,结合课程目标进行整合。
教学大纲安排如下:第一课时:计算器基本结构认知、四则运算操作方法(加法和减法运算)第二课时:四则运算操作方法(乘法和除法运算)第三课时:四则运算操作方法(混合运算及括号应用)第四课时:计算器其他功能键使用第五课时:实践应用(购物找零问题)第六课时:实践应用(长度、面积、体积计算)第七课时:实践应用(速度、时间、路程计算)教学内容注重科学性和系统性,确保学生能够循序渐进地掌握计算器的使用方法,并在实际应用中巩固所学知识。
程序设计综合实践课C简单计算器

1、项目概述
该项目目标是设计开发一个支持连 续计算的四则运算计算器 myCalculator,通过单击按钮,输 入并完成如4+5+6或5*8+16类似的 连续计算,并将运算结果显示在输 出文本框中,同时也具备清空、后 退等功能。
2、设计步骤
项目分析与算法流程设计。
计算器myCalculator的主要功能是完 成加、减、乘、除四则运算,而且支 持连续计算,如4+5+7-8或4*5-6等运 算。连续计算的实现借助于开发工具 中 预 定 义 的 数 据 结 构 Stack ( 栈 ) 实 现,如流程图所示
4、项目扩展2
扩展计算器的使用领域,开发贷 款计算器(或其他,如利息计算 器等)
5、成绩评定说明
ቤተ መጻሕፍቲ ባይዱ程序设计开发语言不限。 成绩评定(要求提交设计报告和程序): ✓其中设计报告占40%(格式可参照本ppt的前四部分) ✓程序(源代码)占60%(程序能够正常运行) 完成项目扩展的酌情加分
2、设计步骤
界面设计。
2、设计步骤
代码编写(略)
2、设计步骤
运行调试
计算“5*9+5+50”,依次单击按 钮“5”、“*”、“9”、“+”、 “5”、“+”、“50”,然后单 击按钮“=”,显示框的数值为 100
3、项目扩展1
增加计算器的功能,添加求平方 根、求余、倒数的功能(读者也 可自行扩展。
c简易计算器课程设计

c 简易计算器课程设计一、课程目标知识目标:1. 学生能理解简易计算器的基本原理,掌握加、减、乘、除四则运算的操作方法。
2. 学生能够运用所学知识,解决生活中简单的数学问题。
3. 学生了解计算器的发展历程,认识到科技对生活的影响。
技能目标:1. 学生能够熟练操作简易计算器,进行基本的四则运算。
2. 学生通过实际操作,培养动手能力和问题解决能力。
3. 学生能够运用计算器辅助学习,提高数学学习效率。
情感态度价值观目标:1. 学生培养对数学学习的兴趣,树立正确的数学观念。
2. 学生在合作交流中,培养团队意识和沟通能力。
3. 学生通过计算器的使用,认识到科技发展的成果,增强民族自豪感。
课程性质:本课程为信息技术与数学学科的整合课程,旨在通过简易计算器的学习,提高学生的数学素养和信息技术能力。
学生特点:四年级学生具备一定的数学基础和信息技术能力,好奇心强,善于合作交流。
教学要求:教师需结合学生的特点,采用启发式教学,引导学生主动探究,注重培养学生的动手能力和问题解决能力。
在教学过程中,关注学生的情感态度,激发学生的学习兴趣,使学生在轻松愉快的氛围中学习。
通过本课程的学习,使学生达到预期的学习成果。
二、教学内容1. 计算器的历史与原理:介绍计算器的发展简史,探讨计算器的工作原理,让学生了解计算器的演变过程,认识到科技对生活的改变。
2. 简易计算器操作方法:详细讲解加、减、乘、除四则运算的操作步骤,让学生熟练掌握计算器的使用方法。
3. 实践应用:结合数学课本中的实际例题,指导学生运用计算器进行计算,解决实际问题,提高计算速度和准确性。
4. 计算器在数学学习中的应用:探讨计算器在辅助数学学习中的作用,如:简化计算过程、提高解题效率等。
教学内容安排和进度:第一课时:计算器的历史与原理,计算器的简单操作。
第二课时:四则运算的操作方法,实践练习。
第三课时:计算器在数学学习中的应用,解决实际问题。
教材章节:《信息技术》第四章:计算器与计算机。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简单计算器1 基本功能描述简单计算器包括双目运算符和单目运算符。
双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦、阶乘、对数、开方、倒数等运算。
可对输入任意操作数包含小数和整数及正数和负数进行以上的所有运算并能连续运算。
出现错误会给出提示,同时包含清除、退格、退出功能以及有与所有按钮相对应的菜单项。
2 设计思路如图1,是输入数据子函数的流程图。
打开计算器程序,输入数据,判断此次输入之前是否有数字输入,如果有,则在之前输入的数字字符后加上现有的数字字符;如果没有,则直接使编辑框显示所输入的数字字符。
判断是否继续键入数字,如果是,则继续进行前面的判断,如果否,则用UpdateData(FALSE)刷新显示。
如图2,是整个计算器的流程图。
对于输入的算式,判断运算符是双目运算符还是单目运算符。
如果是双目运算符,则把操作数存入数组a[z+2]中,把运算符存入b[z+1]中;如果是单目运算符,则把字符串转化为可计算的数字,再进行计算。
下面判断运算符是否合法,如果合法,则将结果存入a[0],不合法,则弹出对话框,提示错误。
结束程序。
图2 简单计算器总流程图3 软件设计3.1设计步骤打开Microsoft Visual C++6.0,在文件中点击新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名及其存储路径,点击确定,如图3所示。
图3 新建MFC AppWizard[exe]工程将弹出MFC AppWizard-step1对话框,选择基本对话框,点击完成,如图4所示。
图4 基本对话框这样,MFC AppWizard就建立了一个基于对话窗口的程序框架,如图5所示。
图5 新建的对话框3.2界面设计1、创建控件在图5所示的Resoure View选项卡中打开Dialog资源组,双击IDD_LUXIAOYING_DIALOG,在右边的窗口中显示出待编辑的对话框。
开始摆放控件,包括编辑框和按钮的创建。
按钮的创建以“0”为例进行介绍,其他按钮的创建可参照此进行操作。
1)在图5中控件的“编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画一个大小合适的编辑框。
在编辑框上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时弹出Edit属性对话框,如图6所示,在该对话框中输入ID属性。
图6 Edit属性对话框2)在图5中控件的“Button”按钮上单击鼠标左键,在对话框上的合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。
在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时弹出Push Button属性对话框,如图7所示,在该对话框中输入ID值和标题属性。
图7 Push Button属性按照上面的操作过程编辑其他按钮和编辑框等对象的属性。
表1 各按钮和编辑框等对象的属性对象ID 标题或说明编辑框IDC_RESULT_EDIT 显示按钮IDC_0_BUTTON1 0按钮IDC_1_BUTTON2 1按钮IDC_2_BUTTON3 2按钮IDC_3_BUTTON4 3按钮IDC_4_BUTTON5 4按钮IDC_5_BUTTON6 5按钮IDC_6_BUTTON7 6对象ID 标题或说明按钮IDC_TAN_BUTTON27 tan按钮IDC_JIECHENG_BUTTON28 n!完成后界面如图8所示图8 计算机界面2 连接变量和代码1)给编辑框连接变量。
在编辑框上单击鼠标右键,在弹出的菜单中选择建立类向导菜单项,弹出MFC ClassWizard对话框,选择Member Variables选项卡,如图9所示。
2)在Control IDs列表框中选择IDC_RESULT_EDIT,单击Add Variables按钮,在弹出的对话框中连接变量m_str。
变量类型设定为CString型。
如图10所示。
图9 MFC ClassWizard对话框中的Member Variables选项卡图10 m_str属性设置2)给“0”按钮连接代码。
在“0”按钮上单击鼠标右键,选择建立类向导菜单项,在弹出的对话框中选择Messages Maps选项卡,然后在Object IDs列表框中选择IDC_0_BUTTON1,在Messages列表框中选择BN_CLICKED项,即选择单击按钮事件,如图11所示。
图11 “0”按钮连接代码对话框3 菜单的设计选择插入/资源命令,将显示插入资源对话框,如图12所示。
选择Menu,单击新建即可。
图12 插入资源对话框Resoure View选项卡中打开Menu资源组,双击IDR_MENU1,然后给菜单添加相应的标题,并把每个菜单对应的ID值与相应的按钮的一致。
如图13所示。
图13 菜单属性对话框在对话框的任何一个空白域单击鼠标右键,然后在弹出的快捷菜单中选择属性命令,弹出对话属性对话框,如图14所示。
在对话框中的菜单组合框中选择IDR_MENU1。
图14 对话属性对话框最终得到的界面如图15所示。
图15 计算器完整界面3.3 关键功能的实现1)操作数、小数点以及双目运算符的输入编辑框所关联的变量为m_str,程序开始时为零。
每按下一个数字键按钮、双目运算符按钮或小数点按钮,就把它累加到m_str里并刷新显示。
BOOL型变量pass1判断之前是否有操作符输入,有,则pass为1;无,则为0。
BOOL型变量pass2判断是否有小数点,有,则为0;无,则为1;BOOL型变量pass3判断之前是否有数字输入,有,则为0;无,则为1。
2)单目运算符功能的实现由于所输入的操作数类型为String类,所以需要将其转化为数字才能进行运算。
首先,将比率rate赋值为10,将每一位输入的字符与’0’字符做差,得到他们ASCII值的差,在遇到小数点之前,将这些差值通过循环求和以及乘以rate值得到字符串所表达的数值的整数部分,然后,当遇到小数点时,将rate 赋值为0.1,再通过类似的计算方法得到字符串所表达的数值的小数部分,最后,将所得数值的整数部分和小数部分合在一起赋值给变量a,再通过单目运算符作用于a上即可实现相应功能。
3)双目运算符功能的实现由于所输入的操作数类型为String类,所以要通过与单目运算符中类似的方法将其转换为数值,再进行相关运算。
对于双目运算符功能中操作数和操作符的区分,可以将它们分别存储在数组a[]中和数组b[]中加以区分,再进行计算。
4)退格键功能的实现如果m_str中有字符串,则每次按下退位键都将去掉最右边一个字符剩下的字符串重新赋值给m_str,从而实现退位功能。
如果,m_str中本来就没有字符串,则将字符’0’赋值给m_str。
5)正负号功能的实现由于所输入的操作数类型为String类,所以要通过与单目运算符中类似的方法将其转换为数值,再进行相关运算。
对于正负号功能,只要在原来数值的前面加一个负号,即可实现相应功能。
4结论与心得体会经过多次调试,设计的计算器可以实现本次要求的所有功能。
此次VC++课程设计,在同学的帮助下,顺利完成,收获也很大。
本学期我们开设了《面向对象程序设计与VC++实践》这门课,其中MFC部分皆是需要实践的,所以,此次课程设计是很及时、很有必要的。
这样,不仅能加深我们对MFC程序设计的掌握,而且,还能让我们真正做到学以致用。
课程设计刚开始的时候,觉着比较轻松,毕竟上课时做过简单计算器,觉着这次的题目也不会太难。
后来,通过老师的讲解,发现这次课程设计与平时做的计算器有很多不同,不仅需要考虑运算的优先级,还需要实现连续运算,而且还有单目运算与双目运算的不同等一系列新的问题。
但是,真正开始做的时候,通过查找资料和与同学的交流,渐渐有了头绪。
在完成过程中,仍然避免不了会遇到一些问题,这时,不仅需要思考,还需要查阅相关资料来解决。
当然,做课程设计,基本知识是必备的。
只有具有了一定的基础知识,才能在课程设计过程中高质高效完成。
同时,也不能请示任何一道题,每一道题都有它自己的难点。
这次课程设计让我学到了很多,不仅巩固了先前学的MFC程序设计知识,而且也培养了我的实践能力,将理论知识与实践联系起来,更令我的创造性思维得到了拓展。
希望以后类似这样的课程设计、这样的实践机会能多一些。
5思考题1、程序中如何实现小数的显示与运算?答:编辑框所关联的变量为Cstring类的m_str,当输入小数点时,直接将字符’.’加在之前已输入字符后面即可。
运算时,通过BOOL型变量pass2判断是否有小数点,有,则为0;无,则为1。
当有小数点时,在把已输入的字符串转化为相应数值时,乘以的比率rate为0.1,且每乘一次,都使rate值变为原来rate值的十分之一,之后由于头文件中加了“math.h”,故,再通过进行相关数学运算即可得到结果。
2、描述等号对应的消息处理函数中需要处理的问题及相应的实现代码?答:等号对应的消息处理函数中需要实现双目运算符的功能和连续运算,同时还要解决运算优先级的问题,另外还需要有相应的错误提示。
实现代码:void CLuxiaoyingDlg::OnDengyuButton20(){// TODO: Add your control notification handler code hereint i, j, z, s, x=0, y=1, t, m=1;char b[10];double rate=10.0, itemp=0.0,a[20], l;for(i=0;i<20;i++)a[i]=100000000.0;for(i=0;i<10;i++)b[i]=' ';//以下为双目运算;z=0;for(i=0;i<m_str.GetLength();i++)//GetLength获得当前字节文件的逻辑//长度{if(isdigit(m_str.GetAt(i)))//isdigit 若参数c为阿拉伯数字,则//返回TRUE,否则返回NULL(0)。
//m_str.GetAt(i)取出字符串中的第i个字符//(编号从 0起){if(rate==10.0){itemp=itemp*rate+(m_str.GetAt(i)-'0');if(i==m_str.GetLength()-1)a[z]=itemp;}else{itemp=itemp+rate*(m_str.GetAt(i)-'0');rate=rate/10;if(i==m_str.GetLength()-1)a[z]=itemp;}}else if(m_str.GetAt(i)=='.')rate=0.1;else if(m_str.GetAt(i)=='+'){a[z]=itemp;itemp=0;z++;b[z]='+';z++;rate=10.0;}else if(m_str.GetAt(i)=='-'){a[z]=itemp;itemp=0;z++;b[z]='-';z++;rate=10.0;}else if(m_str.GetAt(i)=='*'){a[z]=itemp;itemp=0;z++;b[z]='*';z++;rate=10.0;}else if(m_str.GetAt(i)=='/'){a[z]=itemp;itemp=0;z++;b[z]='/';z++;rate=10.0;}}s=z;for(j=0;j<=s;j++)//除法转换成乘法{if(b[j]=='/'){if(a[j+1]==0)MessageBox("0不能作为除数!");else{a[j+1]=1/a[j+1];b[j]='*';}}}for(j=0;j<=s;j++)//乘法,有乘号时执行乘法计算,同时注意优先级{if(b[j]=='*'){if(j-t==2){a[t-m]=a[t-m]*a[j+1];//实现连乘m=m+2;}elsea[j-1]=a[j-1]*a[j+1];//乘法的实现a[j+1]=100000000.0;b[j]=' ';t=j;}}for(j=0;j<=s;j++)//数值和运算符的传递{if(a[j]!=100000000.0){a[x]=a[j];x+=2;}if(b[j]!=' '){b[y]=b[j];y+=2;}}for(j=0;j<=y-2;j++)//加减法{if(b[j]=='+')a[0]=a[0]+a[j+1];else if(b[j]=='-')a[0]=a[0]-a[j+1];}if(abs(a[0])>100000000)MessageBox("您输入的数值过大!");elsem_str.Format("%1f",a[0]);pass1=0;UpdateData(0);}6附录6.1调试报告运行时,backspace按键功能不能实现,点击后无任何反应。