08級數(shù)學(xué)信息C++語言設(shè)計性實(shí)驗new_第1頁
08級數(shù)學(xué)信息C++語言設(shè)計性實(shí)驗new_第2頁
08級數(shù)學(xué)信息C++語言設(shè)計性實(shí)驗new_第3頁
08級數(shù)學(xué)信息C++語言設(shè)計性實(shí)驗new_第4頁
08級數(shù)學(xué)信息C++語言設(shè)計性實(shí)驗new_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

高級計算器設(shè)計與開發(fā)C++程序設(shè)計設(shè)計性實(shí)驗PAGE20PAGE21C++程序設(shè)計設(shè)計性實(shí)驗任務(wù)書實(shí)驗項目名稱:高級計算器設(shè)計與開發(fā)課程名稱:C++程序設(shè)計面向?qū)I(yè):信息與計算科學(xué)專業(yè);數(shù)學(xué)與應(yīng)用數(shù)學(xué)專業(yè)計劃學(xué)時:18學(xué)時=實(shí)驗課內(nèi)10學(xué)時+實(shí)驗課外8學(xué)時實(shí)驗類型:□綜合√設(shè)計實(shí)驗?zāi)康模簩W(xué)會用C++語言和數(shù)據(jù)結(jié)構(gòu)二叉樹后序遍歷算法實(shí)現(xiàn)表達(dá)式的解析與計算;學(xué)會使用動態(tài)鏈接庫技術(shù)進(jìn)行編程;學(xué)會編輯、編譯、運(yùn)行MFC應(yīng)用程序的基本過程,學(xué)會MFC可視化編程技術(shù)。實(shí)驗要求:包括系統(tǒng)設(shè)計要求,開發(fā)環(huán)境要求,技術(shù)文檔要求三部分。系統(tǒng)設(shè)計要求:最低要求:能完成雙精度型數(shù)值的加、減、乘、除計算;編程中使用了動態(tài)連接庫技術(shù).較高要求:能完成雙精度型數(shù)值的加、減、乘、除計算;編程中使用了動態(tài)連接庫技術(shù);能實(shí)現(xiàn)表達(dá)式的輸入,解析與計算開發(fā)環(huán)境要求:軟件環(huán)境:windows98/windowsXP/windows2000,VisualC++硬件環(huán)境:計算機(jī)(Pen4CPU,256MRAM,60G以上硬盤,輸入輸出設(shè)備)技術(shù)文檔要求:按照軟件工程技術(shù)文檔編寫要求進(jìn)行。要求流程圖繪制規(guī)范,模塊功能描述清晰,數(shù)據(jù)字典齊全。實(shí)驗內(nèi)容:1C++語言的順序結(jié)構(gòu),分支結(jié)構(gòu),循環(huán)結(jié)構(gòu),函數(shù),結(jié)構(gòu)體,指針,MFC可視化編程技術(shù)。2數(shù)據(jù)結(jié)構(gòu)中的二叉樹數(shù)據(jù)組織、存貯、后序遍歷及其操作實(shí)驗方案(任務(wù)提示):按照系統(tǒng)設(shè)計要求,用VisualC++設(shè)計和開發(fā)一個MFC應(yīng)用程序高級計算器,提交由需求分析;系統(tǒng)設(shè)計說明(包括主菜單、子菜單、模塊功能簡介、數(shù)據(jù)字典、系統(tǒng)結(jié)構(gòu)圖);系統(tǒng)技術(shù)文檔(包括系統(tǒng)各模塊主要流程圖,軟件總體測試方案與測試記錄、局部測試方案與測試記錄、軟件調(diào)試和修改記錄、測試結(jié)論、運(yùn)行情況記錄),系統(tǒng)使用說明書,源程序代碼為附錄構(gòu)成的實(shí)驗報告。實(shí)驗儀器設(shè)備:每個學(xué)生一臺計算機(jī)。實(shí)驗報告版式要求A4紙張打?。簧舷马撨吘喔?.5cm,左右頁邊距各3.0cm,頁眉1.5cm頁腳1.75cm;頁碼位于頁腳居中打??;奇數(shù)頁頁眉“C++程序設(shè)計設(shè)計性實(shí)驗”,偶數(shù)頁頁眉“高級計算器設(shè)計與開發(fā)”,頁眉宋體小5號,一級標(biāo)題:黑體三號粗體字;二級標(biāo)題:黑體4號;三級標(biāo)題黑體小4號,正文,宋體5號。實(shí)驗報告裝訂順序與規(guī)范封面C++程序設(shè)計設(shè)計性實(shí)驗任務(wù)書C++程序設(shè)計設(shè)計性實(shí)驗報告左邊緣裝訂C++程序設(shè)計設(shè)計性實(shí)驗報告實(shí)驗項目名稱:高級計算器設(shè)計與開發(fā)專業(yè)班級:數(shù)學(xué)081;姓名:李莉;學(xué)號200812010102實(shí)驗起止日期:起于2010年6月21日止于2010年7月1日實(shí)驗?zāi)康模簩W(xué)會用C++語言和數(shù)據(jù)結(jié)構(gòu)知識實(shí)現(xiàn)表達(dá)式的解析與計算;學(xué)會使用動態(tài)鏈接庫技術(shù)進(jìn)行編程;學(xué)會編輯、編譯、運(yùn)行MFC應(yīng)用程序的基本過程.初步學(xué)會MFC可視化編程技術(shù)。實(shí)驗要求:完成雙精度型數(shù)值的加、減、乘、除計算;編程中使用了動態(tài)連接庫技術(shù).實(shí)驗內(nèi)容:1C++語言的順序結(jié)構(gòu),分支結(jié)構(gòu),循環(huán)結(jié)構(gòu),函數(shù),結(jié)構(gòu)體,指針,MFC可視化編程技術(shù)。2數(shù)據(jù)結(jié)構(gòu)中的二叉樹數(shù)據(jù)組織、存貯、后序遍歷及其操作實(shí)驗具體方案:按照系統(tǒng)設(shè)計要求,用VisualC++設(shè)計和開發(fā)一個MFC應(yīng)用程序高級計算器,提交由需求分析;系統(tǒng)設(shè)計說明(包括主菜單、子菜單、模塊功能簡介、數(shù)據(jù)字典、系統(tǒng)結(jié)構(gòu)圖);系統(tǒng)技術(shù)文檔(包括系統(tǒng)各模塊主要流程圖,軟件總體測試方案與測試記錄、局部測試方案與測試記錄、軟件調(diào)試和修改記錄、測試結(jié)論、運(yùn)行情況記錄),系統(tǒng)使用說明書,源程序代碼為附錄構(gòu)成的實(shí)驗報告。需求分析:我們在學(xué)習(xí)生活中,常會遇到一些繁雜的數(shù)值運(yùn)算,徒手算將是一件非常頭痛的事,這時候我們就必須用到一些高隨身攜帶的計算器,所以便著手開發(fā)了這個計算器程序,以便用于自己的學(xué)習(xí)工作。這個程序可以進(jìn)行加、減、乘、除等基本的運(yùn)算,也可以直接輸出數(shù)學(xué)四則運(yùn)算的結(jié)果,并且操作簡單、界面清晰、靈活、實(shí)用、方便。系統(tǒng)設(shè)計說明(包括主菜單、子菜單、模塊功能簡介、數(shù)據(jù)字典、系統(tǒng)結(jié)構(gòu)圖);主菜單主要包含:clear整個程序的模塊組成:Windows基于對話框的資源文件模塊。動態(tài)鏈接庫模塊。系統(tǒng)結(jié)構(gòu)圖:計算器主菜單 主控面板顯示框清零鍵除法乘法減法加法數(shù)字鍵顯示框清零鍵除法乘法減法加法數(shù)字鍵 結(jié)束系統(tǒng)技術(shù)文檔(包括系統(tǒng)各模塊主要流程圖,軟件總體測試方案與測試記錄、局部測試方案與測試記錄、軟件調(diào)試和修改記錄、測試結(jié)論):運(yùn)算流程圖開始讀入數(shù)字A讀入運(yùn)算符 讀入數(shù)字B計算結(jié)果輸出結(jié)果 結(jié)束軟件總體測試方案:1、測試計算器能否處理加、減、乘、除以及是否能得出正確結(jié)果。2、除數(shù)為0時的情況。3、計算器對非法輸入的排錯能力。測試記錄:1、在處理運(yùn)算時對于正確的輸入可以得到滿意的結(jié)果。2、在輸入的數(shù)中有多個小數(shù)點(diǎn)時計算器仍進(jìn)行進(jìn)算不具備排錯功能。3、除數(shù)為0時結(jié)果是錯誤的。測試結(jié)果:程序能正確得出運(yùn)算結(jié)果,再不輸入錯誤的情況下。測試結(jié)論:經(jīng)過不斷地改進(jìn)與調(diào)試計算器基本上可以達(dá)到要求,可以處理各種簡單運(yùn)算。系統(tǒng)運(yùn)行結(jié)果和記錄(軟件運(yùn)行界面圖、軟件運(yùn)行數(shù)據(jù)輸入界面圖、軟件運(yùn)行結(jié)果界面圖、運(yùn)行記錄)輸入界面:加法界面:1+7=8減法界面:5-6=-1乘法界面:5*6=30除法界面:1/5=0.2000系統(tǒng)使用說明書:1、這個計算器是基于C++的MFC應(yīng)用程序而開發(fā)的,這之中設(shè)計到了對話框的操作,菜單的制作,子菜單的設(shè)計,各種控件的設(shè)計,像按鈕,編輯框。2、在實(shí)現(xiàn)這些功能的過程中使用了動態(tài)鏈接庫技術(shù),用于導(dǎo)出一些函數(shù),簡化了程序的實(shí)現(xiàn)代碼;并計算結(jié)果。3、在進(jìn)行菜單的設(shè)計中,設(shè)計了能進(jìn)行運(yùn)算結(jié)果、清零等功能的操作菜單。實(shí)驗討論做實(shí)驗是不懂的虛心請教同學(xué)這是我對本次試驗最大的感受,在同學(xué)們的幫助下解決了實(shí)驗過程中的很多問題。同時通過本次試驗是我初步認(rèn)識了MFC控件的基本用法和動態(tài)鏈接庫的一些基本知識,也對C++語言有了更一步的熟悉。在這一個月的時間里,我主要把時間花在了對VisualC++控件、類和消息的處理上,所以對于算法沒有太多時間去設(shè)計,因為我覺得此次實(shí)驗主要是我們掌握面向?qū)ο蠹夹g(shù)相關(guān)的一些軟件開發(fā)技術(shù)。利用MFC類庫開發(fā)Windows應(yīng)用程序,消息映射是如何工作的。C++程序設(shè)計設(shè)計性實(shí)驗收獲與總結(jié)通過此次課程設(shè)計使我的編程能力有了較大幅度的提高,在這過程中成長一點(diǎn)也不錯。雖然這算不上項目但它還是提供了一個實(shí)戰(zhàn)的機(jī)會。此外在這次訓(xùn)練中也學(xué)到了不少新的知識。以前總會用一個工程,現(xiàn)在可以用三個。懂得了什么是動態(tài)鏈接庫技術(shù)以及使用意義?;旧险莆樟薓FC程序開發(fā)的環(huán)節(jié)過程這對以后視窗編程有很大的幫助,在此基礎(chǔ)上可以自己開方一些小程序,找到了自我提高的方法。此次編程也讓我對VisualC++編程有了新的認(rèn)識,也讓我認(rèn)識到有很多知識還沒學(xué)到手至少目前應(yīng)該掌握VisualC++的基礎(chǔ)這是很重要的一個學(xué)習(xí)過程。此外這次編程給我了許多啟示,自己到底該怎么樣去學(xué)習(xí)。自己要不斷的給自己找問題去處理。如計算器開始是學(xué)到一點(diǎn)動態(tài)鏈接庫,想辦法去運(yùn)用它。由此學(xué)到的知識自己想辦法去運(yùn)用,用在你當(dāng)前思考的問題上。這樣經(jīng)過不斷地知識組合在不知不覺中就會成長我認(rèn)為這是我得到最寶貴的學(xué)習(xí)方法。此次實(shí)驗,用動態(tài)鏈接庫技術(shù)進(jìn)行導(dǎo)出。覆蓋了數(shù)據(jù)結(jié)構(gòu)以及c++中的基本知識,對于課本上的知識提供了一個應(yīng)用平臺。參考文獻(xiàn)潭浩強(qiáng)著.C程序設(shè)計(第二版).北京:清華大學(xué)出版社,1999潭浩強(qiáng)主編.C程序設(shè)計題解與上機(jī)指導(dǎo)(第二版).北京:清華大學(xué)出版社,1999Bjarnestroustrup著.TheC++ProgramLanguage(3rdEdition).Addision-wesleyPubCo,1997H.M.Deitel,P.J.Deitel著.薛萬鵬等譯.C++程序設(shè)計教程.北京:機(jī)械工業(yè)出版社,2000S.B.Lippman,J.Lajoie著.潘愛民譯.C++Primer(3rdEdition)中文版.北京:中國電力出版社,2000StephenR.Savis著.C++ForDummies4thedition,IDGBooksWorldwide,Inc.,2002HarveyM.Deitel,PaulJamesDeitel著.邱仲潘等譯.C++大學(xué)教程(第二版).北京:電子工業(yè)出版社,2002JamesP.Cohoon.JackW.Davidson著.劉瑞挺等譯.C++程序設(shè)計(第三版).北京:電子工業(yè)出版社,2002附錄:源程序代碼第一個程序//mfcDlg.cpp:implementationfile#include"stdafx.h"#include"mfc.h"#include"mfcDlg.h"#defineNUMBER_AFTER_POINT6#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_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_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CMfcDlgdialogCMfcDlg::CMfcDlg(CWnd*pParent/*=NULL*/) :CDialog(CMfcDlg::IDD,pParent){ //{{AFX_DATA_INIT(CMfcDlg) m_IDC_EDIT1_TEXT=_T(""); //m_IDC_EDIT3_TEXT=_T(""); //}}AFX_DATA_INIT //NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32 m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);}voidCMfcDlg::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMfcDlg) DDX_Text(pDX,IDC_EDIT1,m_IDC_EDIT1_TEXT); //DDX_Text(pDX,IDC_EDIT3,m_IDC_EDIT3_TEXT); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CMfcDlg,CDialog) //{{AFX_MSG_MAP(CMfcDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() 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_0,On0) ON_BN_CLICKED(IDC_add,Onadd) ON_BN_CLICKED(IDC_dot,Ondot) ON_BN_CLICKED(IDC_Cls,OnCls) ON_BN_CLICKED(IDC_equal,Onequal) ON_BN_CLICKED(IDC_subtract,Onsubtract) //ON_EN_CHANGE(IDC_EDIT3,OnChangeEdit3) ON_EN_SETFOCUS(IDC_EDIT1,OnSetfocusEdit1) //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_BUTTON1,&CMfcDlg::OnBnClickedButton1) ON_BN_CLICKED(IDC_BUTTON2,&CMfcDlg::OnBnClickedButton2)END_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CMfcDlgmessagehandlersBOOLCMfcDlg::OnInitDialog(){ CDialog::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); pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu); } } //Settheiconforthisdialog.Theframeworkdoesthisautomatically //whentheapplication'smainwindowisnotadialog SetIcon(m_hIcon,TRUE); //Setbigicon SetIcon(m_hIcon,FALSE); //Setsmallicon //TODO:Addextrainitializationhere returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}voidCMfcDlg::OnSysCommand(UINTnID,LPARAMlParam){ if((nID&0xFFF0)==IDM_ABOUTBOX) { CAboutDlgdlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID,lParam); }}//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,//thisisautomaticallydoneforyoubytheframework.voidCMfcDlg::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); } else { CDialog::OnPaint(); }}//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags//theminimizedwindow.HCURSORCMfcDlg::OnQueryDragIcon(){ return(HCURSOR)m_hIcon;}voidCMfcDlg::On1(){ //TODO:Addyourcontrolnotificationhandlercodeherem_IDC_EDIT1_TEXT=m_IDC_EDIT1_TEXT+"1";UpdateData(false);}voidCMfcDlg::On2(){ //TODO:Addyourcontrolnotificationhandlercodehere m_IDC_EDIT1_TEXT=m_IDC_EDIT1_TEXT+"2";UpdateData(false);}voidCMfcDlg::On3(){ //TODO:Addyourcontrolnotificationhandlercodehere m_IDC_EDIT1_TEXT=m_IDC_EDIT1_TEXT+"3";UpdateData(false);}voidCMfcDlg::On4(){ //TODO:Addyourcontrolnotificationhandlercodehere m_IDC_EDIT1_TEXT=m_IDC_EDIT1_TEXT+"4";UpdateData(false);}voidCMfcDlg::On5(){ //TODO:Addyourcontrolnotificationhandlercodehere m_IDC_EDIT1_TEXT=m_IDC_EDIT1_TEXT+"5";UpdateData(false);}voidCMfcDlg::On6(){ //TODO:Addyourcontrolnotificationhandlercodehere m_IDC_EDIT1_TEXT=m_IDC_EDIT1_TEXT+"6";UpdateData(false);}voidCMfcDlg::On7(){ //TODO:Addyourcontrolnotificationhandlercodehere m_IDC_EDIT1_TEXT=m_IDC_EDIT1_TEXT+"7";UpdateData(false);}voidCMfcDlg::On8(){ //TODO:Addyourcontrolnotificationhandlercodehere m_IDC_EDIT1_TEXT=m_IDC_EDIT1_TEXT+"8";UpdateData(false);}voidCMfcDlg::On9(){ //TODO:Addyourcontrolnotificationhandlercodehere m_IDC_EDIT1_TEXT=m_IDC_EDIT1_TEXT+"9";UpdateData(false);}voidCMfcDlg::On0(){//TODO:Addyourcontrolnotificationhandlercodehere m_IDC_EDIT1_TEXT=m_IDC_EDIT1_TEXT+"0";UpdateData(false);}voidCMfcDlg::Onadd(){ //TODO:Addyourcontrolnotificationhandlercodehere s1=m_IDC_EDIT1_TEXT; m_IDC_EDIT1_TEXT=""; operator1='+'; UpdateData(false);}voidCMfcDlg::Ondot(){ //TODO:Addyourcontrolnotificationhandlercodehere m_IDC_EDIT1_TEXT=m_IDC_EDIT1_TEXT+".";UpdateData(false);}voidCMfcDlg::OnCls(){ //TODO:Addyourcontrolnotificationhandlercodehere m_IDC_EDIT1_TEXT=""; m_X=0.0; m_Y=0.0; m_Result=0.0;UpdateData(false);}voidCMfcDlg::Onequal(){ //TODO:Addyourcontrolnotificationhandlercodehere m_X=strtod(s1,&str1);/**************************關(guān)于strtod使用的解釋********************doublestrtod(constchar*nptr,char**endptr);double_strtod_l(constchar*nptr,char**endptr,_locale_tlocale);doublewcstod(constwchar_t*nptr,wchar_t**endptr);doublewcstod_l(constwchar_t*nptr,wchar_t**endptr,_locale_tlocale);Parametersnptr:Null-terminatedstringtoconvert.endptr:Pointertocharacterthatstopsscan.locale:Thelocaletouse.//crt_strtod.c//Thisprogramusesstrtodtoconverta//stringtoadouble-precisionvalue;strtolto//convertastringtolongintegervalues;andstrtoul//toconvertastringtounsignedlong-integervalues.//#include<stdlib.h>#include<stdio.h>intmain(void){char*string,*stopstring;doublex;longl;intbase;unsignedlongul;string="3.1415926Thisstoppedit";x=strtod(string,&stopstring);printf("string=%s\n",string);printf("strtod=%f\n",x);printf("Stoppedscanat:%s\n\n",stopstring);string="-10110134932Thisstoppedit";l=strtol(string,&stopstring,10);printf("string=%s\n",string);printf("strtol=%ld\n",l);printf("Stoppedscanat:%s\n\n",stopstring);string="10110134932";printf("string=%s\n",string);//Convertstringusingbase2,4,and8:for(base=2;base<=8;base*=2){//Convertthestring:ul=strtoul(string,&stopstring,base);printf("strtol=%ld(base%d)\n",ul,base);printf("Stoppedscanat:%s\n",stopstring);}}Outputstring=3.1415926Thisstoppeditstrtod=3.141593Stoppedscanat:Thisstoppeditstring=-10110134932Thisstoppeditstrtol=-2147483648Stoppedscanat:Thisstoppeditstring=10110134932strtol=45(base2)Stoppedscanat:34932strtol=4423(base4)Stoppedscanat:4932strtol=2134108(base8)Stoppedscanat:932*****************************************************************/m_Y=strtod(m_IDC_EDIT1_TEXT,&str2); switch(operator1) {case'+':m_Result=m_X+m_Y; break; case'-': m_Result=m_X-m_Y; break; case'*': m_Result=m_X*m_Y; break;case'/': m_Result=m_X/m_Y; break; }buffer=_fcvt(m_Result,NUMBER_AFTER_POINT,&decimal,&sign);/*************************關(guān)于_fcvt函數(shù)使用的解釋****************************char*_fcvt(doublevalue,intcount,int*dec,int*sign);Parametersvalue:Numbertobeconverted.count:Numberofdigitsafterthedecimalpoint.dec:Pointertothestoreddecimal-pointposition.sign:Pointertothestoredsignindicator.//crt_fcvt.c//compilewith:/W1//Thisprogramconvertstheconstant//3.1415926535toastringandsetsthepointer//buffertopointtothatstring.#include<stdlib.h>#include<stdio.h>intmain(void){intdecimal,sign;char*buffer;doublesource=3.1415926535;buffer=_fcvt(source,7,&decimal,&sign);//C4996//Note:_fcvtisdeprecated;considerusing_fcvt_sinsteadprintf("source:%2.10fbuffer:'%s'decimal:%dsign:%d\n",source,buffer,decimal,sign);}Outputsource:3.1415926535buffer:'31415927'decimal:1sign:0*****************************************************************************/ for(i=strlen(buffer)+1;i>=strlen(buffer)-(NUMBER_AFTER_POINT+1);i--)*(buffer+(i+1))=*(buffer+i); buffer[strlen(buffer)-(NUMBER_AFTER_POINT+1)]='.'; if(sign) signedbuffer="-"; elsesignedbuffer=""; if(decimal==0)strbuffer="0."+(CString)buffer; elsestrbuffer=(CString)buffer;m_IDC_EDIT1_TEXT=(CString)signedbuffer+strbuffer; UpdateData(false);}voidCMfcDlg::Onsubtract(){ //TODO:Addyourcontrolnotificationhandlercodehere s1=m_IDC_EDIT1_TEXT; m_IDC_EDIT1_TEXT=""; operator1='-'; UpdateData(false);}voidCMfcDlg::OnSetfocusEdit1(){s1=m_IDC_EDIT1_TEXT; m_IDC_EDIT1_TEXT=""; operator1='*'; UpdateData(false); //TODO:Addyourcontrolnotificationhandlercodehere }voidCMfcDlg::OnBnClickedButton1(){s1=m_IDC_EDIT1_TEXT; m_IDC_EDIT1_TEXT=""; operator1='*'; UpdateData(false); //TODO:在此添加控件通知處理程序代碼}voidCMfcDlg::OnBnClickedButton2(){s1=m_IDC_EDIT1_TEXT; m_IDC_EDIT1_TEXT=""; operator1='/'; UpdateData(false); //TODO:在此添加控件通知處理程序代碼}第二個程序//mfc.cpp:Definestheclassbehaviorsfortheapplication.//#include"stdafx.h"#include"mfc.h"#include"mfcDlg.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CMfcAppBEGIN_MESSAGE_MAP(CMfcApp,CWinApp) //{{AFX_MSG_MAP(CMfcApp) //NOTE-theClassWizardwilladdandremovemappingmacroshere. //DONOTEDITwhatyouseeintheseblocksofgeneratedcode! //}}AFX_MSG ON_COMMAND(ID_HELP,CWinApp::OnHelp)END_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CMfcAppconstructionCMfcApp::CMfcApp(){ //TODO:addconstructioncodehere, //PlaceallsignificantinitializationinInitInstance}///////////////////////////////////////////////////////////////////////////////TheoneandonlyCMfcAppobjectCMfcApptheApp;///////////////////////////////////////////////////////////////////////////////CMfcAppinitializationBOOLCMfcApp::InitInstance(){ AfxEnableControlContainer(); //Standardinitialization //Ifyouarenotusingthesefeaturesandwishtoreducethesize //ofyourfinalexecutable,youshouldremovefromthefollowing //thespecificinitializationroutinesyoudonotneed.#ifdef_AFXDLL Enable3dControls(); //CallthiswhenusingMFCinasharedDLL#else Enable3dControlsStatic(); //CallthiswhenlinkingtoMFCstatically#endif CMfcDlgdlg; m_pMainWnd=&dlg; i

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論