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

上传人:b****6 文档编号:6648502 上传时间:2023-01-08 格式:DOCX 页数:12 大小:57.49KB
下载 相关 举报
最新中南大学C++计算机课程设计实践报告.docx_第1页
第1页 / 共12页
最新中南大学C++计算机课程设计实践报告.docx_第2页
第2页 / 共12页
最新中南大学C++计算机课程设计实践报告.docx_第3页
第3页 / 共12页
最新中南大学C++计算机课程设计实践报告.docx_第4页
第4页 / 共12页
最新中南大学C++计算机课程设计实践报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

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

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

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

最新中南大学C++计算机课程设计实践报告

中南大学

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

计算机程序设计基础(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,=运算符号,再进行特殊运算符号的设计,流程图如下。

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平台上的设计性相比欠缺,背景颜色都没有;功能不够完善,常用符号欠缺,小数点后几位问题未解决;编程方法不够规范,可能与其他代码出现兼容性的问题。

进一步优化思路:

学习相关平面设计知识,MFC知识,使用户界面更加友好。

根据卡西欧科学计算机,进行运算符号的增加。

进行菜单的设计,能让用户自主调节小数点数,几进制等。

收获与体会:

刚开始面对一个全新的系统,手足无措,但是通过老师,同学的帮助下,逐渐掌握了基本技能。

我印象最深的一次是,C++无法运行,连着下了三个dll之后,总算可以使用,这告诉我们要坚持不懈,越绝望就离成功越近;还有我发现跟着视频自学是最快的学习方式,比书本文字更加生动有趣。

实现sin的方法有许多种,但级数展开是简便的一种,这教会我们方法总比困难多,好方法加速困难解决。

后期学习:

本专业是矿物加工,未来需要用到编程解决实际问题,借助计算机的强大计算能力完成复选任务,通过互联网+解决各工艺的衔接问题,通过vpn获得更多的学术信息。

虽然C++的学习告一段落了,但未来工作学习与他密不可分,在信息时代,没有专业能独立的生存,在此感谢指导我们C++学习的刘卫国老师,我们能走得更远!

 

参考文献

✧杨长兴,刘卫国.C++程序设计.北京:

中国水利水电出版社,2012

✧刘卫国,杨长兴.C++程序设计实践教程.北京:

中国水利水电出版社,2012

标题:

大学生究竟难在哪?

—创业要迈五道坎2004年3月23日

民族性手工艺品。

在饰品店里,墙上挂满了各式各样的小饰品,有最普通的玉制项链、珍珠手链,也有特别一点如景泰蓝的手机挂坠、中国结的耳坠,甚至还有具有浓郁的异域风情的藏族饰品。

标题:

上海发出通知为大学生就业—鼓励自主创业,灵活就业2004年3月17日

标题:

大学生“负债消费“成潮流2004年3月18日

标题:

大学生究竟难在哪?

—创业要迈五道坎2004年3月23日

§8-4情境因素与消费者行为2004年3月20日

五、创业机会和对策分析

秘诀:

好市口+个性经营

十几年的学校教育让我们大学生掌握了足够的科学文化知识,深韵的文化底子为我们创业奠定了一定的基础。

特别是在大学期间,我们学到的不单单是书本知识,假期的打工经验也帮了大忙。

标题:

大学生究竟难在哪?

—创业要迈五道坎2004年3月23日

 

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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