- 7
- 0
- 约6.3千字
- 约 7页
- 2018-10-13 发布于重庆
- 举报
C面向对象程序设计简单计算器的设计
PAGE \* MERGEFORMAT 8
面向对象程序设计
简单计算器的设计
一、问题描述
简单计算器的基本功能如下:
四则运算,例如加减乘除等;
除了整数的运算也可实现小数的各类运算;
判断非法操作,例如判定1/0为非法操作;
其他特性;
这个简易计算器只实现以上所述功能,即实现简单计算。
二、设计思路
计算器起始运行在归零状态,此时只接受数字输入,当按下一个数字按钮时,计算器只显示用户输入第一个操作数,用户在该状态下可以继续输入数字。
1.当第一个数字输入完成后,可以接受第二个操作数。
2.在数字输入结束进行运算后,按下=按钮可以根据前面按下的操作符计算结果显示,表示计算完成。
3.在上述计算过程中都可以接受双击等号回到清零状态。
三、功能函数设计:
1.数字按钮
这个是通过最基本的OnButton()将0~9十个数字按钮的单击消息处理函数用类向导全部关联到此,适文本框应该只是显示当前单击的数字;
2.小数点按钮函数OnDecimal
这个函数主要是实现小数点在计算器的相关功能
3.列表在算法的函数OnSelchangeOperatorList()
这一类按钮包括“+”“-”“*”“/”,它们的单击消息在同一个处理函数中进行处理,以同样的方法把这四个按钮的单击操作关联到此函数中,使四则运算法则在列表中通过选择去实现。
4.“=”符号函数OnEnquall()
实现计算器中等号的功能,双击时也可使编辑框的数字归零。
四、编码实现:
int calculator_type_i;
double count=10,value=0;
double Input_data_int=0,Input_data_dec=0;
double Inputdata1=0,Inputdata2=0;
char datatostr_buffer[10];
bool decimal=FALSE;
以上代码是添加的全局变量,为正确获取键盘输入供所有按钮函数使用。
// TODO: Add extra initialization here
m_OperatorBox.AddString(-);
m_OperatorBox.AddString(*);
m_OperatorBox.AddString(/);
m_OperatorBox.AddString(+);
以上代码是初始化列表框,并使其在程序运行时具有“加”“减”“乘”“除”可选择功能。
void CMyCalculatorDlg::On1Button()
{
if(decimal)
{
Input_data_dec=Input_data_dec+1/count;
count=10*count;
}
else Input_data_int=10*Input_data_int+1;
value=Input_data_int+Input_data_dec;
_gcvt(value,10,datatostr_buffer);
m_ShowResultEdit=(LPCTSTR)datatostr_buffer;
// TODO: Add your control notification handler code here
UpdateData(false);
}
void CMyCalculatorDlg::On2Button()
{
if(decimal)
{
Input_data_dec=Input_data_dec+2/count;
count=10*count;
}
else Input_data_int=10*Input_data_int+2;
value=Input_data_int+Input_data_dec;
_gcvt(value,10,datatostr_buffer);
m_ShowResultEdit=(LPCTSTR)datatostr_buffer; // TODO: Add your control notification handler code here
UpdateData(false);
}
void CMyCalculatorDlg::On3Button()
{if(decimal)
{
Input_data_dec=Input_data_dec+3/count;
count=10*count;
}
else Input_data_int=10*Input_data_int+3;
value=Input_data_int+Input_data_dec;
_gcvt(value,10,datatostr_buffer);
m_
您可能关注的文档
- CARS光谱测温技术应用于燃油炉火焰温度场的测量.doc
- Case study of strategic human resource management in 战略人力资源管理的案例研究.doc
- CCC认证工厂检查员培训教材教学指导书.doc
- CCC中国强制认证检测费收费标准.doc
- CCC认证质量体系文件质量手册.doc
- CBD项目投资决策风险的识别与评价研究 毕业论文.doc
- CCD视频信号的处理和计算机采集装置-硬件设计.doc
- CCNA CCNP CCE Pre Lab 教学大纲费.doc
- CCTV的“储备能源库”中央电视台中国广播电视音像资料馆磁带库系统建设侧记.doc
- CDGP焊接工艺评定和焊工技能评定报.doc
- 七年级语文上册期末模拟试卷1(解析版).docx
- 七年级语文上册期末模拟试卷1(原卷版).docx
- 七年级语文上册期末模拟试卷2(原卷版).docx
- 七年级语文上册期末模拟试卷2(解析版).docx
- 期末测试卷(二)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(三)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(二)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(三)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(一)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(一)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
最近下载
- 贵州省六盘水市2022-2023学年高二下学期期末教学质量监测数学试卷(含答案).docx VIP
- 射击学理简介.ppt VIP
- 四人剧本杀:无间旅途全篇剧本(四人封闭环境).pdf VIP
- 商标侵权判定培训课件.pptx VIP
- 信捷x-sight视觉系统使用手册v2.1a.pdf
- 2026 年新版三至五年级上册语文期末考试试题及答案.docx
- (高清版)B-T 4942-2021 旋转电机整体结构的防护等级(IP代码) 分级.pdf VIP
- 牛羊生产 羊生产 羊的育肥技术.ppt VIP
- 表--乙二醇二甲醚的理化性质及危险特性.doc VIP
- 单位物业服务采购项目服务方案投标文件(技术方案).doc
原创力文档

文档评论(0)