中南大学C计算机课程设计实践报告2016_第1页
中南大学C计算机课程设计实践报告2016_第2页
中南大学C计算机课程设计实践报告2016_第3页
中南大学C计算机课程设计实践报告2016_第4页
中南大学C计算机课程设计实践报告2016_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业 中南大学 本科生课程设计(实践)报告 计算机程序设计基础(C+)题 目学生学号学生姓名指导教师学 院专业班级 计算机基础教学实验中心 2016年 7 月 7 日“计算机程序设计基础(C+)”课程设计报告1 引言 本次设计目标是参照windows系统提供的计算器,设计一个科学型计算器,为此我们需要掌握好MFC基础,掌握C+应用系统的开发方法和技巧。课程设计实践教程提供的步骤比较标准和准确,但实际操作性不是很强,所以我们应该通过对科学计算机设计来实现对过程的分析,从而掌握

2、利用C+开发的一般设计方法与实现步骤。对帮助我们全面牢固地掌握课堂教学内容、培养学生的实践能力、为今后应用计算机打下良好基础具有重要的意义。在面对errors的解决过程中,培养独立分析问题和解决问题的能力,在生产实践中向卓越工程师的培养目标靠近。2 总体设计 本次实践的主要目的是了解和掌握运用MFC编程的一般思想和具体操作步骤。基于MFC库进行对对话框界面的设计,通过创建类成员函数成员变量,编辑控件创建消息映射,调用消息函数完成数据的输入输出,实现计算功能。生成应用软件。 首先需要设计0,1,2,3,4,5,6,7,8,9,0十个数字按钮,其次是+,-,*,/,.,AC,=运算符号,再进行特殊

3、运算符号的设计,流程图如下。数字09数字09 界面设计 界面设计处理数字输入处理数字输入按钮:+,-,*,/,x*x,n!,sin,sinh.按钮:+,-,*,/,x*x,n!,sin,sinh.=,AC;计算计算输出显示输出显示3 详细设计 界面设计 通过按住Ctrl建,复制出统一大小的按钮,框选多个同时移动,使得界面排列有序,整齐。 数字键函数编写 m_result+=_T(N)对每个数字按钮进行赋值;updatedata(false)作用为当你使用了ClassWizard建立了控件和变量之间的联系后:当你修改了变量的值,而希望对话框控件更新显示,就应该在修改变量后调UpdateData(

4、FALSE);void CMyDlg:OnButton7() m_result+=_T(1);UpdateData(false);/ TODO: Add your control notification handler code herevoid CMyDlg:OnButton8() m_result+=_T(2);UpdateData(false);/ TODO: Add your control notification handler code herevoid CMyDlg:OnButton9() m_result+=_T(3);UpdateData(false);void CMyD

5、lg:OnButton4() m_result+=_T(4);UpdateData(false);/ TODO: Add your control notification handler code herevoid CMyDlg:OnButton5() m_result+=_T(5);UpdateData(false);void CMyDlg:OnButton6() m_result+=_T(6);UpdateData(false);void CMyDlg:OnButton2() m_result+=_T(8);UpdateData(false);/ TODO: Add your contr

6、ol notification handler code herevoid CMyDlg:OnButton3() m_result+=_T(9);UpdateData(false);void CMyDlg:OnButton10() m_result+=_T(0);UpdateData(false);void CMyDlg:OnButton11() m_result+=_T(.);UpdateData(false); +,-,*,/普通运算符号的函数通过对n的不同取值,来实现对函数的调用,方便简单易于操作。函数atof将字串转换为浮点型数,可以将其他型数据转为double型,提高运算精度。voi

7、d CMyDlg:OnButton13() n=0;data=atof(m_result);m_result=_T();void CMyDlg:OnButton14() n=1;data=atof(m_result);m_result=_T();void CMyDlg:OnButton15() n=2;data=atof(m_result);m_result=_T();void CMyDlg:OnButton16() n=3;data=atof(m_result);m_result=_T(); 对“=”按钮函数编写用多分支的if.else if语句,实现两个数字与运算符的连接.Format是C

8、String类的一个成员函数,它通过格式操作使任意类型的数据转换成一个字符串.void CMyDlg:OnButton12() if(n=0)data+=atof(m_result);m_result.Format(_T(%lf),data);UpdateData(false);else if(n=1)data-=atof(m_result);m_result.Format(_T(%lf),data);UpdateData(false);else if(n=2)data*=atof(m_result);m_result.Format(_T(%lf),data);UpdateData(false

9、);else if(n=3)data/=atof(m_result);m_result.Format(_T(%lf),data);UpdateData(false); 特殊运算符n!,x*x,sin,sinh的设计 由于特殊字符只需要实现单个数字的运算,与普通运算符实现两个运算符不同,在经过多次调试和同学的指导之后,发现只保留特殊运算符函数按钮的调用语句“n=”,将其他代码放到if.else if语句中,可以实现逻辑上的调用。对于特殊运算,在外部另外设计了对应函数,使函数界面可读性加强。Sin运用了级数展开式,这样可以不用调用math.h函数库的函数,在同类方法中最易操作。Sinh则在网上搜到

10、了公式,并且自己编写了x次方的函数,进行调用。n!和x*x则运用了本学期所学,顺利编写。void CMyDlg:OnButton17() n=4;void CMyDlg:OnButton18() n=5;void CMyDlg:OnButton19() n=6;void CMyDlg:OnButton20() n=7;else if(n=4)data=atof(m_result);data=liancheng(data);m_result.Format(_T(%lf),data);UpdateData(false);else if(n=5)data=atof(m_result);data=pi

11、nfang(data);m_result.Format(_T(%lf),data);UpdateData(false);else if(n=6)data=atof(m_result);data=sin(data);m_result.Format(_T(%lf),data);UpdateData(false);else if(n=7)data=atof(m_result);data=sinh(data);m_result.Format(_T(%lf),data);UpdateData(false);double data,data1;int n,i; double fabs(double x)d

12、ouble y;if(x1e-5)y+=t;t=-t*x*x/(n*(n+1);n+=2;return y; double liancheng(double x)double a;double s(1);for(a=1;ax+1;a+)s=s*a;return s;double pinfang(double x)double y;y=x*x;return y;double cifang(double x,int y)double z=1;for(i=0;iy;i+)z*=x;return z;double sinh(double x)double y=0,e=2.71828;y=(cifang

13、(e,x)-cifang(e,-x)/2;return y;4 设计总结 本计算机的优点是通过ctrl复制使界面友好,整齐,易于操作;程序设计上,结构清晰,简单,便于制作,交互性强,便于未来添加新的符号;用新方法使得单个数字计算缩短。 本计算机的缺点是界面原始,与ios平台上的设计性相比欠缺,背景颜色都没有;功能不够完善,常用符号欠缺,小数点后几位问题未解决;编程方法不够规范,可能与其他代码出现兼容性的问题。 进一步优化思路:学习相关平面设计知识,MFC知识,使用户界面更加友好。根据卡西欧科学计算机,进行运算符号的增加。进行菜单的设计,能让用户自主调节小数点数,几进制等。 收获与体会:刚开始面对一个全新的系统,手足无措,但是通过老师,同学的帮助下,逐渐掌握了基本技能。我印象最深的一次是,C+无法运行,连着下了三个dll之后,总算可以使用,这告诉我们要坚持不懈,越绝望就离成功越近;还有我发现跟着视频自学是最快的学习方式,比书本文字更加生动有趣。实现sin的方法有许多种,但级数展开是简便的一种,这教会我们方法总比困难多,好方法加速困难解决。 后期学习:本

温馨提示

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

评论

0/150

提交评论