华师c语言简单计算器实验报告Word文件下载.docx
- 文档编号:7860366
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:17
- 大小:57.95KB
华师c语言简单计算器实验报告Word文件下载.docx
《华师c语言简单计算器实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《华师c语言简单计算器实验报告Word文件下载.docx(17页珍藏版)》请在冰点文库上搜索。
Window7VisualC++6.0
4.实验内容:
(1)体系设计:
程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,能进行简单三角运算,运算结果能正确显示,可以清楚数据等。
(2)设计思路:
1)先在VisualC++6.0中建立一个MFC工程文件,名为calculator.
2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和单选框
3)设计按钮,并修改其相应的ID与Caption.
4)选择和设置各控件的单击鼠标事件。
5)为编辑框添加double类型的关联变量m_edit1.
6)在calculatorDlg.h中添加math.h头文件,然后添加public成员。
7)打开calculatorDlg.cpp文件,在构造函数中,进行成员初始化和完善各控件的响应函数代码。
(3)程序清单:
程序代码如下:
//calculator_1Dlg.cpp:
implementationfile
//
#include"
stdafx.h"
calculator_1.h"
calculator_1Dlg.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//CAboutDlgdialogusedforAppAbout
classCAboutDlg:
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
//Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_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_MAP
END_MESSAGE_MAP()
//CCalculator_1Dlgdialog
CCalculator_1Dlg:
CCalculator_1Dlg(CWnd*pParent/*=NULL*/)
:
CDialog(CCalculator_1Dlg:
IDD,pParent)
//{{AFX_DATA_INIT(CCalculator_1Dlg)
m_edit1=0.0;
//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32
m_hIcon=AfxGetApp()->
LoadIcon(IDR_MAINFRAME);
tempvalue=0;
result=0;
sort=0;
append=0;
voidCCalculator_1Dlg:
//{{AFX_DATA_MAP(CCalculator_1Dlg)
DDX_Text(pDX,IDC_EDIT1,m_edit1);
BEGIN_MESSAGE_MAP(CCalculator_1Dlg,CDialog)
//{{AFX_MSG_MAP(CCalculator_1Dlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON1,OnButton1)
ON_BN_CLICKED(IDC_BUTTON2,OnButton2)
ON_BN_CLICKED(IDC_BUTTON3,OnButton3)
ON_BN_CLICKED(IDC_BUTTON4_plus,OnBUTTON4plus)
ON_BN_CLICKED(IDC_BUTTON5_4,OnButton54)
ON_BN_CLICKED(IDC_BUTTON6_5,OnButton65)
ON_BN_CLICKED(IDC_BUTTON7_6,OnButton76)
ON_BN_CLICKED(IDC_BUTTON8_minus,OnBUTTON8minus)
ON_BN_CLICKED(IDC_BUTTON12_multi,OnBUTTON12multi)
ON_BN_CLICKED(IDC_BUTTON16_div,OnBUTTON16div)
ON_BN_CLICKED(IDC_BUTTON9_7,OnButton97)
ON_BN_CLICKED(IDC_BUTTON10_8,OnButton108)
ON_BN_CLICKED(IDC_BUTTON11_9,OnButton119)
ON_BN_CLICKED(IDC_BUTTON13_zero,OnBUTTON13zero)
ON_BN_CLICKED(IDC_BUTTON14_equal,OnBUTTON14equal)
ON_BN_CLICKED(IDC_RADIO1_sin,OnRADIO1sin)
ON_BN_CLICKED(IDC_RADIO2_cos,OnRADIO2cos)
ON_BN_CLICKED(IDC_RADIO3_tan,OnRADIO3tan)
ON_BN_CLICKED(IDC_RADIO5_log10,OnRADIO5log10)
ON_BN_CLICKED(IDC_BUTTON15_clean,OnBUTTON15clean)
//CCalculator_1Dlgmessagehandlers
BOOLCCalculator_1Dlg:
OnInitDialog()
OnInitDialog();
//Add"
About..."
menuitemtosystemmenu.
//IDM_ABOUTBOXmustbeinthesystemcommandrange.
ASSERT((IDM_ABOUTBOX&
0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<
0xF000);
CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!
=NULL)
{
CStringstrAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if(!
strAboutMenu.IsEmpty())
{
pSysMenu->
AppendMenu(MF_SEPARATOR);
AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
//Settheiconforthisdialog.Theframeworkdoesthisautomatically
//whentheapplication'
smainwindowisnotadialog
SetIcon(m_hIcon,TRUE);
//Setbigicon
SetIcon(m_hIcon,FALSE);
//Setsmallicon
//TODO:
Addextrainitializationhere
returnTRUE;
//returnTRUEunlessyousetthefocustoacontrol
OnSysCommand(UINTnID,LPARAMlParam)
if((nID&
0xFFF0)==IDM_ABOUTBOX)
CAboutDlgdlgAbout;
dlgAbout.DoModal();
else
CDialog:
OnSysCommand(nID,lParam);
//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow
//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,
//thisisautomaticallydoneforyoubytheframework.
OnPaint()
if(IsIconic())
CPaintDCdc(this);
//devicecontextforpainting
SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);
//Centericoninclientrectangle
intcxIcon=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICON);
CRectrect;
GetClientRect(&
rect);
intx=(rect.Width()-cxIcon+1)/2;
inty=(rect.Height()-cyIcon+1)/2;
//Drawtheicon
dc.DrawIcon(x,y,m_hIcon);
OnPaint();
//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags
//theminimizedwindow.
HCURSORCCalculator_1Dlg:
OnQueryDragIcon()
return(HCURSOR)m_hIcon;
OnButton1()
Addyourcontrolnotificationhandlercodehere
if(append==1)result=0;
result=result*10+1;
m_edit1=result;
UpdateData(FALSE);
OnButton2()
result=result*10+2;
OnButton3()
result=result*10+3;
OnBUTTON4plus()
sort=1;
tempvalue=result;
m_edit1=0;
append=1;
OnButton54()
result=result*10+4;
OnButton65()
result=result*10+5;
OnButton76()
result=result*10+6;
OnBUTTON8minus()
sort=2;
OnBUTTON12multi()
sort=3;
OnBUTTON16div()
sort=4;
OnButton97()
result=result*10+7;
OnButton108()
XX文库-让每个人平等地提升自我{
result=result*10+8;
OnButton119()
result=result*10+9;
OnBUTTON13zero()
result=result*10+0;
OnBUTTON14equal()
switch(sort)
case1:
result=result+tempvalue;
break;
case2:
result=tempvalue-result;
case3:
result=tempvalue*result;
case4:
result=tempvalue/result;
OnRADIO1sin()
m_edit1=sin(result);
OnRADIO2cos()
m_edit1=cos(result);
OnRADIO3tan()
m_edit1=tan(result);
OnRADIO5log10()
m_edit1=log10(result);
OnBUTTON15clean()
m_edit1=0.0;
(4)运行结果
5实验小结:
该次实验,是首次使用面向对象窗口进行的实验。
经过老师的使用讲解后,能够顺利的写出程序,并且没有出现输入进错误的符号以及遗漏的现象。
因此,没有出现什么问题。
但是,在进行实验的过程中,第一次感受到了用MFC编程的乐趣,首次使用到了人机交流的界面的实现,还是比较兴奋的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华师 语言 简单 计算器 实验 报告