跪求一个MFC制作的简单计算器带报告 T T

作者&投稿:裴趴 (若有异议请与网页底部的电邮联系)
求一个用MFC制作的简易计算器,急用!!!谢谢了 QQ:646124952~

能不能转发给我一份啊1290411079@qq.com

数字按钮+数字按钮的函数,然后如何得到按钮上的值的函数,并转换为整形,然后就做好相加,相减,相乘,相除公式算法~~最后一个等于按钮和等于按钮的函数,然后再把得出的值显示在编辑框中!!步骤在此啦~~一般详细了,但是怎么实现就需要你自己去查资料了!

计算机系统设计报告
一、 计算器系统开发设计思想
1、 试验目的
运用所学知识,通过实践加强对所学知识的理解和巩固,增强对相关知识的认识,提高应用所学知识在世界中发现问题、分析问题和解决问题的能力。
2、 试验内容
设计一个多功能计算软件实现功能:
1)具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。依次输入第一个运算数、运算符(+,-,*,/)、第二个运算数,然后输出结果。结果可以作为下一个运算的第一运算数。按‘C’清屏,按‘R’返回 菜单。
例如:输入:2
+
5
输出:7
2)实现单运算符表达式计算的功能。输入的操作数可以包含整数或浮点数。输入表达式如下:
例如:输入:2+5在
输出:7
二、 计算器系统功能及系统设计介绍
1、 界面设计

创建一个基本对话框的MFC应用程序,在对话框窗体上创建一个计算器所需的按钮。并修改按钮的属性,将个按钮的ID改为向对应的符号,如将 的ID改为IDC_zhengfu。并对编辑添加成员变量m_result用以显示结果。
2、对主要成员函数编写代码
(1) 对头文件jsDlg.h编写代码
在头文件中手动添加成员函数与成员函数变量,代码如下:
//定义两个euum枚举类型Operator, CalcError结构
enum Operator { OpNone, OpAdd, OpSubtract, OpMultiply, OpDivide };
enum CalcError { ErrNone, ErrDivideByZero };

double m_operand; //存储当前输入的操作数
double m_accum; //存储当前的计算处理结束
BOOL m_bCoff; //标识当前输入是否是小数
double m_coff; //小数输入时的系数
Operator m_operator; //定义 枚举变量 m_operator 用以标识当前运算符
CalcError m_errorState; // 定义 枚举 变量m_errorState 用以标识当前运算状态
BOOL m_bOperandAvail; //标识当前输入是否是新输入数字
void UpdateDisplay(); //成员函数处理显示
void Calculate(); //成员函数处理计算
void OnOperandInput(int a); //成员函数处理数字输入
(2)对原文件jsDlg.cpp编写代码
因为该系统运算过程中需要使用平方跟函数,所以在头文件中要添加头文件#include “math.h”。然后对声明变量进行初始化:
jsDlg::jsDlg(CWnd* pParent /*=NULL*/)
: CDialog(jsDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CCaaDlg)
m_result = _T(“”); //默认为m_result变量初始化
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_coff=0.1; //为变量进行初始化
m_bCoff=0; 为变量进行初始化
m_errorState = ErrNone; //为变量进行初始化
m_bOperandAvail=FALSE; //为变量进行初始化
m_operator=OpNone; //为变量进行初始化
}
(3)对各控件编写代码
void jsDlg ::On0() //处理“ 0”按钮
{
// TODO: Add your control notification handler code here
OnOperandInput(0);
}

void jsDlg::On1() //处理“ 1”按钮
// TODO: Add your control notification handler code here
OnOperandInput(1);
}
数字“0-9”控件的代码同上类似
void CJsDlg::Onjia()
{
// TODO: Add your control notification handler code here
Calculate();
m_operator = OpAdd;
}

void CJsDlg::Onjian()
{
// TODO: Add your control notification handler code here
Calculate();
m_operator = OpSubtract;
}

void CJsDlg::Oncheng()
{
// TODO: Add your control notification handler code here
Calculate();
m_operator = OpMultiply;
}

void CJsDlg::Onchu()
{
// TODO: Add your control notification handler code here
Calculate();
m_operator = OpDivide;
}

void CJsDlg::Onzhengfu()
{
// TODO: Add your control notification handler code here
m_operand*=-1;
UpdateDisplay();
}

void CJsDlg::Ondian()
{
// TODO: Add your control notification handler code here
m_bCoff=1;
UpdateDisplay();
}

void CJsDlg::Ondengyu()
{
// TODO: Add your control notification handler code here
Calculate();
m_operator = OpNone;
}

void CJsDlg::Onpingfang()
{
// TODO: Add your control notification handler code here
m_operand*=m_operand;
UpdateDisplay();
}

void CJsDlg::Onsqrt()
{
// TODO: Add your control notification handler code here
m_operand=sqrt(m_operand);
UpdateDisplay();
}

void CJsDlg::Onqinglin()
{
// TODO: Add your control notification handler code here
m_operator = OpNone;
m_operand = 0;
m_accum = 0;
m_bOperandAvail = FALSE;
m_errorState = ErrNone;
m_coff=0.1;
m_bCoff=0;
UpdateDisplay();
}

void CJsDlg::OnR()
{
// TODO: Add your control notification handler code here
OnOK(); // 退出对话框程序
}
(4)编写用于实现计算的自定义函数
在jsDlg.cpp中编写:
void jsDlg ::OnOperandInput(int a) //处理0-9 数字的输入函数
{
if (m_errorState != ErrNone) //判断当前运算是否有误,若有则返回
return;
if (!m_bOperandAvail) //判断是否输入新的数字,1-是 0-否
m_operand = 0;
if(!m_bCoff) //判断是否是小数输入,1-是 0-否
m_operand=m_operand*10+(a);
else
{
m_operand=m_operand+(a)*m_coff;
m_coff*=0.1;
}
m_bOperandAvail=TRUE;
UpdateDisplay(); //更新显示
}
(5)编写处理计算函数
在jsDlg.cpp中编写:
void jsDlg ::Calculate()
{
if (m_errorState != ErrNone)
return;
if (m_bOperandAvail)
{ //如果没有计算符就将m_operand值赋予m_accum
if (m_operator == OpNone)
m_accum = m_operand;
else if (m_operator == OpMultiply)
//否则按计算符进行计算
m_accum *= m_operand;
else if (m_operator == OpDivide)
{
if (m_operand == 0)
m_errorState = ErrDivideByZero;
else
m_accum /= m_operand;
}
else if (m_operator == OpAdd)
m_accum += m_operand;
else if (m_operator == OpSubtract)
m_accum -= m_operand;
}
m_bOperandAvail = FALSE;
m_bCoff=0;
m_coff=0.1;
UpdateDisplay();
}
(6)编写处理显示函数
在jsDlg.cpp中编写:
Void CjsDlg::UpdateDisplay() //处理显示函数
{
if (GetSafeHwnd() == NULL)
return;
if (m_errorState != ErrNone)
m_result="除数不能为零";
else //如果当前计算无错误那么进行显示
{
//如果是输入计算数,那么显示输入情况,如果按下计算符,则显示结果
float lVal = (m_bOperandAvail) ? m_operand : m_accum;
m_result.Format(_T("%f"), lVal); //将float型转化为CString型
int i=m_result.GetLength();
while(m_result.GetAt(i-1)=='0')
{
m_result.Delete(i-1,1);
i-=1;
}
}
//用编辑控件变量m_result改变编辑控件的值,更新显示
UpdateData(FALSE);
}
3、 检查创建工程并运行
三、 计算器系统开发的体会
本次MFC计算器的制作,学到了MFC基本的编程方法,增加了编写程序的能力,对VC++可视化用户界面的理解进一步加深。对类的类的封装和设计也有了一种新的认识,为以后的学习积累了经验。不过,通过这次设计实践,也发现了自己的不足之处。在编写过程中也遇到了困难,请教了许多同学,反复检查之后也终于不问题解决了,做出了自己想要的成果。总之,这次实践然我学到了许多东西,有很大的进步。

这个...嫌长了就自己简略一下...

已发送到你的邮箱,VC-MFC课程设计还带实验报告的哦。
另外,站长团上有产品团购,便宜有保证


mfc中制作定时器
2011-04-20 mfc 两个定时器怎样同时工作 8 2014-01-08 MFC中使用定时器制作动画的问题。急! 2016-12-22 MFC中怎样在Dialog里面添加一个定时器 2016-12-29 MFC中不用定时器怎么实现定时功能 2010-12-28 如何使用MFC的定时器? 5 2017-08-10 MFC中如何用定时器使图片移动,求如何实现 2013-01-22...

请教MFC制作常规DLL的过程
本人不是计算机专业,但是现在要用MFC做一个常规DLL,看了《MFC深入浅出》这本书,还是不明所以,哪位高手能详细描述一下过程,最好能用一个例子来说明一下...我就是看不懂书才求助的... 本人不是计算机专业,但是现在要用MFC做一个常规DLL,看了《MFC深入浅出》这本书,还是不明所以,哪位高手能详细描述一下...

mfc 如何制作扇形图
在OnLButtonDown中设置一个标志位 m_ptOrigin=m_ptOld=point;\/\/把当前的点最为初始的点 m_bDraw=TRUE;在 OnLButtonUp 中停止标志为 m_bDraw=FALSE;在鼠标移动时响应标志位,即画扇形 在OnMouseMove中 CClientDC dc(this);CPen pen(PS_SOLID,1,RGB(255,0,0));CPen *pOldPen=dc.SelectObject(&...

用MFC做一个简单界面,左边用树控件制作目录,点击目录在右边显示目录内容...
有相似源码,是vc6的,左边是硬盘目录树,右边显示目录文件(不是显示图片),可以在此基础上改进,如需要留邮箱

你好,我在百度上看见您以前提问过用MFC制作猜数字游戏的问题,可以帮...
一个完整的c程序如下,程序在win-tc和Dev-c++下都调试通过。include<stdio.h> include include<stdlib.h> int main(){ int stime,a,z,t,i,c,m,g,s,j,k,l[4]; \/*j:数字正确的位数 k:位置正确的位数*\/ long ltime;ltime=time(NULL); \/*l:数字相同时,人所猜中数字的正确位置*\/...

在C++中用MFC编写小游戏,像方块,贪吃蛇之类。步骤详细不要只给一些...
这项工作可以用一个一般的数组来完成,但当进行插入操作时需要自己移动数组中的元素;也可以使用CArray来完成这些工作,CArray的成员函数提供了需要的操作,这样做简单一些。4. 解题步骤 (1)新建工程Snake,在MFC的向导第一步选择Single Document,按Finish结束。(2)选择ResourceView窗口,打开菜单编辑器...

用MFC制作 复数类的四则运算 急用
支持虚数与虚数之间,虚数与各种类型数之间直接加减乘除,让算虚数就像算普通类型int数据一样方便 show用于显示虚数,直接看 Plural就相当于int类型的虚数类型 double RealPart; \/\/实部 double ImaginaryPart;\/\/虚部 具体用法参见main 已通过编译 include "windows.h"include "stdio.h"include "iostream.h"...

如何在MFC中让一个按钮实现打开文件(弹出选择文件窗口)的功能?
1、打开软件。2、新建工程,名字“canshuchuandi”。制作界面如图。编辑框变量设置为“m_a1”。3、在资源视图,右键插入类“Cshow”制作界面,变量设置为“m_a2”。4、双击原界面的“打开并传输”按钮,编辑事件处理程序如图。5、双击新建的界面的“返回第一个对话框+6”按钮,编辑事件处理程序如图。...

MFC选项卡制作,我要详细的步骤说明,可以一步一步来的
是说的tabctrl嘛?http:\/\/www.vckbase.com\/document\/viewdoc\/?id=398

VC MFC中如何制作无边框窗口
如果是对话框窗口,那么最简便的办法就是在资源中将边框和标题栏设置一下就可以了,如下图:如果是其它的非对话框窗口,通常需要使用代码设置,将窗口属性中的边框去掉,大致代码如下:SetWindowLong(m_hWnd, GWL_STYLE, GetWindowLong(m_hWnd, GWL_STYLE) & ~WS_CAPTION); \/\/去标题栏SetWindowLong(m_...

甘州区17142411776: 急求MFC程序设计~~小程序~~关于计算器的 -
务富宜邦: 终于编程出来了,如果不会,我可以详细讲给你的,代码如下:MFC做的话不难. 1,制作基本筐架:建立工作区并且起名“我们的计算器”;然后建立 MFC AppWizard(exe) 工程起名“作业”,选择“基本对话筐”选项,点击完成; 开始创建...

甘州区17142411776: 求一个Mfc的计算器实现单纯的加减乘除 -
务富宜邦: 添加2个编辑框 然后分别关联 X,Y 变量 再加1个编辑框显示结果 关联变量m_result 四个BUTTON 加减乘除 分别添加响应消息 on XXX::add{ m_result=x*y } on XXX::sub{ m_result=x-y } 依次类推

甘州区17142411776: 急:mfc编程,用C++写一个简易的计算器,有图形界面的..请求各位大虾给出详细的步骤指导,我是初学者,谢 -
务富宜邦: 个人的程序步骤,参考下:1.新建一个对话框程序.2.添加计算器的各个按键及编辑框(用来显示输入和结果)3.为对话框添加一些变量:一个状态标志(计算加减乘除),一个标志(对运算两个数的哪个进行处理),两个double变量(用于运算的两个数),用类向导为编辑框绑定一个变量.定义一个计算函数(进行加减乘除)4.在对话框.h头文件中,定义两个消息处理函数,一个用于数字键等的处理,一个用于运算符等,5.在cpp文件中,对上面两个函数的实现,添加消息映射.

甘州区17142411776: 如何用mfc制作计算器 -
务富宜邦: 1、建立工程:New -> Projects,选择Win32 MFC AppWizard(exe),并输入工程(counter)名字及设置好路径,点击OK,选择“Dialog based”,基于对话框,直接点finish.2、将对话框进行简单的处理,把无关的按钮删掉,添加自己的按钮...

甘州区17142411776: 怎么用MFC做一个简单的四则运算计算器代码 我也想求这个代码 谢谢了 -
务富宜邦: 问题补充:要求有如下几点: 1、文档视图架构 2、消息响应 3、图形显示 4、数据存储 5、对话框 6、菜单栏,状态栏 我有..留

甘州区17142411776: 求一个用c++6.0编的MFC窗口计算器小程序,最简单的就行 -
务富宜邦: 建立基于对话框的MFC程序,将默认的控件删除.加入两个输入框,并打开类向导绑定两个变量,添加显示的控件,绑定变量.添加加减等的按钮控件.并作相应的消息相应,就是实现加减等.很简单的.最后再计算的消息相应函数中Update();希望对你有用.

甘州区17142411776: mfc编写简单计算器工程包~只要很简单的运算就好 -
务富宜邦: voidCCalDlg::OnButtonadd(){ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); isresult=TRUE; num1=m_edit; m_edit=""; UpdateData(false); oper=1;}voidCCalDlg::OnButtondeng(){ //TODO:...

甘州区17142411776: vs2008 mfc基于对话框的简单计算器 -
务富宜邦: 楼主你好!这个程序要求不高,非常简单,我已经为你做了一个,请自行建一个MFC工程,将下面代码贴在对应位置即可编译运行:第一步:新建基于对话框的MFC程序,工程名 JiSuanQi 第二步:在stdafx.h中,添加:#include <stdlib.h>#...

甘州区17142411776: 用C++MFC做一个计算器怎么做? -
务富宜邦: 创建一个dialog,然后将控件拖到那,为每一个buntton绑定一个变量,然后对变量进行操作就好了,不过简单的是很好做,复杂点的就比较麻烦了……

甘州区17142411776: 用mfc编一个计算器(请看问题补充) -
务富宜邦: 1、创建一个MFC工程2、在UI界面下,加入你要的控件3、对控件编程,具体代码就和你用C写简单的a+b是一样的.MFC主要就是对控件的编程,也就是添加消息响应函数

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网