没有合适的资源?快使用搜索试试~ 我知道了~
首页一个简单计算器的设计 c++版
一个简单计算器的设计 c++版
需积分: 10 40 下载量 87 浏览量
更新于2023-03-03
评论 4
收藏 313KB DOC 举报
c++编程 计算器 可视化编程课程设计VisualC++6环境下进行可视化程序设计技术
资源详情
资源评论
资源推荐
一、实验目的与要求
(一) 实验目的
目标是使学生了解可视化程序设计语言的基础知识,掌握面向对象编程的
分析设计方法,以及与面向对象技术相关的一些软件开发技术,掌握在
VisualC++6环境下进行可视化程序设计技术。通过实践具体的项目,为他们
进一步开展相关领域的学习和科研打下良好的基础。
(二) 实验要求
1、二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模
等简单计算。
2、科学计算函数,包括正弦、余弦、正切、开方、平方、阶乘、指数、对
数等函数运行。
3、以角度、弧度两种方式实现上述部分函数。
4、具备历史计算的记忆功能。
5、对不正确的表达式能指出其错误原因。
6、整理上机步骤、完成实验报告、提交可运行的程序,给出实验数据和实
验结果。
二.设计方案
(一)界面设计:由于界面控件是可以直接拖的,所以这部分实现起来比较
简单,根据计算器要实现的相应功能来布局,分为基本功能区,特殊函数区,
进制转换区,度数转换区和输出显示区五大基本模块。
(二)基本功能区设计:
1
在这个模块中主要把0到F各个按键按下去后在输出显示区上显示出来
列举一例:
void Caysf55Dlg::OnBnClickedButton3()
{if(zuizong=="0") m_str="";
m_str+="1";
UpdateData(0);
if(zuizong=="0") zuizong="";
zuizong+="1";// TODO: 在此添加控件通知处理程序代码
}
接下来从输出显示区获得字符串,通过运算符的相应按键处理:
列举加法:
void Caysf55Dlg::OnBnClickedButton19()/*加法运算*/
{double zan;
if(m_str=="") MessageBox(L"没有运算数");
else if(y==1||M==1) MessageBox(L"只能输入数值");
else if(m_str.GetAt (m_str.GetLength()-1)=='+'||m_str.GetAt
(m_str.GetLength()-1)=='-'||m_str.GetAt (m_str.GetLength()-1)=='*'||
m_str.GetAt (m_str.GetLength()-1)=='/')
MessageBox(L"不能连续输入运算符!!");
else {{m_str+="+";UpdateData(0);point=0;
if(jinzhi.GetCurSel()==0) zan=S2toN(zuizong);
else if(jinzhi.GetCurSel()==1) zan=S8toN(zuizong);
else if(jinzhi.GetCurSel()==2) zan=StoN(zuizong);
else if(jinzhi.GetCurSel()==3) zan=S16toN(zuizong);}
if(Ds==0&&Ms==0)
{if(As==0&&Ss==0) {Ap1=zan;As=1;zuizong="";}
else if(As==0&&Ss==1)
{Sp2=zan;Ss=2;jisuan();Ap1=result;As=1;zuizong="";}
else if(As==1&&Ss==0)
{Ap2=zan;As=2;jisuan();Ap1=result;As=1;zuizong="";}
}
if(Ms==1) {if(As==0&&Ss==0)
{Mp2=zan;Ms=2;jisuan();Ap1=result;As=1;zuizong="";}
2
else if(As==1)
{Mp2=zan;Ms=2;jisuan();Ap2=result;As=2;jisuan();Ap1=result;As=1;zuizong=
"";}
else if(Ss==1)
{Mp2=zan;Ms=2;jisuan();Sp2=result;Ss=2;jisuan();Ap1=result;As=1;zuizong="
";}}
if(Ds==1) {if(As==0&&Ss==0)
{Dp2=zan;Ds=2;jisuan();Ap1=result;As=1;zuizong="";}
else if(As==1)
{Dp2=zan;Ds=2;jisuan();Ap2=result;As=2;jisuan();Ap1=result;As=1;zuizong="
";}
else if(Ss==1)
{Dp2=zan;Ds=2;jisuan();Sp2=result;Ss=2;jisuan();Ap1=result;As=1;zuizong=""
;}}
}
// TODO: 在此添加控件通知处理程序代码
}
其余减法,乘法,除法分别通过void Caysf55Dlg::OnBnClickedButton10()/*
减 法 运 算 */ , void Caysf55Dlg::OnBnClickedButton21()/* 乘 法 运 算 */ , void
Caysf55Dlg::OnBnClickedButton22()/*除法运算*/ 函数实现。
等于号由于关系到进制转换,所以实现起来相对比较麻烦,要通过对进制
区选择的判断:
void Caysf55Dlg::OnBnClickedButton34() /*等于*/
{double count;
if(m_str.GetAt (m_str.GetLength()-1)=='+'||m_str.GetAt (m_str.GetLength()-1)=='-'||
m_str.GetAt (m_str.GetLength()-1)=='*'||m_str.GetAt (m_str.GetLength()-1)=='/')
MessageBox(L"缺少运算因数!!");
else if(y==0&&M==0)
{ if(As==0&&Ss==0&&Ms==0&&Ds==0)
{if(suan==1)
{{m_str=NtoS(result);zuizong=NtoS(result);point=1;}
if(jinzhi.GetCurSel()==0)
{m_str=OnDecToOther(2);zuizong=m_str;point=0;}
if(jinzhi.GetCurSel()==1)
{m_str=OnDecToOther(8);zuizong=m_str;point=0;}
if(jinzhi.GetCurSel()==3)
{m_str=OnDecToOther(16);zuizong=m_str;point=0;}
UpdateData(0);}
3
剩余11页未读,继续阅读
lymsam
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0