用MFC制作简易计算器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课题背景
计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除简单运算的工具。要 实现计算功能,可以用 VC++的知识编写程序来解决此问题。该计算器大大的降低了数字计 算的难度及提高了计算的准确度和精确度。 该计算器使用非常简单和方便, 对广大中小学生 的学习有巨大帮助作用,也对在职人员的工作有点帮助作用。
m_str+="."; pass1=0; UpdateData(0); }
效果图
m_str=m_str.Left(m_str.GetLength()-1); else {
m_str="0"; } UpdateData(0); } “. ”按钮对应的代码 void CMyDlg::Onpoint() { UpdateData(1); if(pass1==1)
m_str="."; else
m_str="4"; else m_str+="4"; pass1=0; UpdateData(0); }
“5、 6、 7、 8、9、 0”按钮对应的代码与“ 1、 2、 3、4”按钮对应的代码相近 “=”按钮对应的代码 void CMyDlg::Onresult() { UpdateData(1);
m_str="2"; elswk.baidu.com m_str+="2"; pass1=0; UpdateData(0); } “3”按钮对应的代码 void CMyDlg::OnButton3() { UpdateData(1); if(pass1==1 )
m_str="3"; else m_str+="3"; pass1=0; UpdateData(0); } “4”按钮对应的代码 void CMyDlg::OnButton3() { UpdateData(1); if(pass1==1 )
UpdateData(1); m_str+="/"; UpdateData(0); } “AC”按钮对应的代码 void CMyDlg::Onac() { UpdateData(1); m_str="0"; pass1=1; UpdateData(0); } “DEL”按钮对应的代码 void CMyDlg::Ondel() { UpdateData(1); if(m_str!="0" && 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)=='-') {
功能说明
系统具有良好的界面; 必要的交互信息; 简约美观的效果。 使用人员能快捷简单地进行
操作。可单机按钮进行操作即时准确地获得需要的计算的结果,
充分降低了数字计算的难度
和节约了时间,对人们的生活有一定的帮助。
(1) 包含的功能有:加、减、乘、除;
(2) 计算器上数字分为显示区,可以显示用户所点击的按键,最后显示结果;按键区,
加号
-
IDC_jian
减号
*
IDC_cheng
乘号
/
IDC_chu
除号
AC
IDC_ac
清屏
DEL
IDC_del
删除
创建步骤 新建一个 MFC 基于对话框的工程
VC++ 对话框界面
右击按钮,修改按钮的属性
建立类向导
最后点击 Edit Code 就可以添加代码
对其它按钮的操作与之类似, 对编辑框的“建立类向导”有点区别,
int i,z,s,j,x=0,y=1,t,m=1; char b[10];
double rate=10.0,itemp=0.0,a[20]; for(i=0;i<20;i++)
a[i]=1000000.0; for(i=0;i<10;i++)
b[i]=' '; z=0; for(i=0;i<m_str.GetLength();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]=='/') { a[j+1]=1/a[j+1]; b[j]='*'; } } for(j=0;j<=s;j++) { if(b[j]=='*') { if(j-t==2) {
} if(b[j]!=' ') {
b[y]=b[j]; y=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]; } m_str.Format("%1f",a[0]); UpdateData(0); } “ +”按钮对应的代码 void CMyDlg::Onadd() { UpdateData(1); m_str+="+"; UpdateData(0); } “- ”按钮对应的代码 void CMyDlg::Onjian() { UpdateData(1); m_str+="-"; UpdateData(0); } “* ”按钮对应的代码 void CMyDlg::Oncheng() { UpdateData(1); m_str+="*";
这里不附详细步骤
“1”按钮对应的代码
代码展示
void CMyDlg::OnButton1() {
UpdateData(1); if(pass1==1 )
m_str="1"; else m_str+="1"; pass1=0; UpdateData(0); } “2”按钮对应的代码 void CMyDlg::OnButton2() { UpdateData(1); if(pass1==1 )
用途 按键 0 按键 1 按键 2 按键 3
4
IDC_BUTTON4
按键 4
5
IDC_BUTTON5
按键 5
6
IDC_BUTTON6
按键 6
7
IDC_BUTTON7
按键 7
8
IDC_BUTTON8
按键 8
9
IDC_BUTTON9
按键 9
.
IDC_point
小数点
=
IDC_result
求值
+
IDC_add
// //
//x //
// //y
// //
如果 a[i] 的值不为 0.0 把 a[i] 的值赋给 a[x]
自加 2 如果 b[i] 的值不为空格 把 b[i] 的值赋给 b[y]
自加 2
如果 b[i] 等于加号 如果 b[i] 等于减号
UpdateData(0); } “/ ”按钮对应的代码 void CMyDlg::Onchu() {
a[t-m]=a[t-m]*a[j+1]; m=m+2; } else a[j-1]=a[j-1]*a[j+1]; a[j+1]=1000000.0; b[j]=' '; t=j;
} } for(j=0;j<=s;j++) {
if(a[j]!=1000000.0) {
a[x]=a[j]; x+=2;
用 VC++ 制作简单计算器
简述: 该课程设计将实现一个简单计算器。 其类似于 Windows 附件中自带的计算器。 这 个计算器可以实现简单的四则运算功能, 而且具有简洁大方的图文外观。 系统具有良好的界 面和必要的交互信息。 即时准确地获得需要的计算的结果, 充分降低了数字计算的难度, 从 而节约了时间, 对人们的生活有一定的帮助。 在课程设计中, 程序设计设计语言采用 Visual C++,在程序设计中,采用了面向对象解决问题的方法。
可以让用户选择所需的数字以及小数点;功能区,该区域提供用户所需的运算按钮;
( 3)计算功能基本上是用系统内部函数;
( 4)“AC”按钮可以清除所有已输入的数据从头计算;
( 5)“DEL”按钮可以删除所输入的最后以为数字;
编辑资源
按钮名称 0 1 2 3
按钮 ID IDC_BUTTON0 IDC_BUTTON1 IDC_BUTTON2 IDC_BUTTON3
if(isdigit(m_str.GetAt(i))) {
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)