第一篇:中南大學c++計算器實踐報告
中南大學
本科生課程設計(實踐)任務書、設計報告
(C++程序設計)
題目
學生姓名 指導教師
學院
專業班級 學生學號 科學計算器應用程序嚴暉 材料科學與工程學院 1206
計算機基礎教學實驗中心 2013年 7 月5日
第二篇:中南大學(C++實踐報告)
中南大學
本科生課程設計(實踐)設計報告(程序設計基礎)題目
MFC課程設計
學生學號
學生姓名
指導教師
學院
專業班級
計算機基礎教學實驗中心 2015年
06月 14
日
一、引言
MFC(Microsoft Foundation Class Library, 微軟基礎類庫)是微軟基Windows平臺下的C++類庫集合。MFC包含了所有與系統相關的類,其中封裝了大多數的API(Application Program Interface)函數,提供了應用程序框架和開發應用程序的工具,如應用程序向導、類向導、可視化資源設計等高效工具,用消息映射處理消息響應,大大簡化了Windows應用程序的開發工作,使程序員可以從繁重的編程工作中解脫出來,提高了工作效率。
程序設計實踐旨在課堂學習的基礎上幫助學生掌握C++應用系統的開發方法和技巧。在系統學習完《C++程序設計》這門課程后,通過實踐對幾個小型C++應用程序實例設計與實現過程分析,幫助學生利用C++開發應用系統的一般方法和步驟,掌握MFC的基本知識。
這次實踐采用學生上機與老師集體輔導的方式,以完成老師下發的《C++語言課程設計任務書》為要求和目的,運用課堂上學習的C++基礎知識,采用Visual C++ MFC編程系統,以全新的角度和感知去認識C++語言在編程方面的優越性。在實踐過程中,基于對話框的MFC應用程序,達到了解基本控件,如靜態文本框、命令按鈕、編輯框、列表框、組合框等的使用的目的。還有理解Windows應用程序采用“消息傳遞、事件驅動”的運行機制。本次實踐的任務主要分為兩個部分: 使用Visual C++ MFC編程實現以下功能:
輸入一元二次方程ax2+bx+c=0 的系數a、b、c,計算并輸出兩個根x1、x2.編寫一個能對列表框進行項目添加、修改和刪除操作的應用程序。編寫一個程序,繪制-2π~2π之間的sin曲線。用定時器控制蝴蝶在窗口中飛舞。等共10道。
將第一部分中選擇3~5題,做一個綜合程序,要求有登陸界面和調用各部分的功能。總體設計
本次實踐的主要目的就是了解和掌握運用MFC編程的一般思想和具體的操作步驟。實踐主要是基于MFC的多文檔對話框和單文檔視圖,通過實踐完成第一大部分的任務之后,還要完成第二部分的綜合題目。第二部分的任務由學生自主發揮,自主找資料,詢問同學和老師。第一部分的任務比較簡單,具體的就不再描述。關于第二部分,我做了一個基于對文檔對話框。首頁為一個登陸頁面,需要輸入用戶名和密碼才能登陸,登陸后的頁面是把第一大部分的幾個題目連接起來。達到預覽的目的。
三、詳細設計
實踐前首先要認識AppWizard的工作環境。其項目工作區一共有三個選項卡分別為“ResourceView”“ClassView”“FileView”,中間是對話框設計界面,右邊是控件工具欄。實踐過程中,我們是先完成第一大部分的任務。雖然在第一次上機實踐前,我仔細地閱讀了老師給我們下發的資料,并且結合《C++程序設計實踐教程》了解相關知識,但是在實踐時結果不理想。主要是對創建對話框程序的步驟沒有掌握。在經過幾次嘗試失敗后,總結其一般步驟為:(1)建立基于對話框的MFC應用程序框架;(2)放置控件;(3)設置控件屬性;(4)為控件連接變量,即為控件命名;(5)添加并且編寫消息處理函數。
基于對話框的MFC程序設計,對各種控件的了解和使用顯得特別重要。這里就不一一詳細介紹它們的功能??丶刂茩谝粋€有26個控件圖標,每一個圖標都可以看做一個對象,消息便是通過函數對它們進行操作。每一個控件都有兩個重要而且必不可少的基本屬性:ID和標題。ID便是該控件的標識,某些函數需要通過ID對控件進行操作。了解一定相關知識后,對課程實踐有了很大的幫助。其中“輸入一元二次方程ax2+bx+c=0 的系數a、b、c,計算并輸出兩個根x1、x2”這個題目比較復雜,而且與C++連續很緊密。其中的有這樣的語句m_x1=(-b+sqrt(b*b-4*a*c))/(2*a);m_x2=(-b-sqrt(b*b-4*a*c))/(2*a),這就是我們在課堂上學習的C++基本語句,在實踐過程中考驗學生的靈活運用能力。完成這個題目的關鍵是把每個編輯框(控件)連接好變量和選的數據類型,接下來的就是編寫消息處理函數。這道題很全面地體現了MFC的“消息傳遞、事件驅動”的思想,在操作步驟方面也在很多地方得到了實踐。
MFC編程除了基于多文本對話框以外,還有很重要的一部分是基于單文檔界面的應用程序,如Windows自帶的Notepad程序。在本次實踐的第一大部分的后5個小題就是基于單文檔的。那么首先要對其有一定的了解:文檔/視圖結構的思想是將數據的管理與顯示分離,其中文檔用于管理應用程序的數據,而視圖是用戶界面,用于顯示、打印文檔中的數據,并管理與用戶的交互。SDI具有文檔/視圖結構的應用程序框架,該框架包括應用程序類、窗口框架類、文檔類和視圖類,編程的任務是在文檔類和視圖類中添加適當的代碼。其中文檔類中一個重要的成員函數是OnNewDocument(),用戶在此添加代碼完成對數據的初始化;而視圖類中最重要的成員函數是OnDraw(),通過在該函數中添加代碼實現窗口內容的輸出。本次實踐是對單文檔的典型實例,包括: ? 利用畫筆、畫刷等工具及位圖處理的方法實現文字和圖形的輸出。? 利用定時器控件制作動畫程序。? 對鼠標和鍵盤進行編程的基本方法。
? 文件、字體、顏色等幾種通用對話框的使用方法及自定義對話框的設計、調用方法。? 菜單的設計方法。
雖然進行充分的準備,實踐中還是遇到了很多的困難和問題。在完成題目“用定時器控制蝴蝶在窗口中飛舞”時,主要的問題就是在插入蝴蝶圖片的,嘗試了幾次都沒有編譯成功。最終再詢問同學后,才知道是要把GIF格式的圖片分割成一幀一幀,然后才能插入。最后用定時器控制,達到動態的效果。在完成了第一大部分的任務后,第二部分的綜合題是一個不小的挑戰對我來說。要靠自己去網上或者圖書館查找資料。在經過一番準備后,最終決定做一個相對簡單的基于多文檔對話框的登陸界面,把幾個原來的程序文件連接起來。但是在這個過程中,完全要靠自己一步一步去探索,當然也遇到了各種各樣的困難和挑戰。關鍵是在連接各部分對話框,經過不斷的實驗,不斷的調試程序,總結的操作步驟如下:(1)創建工程,MFC Application(exe),工程命名按要求命名;(2)工程建立后有如圖對話框,將途中的靜態文本框和按鈕都刪掉,留下空白,再使用靜態文本,編輯框,按鈕和靜態圖片重新排版,并進行命名。注意靜態圖框應該第一個布置,不然運行時圖片會將其他控件覆蓋;(3)右擊密碼對應的編輯框,選擇屬性,選樣式中的密碼;(4)在Dialog上右擊選擇插入DIG,重復插入4個,依次作為菜單,題目1,題目2和題目3的對話框,并對其分別創建類,以菜單對話框為例,改一下表頭為“菜單”,在對話框空白處雙擊,點OK創建類,并對其命名(假如命名為MyMenu);(5)回到登錄界面的對話框,雙擊登錄控件,出現如圖按鈕,點擊OK,在頂端添加#include”MyMenu.h”,并OnButton1下添加以下代碼CString c_user,c_password;m_user.GetWindowText(c_user);m_password.GetWindowText(c_password);if(c_user.IsEmpty()||c_password.IsEmpty()){
MessageBox(“用戶名或密碼不能為空”,“用戶登錄信息”);
return;} if(c_user==“123”&&c_password==“123”){
CMyMenu dlg;
dlg.DoModal();//這兩段代碼是用于調用菜單對話框
}
else {
MessageBox(“用戶名或密碼不正確”,“提示”,MB_ICONINFORMATION);
return;對對話框添加背景圖片。在如下圖文件上右擊,選擇引入,然后導入已準備好的bmp格式的圖片,然后選擇登錄界面的靜態圖框右擊,進行如圖操作,這樣圖片就加入了,它會改掉按鈕和編輯框,這沒關系,運行后會顯示出來的;(7)通過以上操作,已經做好了登錄界面和實現和登錄界面與菜單對話框的連接,現在進行菜單對話框的編輯。將原有的按鈕刪除,自己加入按鈕并命名;(8)雙擊題目1,點OK,在代碼頁的頂端加入如圖代碼,并在OnButton1下加入以下代碼 CT1 dlg;dlg.DoModal();其他的按相同操作。
四、設計總結
為期為兩周的課程實踐中,我體會頗多,學到的東西也很多。我懂得了如何運用MFC編寫可視化界面的應用程序,加強了對C++的認識,復習了以前的知識,自己的邏輯思考能力,解決問題的能力也提高了不少。從而對Microsoft Visual C++有了更加深刻的認識和體會!在這次課程設計實踐過程中我還懂得了一些程序開發的重要步驟,總之,在這次課程設計實踐中,我收獲頗豐。
對于對任務的完成情況,第一部分主要按老師的步驟完成。第二部分,由學生自主選題,自主設計完成??偟膩碚f,我個人對自己的完成情況感覺良好。當然,老師的悉心指導和同學的幫助是不能忽視的,在此感謝所有在本次課程設計實踐過程中對我細心指導的老師和不斷鼓勵和幫助我的同學們。
總之,此次課程實踐是對學生動手動腦的一次很好的鍛煉,為學生的今后發展奠定基礎。
第三篇:2017中南大學C++實踐報告MFC編程
中南大學
本科生課程設計(實踐)任務書、設計報告
(大學計算機基礎)
題 目 學生姓名 指導教師 學 院 專業班級 學生學號
MFC程序設計實踐報告
張雪寧 童 鍵 土木工程學院
土木國際1602班 1209160225
計算機基礎教學實驗中心
2017年 6 月 26日
一、任務描述
這次實踐主要采用的是自主學習的方式,在我們已有的C++知識基礎上,自學MFC編程,并完成《C++語言課程設計任務書》中指定任務與要求,在這次實踐中,要求學會使用visual C++ MFC編程來完成《C++語言課程設計任務書》中的任務,任務涵蓋以基本對話框為應用程序的框架,完成單文檔界面(SDI)應用程序。要求學會運用常用的基本控件,如靜態文本框、命令按鈕、編輯框、復選框、列表框、組合框、滾動條等。
本次實踐可分為兩個主要內容:
1、基于對話框的Windows應用程序: 這部分以知識要點掌握與編程實例主輔結合的方式求我們基本掌握基于對話框的應用程序的創建過程,建立基于對話框的 MFC 應用程序框架,放置控件并設置控件屬性,以及為控件連接變量(即為控件命名),添加并且編寫消息處理函數。在這部分實踐中,按照任務書中要求按照任務書所給的實例,要求基本掌握基于對話框的 MFC 應用程序中各常用的基本控件的使用。
2、文檔/視圖結構應用程序: 文檔/視圖結構的思想是將數據的管理與顯示分離,其中文檔用于管理應用程序的數據,而視圖是用戶界面,用于顯示、打印文檔中的數據,并管理與用戶的交互。在這部分實踐過程中,要求對任務書中介紹的幾種SDI結構的典型應用程序來了解其結構及設計方法,學習和實踐了典型應用包括:?利用畫筆、畫刷等工具及位圖處理的方法實現文字和圖形的輸出。?利用定時器控件制作動畫程序。?對鼠標和鍵盤進行編程的基本方法。?文件、字體、顏色等幾種通用對話框的使用方法及自定義對話框的設計、調用方法以及菜單的設計方法。
3、多文檔界面(MDI)應用程序:這類程序可以同時打開多個文檔并進行處理,處理的過程中很容易地進行切換。要求將1、2兩點中所涉及到的程序,任選3到5個,做成一個綜合程序,要求通過菜單調用各部分功能。可自行組織和發揮,使其安排合適。
二、系統設計思想
對話框是一種特殊類型的窗口,絕大多數Windows程序都通過對話框與用戶進行交互。在Visual C++中,對話框既可以單獨組成一個簡單的應用程序,又可以成為文檔/視圖結構程序的資源。
文檔/視圖結構的思想是將數據的管理與顯示分離,其中文檔用于管理應用程序的數據,而視圖是用戶界面,用于顯示、打印文檔中的數據,并管理與用戶的交互。SDI具有文檔/視圖結構的應用程序框架,該框架包括應用程序類、窗口框架類、文檔類和視圖類,編程的任務是在文檔類和視圖類中添加適當的代碼。其中文檔類中一個重要的成員函數是OnNewDocument(),用戶在此添加代碼完成對數據的初始化;而視圖類中最重要的成員函數是OnDraw(),通過在該函數中添加代碼實現窗口內容的輸出。
三、系統功能
編寫的不同的小程序擁有不同的功能。以下是不同小程序對應的功能。
1、單擊“復制”按鈕,則把上面的編輯框中的內容復制到下面的編輯框中;單擊“結束”按鈕,則退出程序的運行。
2、輸入一元二次方程 ax2 +bx+c=0 的系數 a、b、c,計算并輸出兩個根 x1、x2。
3、對列表框進行項目添加、修改和刪除操作的應用程序
4、選定了“日期”或“時間”復選框,則在對應的只讀編輯框中顯示系統當前日期或時間。
5、擊“確定”按鈕后,在列表框中顯示選擇的信息。
6、-2π~2π 之間的 sin 曲線。
7、按下鼠標右鍵畫圓,按住鼠標左鍵移動畫線。
8、定時器控制蝴蝶在窗口中飛舞
9、用戶單擊左鍵,則彈出輸入成績對話框,選擇 OK 后平均成績和總分在窗口的客戶區輸出。
10、設計如圖所示的菜單,并編寫相應用的消息處理函數。
四、設計過程
以第一題為例,介紹其設計過程。
(1)建立基于對話框的 MFC 應用程序框架。
①選擇“文件 | 新建”命令;
②在“工程”選項卡中,選定“ MFC AppWizard(exe)”,輸入工程名稱,選擇“確定”。
③選定“ D 基本對話”,即創建基于對話框的應用程序,選擇“完成”。
(2)放置控件
刪除原有的控件。
放置所需的控件:兩個編輯框和兩個命令按鈕。方法是:先單擊控件工具欄上的控件圖標選擇所需的控件,然后在對話框設計界面上按住鼠標左鍵拖拉出所需要的大小后釋放。(3)設置控件屬性
選定控件,在其快捷菜單中選擇“屬性”命令,在彈出如圖所示的對話框中進行設置。上面編輯框的屬性設置為:
選定“ Multiline ”復選框,編輯框中可以輸入多行文本。
選定“ Vertical scroll ”和“ Auto Vscroll ”,編輯框將有垂直滾動條。
選定“ Want return ”。
下面編輯框屬性的設置與上面編輯框基本一樣,只是可以不選定“ Want return ”。(4)連接變量
為控件連接變量就是為控件起一個名稱。每一個控件都是一個對象,調用 MFC 類庫中的函數都是通過對象來實現的。為 IDC_EDIT1 連接變量 m_e1 的步驟為:
①在 IDC_EDIT1 編輯框的快捷菜單中選“建立類向導”,彈出 “ MFC ClassWiard ”對話框。
②在“ Member Variables ”中,選定“ IDC_EDIT1 ”,再選擇“ Add Variable ”命令。
③在 “ Add Member Variable ”對話框中輸入以下的數據:
Member Variable name(內存變量名): m_e1 ;
Category(類別): Control ;
Variable type(類型):Cedit
用同樣的方法再為 IDC_EDIT2 連接一個變量 m_e2。
(5)添加并且編寫消息處理函數。
本例要求單擊“復制”按鈕后上面編輯框中的內容復制到下面的編輯框中。也就是說,在程序運行時,在“復制”按鈕上發生單擊事件后,Windows 向對話框發出了一個 BN_CLICKED 消息,CTESTDlg 類應有一個處理該消息的函數。
添加和編寫這個消息處理函數的過程是:
①雙擊“復制”按鈕,彈出的“ Add Member Function ”對話框,輸入函數名(缺省函數名為 OnButton1),選擇“確定”按鈕后,添加了一個空函數。另一個方法是在“ MFC ClassWiard ”對話框“ Message Maps ”選項卡中,選定 IDC_BUTTON1 和 BN_CLICKED 消息,然后選擇“ Add Function ”按鈕即可。
五、運行情況
經過多次的修改和完善,編譯后各程序均能夠正常運行,并且很好的發揮其設計初衷的作用。與預想中的系統功能相符。
六、心得體會
本次的MFC實踐課,讓我收獲了很多。因為實踐課的時間很緊張,所以一開始顯得有點無從下手,甚至有害怕和畏難的情緒存在,對自己很沒有信心。即使已經有了一個學期的C++基礎知識的學習,但MFC對于我們來說任然是一個嶄新的領域。我覺得實踐課帶給我們的,不僅僅是如何使用Visual C++進行MFC編程這一項技能,更是如何自我學習與自我提升的又一次實踐。通過這次實踐,我懂得了如何用 MFC編寫可視化界面的應用程序,加強了對C++的認識,鞏固了已有的知識,從而提升了邏輯思考能力。也讓我們對Microsoft Visual C++ 6.0又有了更進一步的認識和體會。
七、參考文獻
1、楊長興,劉衛國.C++程序設計.北京:中國水利水電出版社,2012
2、劉衛國,楊長興.C++程序設計實踐教程.北京:中國水利水電出版社,2012
3、MFC編程基礎
第1章 基于對話框的Windows應用程序
第2章 文檔/視圖結構應用程序
第四篇:中南大學C++題庫總結版
下列字符串中可以用作C++標識符的是
A 2009var B goto C test-2009 D _123 參考答案 D 下列字符串常量中,錯誤的表示是__________。A ””Yes” or”No” ” B “abcdn” C ’ABC’ D “tOK!” 參考答案 C 定義變量int a=6,則a++的值是__________。A 7 B 6 C 5 D 4 參考答案 B 已知字母A的ASCII碼為65,則表示字符常量A錯誤的是__________。A '101' B 'x41' C 65 D “A” 參考答案 D 下列常量中不能作為c++常量的是__________。A 0382 B 0xB4 C.5e-2 D 123 參考答案 A 下列哪個是C++語言的不正確的標識符__________? A _No1 B Ab1 C bgc D int 參考答案 D 下列哪個是C++語言的合法的字符常量__________。
A ” 主站蜘蛛池模板: 一本大道东京热无码一区| 亚洲午夜未满十八勿入网站| 日本在线 | 中文| 久久―日本道色综合久久| 最新国产麻豆aⅴ精品无码| av无码精品一区二区三区四区| 香蕉久久av一区二区三区| 色婷婷av久久久久久久| 亚洲午夜福利精品无码不卡| 国产精品国产三级国产av剧情| 蜜桃久久精品成人无码av| 狠狠躁夜夜躁人人爽天天不卡软件| 美女毛片一区二区三区四区| 国内露脸中年夫妇交换| 国产啪精品视频网站| 抽插丰满内射高潮视频| 亚洲日本一本dvd高清| 久久久中日ab精品综合| 大肉大捧一进一出好爽视频动漫| 亚洲日韩精品a∨片无码加勒比| 无码精品国产va在线观看dvd| 无码精品视频一区二区三区| 亚洲av日韩av综合aⅴxxx| 熟妇人妻无乱码中文字幕真矢织江| 精品麻豆剧传媒av国产| 久久99热这里只有精品国产| 少妇熟女久久综合网色欲| 四虎永久地址www成人久久| 国产成人无码综合亚洲日韩| 欧美老肥婆牲交videos| 国产白丝无码视频在线观看| 亚洲综合一区二区三区无码| 99精品视频在线观看| 国产精品无码翘臀在线观看| 永久久久免费人妻精品| 99re6这里有精品热视频| 狠狠久久永久免费观看| 色窝窝无码一区二区三区| 狠狠色噜噜狠狠狠777米奇小说| 免费看国产成人无码a片| 免费精品国偷自产在线2020|