中南大学
本科生课程设计(实践)设计报告
(程序设计基础)
题 目 学生学号 学生姓名 指导教师 学 院 专业班级
MFC编程科学计算器
1104120502 郭斌繁 蔡 旭 晖 交通运输工程学院 交通运输类1205班
计算机基础教学实验中心
2013 年 7 月 1 日
程序设计(C++)实践报告
1. 引言
C++语言的主要特点表现在两个方面,一是全面兼容C 语言,二是支持面向对象的程序:
(1) C++是一个更好的C,它保持了C 语言的优点,大多数的C 程序代码略作修改或不作修改就可在C++的集成环境下调试和运行。这对于继承和开发当前已在广泛的软件是非常重要的,可以节省大量的人力和物力。
(2) C++是一种面向对象的程序设计语言它使得程序的各个模块的独立性更强,程序的可读性和可移植性更强,程序代码的结构更加合理,程序的扩充性更强。这对于设计、编制和调试一些大型的软件尤为重要。
(3) C++集成环境不仅支持C++程序的编译和调试,而且也支持C 程序的编译和调试。通常,C++程序环境 约定:当源程序文件的扩展名为c.时,则为C 程序;而当源程序文件的扩展名为cpp.时,则为C++程序。
(4) C++语句非常简练,对语法限制比较宽松,因此C++语法非常灵活。其优点是给用户编程带来书写上的方便。其缺点是由于编译时对语法限制比较宽松,许多逻辑上的错误。
次课程设计主要在运算过程中,如果通过计算器来完成,就会减少计算量,该程序即可以在简单计算器键面下进行简单运算,也可以在科学计算器键面下进行高级的科学计算。并且可以分别计算弧度、角度的三角函数的计算等较为复杂的运算。
(1).设计目标
利用MFC程序开发工具设计一款可以进行简单计算及部分科学计算的计算器。在设计当中将综合“面向对象程序设计与结构化程序设计”的思想方法和知识点,编制一个小型的应用程序系统。通过此设计进一步提高自己的动手能力,并能使自己清楚的知道开发一个应用程序的思想、方法和流程。
(2).选题分析
此次实践所选题目中除了简单的加减乘除运算程序之外还包括了余弦函数、双曲余弦函数、度分秒的转换和X的y次方及y次根号下x的运算程序。除去四
则基本运算程序之外,其余程序不可以直接调用系统的库函数需要经过自己的思考和查阅资料并结合迈克劳林等公式从源头开发相应运算的源代码,因此必须熟练掌握基本编程、代码语言、类运算及成员函数的设计、按键功能设计和整体协调等方面的相关知识。在此程序的设计过程中既锻炼了自己对C++软件的掌握程度也服务了自己,尤其是装有WIN8的电脑,其本身的系统是不带计算器软件的,
通过此设计也算是实践于应用。
2. 总体设计
(1) 体系设计:
所要设计的程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,能进行简单三角运算、次方开方及双曲函数的运算,运算结果能正确显示,可以清除数据等。 (2) 设计思路:
1) 先在Visual C++ 6.0中建立一个MFC工程文件,名为calc_mfc。 2) 在对话框中添加适当的编辑框、按钮、静态文件、单选框。 3) 设计按钮,并修改其相应的ID与Caption。 4) 选择和设置各控件的单击鼠标事件。
5) 为编辑框添加double类型的关联变量m_dNum.
6) 在calc_mfcDlg.h中添加math.h头文件,然后添加public成员。
打开calc_mfcDlg.cpp文件,在构造函数中,进行成员初始化和完善各控件的响应函数代码。
3. 详细设计
(1).通过“开始”按钮,选择“程序”菜单,然后打开“Microsoft Visual studio 6.0中文版”子菜单中的“Microsoft Visual C++ 6.0 中文版”程序,选择“工程”里面的MFC AppWizard(exe)程序,再选“基本对话框”选项按“确定”建立文件名为“calc_mfc”的工程.
(2).将原界面的按钮删除并添加所需按钮及编辑框并将其按照一定规律排列(如图1)
图1
(3).将各按键的属性按照相应的功能进行修改(如图2)
图2
(4).向CCalc_mfcDlg类中添加以下变量(如图3)
图3
(5).在cale_mfcDlg.cpp的OnInitDialog()函数中添加如下代码变量初始化:
m_dPre=0; m_dCur=0;
m_dNext=0; m_strPre=_T(\m_strCur=_T(\m_strNext=_T(\m_nDotSign=0; m_nDotNo=0;
(6).通过MFC的“建立类向导”向“CCalc_mfcDlg”类添加各按钮的消息处理函数。(如图4)因为程序中用到一些数学函数,所以在calc_mfcDlg的开始处添加包含语句#include <
图4 图5
(7).在calc_mfcDlg.h文件中的calc_mfcDlg类中添加成员函数的声明:void SetNum(int).并在cale_mfcDlg.cpp文件末尾添加数字键0-9的公有处理函数SetNum,代码如图5。添加数字键处理函数,如数字键1:
(8).计算器程序的关键是计算的顺序,当按下运算符键时,它的右操作符还是未知的,因此要保存当前的运算符选择,然后键入要操作的数字,这一数字