MFC计算器编程课程设计实践报告

合集下载

mfc计算器实验报告

mfc计算器实验报告

mfc计算器实验报告MFC计算器实验报告引言:MFC(Microsoft Foundation Class)是微软公司开发的一套用于Windows应用程序开发的类库,它提供了一系列的类和函数,方便开发者进行图形界面的设计和开发。

在本次实验中,我们将使用MFC来设计一个简单的计算器应用程序,并通过实验报告来总结我们的设计过程和结果。

1. 实验目的本次实验的主要目的是熟悉MFC框架的使用,了解MFC的基本原理和设计思路,并通过实际操作来掌握MFC应用程序的开发流程。

2. 实验环境本次实验使用的开发环境是Visual Studio 2019,该版本已经集成了MFC开发环境,方便我们进行MFC应用程序的设计和开发。

3. 实验步骤3.1 创建MFC项目首先,我们打开Visual Studio 2019,并选择创建一个新的MFC应用程序项目。

在创建项目的过程中,我们需要选择MFC应用程序向导,并设置一些基本的项目属性,如应用程序名称、目标平台等。

3.2 设计计算器界面在项目创建完成后,我们将进入MFC应用程序的设计界面。

在这个界面中,我们可以通过拖拽和调整控件的方式来设计应用程序的界面。

为了实现一个简单的计算器功能,我们需要添加一些按钮、文本框和标签等控件,并设置它们的属性和事件响应函数。

3.3 实现计算器功能在设计界面完成后,我们需要在代码中实现计算器的功能。

具体来说,我们需要编写一些函数来处理按钮的点击事件,并根据用户的输入来进行相应的计算操作。

在这个过程中,我们可以使用MFC提供的一些数学函数和操作符重载来简化计算的过程。

4. 实验结果经过我们的设计和开发,一个简单的计算器应用程序已经完成了。

在实验过程中,我们测试了该应用程序的基本功能,包括加法、减法、乘法和除法等运算操作,并对一些特殊情况进行了处理,如除数为零等。

实验结果表明,该计算器应用程序在功能和稳定性方面都达到了预期的效果。

5. 实验总结通过本次实验,我们对MFC框架的使用和应用程序的开发流程有了更深入的了解。

MFC计算器实验报告

MFC计算器实验报告

实验报告一——计算器一实验名称简易计算器二实验目的在Visual C++.EXE开发环境中,通过编写计算器程序,掌握创建对话框的方法,并向其中添加控件,并设置属性,使之满足程序的要求。

三编程思路计算器要实现各种运算,在编写中主要分为两大块的编写,一是对1、2、3等数字按钮的响应函数编写,二是对加减乘除等运算符按钮的响应函数的编写。

给Dlg添加变量int m_operator; //运算符double m_result; //结果(含中间变量)另外添加编辑框的变量m_res1.对数字按钮的响应函数的编写1)由于每个按钮的响应函数相差不大,故用一个函数将其封装在每次输入时要先判断数据开头是否为0void CMy0710210202CalculateDlg::button(CString c){UpdateData(TRUE);m_res+=c;if(m_res.GetAt(0)=='0'&&m_res.Find(".")==-1){m_res.Empty();m_res+=c;}UpdateData(FALSE);}2)小数点按钮的响应函数。

首先要判断输入数据中是否已有小数点,数据是否为0,以及是否还没输入数据。

void CMy0710210202CalculateDlg::OnDian(){// TODO: Add your control notification handler code hereUpdateData(TRUE);int n=m_res.Find(".");if(n==-1&&m_res.GetLength()!=0) m_res+=".";else if(m_res.GetLength()==0)m_res+="0.";UpdateData(FALSE);}2.运算符按钮的响应函数的编写用m_operator指代要进行的运算,由于每次的运算结果m_result 都传入了编辑框的变量m_res里,故此程序可以实现连续运算。

C++-MFC计算器编程课程设计实践报告

C++-MFC计算器编程课程设计实践报告

中南大学本科生课程设计(实践)设计报告(程序设计基础)题MFC编程科学计算器目学生1104120502学号学生郭斌繁姓名指导蔡旭晖教师学院交通运输工程学院专业交通运输类1205班班级计算机基础教学实验中心2013年7月1日程序设计(C++)实践报告1.引言C++语言的主要特点表现在两个方面,一是全面兼容C语言,二是支持面向对象的程序:(1) C++是一个更好的C,它保持了C S言的优点,大多数的C程序代码略作修改或不作修改就可在C++的集成环境下调试和运行。

这对于继承和开发当前已在广泛的软件是非常重要的,可以节省大量的人力和物力。

(2) C++是一种面向对象的程序设计语言它使得程序的各个模块的独立性更强,程序的可读性和可移植性更强,程序代码的结构更加合理,程序的扩充性更强。

这对于设计、编制和调试一些大型的软件尤为重要。

⑶C++集成环境不仅支持C++程序的编译和调试,而且也支持C程序的编译和调试。

通常,C++ 程序环境约定:当源程序文件的扩展名为c.时,则为C程序;而当源程序文件的扩展名为cpp.时,则为C++?序。

(4)C++语句非常简练,对语法限制比较宽松,因此C++语法非常灵活。

其优点是给用户编程带来书写上的方便。

其缺点是由于编译时对语法限制比较宽松,许多逻辑上的错误。

次课程设计主要在运算过程中,如果通过计算器来完成,就会减少计算量,该程序即可以在简单计算器键面下进行简单运算,也可以在科学计算器键面下进行高级的科学计算。

并且可以分别计算弧度、角度的三角函数的计算等较为复杂的运算。

(1).设计目标利用MFC程序开发工具设计一款可以进行简单计算及部分科学计算的计算器。

在设计当中将综合“面向对象程序设计与结构化程序设计”的思想方法和知识点,编制一个小型的应用程序系统。

通过此设计进一步提高自己的动手能力,并能使自己清楚的知道开发一个应用程序的思想、方法和流程。

(2).选题分析此次实践所选题目中除了简单的加减乘除运算程序之外还包括了余弦函数、双曲余弦函数、度分秒的转换和X的y次方及y次根号下x的运算程序。

MFC实训_计算器

MFC实训_计算器

面向对象程序设计实训报告——简易计算器专业:电子信息工程学生姓名:唐伯虎学号: 9527指导教师:小行星2016年1月7 日1 总体设计1.1 设计任务使用Visual C++6.0 MFC编写一个计算器。

1.2 基本要求(1)按照题目要求独立设计计算器所需的所有按钮,并完成程序源码编写、调试及关键代码注释。

(40分)(2)能够实现+、-、*、/计算。

(10分)(3)能够实现对数及幂函数计算。

(15分)(4)能够实现三角函数及反三角函数计算。

(15分)1.3 发挥部分能够实现8,16,10,2进制之间相互转换。

(20分)2 方案设计2.1 需求性分析所谓计算器,就是要进行数值运算,提供1-9数字按键,让用户按下不同的数字键,可以是组合输入,然后再按下运算符按键实现两个或者多个数值的计算,因此在计算器中除了需要定义数字按键之外运算符按键也是必不可少的,但是运算符按键类型众多,实现的功能也是五花八门,有双目运算符,比如+ - * /这些,也有单目运算符,比如x^2,ln,sqrt,所针对的数字个数也不一样,因此在设计计算器之前需要明确好该计算器大致要实现怎样的功能,需要定义多少个按键,而不是什么按键都要添加,企图复杂化,这样一来,就会造成很多麻烦。

应该先从四则运算开始,然后逐一增加功能,循序渐进的进行,根据题目的要求,划分好制作的步骤先后顺序。

我在基本的要求基础上希望添加几个功能,分别是清除按键,这是少不了的,作用是初始化数据,清屏,然后是退格按键,在输入错误的情况下能够实现退格再输入;再次是Ans按键,用以保留上一次的运算结果,以备下次运算时需要;最后是圆周率PI,在需要用到圆周运算时不用输入3.1415……这么长的一段数值……但是这都是在完成基本功能的基础上添加的功能。

2.2 可行性分析本设计是简单计算器。

日常计算机使用中,常常涉及到一些有关计算的问题,一个小型的计算器软件变得非常有用,该校型计算器需要空间资源较少,对电脑其他程序的应用影响较小。

计算器-MFC程序实验报告

计算器-MFC程序实验报告

题目:计算器编程实验一、目的:编写一个程序实现+、-、*、/、sqrt、x^n基本运算,同时有清除和归零的功能。

二、程序说明:(1)符号说明:SR[20]:是用来存储输入字符串的变量;SR1[20]:为第一个字符为’0’,其余都为’’的字符串变量,当按清零健时赋给SR[20]变量,实现SR[20]“清零”;NUM1:是存储输入的数值变量;NUM2:是用来存储第一个输入的数值变量,因为每一步计算都是两个数,在第一个输入结束后NUM1的只赋给NUM2,而NUM1继续储存新输入的数值;STNUM:是没有小数点的数值变量,于是实际进行计算的值只需将这个数除以10的小数点位数次方即可;FUHAO:是表示符号的数值变量,1、2、3、4、5、6分别表示+、—、*、/、x^n、sqrt;WEICOUNT:是表示输入的字符串的位数;DIANCOUNT:表示输入的“.”次数;FUCOUNT:表示输入符号(即+、-、*等)的次数;AFDIAN:表示输入的数字在小数点后的第几位,即相当于计算小树位数;m_S:表示计算结果的变量,勇于输出结果;(2)程序运行过程:①点击数字时,SR[WEICOUNT++]=”输入数字的字符”并输出;STNUM=10*STNUM+所输数字的大小;如果DIANCOUNT=1,则NUM1=STNUM/pow(10,AFDIAN++);否则就NUM1=STNUM;这样就能将有无小数点的情况进行判断而且计算出来;②点击符号(+、-、*、/、x^n、sqrt),SR[WEICOUNT++]=”输入符号的字符”并输出;NUM2=NUM1,NUM1=0,这样就相当于将第一个值付给了NUM2,同时STNUM=0,所以在输入数的时候又可以重新给NUM1赋值,减少了变量的数量。

同时将符号所对应的数赋给FUHAO以并在“=”时用;并且DIANCOUNT=0;这样新输入的书又可以继续输入小数点了;③点击“.”时,SR[WEICOUNT++]=”.”并输出;DIANCOUNT=1;这样后面如果再输入数就可以检测出是小数所以通过①就可以得到正确的结果;④点击“=”时,根据FUHAO的值来判定符号并进行运算赋给m_S并输出,其中NUM2是第一个输入的数的值,NUM1是第二个输入的数的值;之后并STNUM=0,NUM1=1;这样就相当于把上一步计算的结果当做了下一步计算的第一个值,实现了多步连续计算;于此同时将DIANCOUNT=0,AFDIAN=1,以致在后面的计算中仍能继续正常输出;⑤点击“清零”时,m_S=0;使输出结果的编辑框显示0;strcpy(SR,SR1),并输出SR,实现了输入编辑框显示0;WEICOUNT=0,DIANCOUNT=0;用于后面的继续输出;⑥点击“清除”时,SR[--WEICOUNT]=' ';输出字符串SR;STNUM=(int) STNUM/10;这样就实现了将之前的数去掉最后一个数字的作用,再用 DIANCOUNT=1?来判断,如果是就NUM1=STNUM/pow(10,AFDIAN),否则NUM1=STNUML来实现对小数点的清除。

基于mfc的计算器实践报告(vs2010)

基于mfc的计算器实践报告(vs2010)

目录1 基本功能描述 (2)2 设计思路 (2)3 软件设计 (5)3.1 设计步骤 (5)3.2 界面设计 (6)3.3 关键功能的实现 (8)4 结论与心得体会 (8)5 附录 (9)5.1 调试报告 (9)5.2 测试结果 (9)5.3 关键源代码 (10)1 基本功能描述简单计算器包括双目运算和单目运算功能。

双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦,阶乘,对数,开方,倒数等运算。

可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算。

出现错误会给出相应提示,同时包含清除,退格,退出功能以及有与所有按钮相对应的菜单项。

2 设计思路如图是整个计算器的流程图,打开计算器程序,输入数据,调用输入数据子程序。

子程序开始时m_num为零。

按下数字按钮后,判断m_num的正负号,对其进行相关处理,然后在判断是否有小数点,处理后输出结果。

回到总流程图中,输完第一个操作数后,若按下双目运算符,则把m_num 存入num1,按下输入第二个操作数并算出结果。

若按下的是单目运算符,则直接对其处理得出结果。

若按下清零,则m_num等于0.在运算中还要判断运算是否合法,以及结果是否超出显示范围,以做出相关提示,按下清零。

算出后把结果保存至num1。

若需用算出的结果继续运算则回到输入完第一个操作数后,若不需要则判断试否需要开始新一轮的运算,不需要则结束。

输入数据子函数N图1 输入数据子函数流程图突起图2 简单计算器总流程图3.1 设计步骤打开Microsoft Visual Studio2010,在文件中点击新建,在弹出框内选择MFC 应用程序工程,输入工程名Calculate及其所在位置,点击确定,如图3所示。

图3 新建MFC应用程序工程这样在MFC应用程序下建立了一个基于对话窗口的程序框架,如图4所示。

图4 新建的对话框1、创建控件在图4所示的在资源视图选项卡中打开Calculate资源组,双击IDD_Calculate_DIALOG,在右边的窗口中显示出待编辑的对话框。

MFC计算器设计实验报告.

MFC计算器设计实验报告.

计算机学院课程设计报告课程名称:面向对象程序设计课程设计课程设计题目:基于Winform的多功能计算器的设计与实现姓名:专业:软件工程年级:08软件学号:指导教师:2010年12 月20 日目录1.设计目的 (3)2.设计要求 (3)3.设计方案 (3)(1)计算器的用例图: (3)(2)计算器的类图: (6)(3)计算器的顺序图: (6)(4)计算器协作图 (7)(5)计算器的状态图: (7)(6)计算器的活动图: (8)(7)计算器系统框图: (8)4设计内容: (9)(1)创建工程: (9)(2) 设计用户界面 (9)(3)添加代码 (11)5 测试结果: (15)6 总结: (17)7.参考文献: (17)1.设计目的利用C++语言,编写一个类似windows XP系统的计算器,实现计算器的基本功能,从而利用这次的设计,达到更加了解C++语言,了解面向对象的设计方法,加深对面向对象设计过程的了解等目的。

2.设计要求(1)利用面向对象的知识并参照Windows XP系统附件下的“科学型计算器”设计开发一个多功能的计算器;(2)不限制采用的开发平台和编程语言;(3)要求用UML描述设计过程;(4)要求用系统/程序运行时的截图描述实现的测试过程,系统的功能说明;(5)用原代码(加注释)描述主要的功能实现过程及算法;(6)提交纸质打印课程设计报告及项目工程原代码(所有人刻录在一张光碟中,两份,一份用以存档)。

3.设计方案(1)计算器的用例图:用例名称:四则运算。

参与执行者:用户。

前置条件:计算器已开启。

主事件流:用户输入操作数一。

用户选择加、减、乘、除四则运算中的一种算法。

用户输入操作数二,计算出结果,作为下一次计算的操作数一。

后置条件:显示计算结果。

用例名称:三角函数。

参与执行者:用户。

前置条件:计算器已开启。

主事件流:用户输入操作数一。

选择所要操作的三角函数,计算出结果。

所得的结果作为下一次计算的操作数一。

C++-MFC计算器编程课程设计实践报告

C++-MFC计算器编程课程设计实践报告

中南大学本科生课程设计(实践)设计报告(程序设计基础)题MFC编程科学计算器目学生1104120502学号学生郭斌繁姓名指导蔡旭晖教师学院交通运输工程学院专业交通运输类1205班班级计算机基础教学实验中心2013 年 7 月1日程序设计(C++)实践报告1.引言C++语言的主要特点表现在两个方面,一是全面兼容C语言,二是支持面向对象的程序:(1)C++是一个更好的C,它保持了C语言的优点,大多数的C程序代码略作修改或不作修改就可在C++的集成环境下调试和运行。

这对于继承和开发当前已在广泛的软件是非常重要的,可以节省大量的人力和物力。

(2)C++是一种面向对象的程序设计语言它使得程序的各个模块的独立性更强,程序的可读性和可移植性更强,程序代码的结构更加合理,程序的扩充性更强。

这对于设计、编制和调试一些大型的软件尤为重要。

(3)C++集成环境不仅支持C++程序的编译和调试,而且也支持C程序的编译和调试。

通常,C++程序环境约定:当源程序文件的扩展名为c.时,则为C程序;而当源程序文件的扩展名为cpp.时,则为C++程序。

(4)C++语句非常简练,对语法限制比较宽松,因此C++语法非常灵活。

其优点是给用户编程带来书写上的方便。

其缺点是由于编译时对语法限制比较宽松,许多逻辑上的错误。

次课程设计主要在运算过程中,如果通过计算器来完成,就会减少计算量,该程序即可以在简单计算器键面下进行简单运算,也可以在科学计算器键面下进行高级的科学计算。

并且可以分别计算弧度、角度的三角函数的计算等较为复杂的运算。

(1).设计目标利用MFC程序开发工具设计一款可以进行简单计算及部分科学计算的计算器。

在设计当中将综合“面向对象程序设计与结构化程序设计”的思想方法和知识点,编制一个小型的应用程序系统。

通过此设计进一步提高自己的动手能力,并能使自己清楚的知道开发一个应用程序的思想、方法和流程。

(2).选题分析此次实践所选题目中除了简单的加减乘除运算程序之外还包括了余弦函数、双曲余弦函数、度分秒的转换和X的y次方及y次根号下x的运算程序。

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

中南大学本科生课程设计(实践)设计报告(程序设计基础)题目MFC编程科学计算器学生学号1104120502学生姓名郭斌繁指导教师蔡旭晖学院交通运输工程学院专业班级交通运输类1205班计算机基础教学实验中心2013 年 7 月 1 日程序设计(C++)实践报告1.引言C++语言的主要特点表现在两个方面,一是全面兼容C 语言,二是支持面向对象的程序:(1) C++是一个更好的C,它保持了C 语言的优点,大多数的C 程序代码略作修改或不作修改就可在C++的集成环境下调试和运行。

这对于继承和开发当前已在广泛的软件是非常重要的,可以节省大量的人力和物力。

(2) C++是一种面向对象的程序设计语言它使得程序的各个模块的独立性更强,程序的可读性和可移植性更强,程序代码的结构更加合理,程序的扩充性更强。

这对于设计、编制和调试一些大型的软件尤为重要。

(3) C++集成环境不仅支持C++程序的编译和调试,而且也支持C 程序的编译和调试。

通常,C++程序环境约定:当源程序文件的扩展名为c.时,则为C 程序;而当源程序文件的扩展名为cpp.时,则为C++程序。

(4) C++语句非常简练,对语法限制比较宽松,因此C++语法非常灵活。

其优点是给用户编程带来书写上的方便。

其缺点是由于编译时对语法限制比较宽松,许多逻辑上的错误。

次课程设计主要在运算过程中,如果通过计算器来完成,就会减少计算量,该程序即可以在简单计算器键面下进行简单运算,也可以在科学计算器键面下进行高级的科学计算。

并且可以分别计算弧度、角度的三角函数的计算等较为复杂的运算。

(1).设计目标利用MFC程序开发工具设计一款可以进行简单计算及部分科学计算的计算器。

在设计当中将综合“面向对象程序设计与结构化程序设计”的思想方法和知识点,编制一个小型的应用程序系统。

通过此设计进一步提高自己的动手能力,并能使自己清楚的知道开发一个应用程序的思想、方法和流程。

(2).选题分析此次实践所选题目中除了简单的加减乘除运算程序之外还包括了余弦函数、双曲余弦函数、度分秒的转换和X的y次方及y次根号下x的运算程序。

除去四则基本运算程序之外,其余程序不可以直接调用系统的库函数需要经过自己的思考和查阅资料并结合迈克劳林等公式从源头开发相应运算的源代码,因此必须熟练掌握基本编程、代码语言、类运算及成员函数的设计、按键功能设计和整体协调等方面的相关知识。

在此程序的设计过程中既锻炼了自己对C++软件的掌握程度也服务了自己,尤其是装有WIN8的电脑,其本身的系统是不带计算器软件的,通过此设计也算是实践于应用。

2.总体设计(1)体系设计:所要设计的程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,能进行简单三角运算、次方开方及双曲函数的运算,运算结果能正确显示,可以清除数据等。

(2)设计思路:1)先在Visual C++ 6.0中建立一个MFC工程文件,名为calc_mfc。

2)在对话框中添加适当的编辑框、按钮、静态文件、单选框。

3)设计按钮,并修改其相应的ID与Caption。

4)选择和设置各控件的单击鼠标事件。

5)为编辑框添加double类型的关联变量m_dNum.6)在calc_mfcDlg.h中添加math.h头文件,然后添加public成员。

打开calc_mfcDlg.cpp文件,在构造函数中,进行成员初始化和完善各控件的响应函数代码。

3.详细设计(1).通过“开始”按钮,选择“程序”菜单,然后打开“Microsoft Visual studio 6.0中文版”子菜单中的“Microsoft Visual C++ 6.0 中文版”程序,选择“工程”里面的MFC AppWizard(exe)程序,再选“基本对话框”选项按“确定”建立文件名为“calc_mfc”的工程.(2).将原界面的按钮删除并添加所需按钮及编辑框并将其按照一定规律排列(如图1)图1(3).将各按键的属性按照相应的功能进行修改(如图2)图2(4).向CCalc_mfcDlg类中添加以下变量(如图3)图3(5).在cale_mfcDlg.cpp的OnInitDialog()函数中添加如下代码变量初始化:m_dPre=0;m_dCur=0;m_dNext=0;m_strPre=_T("");m_strCur=_T("");m_strNext=_T("");m_nDotSign=0;m_nDotNo=0;(6).通过MFC的“建立类向导”向“CCalc_mfcDlg”类添加各按钮的消息处理函数。

(如图4)因为程序中用到一些数学函数,所以在calc_mfcDlg的开始处添加包含语句#include <<cmath>>.图4 图5(7).在calc_mfcDlg.h文件中的calc_mfcDlg类中添加成员函数的声明:void SetNum(int).并在cale_mfcDlg.cpp文件末尾添加数字键0-9的公有处理函数SetNum,代码如图5。

添加数字键处理函数,如数字键1:(8).计算器程序的关键是计算的顺序,当按下运算符键时,它的右操作符还是未知的,因此要保存当前的运算符选择,然后键入要操作的数字,这一数字也要保存,等到下一次按下某个运算符时再将原来的保存的运算符和数字进行运算,如此循环直到按下“=”为止。

所以在cale_mfcDlg.cpp文件末尾添加公有成员函数process().代码如图6:图6 图7图7是“+”按钮的消息处理函数,其余“-”、“*”、“/”、“=”只需将“+”换为相应的运算符即可。

图8图9分别为“.”和AC键的消息处理函数:图8 图9(9).将菜单与对话框关联,方法是右击对话框,选择快捷菜单中的属性,在“对话属性”窗口中选择“菜单”列表中所建立的ID,如图10:图10(10).保存所编辑的所有程序,调试运行正确后即可得到目标程序,界面如下:(11).几种按键的消息函数实现;1).cos:由cos 的迈克劳林公式知相邻两项之间有如下关系:m m t m x t )2)(1m (22++-=+ (m =0,2,4,6,……)故cos 可以先将t 赋值为1,再利用上式做累加得到,累加的上限是)2)(1m (2++m x <0.000001,x 详细步骤如以下代码:注:t=1是将cos 函数公式的第一项赋值于t 。

2)cosh:Cosh 函数是双曲余弦函数,由双曲余弦函数的计算公式)(21cosh x x e e -+=及 (x e 的泰勒公式)知,cosh 函数可以有这两个公式调用实现,类比cos 的迈克劳林公式,x e的相邻两项关系是:m m t n x t )1(1+=+,因此利用计算cos 函数的方法编辑代码得到x e 函数的计算代码,然后定义一个double 型的有返回值的函数,将其返回值设为)(x x e e-+,然后在cosh函数的程序里面调用刚才定义的函数返回值即可。

3)y x :由于此用算属于双目运算,由(8)知此函数的代码需要调用到process()函数。

首先自定义一个函数,里面包括一个int 型的变量j,两个double 型的变量k 和s 并给s 赋初值1.0,将m_dPre 的值赋给k,将m_dCur 的值赋给j 。

然后用一个for 语句for(j;j>0;j--){s*=k;}实现次方的计算,将s 作为返回值。

在process()函数中仿照其他语句添加y x 的语句(必须放在process 函数的最前面,否则无法使用),调用所定义函数的返回值赋给m_dPre 。

然后仿照图7的 程序将“+”改为“xy ”(y x 按钮的属性是xy)后输入到y x 的函数中作为计算代码即可。

4)y x :同yx函数一样,此函数也是双目运算,计算函数的代码实现步骤类似。

先将y x做如下变换:xyyy ex ln11x==,由ln(1+x)的泰勒公式:知,lnx可由先将(m_dPre-1)赋值给m_dPre,再将m_dPre赋值给x,类比计算cos的方法设计计算lnx函数的自定义函数并将返回值赋给t,在定义一个函数将m_dCur赋值给y,并让此函数调用t,将(1/y)*t的值赋给返回值h,然后再调用2)中所定义过的函数x e,将h做为其参数得到结果m并返回给s.在process函数中类比其他语句定义y x的语句,最后通过调用函数将之前定义的函数的返回值s赋给m_dPre,在y x对应的按钮的函数中仿照图7的程序将“+”改为“xky”(y x按钮的属性是xky)后输入到y x的函数中作为计算代码即可。

5)dms:此按钮是将输入的度数按照度分秒的格式显示,先将m_dPre赋值给x,利用强制类型转换(int)x,所以(int)x即为所求的度数。

用x-(int)x所得到的数乘以60然后继续做强制类型转换就得到分了,类比得到分的步骤再做一次就得到了秒,最后将得到的度加上分除以100加上秒除以10000赋值给m_dNum 即可(不可能将度分秒分别显示在编辑框内)。

4.设计总结经过两周的努力,课程设计基本完成了,在课程设计的实践中,我学到很多有用的知识,也积累了不少宝贵的经验。

课程设计是以一个计算器的实现为基础,掌握一个基于对话框的应用程序的编程方法以及对话框常用控件的高级编程。

在课程设计中我了解到到对话框应用程序的编程模式、改变按钮的形状及有关按钮函数计算程序代码的编写等知识。

在此期间,遇上了不少的技术难题,但是经过努力,咨询老师,通过查找资料,难题还是一个个被解决了,我从中学到了许多课堂上没学到的东西,这使得我很高兴。

实践中我觉得自己的程序设计方法及顺序是优缺并存的,比如在开始的时候由于基本计算器的按钮已经设计排序完成了,到后面才知道要在添加一些按钮,这样就只能手动的调节新添加的按钮的大小使其一致,还有就是在编写函数程序时候有些代码不够精炼等。

但我能够自行设计部分函数的计算方式及代码的完全自主完成,这一点还是不错的。

这次设计的计算器还不够完善,还有很多功能没有实现,在接下来的时间里我决定在完善和改进的基础上继续完成其他功能的运算,使自己设计的计算器能够像一个真正的科学计算器一样进行各种运算,虽然这将需要很多的时间和精力,但我觉得依然值得自己去做。

经过设计的各个环节,我从中学到了很多,锻炼了自己对系统的设计的能力,从系统的需求到系统的功能,到系统的测试,再到系统的改进,可以掌握到一个完全的过程,这样对我们以后在工作中或学习中得到很好的锻炼,为用VC++编辑软件奠定了更好的基础。

相关文档
最新文档