- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、设计任务与要求2.doc
一、设计任务与要求 2
1.设计任务 2
2.实验要求 2
二、需求分析 2
1. 功能需求 2
2. 运行需求 3
三、系统设计 3
1.总体方案设计 3
2.详细设计 4
四、运行结果和测试 8
1.运行界面及其效果图 8
2.对在编程与调试中的问题 9
五、课程设计总结与体会 10
1.软件设计方案评价 10
2.软件质量评价 10
3.课程设计过程中软件开发时间分配评价 10
4.经验与教训 10
5.总结与体会 10
6.问题与讨论 10
六、参考资料 11
一、设计任务与要求
1.设计任务
系统地学习面向对象编程思想,了解MFC架构,逐步熟悉可视化编程环境Visual C++,并在此环境下设计并实现一个简单计算器系统,该计算器应能实现如下功能:
1)、二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算
2)、科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运算
3)、以角度、弧度两种方式实现上述部分函数
4)、具备历史计算的记忆功能
5)、对不正确的表达式能指出其错误原因
2.实验要求
1)、能独立搭建可视化程序编程环境,掌握Visual C++6的安装、运行和使用。
2)、总体要求:用面向对象编程的思想与方法,实现一个简单计算器的分析与设计阶段的开发工作,开发工具使用Visual C++6。
3)、具体要求:本系统为简单计算器程序开发,实现基本的算术运算以及科学计算,具备计算历史的查询功能,并能检查算术表达式中的错误,分别以二进制、十进制等数制的计算。
4)、编写设计方案,设计过程,源程序文件结构,分析实验方案,并对实验做出总结。
二、需求分析
1. 功能需求
1)、二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模简单计算
2)、实现进制间浮点数的转换
3)、科学计算函数,包括正弦、余弦、正切、余切、开方、指数的函数运算
4)、以角度、弧度两种方式实现正弦、余弦、正切、余切函数
5)、具备历史计算的记忆功能
6)、对不正确的表达式能指出其错误原因
2. 运行需求
1)界面友好
2)方便用户:输入方便(可以键盘直接输入)、常用功能键(如Backspace,可减少用户输入出错后重新输入量)、出错提示。
三、系统设计
1.总体方案设计
1)功能框架如下:
2)主要功能原理:
①正弦、余弦、正切、余切函数:
制度的选择,程序运行默认制度选中角度,当选项中“角度”按钮时,则需将其转换为角度计算,由公式:弧度=PI*角度/180,可将表达式中角度转换为弧度既s[ll-1]=PI*s[ll-1]/180。对于反、正余弦和反正余切,由于C++math.h库函数提供的计算结果是弧度的,所以当选中默认的“弧度”按钮时可不必将计算结果转换,当选中“角度”按钮时,则由公式:角度=弧度*180/PI,既可计算出来。
②实现进制间浮点数的转换
对不同进制的输入,将其转换为十进制数后出入,显示时转换为所选择的进行输出。
所以进制间的转换输出,其实只是将已存的那个十进制数转换为其他进制输出。
③历史计算的记忆功能
对(和),使用一个运算符栈和一个操作数栈存储。按(时,进栈保存;按)时,出栈运算。
对MC、MR、MS、M+,使用一个浮点数存储中间值,MC为将其清零,MR为读取其值,MS为保存、M+为在原有值的基础上加当前值。
2.详细设计
1)进行开始编程前的数据结构分析:
double m_mem; //中间值
bool m_IsHudu; //弧度、角度判断
void init();
CRect rectSmall;
CRect rectLarge;
double base; //进制基数
double m_operand; //存储当前输入的操作数
double m_accum; //存储当前的计算处理结果
bool m_bCoff; //表示当前输入是否是小数
double m_coff; //小数输入是的系数
Operator m_operator; //当前运算符
CalcError m_errorState; //当前运算状态
bool m_bOperandAvail; //表示当前是否是新输入数字
2)界面设计,将要实现的按键添加入:
3)添加按键函数:
void CCalculatorDlg::OnAdd() // 加
void CCalculatorDlg::OnAddMi() // +/-
void CCalculatorDlg::OnBackspace() // Backspace
void CCalculatorDlg::OnClear() // 清除
void CC
您可能关注的文档
- ·专题报道·良性阵发性位置性眩晕患者存在血清25.PDF
- θ(简记作x=θ),当且仅当下面的条件被.PDF
- ——食品饮料行业2009年中期投资策略.PDF
- 、一顿午餐,可升级格兰维罗、珊瑚海、马里亚纳、凯悦级别.PDF
- 《今生今世的证据》备课四字法.PDF
- 《劳动合同法》第4条平等协商确定的再解读.PDF
- 《天车工》(五级)培训计划.PDF
- 《电子商务网站技术》实训教学大纲.doc
- 《疫苗生产企业委托配送区域仓储报告表》.doc
- 《磨工》(五级)培训计划.PDF
- 2024年证券分析与咨询服务项目投资申请报告代可行性研究报告.docx
- 2024年铬酸酐项目资金申请报告代可行性研究报告.docx
- 2024年清洁胶项目资金申请报告代可行性研究报告.docx
- 2024年肉松饼项目投资申请报告代可行性研究报告.docx
- 2024年陆上泵项目资金需求报告代可行性研究报告.docx
- 2024年未硫化复合橡胶及其制品项目资金需求报告代可行性研究报告.docx
- 2024年精密温控节能设备项目资金筹措计划书代可行性研究报告.docx
- 2024年汽车覆盖件模具项目资金筹措计划书代可行性研究报告.docx
- 宋词行书钢笔字帖.pdf
- 我的暑假生活作文三年级300字10篇.pdf
文档评论(0)