制作一个计算器应用程序课程设计.docx

上传人:b****7 文档编号:9086875 上传时间:2023-02-03 格式:DOCX 页数:8 大小:18.71KB
下载 相关 举报
制作一个计算器应用程序课程设计.docx_第1页
第1页 / 共8页
制作一个计算器应用程序课程设计.docx_第2页
第2页 / 共8页
制作一个计算器应用程序课程设计.docx_第3页
第3页 / 共8页
制作一个计算器应用程序课程设计.docx_第4页
第4页 / 共8页
制作一个计算器应用程序课程设计.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

制作一个计算器应用程序课程设计.docx

《制作一个计算器应用程序课程设计.docx》由会员分享,可在线阅读,更多相关《制作一个计算器应用程序课程设计.docx(8页珍藏版)》请在冰豆网上搜索。

制作一个计算器应用程序课程设计.docx

制作一个计算器应用程序课程设计

制作一个计算器应用程序课程设计

..C++面向对象编程课程设计题目:

制作一个计算器应用程序学生姓名:

学号:

学生姓名:

学号:

学生姓名:

学号:

二级学院名称:

新媒体学院专业:

数字媒体技术指导教师:

成绩:

题目..题目内容

(1)完成整数+、-、、/、的功能。

(2)完成浮点数的+、-、、/、的功能。

(3)完成任意大小数字的+、-、、/、的功能。

功能分析通过按钮控件(对应为数字的输出)往编辑框内输入数据,再通过按钮控件(对应为算法的输出)进行对变量num1赋值的处理,最后通过按钮控件(对应为等于号)进行变量num2的赋值处理和num1、num2的算法处理并输出到编辑框内。

程序流程图所涉及类类的设计编译器所给的四个类(包含两个基类)类的相互关系所有的类都服务于myDlg.cpp..分步骤实现过程步骤1:

新建工程:

新建一个基于对话框的工程,取名为my。

步骤2:

界面设计(控件+背景图):

界面:

步骤3:

添加成员函数,成员变量:

1、成员函数:

双击每个控件在CmyDlg.cpp内添加所对应的函数。

2、成员变量:

如图:

编辑框对应的变量:

3、背景图片的导入:

引入bmp格式图片作为背景,在OnPaint()..函数里实现。

步骤4:

代码实现给每个控件对应的函数添加代码,用来实现计算器的功能。

效果分析与总结效果分析:

这次课程设计我们都十分用心的去做,最终的效果还是非常不错的,界面美观,运行准确无误。

在设计的过程中,我们不但做出题目要求的效果,而且还做出另外好几种效果,比如求倒数,平方开方等效果,但最终为了整体的和谐,简洁,美观等因素的考虑,我们删去了其中几个功能。

另外这是我们第一次使用MFC进行开发,很多事情都是从零开始,困难是必不可少的,但是我们互相帮助,鼓励,逐渐熟悉了MFC的使用方法。

最终出色地完成了这次课程设计。

总结:

整体上来讲,我们的程序可以执行题目要求的几个功能,界面也用心设计,是比较成功的一次课程设计。

体会:

这次课程设计最大的体会就是团队的力量是远大于个人的力量的,在遇到困难时才会感到个人力量的渺小,这时团队的优势就体现出来了,通过团队配合很多问题迎刃而解。

还有一点就是通过这次课程设计我们对软件开发有一个初步的了解,软件开发是一个富有挑战性的工作,需要团队的配合,个人的好想法,足够的耐心,严密的逻辑,出色的执行力,当然还要一个好体力,才能完成这项工作。

代码附录(另附压缩包)myDlg.h:

classCMyDlg:

publicCDialog{//Constructionpublic:

CMyDlg(CWnd*pParent=NULL);//standardconstructordoublenum1,num2;//添加变量charcal;BYTEdotflag;BYTEnumflag;intdotnum;//DialogData//{{AFX_DATA(CMyDlg)enum{IDD=IDD_MY_DIALOG};doublem_Num;//}}AFX_DATA//ClassWizardgeneratedvirtualfunctionoverrides..//{{AFX_VIRTUAL(CMyDlg)protected:

virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport//}}AFX_VIRTUAL//Implementationprotected:

HICONm_hIcon;//Generatedmessagemapfunctions//{{AFX_MSG(CMyDlg)virtualBOOLOnInitDialog();afx_msgvoidOnSysCommand(UINTnID,LPARAMlParam);afx_msgvoidOnPaint();afx_msgHCURSOROnQueryDragIcon();afx_msgvoidOnChangeEdit1();afx_msgvoidOnButton1C();afx_msgvoidOnBUTTON2DIv();afx_msgvoidOnBUTTON3Mul();afx_msgvoidOnBUTTON4Backspace();afx_msgvoidOnButton5Num7();afx_msgvoidOnButton6Num8();afx_msgvoidOnButton7Num9();afx_msgvoidOnBUTTON8Sub();afx_msgvoidOnButton9Num4();afx_msgvoidOnButton10Num5();afx_msgvoidOnButton11Num6();afx_msgvoidOnBUTTON12Add();afx_msgvoidOnBUTTON16Sqrt();afx_msgvoidOnButton13Num1();afx_msgvoidOnButton14Num2();afx_msgvoidOnButton15Num3();afx_msgvoidOnBUTTON17fh();afx_msgvoidOnButton19Num0();afx_msgvoidOnBUTTON18Dot();afx_msgvoidOnBUTTON20Equal();//}}AFX_MSGDECLARE_MESSAGE_MAP()};//{{AFX_INSERT_LOCATION}}//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.#endif..//!

defined(AFX_MYDLG_H__5AD95B9B_1743_4BF8_B0FB_ED2935396407__INCLUDED_)myDlg.cpp:

#includestdafx.h#includemy.h#includemyDlg.h#includemath.h#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CAboutDlgdialogusedforAppAboutclassCAboutDlg:

publicCDialog{public:

CAboutDlg();//DialogData//{{AFX_DATA(CAboutDlg)enum{IDD=IDD_ABOUTBOX};//}}AFX_DATA//ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUAL(CAboutDlg)protected:

virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport//}}AFX_VIRTUAL//Implementationprotected:

//{{AFX_MSG(CAboutDlg)//}}AFX_MSGDECLARE_MESSAGE_MAP()};CAboutDlg:

:

CAboutDlg():

CDialog(CAboutDlg:

:

IDD){//{{AFX_DATA_INIT(CAboutDlg)//}}AFX_DATA_INIT..}voidCAboutDlg:

:

DoDataExchange(CDataExchange*pDX){CDialog:

:

DoDataExchange(pDX);//{{AFX_DATA_MAP(CAboutDlg)//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)//{{AFX_MSG_MAP(CAboutDlg)//Nomessagehandlers//}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CMyDlgdialogCMyDlg:

:

CMyDlg(CWnd*pParent/*=NULL*/):

CDialog(CMyDlg:

:

IDD,pParent){//{{AFX_DATA_INIT(CMyDlg)m_Num=0.0;//}}AFX_DATA_INIT//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32m_hIcon=AfxGetApp()-LoadIcon(IDR_MAINFRAME);}voidCMyDlg:

:

DoDataExchange(CDataExchange*pDX){CDialog:

:

DoDataExchange(pDX);//{{AFX_DATA_MAP(CMyDlg)DDX_Text(pDX,IDC_EDIT1,m_Num);//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CMyDlg,CDialog)//{{AFX_MSG_MAP(CMyDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_EN_CHANGE(IDC_EDIT1,OnChangeEdit1)ON_BN_CLICKED(IDC_BUTTON1_C,OnButton1C)ON_BN_CLICKED(IDC_BUTTON2_DIv,OnBUTTON2DIv)..ON_BN_CLICKED(IDC_BUTTON3_Mul,OnBUTTON3Mul)ON_BN_CLICKED(IDC_BUTTON4_Backspace,OnBUTTON4Backspace)ON_BN_CLICKED(IDC_BUTTON5_NUM7,OnButton5Num7)ON_BN_CLICKED(IDC_BUTTON6_NUM8,OnButton6Num8)ON_BN_CLICKED(IDC_BUTTON7_NUM9,OnButton7Num9)ON_BN_CLICKED(IDC_BUTTON8_Sub,OnBUTTON8Sub)ON_BN_CLICKED(IDC_BUTTON9_NUM4,OnButton9Num4)ON_BN_CLICKED(IDC_BUTTON10_NUM5,OnButton10Num5)ON_BN_CLICKED(IDC_BUTTON11_NUM6,OnButton11Num6)ON_BN_CLICKED(IDC_BUTTON12_Add,OnBUTTON12Add)ON_BN_CLICKED(IDC_BUTTON16_Sqrt,OnBUTTON16Sqrt)ON_BN_CLICKED(IDC_BUTTON13_NUM1,OnButton13Num1)ON_BN_CLICKED(IDC_BUTTON14_NUM2,OnButton14Num2)ON_BN_CLICKED(IDC_BUTTON15_NUM3,OnButton15Num3)ON_BN_CLICKED(IDC_BUTTON17_fh,OnBUTTON17fh)ON_BN_CLICKED(IDC_BUTTON19_NUM0,OnButton19Num0)ON_BN_CLICKED(IDC_BUTTON18_Dot,OnBUTTON18Dot)ON_BN_CLICKED(IDC_BUTTON20_Equal,OnBUTTON20Equal)//}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CMyDlgmessagehandlersBOOLCMyDlg:

:

OnInitDialog()//初始化函数{CDialog:

:

OnInitDialog();//AddAbout...menuitemtosystemmenu.//IDM_ABOUTBOXmustbeinthesystemcommandrange.ASSERT((IDM_ABOUTBOX0xFFF0)==IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX0xF000);CMenu*pSysMenu=GetSystemMenu(FALSE);if(pSysMenu!

=NULL){CStringstrAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if(!

strAboutMenu.IsEmpty()){pSysMenu-AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);}..}//Settheiconforthisdialog.Theframeworkdoesthisautomatically//whentheapplication’smainwindowisnotadialogSetIcon(m_hIcon,TRUE);//SetbigiconSetIcon(m_hIcon,FALSE);//Setsmallicon//TODO:

Addextrainitializationheredotnum=1;dotflag=0;numflag=0;returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}voidCMyDlg:

:

OnSysCommand(UINTnID,LPARAMlParam){if((nID0xFFF0)==IDM_ABOUTBOX){CAboutDlgdlgAbout;dlgAbout.DoModal();}else{CDialog:

:

OnSysCommand(nID,lParam);}}//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,//thisisautomaticallydoneforyoubytheframework.voidCMyDlg:

:

OnPaint()//界面控制函数{if(IsIconic()){CPaintDCdc(this);//devicecontextforpaintingSendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);//CentericoninclientrectangleintcxIcon=GetSystemMetrics(SM_CXICON);intcyIcon=GetSystemMetrics(SM_CYICON);..CRectrect;GetClientRect(rect);intx=(rect.Width()-cxIcon+1)/2;inty=(rect.Height()-cyIcon+1)/2;//Drawtheicondc.DrawIcon(x,y,m_hIcon);}else{CPaintDCdc(this);//设置背景图片CRectrect;GetClientRect(rect);CDCdcMem;dcMem.CreateCompatibleDC(dc);CBitmapbmpBackground;bmpBackground.LoadBitmap(IDB_BITMAP1);BITMAPbitmap;bmpBackground.GetBitmap(bitmap);CBitmap*pbmpOld=dcMem.SelectObject(bmpBackground);dc.StretchBlt(0,0,rect.Width(),rect.Height(),dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);}//CDialog:

:

OnPaint();}//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags//theminimizedwindow.HCURSORCMyDlg:

:

OnQueryDragIcon(){return(HCURSOR)m_hIcon;}voidCMyDlg:

:

OnChangeEdit1(){//TODO:

IfthisisaRICHEDITcontrol,thecontrolwillnot//sendthisnotificationunlessyouoverridetheCDialog:

:

OnInitDialog()//functionandcallCRichEditCtrl().SetEventMask()//withtheENM_CHANGEflagORedintothemask.//TODO:

Addyourcontrolnotificationhandlercodehere}..voidCMyDlg:

:

OnButton1C()//清零函数{//TODO:

AddyourcontrolnotificationhandlercodehereUpdateData();m_Num=0;num1=0;num2=0;numflag=0;dotflag=0;dotnum=1;UpdateData(FALSE);}voidCMyDlg:

:

OnBUTTON2DIv()//除法运算{//TODO:

AddyourcontrolnotificationhandlercodehereUpdateData();num1=m_Num;cal=‘/’;numflag=0;dotflag=0;dotnum=1;}voidCMyDlg:

:

OnBUTTON3Mul()//乘法运算(以下类推){//TODO:

AddyourcontrolnotificationhandlercodehereUpdateData();num1=m_Num;cal=‘*’;numflag=0;dotflag=0;dotnum=1;}voidCMyDlg:

:

OnBUTTON4Backspace()//退格函数{UpdateData();staticintdotnumstatic=dotnum;//一次初始化longtemp;if(dotflagnumflag)//撤销小数部分{if(dotnumstatic=10)..{temp=(long)(m_Num*dotnumstatic);m_Num=(double)(temp/10);dotnumstatic/=10;m_Num=m_Num/dotnumstatic;}}else//撤销整数部分{if(numflagm_Num){m_Num=(long)m_Num/10;}}UpdateData(FALSE);//TODO:

Addyourcontrolnotificationhandlercodehere}voidCMyDlg:

:

OnButton5Num7()//输入数字7(以下类推){//TODO:

AddyourcontrolnotificationhandlercodehereUpdateData();if(dotflag){dotnum*=10;m_Num+=7/(double)dotnum;}else{if(numflag){m_Num=m_Num*10+7;}elsem_Num=7;}numflag=1;UpdateData(FALSE);}voidCMyDlg:

:

OnButton6Num8(){//TODO:

AddyourcontrolnotificationhandlercodehereUpdateData();if(dotflag)..{dotnum*=10;m_Num+=8/(double)dotnum;}else{if(numflag){m_Num=m_Num*10+8;}elsem_Num=8;}numflag=1;UpdateData(FALSE);}voidCMyDlg:

:

OnButton7Num9(){//TODO:

AddyourcontrolnotificationhandlercodehereUpdateData();if(dotflag){dotnum*=10;m_Num+=9/(double)dotnum;}else{if(numflag){m_Num=m_Num*10+9;}elsem_Num=9;}numflag=1;UpdateData(FALSE);}voidCMyDlg:

:

OnBUTTO

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

当前位置:首页 > 党团工作 > 其它

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

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