- C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)教程與水平考試指導(dǎo)
- 肖捷 陳雪芳
- 2768字
- 2019-09-30 13:17:56
1.2 Visual C++語(yǔ)言集成環(huán)境
C++語(yǔ)言是在C語(yǔ)言的基礎(chǔ)上發(fā)展而來(lái),它增加了面向?qū)ο蟮木幊?,成為?dāng)今最流行的一種程序設(shè)計(jì)語(yǔ)言。Visual C++是微軟公司開(kāi)發(fā)的,面向Windows編程的C++語(yǔ)言工具。它不僅支持C++語(yǔ)言的編程,也兼容C語(yǔ)言的編程。
1.2.1 啟動(dòng)VC++
選擇“開(kāi)始”→“所有程序”→Microsoft Visual Studio 6.0→Microsoft Visual C++ 6.0命令,可啟動(dòng)VC++,屏幕上將顯示圖1-2所示的窗口。
1.2.2 新建/打開(kāi)源程序
新建:如果源程序文件不存在,則選擇“文件”→“新建”命令,打開(kāi)圖1-3所示的“新建”對(duì)話框,單擊“文件”標(biāo)簽,選中C++ Source File選項(xiàng),單擊“確定”按鈕,新建一個(gè)源程序文件編輯窗口,然后在編輯窗口中輸入源程序。

圖1-2 VC++窗口
打開(kāi):如果源程序文件已經(jīng)存在,則選擇“文件”→“打開(kāi)”命令,打開(kāi)“打開(kāi)”對(duì)話框,查找指定的源程序文件,單擊“打開(kāi)”按鈕,打開(kāi)一個(gè)源程序文件編輯窗口,然后在編輯窗口中編輯源程序。

圖1-3 新建文件
1.2.3 保存源程序
在VC++的編輯窗口完成源程序的編輯后,可以使用“文件”→“保存”命令保存文件,如圖1-4所示。注意:保存文件時(shí),應(yīng)指定源程序文件的擴(kuò)展名為.c,否則系統(tǒng)將按C++源程序文件的擴(kuò)展名.cpp來(lái)保存,例如,用test.c作為源程序文件名。也可以使用其他方式保存文件。

圖1-4 保存文件
1.2.4 執(zhí)行程序
首先必須經(jīng)編譯連接生成可執(zhí)行文件,然后才能執(zhí)行。選擇“組建”→“組建”命令,如圖1-5所示,也可按【F7】鍵。在編譯連接過(guò)程中系統(tǒng)將保存修改后的程序,并生成一個(gè)同名的工作區(qū)。

圖1-5 編譯連接菜單
如果程序有錯(cuò)誤,將在圖1-6所示的信息窗口中顯示內(nèi)容:1 error(s),0 warning(s),其中:error(s)表示致命錯(cuò)誤,warning(s)表示警告錯(cuò)誤。警告錯(cuò)誤不影響程序執(zhí)行,但致命性錯(cuò)誤必須糾正。糾正錯(cuò)誤時(shí),只需雙擊某行出錯(cuò)信息,程序窗口中會(huì)指示對(duì)應(yīng)出錯(cuò)位置,根據(jù)信息窗口的提示逐一糾正,然后重新編譯連接,直到完全正確。

圖1-6 編譯連接出錯(cuò)
如果程序沒(méi)有錯(cuò)誤,將在圖1-7所示的信息窗口中顯示內(nèi)容:0 error(s),0 warning(s)。表示編譯連接過(guò)程通過(guò),并生成可執(zhí)行文件。

圖1-7 編譯連接正確
程序編譯連接通過(guò)后,選擇“組建”→“執(zhí)行”命令(或按【Ctrl+F5】組合鍵),執(zhí)行程序。當(dāng)程序運(yùn)行時(shí),系統(tǒng)將自動(dòng)彈出圖1-8所示的程序運(yùn)行窗口。按任意鍵將關(guān)閉運(yùn)行窗口。

圖1-8 程序運(yùn)行窗口
注意:在VC++中,對(duì)于程序的編譯、連接和執(zhí)行操作,系統(tǒng)還提供了“編譯微型條”工具條,如圖1-9所示。

圖1-9 “編譯微型條”工具條
1.2.5 關(guān)閉程序工作區(qū)
當(dāng)一個(gè)程序編譯連接后,VC++系統(tǒng)自動(dòng)產(chǎn)生相應(yīng)的工作區(qū),以完成程序的運(yùn)行和調(diào)試。若想執(zhí)行第二個(gè)程序時(shí),必須關(guān)閉前一個(gè)程序的工作區(qū),然后通過(guò)新的編譯連接,產(chǎn)生第二個(gè)程序的工作區(qū)。否則運(yùn)行的將一直是前一個(gè)程序。
VC++提供關(guān)閉程序工作區(qū)的功能,如圖1-10(a)所示,選擇“文件”→“關(guān)閉工作區(qū)”命令,出現(xiàn)圖1-10(b)所示的對(duì)話框,若單擊“否”按鈕,則只關(guān)閉工作區(qū),保留源程序窗口。若單擊“是”按鈕將同時(shí)關(guān)閉源程序窗口。一般單擊“是”按鈕。

圖1-10 關(guān)閉程序工作區(qū)
1.2.6 命令行參數(shù)處理
VC++是一個(gè)基于窗口操作的C++系統(tǒng),沒(méi)有提供命令行參數(shù)功能,需要在Windows的“MS-DOS方式”窗口中以命令方式實(shí)現(xiàn)。具體步驟參考如下:
①正確編譯連接,生成可執(zhí)行程序。
②通過(guò)“我的電腦”或“資源管理器”找到所運(yùn)行的C源程序(設(shè)為test.c)。
③進(jìn)入debug文件夾(它包含test.c程序的可執(zhí)行文件test.exe)。
④執(zhí)行“開(kāi)始”→“運(yùn)行”菜單,輸入command,然后單擊“確定”按鈕。
⑤在打開(kāi)的“MS-DOS方式”窗口中輸入:test參數(shù)1參數(shù)2……,帶參數(shù)運(yùn)行程序。
1.2.7 程序調(diào)試
在學(xué)習(xí)C語(yǔ)言程序設(shè)計(jì)過(guò)程中,需要逐步培養(yǎng)調(diào)試程序的能力,掌握程序調(diào)試的基本方法和技巧。這些都不可能靠幾句話講清楚,要靠自己在上機(jī)中不斷摸索總結(jié),可以說(shuō)是一種經(jīng)驗(yàn)積累。下面對(duì)程序調(diào)試常用操作方法做簡(jiǎn)單介紹,對(duì)于其他的操作讀者可以自行試驗(yàn),或參考有關(guān)Visual C++手冊(cè)。
1.程序執(zhí)行到中途暫停以便觀察階段性結(jié)果
方法一:使程序執(zhí)行到光標(biāo)所在的那一行暫停。
①在需要暫停的行上單擊,定位光標(biāo)。例如,在圖1-11中將光標(biāo)定位在for語(yǔ)句所在行。
②選擇“組建”→“開(kāi)始調(diào)試”→Run to Cursor命令(或按【Ctrl+F10】組合鍵),程序?qū)?zhí)行到光標(biāo)所在行暫停。如果把光標(biāo)移動(dòng)到后面的某個(gè)位置,再按【Ctrl+F10】組合鍵,程序?qū)漠?dāng)前的暫停點(diǎn)繼續(xù)執(zhí)行到新的光標(biāo)位置,第二次暫停。

圖1-11 執(zhí)行到光標(biāo)所在行暫停
方法二:在需暫停的行上設(shè)置斷點(diǎn)。
①在需設(shè)置斷點(diǎn)的行上單擊,定位光標(biāo)。
②單擊“編譯微型條”工具條中最右面的按鈕,如圖1-12所示(或按【F9】鍵),設(shè)置或取消斷點(diǎn)。注意:被設(shè)置了斷點(diǎn)的行前面會(huì)出現(xiàn)一個(gè)紅色圓點(diǎn)標(biāo)志。

圖1-12 設(shè)置斷點(diǎn)
注意:不管是通過(guò)光標(biāo)位置還是斷點(diǎn)設(shè)置,其所在的程序行必須是程序執(zhí)行的必經(jīng)之路,亦即不應(yīng)該是分支結(jié)構(gòu)中的語(yǔ)句,因?yàn)樵撜Z(yǔ)句在程序執(zhí)行中受到條件判斷的限制,有可能因條件的不滿足而不被執(zhí)行。這時(shí)程序?qū)⒁恢眻?zhí)行到結(jié)束或下一個(gè)斷點(diǎn)為止。
2.設(shè)置需觀察的結(jié)果變量
按照上面的操作,使程序執(zhí)行到指定位置時(shí)暫停,目的是為了查看有關(guān)的中間結(jié)果。在圖1-13中,左下角窗口中系統(tǒng)自動(dòng)顯示了有關(guān)變量的值,其中:變量a和b的值分別是1、100,而變量i、s的值是不正確的,因?yàn)樗鼈冞€未被賦值。圖中左側(cè)的箭頭表示當(dāng)前程序暫停的位置。如果還想增加觀察變量,可在圖中右下角的“名稱”文本框中填入相應(yīng)變量名。

圖1-13 觀察結(jié)果變量
3.單步執(zhí)行
當(dāng)程序執(zhí)行到某個(gè)位置時(shí)發(fā)現(xiàn)結(jié)果已經(jīng)不正確,說(shuō)明在此之前肯定有錯(cuò)誤存在。如果能確定一小段程序可能有錯(cuò),先按上面的步驟暫停在該小段程序的頭一行,再輸入若干個(gè)查看變量,然后單步執(zhí)行,即一次執(zhí)行一行語(yǔ)句,逐行檢查下來(lái),看看到底是哪一行造成結(jié)果出現(xiàn)錯(cuò)誤,從而確定錯(cuò)誤語(yǔ)句并予以糾正。
單擊“調(diào)試”工具條中的Step Over按鈕或按【F10】鍵,如圖1-14所示。如果遇到自定義函數(shù)調(diào)用,想進(jìn)入函數(shù)進(jìn)行單步執(zhí)行,單擊Step Into按鈕
或按【F11】鍵。當(dāng)想結(jié)束函數(shù)的單步執(zhí)行,可單擊Step Out按鈕
或按【Shift+F11】組合鍵。對(duì)不是函數(shù)調(diào)用的語(yǔ)句來(lái)說(shuō),【F11】鍵與【F10】鍵的作用相同。但一般對(duì)系統(tǒng)函數(shù)不要使用【F11】鍵。

圖1-14 “調(diào)試”工具條
4.斷點(diǎn)的使用
使用斷點(diǎn)可以使程序暫停。一旦設(shè)置了斷點(diǎn),不管是否還需要調(diào)試程序,每次執(zhí)行程序都會(huì)在斷點(diǎn)上暫停。因此調(diào)試結(jié)束后應(yīng)取消所定義的斷點(diǎn)。方法是先把光標(biāo)定位在斷點(diǎn)所在行,再單擊“編譯微型條”工具條中最右面的按鈕或按【F9】鍵,該操作是一個(gè)開(kāi)關(guān),單擊一次是設(shè)置,單擊二次是取消設(shè)置。如果有多個(gè)斷點(diǎn)想全部取消,可選擇“編輯”→“斷點(diǎn)”命令,屏幕上會(huì)顯示Breakpoints對(duì)話框,如圖1-15所示,窗口下方列出了所有斷點(diǎn),單擊Remove All按鈕,將取消所有斷點(diǎn)。
斷點(diǎn)常用于調(diào)試較長(zhǎng)程序,以避免使用Run to Cursor或【Ctrl+F10】組合鍵功能時(shí),經(jīng)常要把光標(biāo)定位到不同的地方。而對(duì)于長(zhǎng)度為上百行的程序,要尋找某位置并不太方便。
如果一個(gè)程序設(shè)置了多個(gè)斷點(diǎn),按一次按【F5】鍵會(huì)暫停在第一個(gè)斷點(diǎn),再按一次【F5】鍵會(huì)繼續(xù)執(zhí)行到第二個(gè)斷點(diǎn)暫停,依次執(zhí)行下去。

圖1-15 Breakpoints對(duì)話框
5.停止調(diào)試
選擇“調(diào)試”→Stop Debugging命令(或【Shift+F5】組合鍵)可以結(jié)束調(diào)試,從而回到正常的運(yùn)行狀態(tài)。
- Learn TypeScript 3 by Building Web Applications
- Kibana Essentials
- Spring 5.0 By Example
- Android Jetpack開(kāi)發(fā):原理解析與應(yīng)用實(shí)戰(zhàn)
- Docker技術(shù)入門與實(shí)戰(zhàn)(第3版)
- Game Programming Using Qt Beginner's Guide
- Mastering OpenCV Android Application Programming
- 零基礎(chǔ)玩轉(zhuǎn)區(qū)塊鏈
- 基于Java技術(shù)的Web應(yīng)用開(kāi)發(fā)
- 琢石成器:Windows環(huán)境下32位匯編語(yǔ)言程序設(shè)計(jì)
- C#程序設(shè)計(jì)基礎(chǔ):教程、實(shí)驗(yàn)、習(xí)題
- H5頁(yè)面設(shè)計(jì):Mugeda版(微課版)
- Python時(shí)間序列預(yù)測(cè)
- 快人一步:系統(tǒng)性能提高之道
- Web Development with MongoDB and Node(Third Edition)