2022年2022年计算器程序设计.C++_MFC .pdf
《2022年2022年计算器程序设计.C++_MFC .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算器程序设计.C++_MFC .pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程设计报告课程名称:VC+课程设计设计题目:计算器专业班级:通信工程 1202 班姓名:赵博学号:120404209 时间:2015年 7 月 14日指导教师:赵柏山名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 21 页 -2目录1.课程设计的要求,3 2.功能描述,3 3.设计步骤,3 4.运算流程图,7 5.运行效果与不足,8 6.总结,9 7.参考文献及开发环境,9 附录:程序代码,9名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 21 页 -3简易计算器(MFC)1课程设计的要求多功能计算器:要求所编写的的计算器能够完成加、减、乘、除、基本函数的运算,类
2、似于Windows 附件中的计算器。2.功能描述(1)包含的功能有:加、减、乘、除运算,开方、倒数、求余等功能。(2)计算器上数字 09 为一个控件数组,加、减、乘、除为一个控件数组,其余为单一的控件。(3)输入的原始数据、运算中间数据和结果都显示在窗口顶部的同一个标签中。(4)计算功能基本上是用系统内部函数。(5)“0”不能做除数。(6)“Backspace”按钮可以清除上一次输入的数据,“Clear”按钮可以清除所有已输入的数据从头计算。3.设计步骤(1)选择 FileNewlProject 命令,选择 MFC AppWizard(exe)创建 Project 名为“计算器”,按确定。在弹
3、出界面选择创建对话框,单击“完成”按钮。(2)在生成的设计界面中加入控件,得到计算器应用界面。如图:名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 21 页 -4(3)为控件编辑框编辑ID,如图:按钮名称ID 用途0 IDC_BUTTON_0 按键 0 1 IDC_ BUTTON_1 按键 1 2 IDC_ BUTTON_2 按键 2 3 IDC_ BUTTON_3 按键 3 4 IDC_ BUTTON_4 按键 4 5 IDC_ BUTTON_5 按键 5 6 IDC_ BUTTON_6 按键 6 7 IDC_ BUTTON_7 按键 7 8 IDC_ BUTTON_8 按键
4、8 9 IDC_ BUTTON_9 按键 9.IDC_ BUTTONpt 按键.名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 21 页 -5+/-IDC_ BUTTONor 正负+IDC_ BUTTONjia 加-IDC_ BUTTONjian 减*IDC_ BUTTONcheng 乘/IDC_ BUTTONchu 除Clear IDC_ BUTTONC 清零Backspace IDC_ BUTTONbk 退格1/x IDC_ BUTTONdao 倒数sqrt IDC_ BUTTONfang 开方%IDC_ BUTTONbai 求余=IDC_ BUTTONdeng 等于编辑框I
5、DC_EDIT1 显示数据输入输出(4)进入 ClassWizard界面选择 Message Maps为控件插入消息映射,插入消息函数,实现控件命令功能。如图:名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 21 页 -6(5)进入ClassWizard 界面 Message Varibles 为编辑框添加成员变量m_stredit 用以显示结果。如图:(6)在“计算器 Dlg.h”中加入在主要成员函数和成员变量的申明,在“计算器 Dlg.cpp”中加入主要成员函数实现过程和成员变量的初始化。名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 21 页 -7在头文件中“
6、计算器Dlg.h”中 public 下添加int sos;/操作附鉴别符int cal;CString m_str2;/存放按下操作符之前m_stredit 的值CString m_str1;/中间变量,当前 m_stredit的值在“计算器 Dlg.cpp”中要定义各种数学运算添加#include math.h 4.运算流程图N Y Y N Y N 开始输入数据于函数单目运算符双目运算符编辑框关联的变量保存到 m_str1 输入数据于函数进行运算运算是否合法运算结果保存到m_str2 是否用保存的结果继续进行运算弹出对话框显示错误是否开始新的计算结束m_str 清零名师资料总结-精品资料欢迎
7、下载-名师精心整理-第 7 页,共 21 页 -85 运行效果和不足例如:-7+9=21/2=0.5 2/0 不能运算等等名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 21 页 -9不足:0 可以作为数字的开头,而且小数点可以打多个,希望可以通过以后的学习解决这些缺点。6 总结课程设计到此已告一段落,经过团队的努力,在三周的实践中课程设计基本完成了。从中学到很多有用的知识,也积累了不少宝贵的经验。虽然在此次课程设计我们只是针对性的去学习对对话框应用程序的编程模式,但也体会到了MFC 这类库的博大精深。想全部了解这样一个类库,今后还需多下功夫。本次课程设计我们完成了一个简易计算器
8、应用软件,在此期间,遇上了不少的技术难题,但是经过努力,通过查找资料,难题还是一个个被解决了,从中学到了许多课堂上没学到的东西,这是很值得高兴的。经过设计的各个环节,从中学到了很多,锻炼了系统的设计的能力,培养了团队分工合作精神。这样对我们以后在工作中或学习中得到很好的锻炼,为用VC+编辑软件奠定基础。在本次实践期间对简易计算器的设计虽然大体实现各个控件的功能,但仍存在许多的不足与漏洞,还待以后的不断学习进一步完善。7 参考文献及开发环境参考文献:1 Visual C+7.0 起步进阶,国防工业出版社武装等编著2 Visual C+基础教程,西安电子科技大学出版社,2006.6 开发环境:Mi
9、crosoft Visual C+6.0 附录.程序代码/计算器 Dlg.cpp:implementation file/#include stdafx.h/#include stdlib.h#include 计算器.h#include 计算器 Dlg.h#include math.h#ifdef _DEBUG#define new DEBUG_NEW 名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 21 页 -10#undef THIS_FILE static char THIS_FILE=_FILE_;#endif/CAboutDlg dialog used for App
10、About class CAboutDlg:public CDialog public:CAboutDlg();/Dialog Data/AFX_DATA(CAboutDlg)enum IDD=IDD_ABOUTBOX;/AFX_DATA/ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange*pDX);/DDX/DDV support/AFX_VIRTUAL/Implementation protecte
11、d:/AFX_MSG(CAboutDlg)/AFX_MSG DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg():CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INIT void CAboutDlg:DoDataExchange(CDataExchange*pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAP 名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 21 页 -11BEGIN_MESS
12、AGE_MAP(CAboutDlg,CDialog)/AFX_MSG_MAP(CAboutDlg)/No message handlers/AFX_MSG_MAP END_MESSAGE_MAP()/CMyDlg dialog CMyDlg:CMyDlg(CWnd*pParent/*=NULL*/):CDialog(CMyDlg:IDD,pParent)/AFX_DATA_INIT(CMyDlg)m_stredit=_T();/AFX_DATA_INIT/Note that LoadIcon does not require a subsequent DestroyIcon in Win32
13、m_hIcon=AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CMyDlg:DoDataExchange(CDataExchange*pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CMyDlg)DDX_Text(pDX,IDC_EDIT1,m_stredit);DDV_MaxChars(pDX,m_stredit,15);/AFX_DATA_MAP BEGIN_MESSAGE_MAP(CMyDlg,CDialog)/AFX_MSG_MAP(CMyDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT(
14、)ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON9,OnButton9)ON_BN_CLICKED(IDC_BUTTON6,OnButton6)ON_BN_CLICKED(IDC_BUTTON0,OnButton0)ON_BN_CLICKED(IDC_BUTTON1,OnButton1)ON_BN_CLICKED(IDC_BUTTON2,OnButton2)ON_BN_CLICKED(IDC_BUTTON3,OnButton3)ON_BN_CLICKED(IDC_BUTTON4,OnButton4)ON_BN_CLICKED(IDC_BUTTON5,
15、OnButton5)名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 21 页 -12ON_BN_CLICKED(IDC_BUTTON7,OnButton7)ON_BN_CLICKED(IDC_BUTTON8,OnButton8)ON_BN_CLICKED(IDC_BUTTONbk,OnBUTTONbk)ON_BN_CLICKED(IDC_BUTTONbai,OnBUTTONbai)ON_BN_CLICKED(IDC_BUTTONfang,OnBUTTONfang)ON_BN_CLICKED(IDC_BUTTONdao,OnBUTTONdao)ON_BN_CLICKED(IDC_
16、BUTTONpt,OnBUTTONpt)ON_BN_CLICKED(IDC_BUTTONjia,OnBUTTONjia)ON_BN_CLICKED(IDC_BUTTONjian,OnBUTTONjian)ON_BN_CLICKED(IDC_BUTTONcheng,OnBUTTONcheng)ON_BN_CLICKED(IDC_BUTTONchu,OnBUTTONchu)ON_BN_CLICKED(IDC_BUTTONor,OnBUTTONor)ON_BN_CLICKED(IDC_BUTTONC,OnButtoncls)ON_BN_CLICKED(IDC_BUTTONdeng,OnBUTTONd
17、eng)/AFX_MSG_MAP END_MESSAGE_MAP()/CMyDlg message handlers BOOL CMyDlg:OnInitDialog()CDialog:OnInitDialog();/Add About.menu item to system menu./IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX&0 xFFF0)=IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMen
18、u(MF_STRING,IDM_ABOUTBOX,strAboutMenu);名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 21 页 -13/Set the icon for this dialog.The framework does this automatically/when the applications main window is not a dialog SetIcon(m_hIcon,TRUE);/Set big icon SetIcon(m_hIcon,FALSE);/Set small icon/TODO:Add extra initializatio
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年计算器程序设计.C+_MFC 2022 计算器 程序设计 _MFC
限制150内