西安科技大学计算器程序实验报告.doc_第1页
西安科技大学计算器程序实验报告.doc_第2页
西安科技大学计算器程序实验报告.doc_第3页
西安科技大学计算器程序实验报告.doc_第4页
西安科技大学计算器程序实验报告.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西安科技大学VC+程序设计实验报告 题 目 科学型计算器 院、系(部) 计算机科学与技术学院 专业及班级 计算机科学与技术1402班 学 号 1408030215 姓 名 李宇星 日 期 2016年4月13日 1 题目要求1.1能进行普通计算器加、减、乘、除运算等常用功能; 1.2还能进行科学型计算器等特殊的计算功能。2 功能需求2.1普通计算器的加减乘除运算;2.2科学性计算器的一些特殊运算:n!代表一个数的阶乘;x2代表X的平方;x3代表x的3次方;xy代表x的y次方;sin正弦,cos余弦,tan正切,sin-1;cos-1;tan-1;log常用倒数3 总体设计3.1 系统模块 科学计算器普通计算科学计算加减乘除三角函数反三角函数乘方其它Tan-1Sin-1Cos-1X2logn!TanSincosX3Xy3.2 系统业务处理流程开始 初始化程序输入数字输入运算方法否判断运算符双目单目输入数据输入正确与否是输出结果结束4 详细设计1. 对话框窗体及各种资源的设计:(1).按钮设计:A. 按键按钮: 数字按钮和操作符按钮两种;B. 单选按钮: 数制转换和角度、弧度转换的单选按钮 (2).编辑框:进行数字显示的主编辑框。 对话框设计截图如下: 2. 对资源进行响应的各种函数设计: (1).对数字按钮进行响应的函数:void CCalculatorDlg:OnNumberKey(UINT nID)int n = 0;switch (nID)case IDC_NUMBER1:n = 1; break;case IDC_NUMBER2:n = 2; break;case IDC_NUMBER3:n = 3; break;case IDC_NUMBER4:n = 4; break;case IDC_NUMBER5:n = 5; break;case IDC_NUMBER6:n = 6; break;case IDC_NUMBER7:n = 7; break;case IDC_NUMBER8:n = 8; break;case IDC_NUMBER9:n = 9; break;case IDC_NUMBER0:n = 0; break;if (NumberState = 1)m_number = m_number * 10 + n;number1 = m_number;UpdateData(FALSE);elsem_number = m_number * 10 + n;number2 = m_number;UpdateData(FALSE);/处理除数为0(2).对操作符进行响应的函数: 除了数字外,其余全都可视为操作符,将其设计在一个函数中,能进行单目运算的设计一个OnOperationKey()函数,进行双目运算的设计一个Cal()函数。大部分的单目运算但可使用math.h中相应的库函数来实现,其他一部分可通过自己设及实现。部分实现代码如下:void CCalculatorDlg : OnOperationKey(UINT nID)switch (nID)case IDC_NUMBER_PlusMinus:/取负m_number = -m_number;if (NumberState = 1)number1 = m_number;elsenumber2 = m_number;UpdateData(FALSE);break;case IDC_NUMBER_BackSpace:/退格m_number = (int)m_number / 10;if (NumberState = 1)number1 = m_number;elsenumber2 = m_number;UpdateData(FALSE);break;case IDC_NUMBER_Divide:/除cal();/连续计算OperationState = 1;m_number = 0;NumberState = 2;break;case IDC_NUMBER_Multiply:/乘cal();OperationState = 2;m_number = 0;NumberState = 2;break;case IDC_NUMBER_Add:/加cal();OperationState = 3;m_number = 0;NumberState = 2;break;case IDC_NUMBER_Subtract:/减cal();OperationState = 4;m_number = 0;NumberState = 2;break;case IDC_NUMBER_Power:/幂cal();OperationState = 5;m_number = 0;NumberState = 2;break;case IDC_NUMBER_Clear:/清屏number1 = number2 = m_number = 0;UpdateData(FALSE);NumberState = 1;break;case IDC_NUMBER_Sqrt:/求开根number1 = m_number = sqrt(number1);UpdateData(FALSE);break;case IDC_NUMBER_Derivative:/求1/xnumber1 = m_number = (double)1 / number1;UpdateData(FALSE);break;case IDC_NUMBER_E:/取E值number1 = m_number = E;UpdateData(FALSE);break;case IDC_NUMBER_Pai:/取值number1 = number2 = m_number = Pai;UpdateData(FALSE);break;case IDC_NUMBER_Square:/求平方number1 = m_number = pow(number1, 2);UpdateData(FALSE);break;case IDC_NUMBER_Cube:/求立方number1 = m_number = pow(number1, 3);UpdateData(FALSE);break;case IDC_NUMBER_Sin:/求sinnumber1 = m_number = sin(number1);UpdateData(FALSE);break;case IDC_NUMBER_Cos:/求cosnumber1 = m_number = cos(number1);UpdateData(FALSE);break;case IDC_NUMBER_Tan:/求tannumber1 = m_number = tan(number1);UpdateData(FALSE);break;case IDC_NUMBER_Sinh:/求arcsinnumber1 = m_number = asin(number1);UpdateData(FALSE);break;case IDC_NUMBER_Cosh:/求arccosnumber1 = m_number = acos(number1);UpdateData(FALSE);break;case IDC_NUMBER_Tanh:/求arctannumber1 = m_number = atan(number1);UpdateData(FALSE);break;case IDC_NUMBER_Log:/求log10number1 = m_number = log(number1);UpdateData(FALSE);break;case IDC_NUMBER_Factorial:/求阶乘number1 = m_number;for (int i = 1; i (int)number1; i+)m_number = (int)m_number * i;UpdateData(FALSE);break;case IDC_NUMBER_Equal:/计算值cal();break;void CCalculatorDlg:cal()switch (OperationState)case 1:m_number = (double)number1 / number2;NumberState = 1;UpdateData(FALSE);break;case 2:m_number = number1 * number2;NumberState = 1;UpdateData(FALSE);break;case 3:m_number = number1 + number2;NumberState = 1;UpdateData(FALSE);break;case 4:m_number = number1 - number2;NumberState = 1;UpdateData(FALSE);break;case 5:m_number = pow(number1, (int)number2);NumberState = 1;UpdateData(FALSE);break;number1 = m_number;OperationState = 0;5 测试与实现1. 加减乘除:2+82. 乘方:873

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论