中南大学C++计算机课程设计实践报告2016.docx

上传人:b****2 文档编号:1257975 上传时间:2022-10-19 格式:DOCX 页数:13 大小:101.56KB
下载 相关 举报
中南大学C++计算机课程设计实践报告2016.docx_第1页
第1页 / 共13页
中南大学C++计算机课程设计实践报告2016.docx_第2页
第2页 / 共13页
中南大学C++计算机课程设计实践报告2016.docx_第3页
第3页 / 共13页
中南大学C++计算机课程设计实践报告2016.docx_第4页
第4页 / 共13页
中南大学C++计算机课程设计实践报告2016.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

中南大学C++计算机课程设计实践报告2016.docx

《中南大学C++计算机课程设计实践报告2016.docx》由会员分享,可在线阅读,更多相关《中南大学C++计算机课程设计实践报告2016.docx(13页珍藏版)》请在冰豆网上搜索。

中南大学C++计算机课程设计实践报告2016.docx

中南大学

本科生课程设计(实践)报告

计算机程序设计基础(C++)

题目

学生学号

学生姓名

指导教师

学院

专业班级

计算机基础教学实验中心

2016年7月7日

“计算机程序设计基础(C++)”课程设计报告

1引言

本次设计目标是参照windows系统提供的计算器,设计一个科学型计算器,为此我们需要掌握好MFC基础,掌握C++应用系统的开发方法和技巧。

课程设计实践教程提供的步骤比较标准和准确,但实际操作性不是很强,所以我们应该通过对科学计算机设计来实现对过程的分析,从而掌握利用C++开发的一般设计方法与实现步骤。

对帮助我们全面牢固地掌握课堂教学内容、培养学生的实践能力、为今后应用计算机打下良好基础具有重要的意义。

在面对errors的解决过程中,培养独立分析问题和解决问题的能力,在生产实践中向卓越工程师的培养目标靠近。

2总体设计

本次实践的主要目的是了解和掌握运用MFC编程的一般思想和具体操作步骤。

基于MFC库进行对对话框界面的设计,通过创建类成员函数成员变量,编辑控件创建消息映射,调用消息函数完成数据的输入输出,实现计算功能。

生成应用软件。

首先需要设计0,1,2,3,4,5,6,7,8,9,0十个数字按钮,其次是+,-,*,/,.,AC,=运算符号,再进行特殊运算符号的设计,流程图如下。

数字0—9

界面设计

处理数字输入

按钮:

+,-,*,/,x*x,n!

sin,sinh.

=,AC;

计算

输出显示

3详细设计

界面设计

通过按住Ctrl建,复制出统一大小的按钮,框选多个同时移动,使得界面排列有序,整齐。

数字键函数编写

m_result+=_T("N")对每个数字按钮进行赋值;updatedata(false)作用为当你使用了ClassWizard建立了控件和变量之间的联系后:

当你修改了变量的值,而希望对话框控件更新显示,就应该在修改变量后调UpdateData(FALSE);

voidCMy0308150317Dlg:

:

OnButton7()

{m_result+=_T("1");

UpdateData(false);

//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCMy0308150317Dlg:

:

OnButton8()

{m_result+=_T("2");

UpdateData(false);

//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCMy0308150317Dlg:

:

OnButton9()

{

m_result+=_T("3");

UpdateData(false);

}

voidCMy0308150317Dlg:

:

OnButton4()

{m_result+=_T("4");

UpdateData(false);

//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCMy0308150317Dlg:

:

OnButton5()

{

m_result+=_T("5");

UpdateData(false);

}

voidCMy0308150317Dlg:

:

OnButton6()

{

m_result+=_T("6");

UpdateData(false);

}

voidCMy0308150317Dlg:

:

OnButton2()

{m_result+=_T("8");

UpdateData(false);

//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCMy0308150317Dlg:

:

OnButton3()

{

m_result+=_T("9");

UpdateData(false);

}

voidCMy0308150317Dlg:

:

OnButton10()

{

m_result+=_T("0");

UpdateData(false);

}

voidCMy0308150317Dlg:

:

OnButton11()

{

m_result+=_T(".");

UpdateData(false);

}

+,-,*,/普通运算符号的函数

通过对n的不同取值,来实现对函数的调用,方便简单易于操作。

函数atof将字串转换为浮点型数,可以将其他型数据转为double型,提高运算精度。

voidCMy0308150317Dlg:

:

OnButton13()

{

n=0;

data=atof(m_result);

m_result=_T("");

}

voidCMy0308150317Dlg:

:

OnButton14()

{

n=1;

data=atof(m_result);

m_result=_T("");

}

voidCMy0308150317Dlg:

:

OnButton15()

{

n=2;

data=atof(m_result);

m_result=_T("");

}

voidCMy0308150317Dlg:

:

OnButton16()

{

n=3;

data=atof(m_result);

m_result=_T("");

}

对“=”按钮函数编写

用多分支的if...elseif语句,实现两个数字与运算符的连接.Format是CString类的一个成员函数,它通过格式操作使任意类型的数据转换成一个字符串.

voidCMy0308150317Dlg:

:

OnButton12()

{

if(n==0)

{

data+=atof(m_result);

m_result.Format(_T("%lf"),data);

UpdateData(false);

}

elseif(n==1)

{

data-=atof(m_result);

m_result.Format(_T("%lf"),data);

UpdateData(false);

}

elseif(n==2)

{

data*=atof(m_result);

m_result.Format(_T("%lf"),data);

UpdateData(false);

}

elseif(n==3)

{

data/=atof(m_result);

m_result.Format(_T("%lf"),data);

UpdateData(false);

特殊运算符n!

,x*x,sin,sinh的设计

由于特殊字符只需要实现单个数字的运算,与普通运算符实现两个运算符不同,在经过多次调试和同学的指导之后,发现只保留特殊运算符函数按钮的调用语句“n=”,将其他代码放到if...elseif语句中,可以实现逻辑上的调用。

对于特殊运算,在外部另外设计了对应函数,使函数界面可读性加强。

Sin运用了级数展开式,这样可以不用调用math.h函数库的函数,在同类方法中最易操作。

Sinh则在网上搜到了公式,并且自己编写了x次方的函数,进行调用。

n!

和x*x则运用了本学期所学,顺利编写。

voidCMy0308150317Dlg:

:

OnButton17()

{n=4;

}

voidCMy0308150317Dlg:

:

OnButton18()

{

n=5;

}

voidCMy0308150317Dlg:

:

OnButton19()

{

n=6;

}

voidCMy0308150317Dlg:

:

OnButton20()

{

n=7;

}

elseif(n==4)

{

data=atof(m_result);

data=liancheng(data);

m_result.Format(_T("%lf"),data);

UpdateData(false);

}

elseif(n==5)

{

data=atof(m_result);

data=pinfang(data);

m_result.Format(_T("%lf"),data);

UpdateData(false);

}

elseif(n==6)

{

data=atof(m_result);

data=sin(data);

m_result.Format(_T("%lf"),data);

UpdateData(false);

}

elseif(n==7)

{

data=atof(m_result);

data=sinh(data);

m_result.Format(_T("%lf"),data);

UpdateData(false);

doubledata,data1;

intn,i;

doublefabs(doublex)

{

doubley;

if(x<0)

y=-x;

else

y=x;

returny;

}

doublesin(doublex)

{ doubley=0,t=x;

intn=2;

while(fabs(t)>1e-5)

{

y+=t;

t=-t*x*x/(n*(n+1));

n+=2;

}

returny;

}

doubleliancheng(doublex)

{doublea;

doubles

(1);

for(a=1;a

{s=s*a;

}

returns;

}

doublepinfang(doublex)

{doubley;

y=x*x;

returny;

}

doublecifang(doublex,inty)

{

doublez=1;

for(i=0;i

{

z*=x;

}

returnz;

}

doublesinh(doublex)

{

doubley=0,e=2.71828;

y=(cifang(e,x)-cifang(e,-x))/2;

returny;

}

}

4设计总结

本计算机的优点是通过ctrl复制使界面友好,整齐,易于操作;程序设计上,结构清晰,简单,便于制作,交互性强,便于未来添加新的符号;用新方法使得单个数字计算缩短。

本计算机的缺点是界面原始,与ios平台上的设计性相比欠缺,背景颜色都没有;功能不够完善

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

当前位置:首页 > 工程科技 > 材料科学

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

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