VC++科学计算器设计源代码及流程图
一、课程设计的目的与要求
(一)课程设计目的与任务
1、熟悉掌握基于对话框的程序编写。
2、熟练掌握放置控件及Controls工具条的使用。
3、掌握控件摆放的基本方法,熟练掌握Dialog工具条的使用。
4、熟悉建立对话框步骤。
(二)题目要求
所编写的科学计算器是程基于对话框的程序,能够进行加减乘除运算,开方,立方,三角函数,反三角函数等功能,仿照Windows自带的计算器进行编写 。
二、设计正文
1 系统分析
①系统可行性分析:伴随着经济全球化,计算机的普及发展,软件行业在社会占着举足轻重的作用。我们在学习生活中,常会遇到一些繁杂的数值运算,我们须要用到科学计算器,所以便着手开发了这个科学计算器程序,既紧随科技发展的前沿,又方便了我们的生活,具有一定的现实意义。
②系统功能分析:此程序采用VC++编写,是一个基于对话框的应用程序,当用户在对话框上点击相应按钮时先执行输出按钮对应字符串,用户可以在对话框上选择相应的科学计算操作按钮,通过程序内相关代码完成相应的科学计算功能。
2 功能详细描述及框图
本科学计算器可以进行加、减、乘、除、乘方、立方、开方等简单四则运算,能进行连加连等计算,科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切,指数等函数运行,以及角度、弧度、梯度三种方式实现上述部分函数,并建有一个具备记忆功能的列表框,可对列表内添加的数字进行求和以及平均值计算,但仅限于十进制下,还可以进行二进制,八进制,十进制,十辣进制之间的相互转换,从二进制最多可以输入24位数,从八进制最多可以输入8位数,十进制最多可以输入30位数,十辣进制最多可以输入6位数,在Window下直接运行即可,不支持键盘输入,对不正确表达式能指出错误原因。
3、数据结构设计
Int datakind 存放正在计算的数字的进制类型
Bool flagjs 连加时用做标记
Bool flagjs1 连等时用做标记
Int jiaodu 角度,弧度,梯度的类型存放
M_list 存放数字的列表框
M_radio 进制选择的单选按扭
M_radio2 角度选择的单选按扭
CString m_vfront 存放正在输入的数字
Char method 存放计算符号
Bool newinput 是否输入新数字的标志
Float number1 number2 number3 number4 存放第一,第二操作数和计算结果。
4、主要功能逻辑过程和实现算法
数字键的实现:
双目运算符的实现:
void CJSQDlg::OnJia()
{
if(!flagjs)
jisuan();
flagjs=false;
flagjs1=true;
method='+';
newinput=TRUE;
UpdateData();
m_vback=m_vfront;
if(datakind==10) number1=atof(m_vfront);
else number1=coverttofloat(m_vfront,datakind);
} 669