版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
高級計(jì)算器設(shè)計(jì)與開發(fā)C++程序設(shè)計(jì)設(shè)計(jì)性實(shí)驗(yàn)PAGE20PAGE21C++程序設(shè)計(jì)設(shè)計(jì)性實(shí)驗(yàn)任務(wù)書實(shí)驗(yàn)項(xiàng)目名稱:高級計(jì)算器設(shè)計(jì)與開發(fā)課程名稱:C++程序設(shè)計(jì)面向?qū)I(yè):信息與計(jì)算科學(xué)專業(yè);數(shù)學(xué)與應(yīng)用數(shù)學(xué)專業(yè)計(jì)劃學(xué)時(shí):18學(xué)時(shí)=實(shí)驗(yàn)課內(nèi)10學(xué)時(shí)+實(shí)驗(yàn)課外8學(xué)時(shí)實(shí)驗(yàn)類型:□綜合√設(shè)計(jì)實(shí)驗(yàn)?zāi)康模簩W(xué)會用C++語言和數(shù)據(jù)結(jié)構(gòu)二叉樹后序遍歷算法實(shí)現(xiàn)表達(dá)式的解析與計(jì)算;學(xué)會使用動態(tài)鏈接庫技術(shù)進(jìn)行編程;學(xué)會編輯、編譯、運(yùn)行MFC應(yīng)用程序的基本過程,學(xué)會MFC可視化編程技術(shù)。實(shí)驗(yàn)要求:包括系統(tǒng)設(shè)計(jì)要求,開發(fā)環(huán)境要求,技術(shù)文檔要求三部分。系統(tǒng)設(shè)計(jì)要求:最低要求:能完成雙精度型數(shù)值的加、減、乘、除計(jì)算;編程中使用了動態(tài)連接庫技術(shù).較高要求:能完成雙精度型數(shù)值的加、減、乘、除計(jì)算;編程中使用了動態(tài)連接庫技術(shù);能實(shí)現(xiàn)表達(dá)式的輸入,解析與計(jì)算開發(fā)環(huán)境要求:軟件環(huán)境:windows98/windowsXP/windows2000,VisualC++硬件環(huán)境:計(jì)算機(jī)(Pen4CPU,256MRAM,60G以上硬盤,輸入輸出設(shè)備)技術(shù)文檔要求:按照軟件工程技術(shù)文檔編寫要求進(jìn)行。要求流程圖繪制規(guī)范,模塊功能描述清晰,數(shù)據(jù)字典齊全。實(shí)驗(yàn)內(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í)驗(yàn)方案(任務(wù)提示):按照系統(tǒng)設(shè)計(jì)要求,用VisualC++設(shè)計(jì)和開發(fā)一個MFC應(yīng)用程序高級計(jì)算器,提交由需求分析;系統(tǒng)設(shè)計(jì)說明(包括主菜單、子菜單、模塊功能簡介、數(shù)據(jù)字典、系統(tǒng)結(jié)構(gòu)圖);系統(tǒng)技術(shù)文檔(包括系統(tǒng)各模塊主要流程圖,軟件總體測試方案與測試記錄、局部測試方案與測試記錄、軟件調(diào)試和修改記錄、測試結(jié)論、運(yùn)行情況記錄),系統(tǒng)使用說明書,源程序代碼為附錄構(gòu)成的實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)儀器設(shè)備:每個學(xué)生一臺計(jì)算機(jī)。實(shí)驗(yàn)報(bào)告版式要求A4紙張打??;上下頁邊距各2.5cm,左右頁邊距各3.0cm,頁眉1.5cm頁腳1.75cm;頁碼位于頁腳居中打?。黄鏀?shù)頁頁眉“C++程序設(shè)計(jì)設(shè)計(jì)性實(shí)驗(yàn)”,偶數(shù)頁頁眉“高級計(jì)算器設(shè)計(jì)與開發(fā)”,頁眉宋體小5號,一級標(biāo)題:黑體三號粗體字;二級標(biāo)題:黑體4號;三級標(biāo)題黑體小4號,正文,宋體5號。實(shí)驗(yàn)報(bào)告裝訂順序與規(guī)范封面C++程序設(shè)計(jì)設(shè)計(jì)性實(shí)驗(yàn)任務(wù)書C++程序設(shè)計(jì)設(shè)計(jì)性實(shí)驗(yàn)報(bào)告左邊緣裝訂C++程序設(shè)計(jì)設(shè)計(jì)性實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)項(xiàng)目名稱:高級計(jì)算器設(shè)計(jì)與開發(fā)專業(yè)班級:數(shù)學(xué)081;姓名:李莉;學(xué)號200812010102實(shí)驗(yàn)起止日期:起于2010年6月21日止于2010年7月1日實(shí)驗(yàn)?zāi)康模簩W(xué)會用C++語言和數(shù)據(jù)結(jié)構(gòu)知識實(shí)現(xiàn)表達(dá)式的解析與計(jì)算;學(xué)會使用動態(tài)鏈接庫技術(shù)進(jìn)行編程;學(xué)會編輯、編譯、運(yùn)行MFC應(yīng)用程序的基本過程.初步學(xué)會MFC可視化編程技術(shù)。實(shí)驗(yàn)要求:完成雙精度型數(shù)值的加、減、乘、除計(jì)算;編程中使用了動態(tài)連接庫技術(shù).實(shí)驗(yàn)內(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í)驗(yàn)具體方案:按照系統(tǒng)設(shè)計(jì)要求,用VisualC++設(shè)計(jì)和開發(fā)一個MFC應(yīng)用程序高級計(jì)算器,提交由需求分析;系統(tǒng)設(shè)計(jì)說明(包括主菜單、子菜單、模塊功能簡介、數(shù)據(jù)字典、系統(tǒng)結(jié)構(gòu)圖);系統(tǒng)技術(shù)文檔(包括系統(tǒng)各模塊主要流程圖,軟件總體測試方案與測試記錄、局部測試方案與測試記錄、軟件調(diào)試和修改記錄、測試結(jié)論、運(yùn)行情況記錄),系統(tǒng)使用說明書,源程序代碼為附錄構(gòu)成的實(shí)驗(yàn)報(bào)告。需求分析:我們在學(xué)習(xí)生活中,常會遇到一些繁雜的數(shù)值運(yùn)算,徒手算將是一件非常頭痛的事,這時(shí)候我們就必須用到一些高隨身攜帶的計(jì)算器,所以便著手開發(fā)了這個計(jì)算器程序,以便用于自己的學(xué)習(xí)工作。這個程序可以進(jìn)行加、減、乘、除等基本的運(yùn)算,也可以直接輸出數(shù)學(xué)四則運(yùn)算的結(jié)果,并且操作簡單、界面清晰、靈活、實(shí)用、方便。系統(tǒng)設(shè)計(jì)說明(包括主菜單、子菜單、模塊功能簡介、數(shù)據(jù)字典、系統(tǒng)結(jié)構(gòu)圖);主菜單主要包含:clear整個程序的模塊組成:Windows基于對話框的資源文件模塊。動態(tài)鏈接庫模塊。系統(tǒng)結(jié)構(gòu)圖:計(jì)算器主菜單 主控面板顯示框清零鍵除法乘法減法加法數(shù)字鍵顯示框清零鍵除法乘法減法加法數(shù)字鍵 結(jié)束系統(tǒng)技術(shù)文檔(包括系統(tǒng)各模塊主要流程圖,軟件總體測試方案與測試記錄、局部測試方案與測試記錄、軟件調(diào)試和修改記錄、測試結(jié)論):運(yùn)算流程圖開始讀入數(shù)字A讀入運(yùn)算符 讀入數(shù)字B計(jì)算結(jié)果輸出結(jié)果 結(jié)束軟件總體測試方案:1、測試計(jì)算器能否處理加、減、乘、除以及是否能得出正確結(jié)果。2、除數(shù)為0時(shí)的情況。3、計(jì)算器對非法輸入的排錯能力。測試記錄:1、在處理運(yùn)算時(shí)對于正確的輸入可以得到滿意的結(jié)果。2、在輸入的數(shù)中有多個小數(shù)點(diǎn)時(shí)計(jì)算器仍進(jìn)行進(jìn)算不具備排錯功能。3、除數(shù)為0時(shí)結(jié)果是錯誤的。測試結(jié)果:程序能正確得出運(yùn)算結(jié)果,再不輸入錯誤的情況下。測試結(jié)論:經(jīng)過不斷地改進(jìn)與調(diào)試計(jì)算器基本上可以達(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、這個計(jì)算器是基于C++的MFC應(yīng)用程序而開發(fā)的,這之中設(shè)計(jì)到了對話框的操作,菜單的制作,子菜單的設(shè)計(jì),各種控件的設(shè)計(jì),像按鈕,編輯框。2、在實(shí)現(xiàn)這些功能的過程中使用了動態(tài)鏈接庫技術(shù),用于導(dǎo)出一些函數(shù),簡化了程序的實(shí)現(xiàn)代碼;并計(jì)算結(jié)果。3、在進(jìn)行菜單的設(shè)計(jì)中,設(shè)計(jì)了能進(jìn)行運(yùn)算結(jié)果、清零等功能的操作菜單。實(shí)驗(yàn)討論做實(shí)驗(yàn)是不懂的虛心請教同學(xué)這是我對本次試驗(yàn)最大的感受,在同學(xué)們的幫助下解決了實(shí)驗(yàn)過程中的很多問題。同時(shí)通過本次試驗(yàn)是我初步認(rèn)識了MFC控件的基本用法和動態(tài)鏈接庫的一些基本知識,也對C++語言有了更一步的熟悉。在這一個月的時(shí)間里,我主要把時(shí)間花在了對VisualC++控件、類和消息的處理上,所以對于算法沒有太多時(shí)間去設(shè)計(jì),因?yàn)槲矣X得此次實(shí)驗(yàn)主要是我們掌握面向?qū)ο蠹夹g(shù)相關(guān)的一些軟件開發(fā)技術(shù)。利用MFC類庫開發(fā)Windows應(yīng)用程序,消息映射是如何工作的。C++程序設(shè)計(jì)設(shè)計(jì)性實(shí)驗(yàn)收獲與總結(jié)通過此次課程設(shè)計(jì)使我的編程能力有了較大幅度的提高,在這過程中成長一點(diǎn)也不錯。雖然這算不上項(xiàng)目但它還是提供了一個實(shí)戰(zhàn)的機(jī)會。此外在這次訓(xùn)練中也學(xué)到了不少新的知識。以前總會用一個工程,現(xiàn)在可以用三個。懂得了什么是動態(tài)鏈接庫技術(shù)以及使用意義。基本上掌握了MFC程序開發(fā)的環(huán)節(jié)過程這對以后視窗編程有很大的幫助,在此基礎(chǔ)上可以自己開方一些小程序,找到了自我提高的方法。此次編程也讓我對VisualC++編程有了新的認(rèn)識,也讓我認(rèn)識到有很多知識還沒學(xué)到手至少目前應(yīng)該掌握VisualC++的基礎(chǔ)這是很重要的一個學(xué)習(xí)過程。此外這次編程給我了許多啟示,自己到底該怎么樣去學(xué)習(xí)。自己要不斷的給自己找問題去處理。如計(jì)算器開始是學(xué)到一點(diǎn)動態(tài)鏈接庫,想辦法去運(yùn)用它。由此學(xué)到的知識自己想辦法去運(yùn)用,用在你當(dāng)前思考的問題上。這樣經(jīng)過不斷地知識組合在不知不覺中就會成長我認(rèn)為這是我得到最寶貴的學(xué)習(xí)方法。此次實(shí)驗(yàn),用動態(tài)鏈接庫技術(shù)進(jìn)行導(dǎo)出。覆蓋了數(shù)據(jù)結(jié)構(gòu)以及c++中的基本知識,對于課本上的知識提供了一個應(yīng)用平臺。參考文獻(xiàn)潭浩強(qiáng)著.C程序設(shè)計(jì)(第二版).北京:清華大學(xué)出版社,1999潭浩強(qiáng)主編.C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第二版).北京:清華大學(xué)出版社,1999Bjarnestroustrup著.TheC++ProgramLanguage(3rdEdition).Addision-wesleyPubCo,1997H.M.Deitel,P.J.Deitel著.薛萬鵬等譯.C++程序設(shè)計(jì)教程.北京:機(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è)計(jì)(第三版).北京:電子工業(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度塔吊司機(jī)承包建筑起重設(shè)備操作人員勞務(wù)合同2篇
- 2024年服務(wù)合同增補(bǔ)合同樣本版B版
- 2024年度租賃合同提前終止及押金退還協(xié)議3篇
- 2024年度版權(quán)質(zhì)押合同:某作者將著作權(quán)質(zhì)押給某銀行獲取貸款3篇
- 2024版?zhèn)€人租房合同(含租賃押金與租金支付方式)3篇
- 2024年度廣告投放合同:廣告公司為客戶在其平臺上投放廣告的合同3篇
- 2024年度高科技園區(qū)企業(yè)安保勞務(wù)派遣合同3篇
- 2024年度茶葉產(chǎn)業(yè)鏈供應(yīng)鏈金融合同2篇
- 2024唐山骨瓷品牌海外市場拓展合同3篇
- 2024年度停薪留職合同員工再就業(yè)指導(dǎo)服務(wù)條款2篇
- 《住院患者身體約束的護(hù)理》團(tuán)體標(biāo)準(zhǔn)解讀課件
- 大學(xué)美育(同濟(jì)大學(xué)版)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 安徽省江南十校2023-2024學(xué)年高一生物上學(xué)期分科診斷摸底聯(lián)考試題
- 高教版【中職專用】《中國特色社會主義》期末試卷+答案
- 足三陰經(jīng)周康梅
- 宣講《鑄牢中華民族共同體意識》全文課件
- MOOC 跨文化交際通識通論-揚(yáng)州大學(xué) 中國大學(xué)慕課答案
- 10000中國普通人名大全
- 通科實(shí)習(xí)出科考核病歷
- 獅子王2經(jīng)典臺詞中英文對照
- 水利工程竣工驗(yàn)收報(bào)告表格(共5頁)
評論
0/150
提交評論