freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c課程設(shè)計(jì)---用vc制作多功能計(jì)算器(完整版)

  

【正文】 部調(diào)試器,并且可以創(chuàng)建項(xiàng)目文件。要實(shí)現(xiàn)計(jì)算功能,可以用 VC++的知識(shí)編寫程序來(lái)解決此問(wèn)題。其類似于 Windows 附件中自帶的計(jì)算器。 關(guān)鍵詞 程序設(shè)計(jì);計(jì)算器; MFC;按鈕控件 1 引 言 本課程設(shè)計(jì)主要在運(yùn)算過(guò)程中,如果通過(guò)計(jì)算器來(lái)完成,就會(huì)減少計(jì)算量,該程序即可以在簡(jiǎn)單計(jì)算器鍵面下進(jìn)行簡(jiǎn)單運(yùn)算,也可以在科學(xué)計(jì)算器鍵面下進(jìn)行高級(jí)的科學(xué)計(jì)算。 由于多個(gè)函 數(shù)均需要訪問(wèn)某些數(shù)據(jù),這些數(shù)據(jù)常被設(shè)計(jì)為全局變量。 軟件要求: Windows 95/98或 Windows 以上版本。 日常計(jì)算機(jī)使用中,常常涉及到一些有關(guān)計(jì)算的問(wèn)題,一個(gè)小型的計(jì)算器軟件變得非常有用,該校型計(jì)算器需要空間資源較少,對(duì)電腦其他程序的應(yīng)用影響較小。使用人員能快捷簡(jiǎn)單地進(jìn)行操作。 (7)實(shí)現(xiàn)對(duì)話框的擴(kuò)展功能 [2]。在CCalculatorDlg::OnCreate 函數(shù)中設(shè)定對(duì)話框的初始大小與位置,可以在這個(gè)對(duì)話框中進(jìn)行窗口風(fēng)格修改,位置設(shè)置等操作,然后添加菜單項(xiàng) ID_EXTEND 的響應(yīng)函數(shù) OnExtend。單擊 Finish 按鈕,創(chuàng)建框架。 圖 41 編輯對(duì)話框資源 (2)編輯菜單資源 在 Visual C++中的 Workspace 工具欄中,選中 ResourceView 選項(xiàng)卡。 //用來(lái)保存按鈕的客戶區(qū)域 ,非矩形 UINT m_State。代碼如附錄 1 所示。 GetWindowRect(amp。 //重繪客戶區(qū) } CButton::OnLButtonDown(nFlags, point)。 } 如果鼠標(biāo)已經(jīng)移出了按鈕的客戶區(qū),則消毀計(jì)時(shí)器,并將計(jì)時(shí)器的起始標(biāo)識(shí) m_IsTimerOn 設(shè)為 FALSE。其實(shí)現(xiàn)代碼如附錄 1 所示。 //在矩形區(qū)域內(nèi)創(chuàng)建橢圓 //設(shè)置窗口的有效區(qū)域?yàn)闄E圓 SetWindowRgn(m_ClientRgn,FALSE)。實(shí)現(xiàn)代碼如下: public: void OnDraw()。 // device context for painting OnDraw()。 //對(duì)話框菜單按鈕 BOOL m_IsExtend。如圖 412 所示: 圖 412 為按鈕控件添加消息響應(yīng) (1)加載菜單資源 在 節(jié)中,已經(jīng)為工程新建了一個(gè)菜單資源 IDR_MENU,現(xiàn)將其添加到計(jì)算器對(duì)話框上。rect)。最后將菜單項(xiàng) ID_EXTENDR 的顯示文本設(shè)置為“擴(kuò)展”,將表示對(duì)話框是否擴(kuò)展標(biāo)識(shí)變量 m_IsExtend 設(shè)置為 FALSE。要屏蔽這一功能,只要執(zhí)行下面的代碼就可以。所以必須聲明兩個(gè)浮點(diǎn)數(shù),分別用來(lái)表示初始操作數(shù)和結(jié)果操作數(shù),同時(shí),必須聲明兩個(gè)字符串類型的變量,分別用來(lái)顯示初始操作數(shù)。//記錄運(yùn)算符 int m_IsCheckPoint。amp。 m_begin = 。 Result 函數(shù)實(shí)現(xiàn)代碼如附錄 3 所示。 經(jīng)過(guò)設(shè)計(jì)的各個(gè)環(huán)節(jié),從中學(xué)到了很多,鍛煉了自己系統(tǒng)的設(shè)計(jì)的能力,從系統(tǒng)的需求到系統(tǒng)的功能,到系統(tǒng)的測(cè)試,到系統(tǒng)的發(fā)布,可以掌握到一個(gè)完全的過(guò)程,這樣對(duì)我們以后在工作中或?qū)W習(xí)中得到很好的鍛煉,為用 VC++編輯軟件奠定基礎(chǔ)。 ()。 } //當(dāng)鼠標(biāo)在按鈕的客戶區(qū)內(nèi)彈起時(shí) ,改變按鈕狀態(tài) void CAdvButton::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CRect rect。 //1:focus state Invalidate()。amp。 } //在按鈕控件客戶區(qū)的繪置函數(shù) ,也是實(shí)現(xiàn)所有高 級(jí)控件的關(guān)鍵 void CAdvButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) { //get client rect GetClientRect(amp。 switch (m_State) //根據(jù)按鈕不同的狀態(tài) ,創(chuàng)建不同的畫筆 { case 0: pPen = new CPen(PS_SOLID,1,DefaultColor)。 } pDCSetBkMode(TRANSPARENT)。 pDCSetTextColor(TextColor)。 //得到編輯控件設(shè)備環(huán)境變量 pDCSetBkMode(TRANSPARENT)。 // m_MenuLoadMenu(IDR_MENU)。 //得到對(duì)話框的窗口區(qū)域矩形 //設(shè)置對(duì)話框窗口位置與大小 。rect)。 //設(shè)置編輯框窗口位置與大小 :寬為 155 像素 ,高度不變 (NULL,155,(),SWP_NOMOVE|SWP_NOZORDER)。 UpdateData(TRUE)。 if (!m_IsCheckPoint) //如果小數(shù)點(diǎn)按下了 (m_StrBegin+.)。 } void CCalculatorDlg::AdvButton5()//按下 5 鍵時(shí)的處理函數(shù) { m_StrBegin = m_StrBegin+5。 else //如果小數(shù)點(diǎn)沒(méi)有按下 (m_StrBegin)。 //清除小數(shù)點(diǎn)標(biāo)記 m_begin = atof(m_StrBegin)。 return。 case 7: //處理 =號(hào) break。 break。 return。 return。 default: // m_end = m_begin。 //顯示結(jié)果 } 。 } m_begin = 。 for(i=m_end1。 break。 break。 break。 break。 break。 if (!m_IsCheckPoint) //如果小數(shù)點(diǎn)按下了 (m_StrBegin+.)。 else //如果小數(shù)點(diǎn)沒(méi)有按下 (m_StrBegin)。 } void CCalculatorDlg::AdvButton3()//按下 3 鍵時(shí)的處理函數(shù) { m_StrBegin = m_StrBegin+3。 DtoR=(2*PI)/360。rect)。 //更改菜單項(xiàng)顯示文本 m_MenuModifyMenu(ID_EXTEND,MF_BYCOMMAND|MF_STRING,ID_EXTEND,擴(kuò)展 )。wndTop,0,0,186,(),SWP_NOMOVE|SWP_NOZORDER)。 //將菜單添加到對(duì)話框 return TRUE。 //創(chuàng)建白色畫刷 pDCFillRect(amp。m_ClientRect,DT_SINGLELINE|DT_CENTER|DT_VCENTER)。 pDCEllipse(amp。 case 1: pPen = new CPen(PS_SOLID,1,FocusColor)。 //得到窗口的有效矩形區(qū)域 ()。 Invalidate()。 } //計(jì)時(shí)器消息的響應(yīng)函數(shù) void CAdvButton::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default CRect rect。rect)。m_ClientRect)。 當(dāng)然,本論文所采取的解決問(wèn)題的方法并不是非常完善的,在今后的學(xué)習(xí)、工作中,將繼續(xù)研究并改進(jìn)。 測(cè)試環(huán)境 測(cè)試環(huán)境如下: 測(cè)試系統(tǒng) : Windows XP 測(cè)試工具 : Visual Studio C++ 實(shí)例測(cè)試結(jié)果 首先,在運(yùn)行界面測(cè)試簡(jiǎn)單運(yùn)算是否能正常運(yùn)算,輸入“ 34+87=”見(jiàn)結(jié)果圖 51 所示,觀察計(jì)算結(jié)果是否正確屬實(shí) 圖 51“ 34+78=” 的運(yùn)行 結(jié)果 其次,展開(kāi)計(jì)算器,選中“度數(shù)”輸入“ 30”單擊“ sin”觀察結(jié)果,見(jiàn)圖 52 所示 圖 52“ sin30176。 //清 0 m_bit = 0。 (m_StrBegin)。以數(shù)字鍵盤被單擊為例,實(shí)現(xiàn)代 碼如下: //以按鍵 0 的響應(yīng)為例,其余 0— 9 的響應(yīng)完全類似 m_StrBegin = m_StrBegin+0。實(shí)現(xiàn)代碼如下: // 頭文件 private: char m_buffer[100]。 //屏蔽掉此句代碼 } (5)添加背景圖 為對(duì)話框添加背景圖,以增加界面的美觀性。首先得到對(duì)話框的當(dāng)前位置,將其指定為新的寬度,但高度不變。wndTop,0,0,186,245,SWP_NOMOVE|SWP_NOZORDER)。再調(diào)用 SetMenu 函數(shù),將菜單添加到對(duì)話框上,代碼如附錄 3 所示。//數(shù)據(jù)交換函數(shù) //}}AFX_VIRTUAL virtual BOOL OnInitDialog()。首先,得到編輯控件客戶區(qū)的矩形域;其次,得到編輯控件客戶區(qū)的設(shè)備環(huán)境變量;接著,用指定的畫刷填充客戶區(qū),并且用指定的顏色繪制顯示文本。 //設(shè)置編輯控件顯示文本 protected: //{{AFX_MSG(CAvEdit) Afx_msg void OnPaint()。其效果如圖 47 所示。并且,按鈕的客戶區(qū)域已經(jīng)是一個(gè)橢圓,而不再是一個(gè)矩 形。 實(shí)現(xiàn)客戶區(qū)的 繪置函數(shù) DrawItem。當(dāng)鼠標(biāo)坐標(biāo)位置落于窗口客戶區(qū)域內(nèi),且當(dāng)前按鈕控件處于選中狀態(tài)時(shí),將按鈕狀態(tài)標(biāo)識(shí)設(shè)為非選中狀態(tài),即將 m_State 設(shè)為 1。 //得到按鈕客戶區(qū)域的屏幕坐標(biāo)位置 GetCursorPos(amp。實(shí)現(xiàn)代碼如下: //修改按鈕控件風(fēng)格 ModifyStyle(0,BS_OWNERDRAW|BS_PUSHBUTTON); 要使按鈕能對(duì)鼠標(biāo)的移動(dòng)與單擊作出不同的變化,那么按鈕就需要時(shí)刻知道鼠標(biāo)的位置與動(dòng)作。 //當(dāng)前鼠標(biāo)位置 BOOL m_IsTimerOn。 圖 42 添加菜單資源 將添加的菜單資源 的 ID 更改為 IDR_MENU。刪除對(duì)話框中默認(rèn)的 OK 和 Cancel 按鈕。 Lac
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1