c++课程设计.docx

上传人:b****5 文档编号:12064224 上传时间:2023-04-16 格式:DOCX 页数:16 大小:163.80KB
下载 相关 举报
c++课程设计.docx_第1页
第1页 / 共16页
c++课程设计.docx_第2页
第2页 / 共16页
c++课程设计.docx_第3页
第3页 / 共16页
c++课程设计.docx_第4页
第4页 / 共16页
c++课程设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

c++课程设计.docx

《c++课程设计.docx》由会员分享,可在线阅读,更多相关《c++课程设计.docx(16页珍藏版)》请在冰豆网上搜索。

c++课程设计.docx

c++课程设计

计算机学院

 

C++课程设计报告

(2011--2012年度第1学期)

计算器的设计

专业

网络工程

学生姓名

王芬

班级

网102班

学号

109074337

指导教师

陈学进

完成日期

2011年12月10日

课题名称:

计算器的实现

说明:

实现一个计算器。

1.系统目标

我们在学习生活中,常会遇到一些繁杂的数值运算,这时候我们就必须用到科学计算器,所以便着手开发了这个计算器程序,以便用于自己的学习工作。

要计算功能有以下几个方面:

加法,减法,乘法,除法,求幂,求平方根等

2.系统功能划分

序号

文件名

主要功能

备注

1

+

加法求和

两个操作数

2

-

减法求差

两个操作数

3

×

乘法求积

两个操作数

4

÷

除法求商

两个操作数

5

x^y

求x的y次幂

两个操作数

6

sqrt

求平方根

一个操作数

7

X^2

求平方

一个操作数

8

1/x

求倒数

一个操作数

9

ln

求对数

一个操作数

10

log

求对数

一个操作数

11

X^3

求三次方

一个操作数

12

10^x

求十次幂

一个操作数

13

=

等于

14

CE

删除所有字母

15

BACKSPACE

删除一个字母

 

1)假设执行操作“+”,先输入一个数,再按“+”,再输入另一个数,最后按“=”。

整个功能“+”就执行完毕。

2)执行操作“x^2”,先输入一个数,在按“x^2”,或先按“x^2”,在输入一个数,最后按“=”。

整个功能“x^2”就执行完毕。

3)执行操作“x^y”,先输入一个数,在按“x^y”,在输入一个数,最后按“=”。

整个功能“x^y”就执行完毕。

 

3.计算器状态

●CE表示清零

●CE状态输入数字进入状态A,在A状态下可以通过不同方式进入B或C状态(A状态输入双元运算符进入B状态,A状态输入单元运算符进入C状态)

●B状态可以通过单元运算符或数字进入C状态,等于号结束运算;

●在C状态只能按等号才能结束;

●在D状态可以接受数字,双元运算符,单元运算符,进入下一次运算。

●实例:

5×=25如果只输入一个数字,为状态A,按下双元运算符,为状态B,系统自认先前数字为第二个数字,进入D状态。

4.计算器测试

●1/6.251=0.159974

●5.264*9.5264=50.146069

●9.526714-9.873642=-0.346928

●5.216384的三次方为141.941254

●ln1.526345=0.422876

CalculatorDlg.h部分类定义

public:

CCalculatorDlg(CWnd*pParent=NULL);//standardconstructor

CStringstrMess1,strMess2;

floatnum1,num2,result;

charclick;

//DialogData

//{{AFX_DATA(CCalculatorDlg)

enum{IDD=IDD_CALCULATOR_DIALOG};

CButtonm_clickone;

CEditm_edit;

CalculatorDlg.cpp部分代码

voidCCalculatorDlg:

:

DoDataExchange(CDataExchange*pDX)

{

CDialog:

:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CCalculatorDlg)

DDX_Control(pDX,IDC_NUM_ADD,m_clickone);

DDX_Control(pDX,IDC_DISPLAY,m_edit);

//NOTE:

theClassWizardwilladdDDXandDDVcallshere

//}}AFX_DATA_MAP

}

voidCCalculatorDlg:

:

OnNum9()

{

strMess1+="9";

m_edit.SetWindowText(strMess1);

//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCCalculatorDlg:

:

OnNum8()

{strMess1+="8";

m_edit.SetWindowText(strMess1);

//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCCalculatorDlg:

:

OnNum7()

{

strMess1+="7";

m_edit.SetWindowText(strMess1);

//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCCalculatorDlg:

:

OnNum6()

{strMess1+="6";

m_edit.SetWindowText(strMess1);

//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCCalculatorDlg:

:

OnNum5()

{

strMess1+="5";

m_edit.SetWindowText(strMess1);//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCCalculatorDlg:

:

OnNum4()

{strMess1+="4";

m_edit.SetWindowText(strMess1);

//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCCalculatorDlg:

:

OnNum3()

{strMess1+="3";

m_edit.SetWindowText(strMess1);

//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCCalculatorDlg:

:

OnNum2()

{

strMess1+="2";

m_edit.SetWindowText(strMess1);

//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCCalculatorDlg:

:

OnNum1()

{

strMess1+="1";

m_edit.SetWindowText(strMess1);

//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCCalculatorDlg:

:

OnNum0()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

strMess1+="0";

m_edit.SetWindowText(strMess1);

}

voidCCalculatorDlg:

:

OnNumAdd()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_edit.GetWindowText(strMess1);

num1=atof(strMess1);

//m_edit.SetWindowText("");

strMess1="";

click='+';

}

voidCCalculatorDlg:

:

OnNumMinus()

{

m_edit.GetWindowText(strMess1);

num1=atof(strMess1);

strMess1="";

click='-';

}

voidCCalculatorDlg:

:

OnNumM()

{

m_edit.GetWindowText(strMess1);

num1=atof(strMess1);

strMess1="";

click='*';

}

voidCCalculatorDlg:

:

OnNumD()

{

m_edit.GetWindowText(strMess1);

num1=atof(strMess1);

//m_edit.SetWindowText("");

strMess1="";

click='/';

}

voidCCalculatorDlg:

:

OnA()

{

click='p';

}

voidCCalculatorDlg:

:

OnNumSqrt()

{

click='s';

}

voidCCalculatorDlg:

:

OnNumS()

{

click='l';

}

voidCCalculatorDlg:

:

OnNumGet()

{

m_edit.GetWindowText(strMess1);

num2=atof(strMess1);

CStringstr;

switch(click)

{

case'+':

//if(clickadd=='+')

num1+=num2;

break;

case'-':

num1-=num2;

break;

case'*':

num1*=num2;

break;

case'l':

num1=1/num2;

break;

case'/':

num1/=num2;

break;

case's':

if(num2<0)

{

AfxMessageBox("函数输入无效!

");

return;

}

num1=sqrt(num2);

break;

case'p':

num1=num2*(-1);

break;

case10:

num1=pow(num1,num2);

break;

case11:

num1=pow(10,num2);

break;

case12:

num1=num2*num2*num2;

break;

case13:

if(num2<=0)

{

AfxMessageBox("函数输入无效!

");

return;

}

num1=log(num2);

break;

case14:

if(num2<=0)

{

AfxMessageBox("函数输入无效!

");

return;

}

num1=log10(num2);

break;

case17:

num1=num2*num2;

break;

default:

AfxMessageBox("请选择做的那种运算!

");

}

m_edit.GetWindowText(strMess1);

intsize=strMess1.GetLength();

strMess1.Delete(0,size);

m_edit.SetWindowText(strMess1);

click=0;

str.Format("%f",num1);

m_edit.SetWindowText(str);//显示结果

//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCCalculatorDlg:

:

OnCe()

{

m_edit.GetWindowText(strMess1);

intsize=strMess1.GetLength();

strMess1.Delete(0,size);

m_edit.SetWindowText(strMess1);

//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCCalculatorDlg:

:

OnBackspace()

{

m_edit.GetWindowText(strMess1);

intsize=strMess1.GetLength();

strMess1.Delete(size-1,1);

m_edit.SetWindowText(strMess1);

}

voidCCalculatorDlg:

:

OnDot()

{

strMess1+=".";

m_edit.SetWindowText(strMess1);

}

voidCCalculatorDlg:

:

OnNumJc()

{

click=17;

}

voidCCalculatorDlg:

:

OnNum10()

{

m_edit.GetWindowText(strMess1);

num1=atof(strMess1);

//m_edit.SetWindowText("");

strMess1="";

click=10;//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCCalculatorDlg:

:

OnNum11()

{

click=11;

}

voidCCalculatorDlg:

:

OnNum12()

{

click=12;

}

voidCCalculatorDlg:

:

OnNum13()

{

click=13;

}

voidCCalculatorDlg:

:

OnNum14()

{

click=14;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1