版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、頭文件class CCacl2Dlg : public CDialog/ Constructionpublic: int m_fun; /m_fun是運算符如:+,-,*,/ void AddFun(int j); /該函數(shù)的功能是輸入數(shù)字 void AddNum(int i); /該函數(shù)的功能是輸入運算符 int m_ForS; /指示此時輸入的是 /第一個數(shù)還是第二個數(shù) bool m_firx,m_secx; /指示此時是否在輸入小數(shù)部分 /即是否按過了小數(shù)點 double m_first,m_second; /第一第二個數(shù) double m_firstz,m_secondz; /第一第二
2、個數(shù)的整數(shù)部分 double m_firstx,m_secondx; /第一第二個數(shù)的小數(shù)部分 int m_firxw,m_secxw; /第一第二個數(shù)的小數(shù)部分的位數(shù) int m_firzorf,m_seczorf; /指示是否是負(fù)數(shù) /既是否按過+/-鍵 bool m_EnterSec; /是否輸入了第二個數(shù); double m_result; /結(jié)果 double m_mfir,m_msec; / 記住上次參加運算的第一二個數(shù) bool m_sfmf,m_sfms,m_sfmfun; /指示是否此時還記的上次的數(shù)和運算符 int m_mfun; /記住上次的運算符 CCacl2Dlg(C
3、Wnd* pParent = NULL); / standard constructor/ Dialog Data /AFX_DATA(CCacl2Dlg) enum IDD = IDD_CACL2_DIALOG ; CEdit m_xedit; double m_x; /AFX_DATA / ClassWizard generated virtual function overrides /AFX_VIRTUAL(CCacl2Dlg) protected: virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support /
4、AFX_VIRTUAL/ Implementationprotected: HICON m_hIcon; / Generated message map functions /AFX_MSG(CCacl2Dlg) afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void On0(); afx_msg void On1(); afx_msg void On2(); afx_msg void On3(); af
5、x_msg void On4(); afx_msg void On5(); afx_msg void On6(); afx_msg void On7(); afx_msg void On8(); afx_msg void On9(); afx_msg void OnAdd(); afx_msg void OnBack(); afx_msg void OnDiv(); afx_msg void OnGo(); afx_msg void OnOn(); afx_msg void OnSub(); afx_msg void OnTim(); afx_msg void OnXsd(); afx_msg
6、 void OnZfh(); afx_msg void OnAbtath(); /AFX_MSG DECLARE_MESSAGE_MAP();CPP文件CCacl2Dlg:CCacl2Dlg(CWnd* pParent /*=NULL*/) : CDialog(CCacl2Dlg:IDD, pParent) /AFX_DATA_INIT(CCacl2Dlg) m_x = 0.0; /AFX_DATA_INIT / Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()
7、-LoadIcon(IDR_MAINFRAME); m_first=0.0;m_second=0.0; /該行以下為初始化 m_firstz=0;m_firstx=0.0; m_secondz=0;m_secondx=0.0; m_firx=FALSE;m_secx=FALSE; m_firxw=0;m_secxw=0; m_firzorf=1;m_seczorf=1; m_EnterSec=FALSE; m_result=0.0; m_ForS=1; m_mfir=0.0;m_msec=0.0;m_mfun=0; m_sfmf=FALSE;m_sfms=FALSE;m_sfmfun=FALS
8、E; void CCacl2Dlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); /AFX_DATA_MAP(CCacl2Dlg) DDX_Control(pDX, IDC_RESULT, m_xedit); DDX_Text(pDX, IDC_RESULT, m_x); /AFX_DATA_MAPBEGIN_MESSAGE_MAP(CCacl2Dlg, CDialog) /AFX_MSG_MAP(CCacl2Dlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRA
9、GICON() ON_BN_CLICKED(IDC_0, On0) ON_BN_CLICKED(IDC_1, On1) ON_BN_CLICKED(IDC_2, On2) ON_BN_CLICKED(IDC_3, On3) ON_BN_CLICKED(IDC_4, On4) ON_BN_CLICKED(IDC_5, On5) ON_BN_CLICKED(IDC_6, On6) ON_BN_CLICKED(IDC_7, On7) ON_BN_CLICKED(IDC_8, On8) ON_BN_CLICKED(IDC_9, On9) ON_BN_CLICKED(IDC_ADD, OnAdd) ON
10、_BN_CLICKED(IDC_BACK, OnBack) ON_BN_CLICKED(IDC_DIV, OnDiv) ON_BN_CLICKED(IDC_GO, OnGo) ON_BN_CLICKED(IDC_ON, OnOn) ON_BN_CLICKED(IDC_SUB, OnSub) ON_BN_CLICKED(IDC_TIM, OnTim) ON_BN_CLICKED(IDC_XSD, OnXsd) ON_BN_CLICKED(IDC_ZFH, OnZfh) ON_BN_CLICKED(IDC_ABTATH, OnAbtath) /AFX_MSG_MAPEND_MESSAGE_MAP(
11、)/ CCacl2Dlg message handlersvoid CCacl2Dlg:OnSysCommand(UINT nID, LPARAM lParam) if (nID & 0 xFFF0) = IDM_ABOUTBOX) CAboutDlg dlgAbout; dlgAbout.DoModal(); else CDialog:OnSysCommand(nID, lParam); / If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC
12、applications using the document/view model,/ this is automatically done for you by the framework.void CCacl2Dlg:OnPaint() if (IsIconic() CPaintDC dc(this); / device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); / Center icon in client rectangle int cxIcon = GetSys
13、temMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; / Draw the icon dc.DrawIcon(x, y, m_hIcon); else CDialog:OnPaint(); / The system calls this to obtain the cursor to di
14、splay while the user drags/ the minimized window.HCURSOR CCacl2Dlg:OnQueryDragIcon() return (HCURSOR) m_hIcon;void CCacl2Dlg:On0() /輸入0 / TODO: Add your control notification handler code here AddNum(0);void CCacl2Dlg:On1() /輸入1 / TODO: Add your control notification handler code here AddNum(1); void
15、CCacl2Dlg:On2() /輸入2 / TODO: Add your control notification handler code here AddNum(2); void CCacl2Dlg:On3() /輸入3 / TODO: Add your control notification handler code here AddNum(3); void CCacl2Dlg:On4() /輸入4 / TODO: Add your control notification handler code here AddNum(4);void CCacl2Dlg:On5() /輸入5 /
16、 TODO: Add your control notification handler code here AddNum(5);void CCacl2Dlg:On6() /輸入6 / TODO: Add your control notification handler code here AddNum(6);void CCacl2Dlg:On7() /輸入7 / TODO: Add your control notification handler code here AddNum(7); void CCacl2Dlg:On8() /輸入8 / TODO: Add your control
17、 notification handler code here AddNum(8);void CCacl2Dlg:On9() /輸入9 / TODO: Add your control notification handler code here AddNum(9);void CCacl2Dlg:OnAdd() /輸入+ / TODO: Add your control notification handler code here AddFun(1); void CCacl2Dlg:OnBack() /按back鍵 / TODO: Add your control notification h
18、andler code here if(m_ForS=1) /如果此時在輸入第一個數(shù) if(m_firx=FALSE) /如果此時在輸入整數(shù)部分 if(m_firstz10) /如果整數(shù)部分小于10 m_firstz=0; /改為0 m_firzorf=1; /置符號為正 else int y1=(int)m_firstz;/y1為一與整數(shù)部分相等的數(shù) y1/=10; /去掉個位數(shù) m_firstz=y1; else /如果在輸入小數(shù)部分 if(m_firxw=1) /此時小數(shù)部分只有一位 m_firstx=0.0;m_firxw=0;m_firx=FALSE;/小數(shù)部分清為0 else in
19、t y2=(int)(m_firstx*pow(10,m_firxw); /取一整數(shù)與小數(shù)點所有的數(shù)表示的整數(shù)相等,如123等于0.123的小數(shù)部分表示的數(shù) y2/=10;m_firxw-; /去掉最后一位 m_firstx=y2*pow(10,(-1)*m_firxw); m_first=m_firzorf*(m_firstz+m_firstx); /計算出第一個數(shù) m_x=m_first;UpdateData(FALSE); /顯示它 else if(m_ForS=2) /如果在輸入第二個數(shù),處理方法同第一個數(shù) if(m_secx=FALSE) if(m_secondz10) m_seco
20、ndz=0; m_seczorf=1; else int y3=(int)m_secondz; y3/=10; m_secondz=y3; else if(m_secxw=1) m_secondx=0.0;m_secxw=0;m_secx=FALSE; else int y4=(int)(m_secondx*pow(10,m_secxw); y4/=10;m_secxw-; m_secondx=y4*pow(10,(-1)*m_secxw); m_second=m_seczorf*(m_secondz+m_secondx); m_x=m_second;UpdateData(FALSE); vo
21、id CCacl2Dlg:OnDiv() /輸入/ / TODO: Add your control notification handler code here AddFun(4);void CCacl2Dlg:OnGo() /按=號運算 / TODO: Add your control notification handler code here if(m_sfmf=TRUE&m_sfms=TRUE&m_sfmfun=TRUE) /如果記著第一,二個數(shù)和運算符,即上次算完后未輸入數(shù),而再次按= if(m_mfun=1)m_result=m_mfir+m_msec; /m_fun為1,則用上
22、次的數(shù)和符號加,下同 else if(m_mfun=2)m_result=m_mfir-m_msec; /m_fun為2,則減,下同 else if(m_mfun=3)m_result=m_mfir*m_msec; /為3,則乘,下同 else if(m_mfun=4)m_result=m_mfir/m_msec; /為4,則除,下同 m_sfmf=TRUE;m_sfms=TRUE;m_sfmfun=TRUE; /記住參加運算的數(shù)和運算符 m_mfir=m_result;m_msec=m_msec;m_mfun=m_mfun; else if(m_sfmf=TRUE&m_sfms=FALSE&
23、m_sfmfun=FALSE)/只記的第一數(shù),如算完2+3=5后按*4= if(m_fun=1)m_result=m_mfir+m_second; else if(m_fun=2)m_result=m_mfir-m_second; else if(m_fun=3)m_result=m_mfir*m_second; else if(m_fun=4)m_result=m_mfir/m_second; m_sfmf=TRUE;m_sfms=TRUE;m_sfmfun=TRUE; m_mfir=m_result;m_msec=m_second;m_mfun=m_fun; else if(m_sfmf=
24、TRUE&m_sfms=TRUE&m_sfmfun=FALSE) /記住了第一個數(shù),未輸入第二個數(shù),輸入了運算符.如算完2+3=5后按*=結(jié)果為5*5=25; m_second=m_mfir; if(m_fun=1)m_result=m_mfir+m_second; else if(m_fun=2)m_result=m_mfir-m_second; else if(m_fun=3)m_result=m_mfir*m_second; else if(m_fun=4)m_result=m_mfir/m_second; m_sfmf=TRUE;m_sfms=TRUE;m_sfmfun=TRUE; m
25、_mfir=m_result;m_msec=m_second;m_mfun=m_fun; else if(m_sfmf=FALSE&m_sfms=FALSE&m_sfmfun=FALSE)/第一二個數(shù)和運算符都不記的,記全重新輸入,如算完2+3=5后輸入4*6= if(m_EnterSec=FALSE)m_second=m_first; if(m_fun=1)m_result=m_first+m_second; else if(m_fun=2)m_result=m_first-m_second; else if(m_fun=3)m_result=m_first*m_second; else i
26、f(m_fun=4)m_result=m_first/m_second; m_sfmf=TRUE;m_sfms=TRUE;m_sfmfun=TRUE; m_mfir=m_result;m_msec=m_second;m_mfun=m_fun; m_x=m_result; UpdateData(FALSE); /顯示結(jié)果 m_first=0;m_second=0.0; m_firstz=0;m_firstx=0.0; m_secondz=0;m_secondx=0.0; m_firx=FALSE;m_secx=FALSE; m_firxw=0;m_secxw=0; m_firzorf=1;m_s
27、eczorf=1; m_ForS=1; m_EnterSec=FALSE; void CCacl2Dlg:OnOn() /按on鍵 / TODO: Add your control notification handler code here m_x=0.0; /恢復(fù)默認(rèn)值,下同 m_first=0.0;m_second=0.0; m_firstz=0;m_firstx=0.0; m_secondz=0;m_secondx=0.0; m_firx=FALSE;m_secx=FALSE; m_firxw=0;m_secxw=0; m_firzorf=1;m_seczorf=1; m_ForS=1
28、; m_mfir=0.0;m_msec=0.0; m_mfun=0; m_sfmf=FALSE;m_sfms=FALSE;m_sfmfun=FALSE; m_EnterSec=FALSE; UpdateData(FALSE); void CCacl2Dlg:OnSub() /輸入- / TODO: Add your control notification handler code here AddFun(2); void CCacl2Dlg:OnTim() /輸入* / TODO: Add your control notification handler code here AddFun(
29、3);void CCacl2Dlg:OnXsd() /按小數(shù)點. / TODO: Add your control notification handler code here if(m_ForS=1)m_firx=TRUE; /此時在輸入第一個數(shù),第一個數(shù)指示十是否該輸入小數(shù)部分變量置為真 else if(m_ForS=2)m_secx=TRUE; /在輸入第二個數(shù)void CCacl2Dlg:OnZfh() /按+/-鍵 / TODO: Add your control notification handler code here if(m_ForS=1) /此時在輸入第一個數(shù) m_fir
30、zorf=-1; /指示符置為-1 m_first*=-1; m_x=m_first; UpdateData(FALSE); else m_seczorf=-1; m_second*=-1; m_x=m_second; UpdateData(FALSE); void CCacl2Dlg:AddNum(int i) /輸入數(shù)字是時的處理函數(shù) if(m_ForS=1) if(m_firx=FALSE) /整數(shù)數(shù)部分 m_firstz*=10;m_firstz+=i; else /小數(shù)部分 m_firxw+;m_firstx+=pow(10,(-1)*m_firxw)*i; m_first=m_fi
31、rzorf*(m_firstz+m_firstx); m_x=m_first; m_sfmf=FALSE;m_mfir=0; UpdateData(FALSE); else if(m_ForS=2) /第二個數(shù),處理同第一個數(shù) m_EnterSec=TRUE; /將指示是否輸入第二個數(shù)的變量置為真 if(m_secx=FALSE) m_secondz*=10;m_secondz+=i; else m_secxw+;m_secondx+=pow(10,(-1)*m_secxw)*i; m_second=m_seczorf*(m_secondz+m_secondx); m_sfms=FALSE;m_msec=0; m_x=m_second; UpdateData(FALSE); void CCacl2Dlg:AddFun(int j) /輸入運算符時的處理函數(shù) if(m_sfmf=TRUE&m_sfmfun=FALSE&m_EnterSec=TRUE) if(m_fun=1)m_result=m_mfir+m_second; else if(m_fun=2)m_result
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南豐縣城市投資發(fā)展集團(tuán)有限公司下屬子公司公開招聘編外人員備考題庫必考題
- 湖北文理學(xué)院第二批專項公開招聘工作人員12人備考題庫必考題
- 贛州銀行公開引進(jìn)46名人才考試題庫及答案1套
- 南通市郵政管理局招聘輔助人員考試題庫及答案1套
- 煙臺交通集團(tuán)有限公司管理培訓(xùn)生招聘參考題庫必考題
- 溫州護(hù)士學(xué)校關(guān)于招聘高中英語教師(非事業(yè)編)備考題庫附答案
- 貴州國企招聘:2026貴州黎平肇興文化旅游開發(fā)(集團(tuán))有限公司招聘18人參考題庫附答案
- 武義縣小水電發(fā)展有限責(zé)任公司招聘備考題庫附答案
- 大連市皮膚病醫(yī)院招聘合同制工作人員36人參考題庫附答案
- 九江一地公開招聘編外聘用人員8人備考題庫附答案
- 共同買廠房協(xié)議書
- 2025貴州省專業(yè)技術(shù)人員繼續(xù)教育公需科目考試題庫(2025公需課課程)
- 美國國家公園管理
- 人教版五年級語文上冊期末考試卷【含答案】
- 四川省2025年高考綜合改革適應(yīng)性演練測試化學(xué)試題含答案
- 醫(yī)療機(jī)構(gòu)安全生產(chǎn)事故綜合應(yīng)急預(yù)案
- 水利信息化計算機(jī)監(jiān)控系統(tǒng)單元工程質(zhì)量驗收評定表、檢查記錄
- 《管理學(xué)原理》課程期末考試復(fù)習(xí)題庫(含答案)
- DL-T+5174-2020燃?xì)?蒸汽聯(lián)合循環(huán)電廠設(shè)計規(guī)范
- 消費者在直播帶貨中沖動行為的影響因素探究
- 人工智能中的因果驅(qū)動智慧樹知到期末考試答案章節(jié)答案2024年湘潭大學(xué)
評論
0/150
提交評論