數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)模板.doc_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)模板.doc_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)模板.doc_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)模板.doc_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)模板.doc_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余21頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì)報(bào)告題 目: 學(xué) 院: 專業(yè)班級(jí): 學(xué)生姓名: 指導(dǎo)教師: 2016 年06 月2 9日目 錄一、課程設(shè)計(jì)目的3二、課程設(shè)計(jì)步驟3三、課程設(shè)計(jì)內(nèi)容4四、課程設(shè)計(jì)報(bào)告6五、提交材料6六、考核方式與評(píng)分標(biāo)準(zhǔn)7七、參考文獻(xiàn)8附錄1 齊齊哈爾大學(xué)軟件工程系課程設(shè)計(jì)說(shuō)明書(shū)(報(bào)告)撰寫(xiě)規(guī)范926一、課程設(shè)計(jì)目的及要求數(shù)據(jù)結(jié)構(gòu)與算法分析課程設(shè)計(jì)培養(yǎng)計(jì)算機(jī)專業(yè)的學(xué)生的算法程序設(shè)計(jì)能力。通過(guò)上機(jī)實(shí)驗(yàn),可以培養(yǎng)學(xué)生程序設(shè)計(jì)的方法和技巧,提高學(xué)生編制清晰、合理、可讀性好的系統(tǒng)程序的能力,加深對(duì)數(shù)據(jù)結(jié)構(gòu)課程和算法的理解。使學(xué)生更好地掌握數(shù)據(jù)結(jié)構(gòu)的基本概念、基本原理、及基本算法,具有分析算法、設(shè)計(jì)算法、構(gòu)造和開(kāi)發(fā)較復(fù)雜算法的基本能力。要求學(xué)生能綜合運(yùn)用數(shù)據(jù)結(jié)構(gòu)與算法分析的相關(guān)知識(shí),培養(yǎng)學(xué)生上機(jī)解決一些與實(shí)際應(yīng)用結(jié)合緊密的、規(guī)模較大的問(wèn)題的能力,通過(guò)分析、設(shè)計(jì)、編碼、調(diào)試等各環(huán)節(jié)的訓(xùn)練,使學(xué)生深刻理解、牢固掌握數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計(jì)技術(shù),掌握分析實(shí)際問(wèn)題的能力并提高C語(yǔ)言編程技巧,培養(yǎng)良好的編程風(fēng)格。課程設(shè)計(jì)要求獨(dú)立完成, 題目自選(參考題目見(jiàn)三,也可自擬),但需要老師確認(rèn)(6月16日前定題),一人一題,要求程序有能采用交互式工作方式的界面進(jìn)行功能的選擇,只能用文件存儲(chǔ)數(shù)據(jù)和處理數(shù)據(jù)不能使用數(shù)據(jù)庫(kù)。要求在教學(xué)周的第18周前完成。二、課程設(shè)計(jì)步驟 隨著計(jì)算機(jī)性能的提高,它所面臨的軟件開(kāi)發(fā)的復(fù)雜度也日趨增加。然而,編制一個(gè)10000行的程序的難度絕不僅僅是一個(gè)5000行的程序的兩倍,因此軟件開(kāi)發(fā)需要系統(tǒng)的方法。一種常用的軟件開(kāi)發(fā)方法,是將軟件開(kāi)發(fā)過(guò)程分為分析、設(shè)計(jì)、實(shí)現(xiàn)和維護(hù)四個(gè)階段。雖然數(shù)據(jù)結(jié)構(gòu)課程中的課程設(shè)計(jì)的復(fù)雜度遠(yuǎn)不如(從實(shí)際問(wèn)題中提出來(lái)的)一個(gè)“真正的”軟件,但為了培養(yǎng)一個(gè)軟件工作者所應(yīng)具備的科學(xué)工作的方法和作風(fēng),完成課程設(shè)計(jì)的應(yīng)有如下的5個(gè)步驟:1. 問(wèn)題分析和任務(wù)定義通常,課程設(shè)計(jì)題目的陳述比較簡(jiǎn)潔,或者說(shuō)是有模棱兩可的含義。因此,在進(jìn)行設(shè)計(jì)之前,首先應(yīng)該充分地分析和理解問(wèn)題,明確問(wèn)題要求做什么,限制條件是什么。注意:本步驟強(qiáng)調(diào)的是做什么,而不是怎么做。對(duì)問(wèn)題的描述應(yīng)避開(kāi)算法和所涉及的數(shù)據(jù)類型,而是對(duì)所需完 成的任務(wù)作出明確的回答。例如:輸入數(shù)據(jù)的類型、值的范圍以及輸入的形式;輸出數(shù)據(jù)的類型、值的范圍及輸出的形式;若是會(huì)話式的輸入,則結(jié)束標(biāo)志是什么,是否接受非法的輸入,對(duì)非法輸入的回答方式是什么等等。這一步還應(yīng)該為調(diào)試程序準(zhǔn)備好測(cè)試數(shù)據(jù),包括合法的輸入數(shù)據(jù)和非法形式輸入的數(shù)據(jù)。2. 數(shù)據(jù)類型和系統(tǒng)設(shè)計(jì)在設(shè)計(jì)這一步驟中需分邏輯設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩步實(shí)現(xiàn)。邏輯設(shè)計(jì)指的是,對(duì)問(wèn)題描述中涉及的操作對(duì)象定義相應(yīng)的數(shù)據(jù)類型,并按照以數(shù)據(jù)結(jié)構(gòu)為中心的原則劃分模塊,定義主程序模塊和各抽象數(shù)據(jù)類型;詳細(xì)設(shè)計(jì)則為定義相應(yīng)的存儲(chǔ)結(jié)構(gòu)并寫(xiě)出各過(guò)程和函數(shù)的偽碼算法。在這個(gè)過(guò)程中,要綜合考慮系統(tǒng)功能,使得系統(tǒng)結(jié)構(gòu)清晰、合理、簡(jiǎn)單和易于調(diào)試,抽象數(shù)據(jù)類型的實(shí)現(xiàn)盡可能做到數(shù)據(jù)封裝,基本操作的規(guī)格說(shuō)明盡可能明確具體。作為邏輯設(shè)計(jì)的結(jié)果,應(yīng)寫(xiě)出每個(gè)抽象數(shù)據(jù)類型的定義(包括數(shù)據(jù)結(jié)構(gòu)的描述和每個(gè)基本操作的規(guī)格說(shuō)明),各個(gè)主要模塊的算法,并畫(huà)出模塊之間的調(diào)用關(guān)系圖。詳細(xì)設(shè)汁的結(jié)果是對(duì)數(shù)據(jù)結(jié)構(gòu)和基本操作的規(guī)格說(shuō)明作出進(jìn)一步的求精,寫(xiě)出數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的類型定義,按照算法書(shū)寫(xiě)規(guī)范用類C語(yǔ)言寫(xiě)出過(guò)程或函數(shù)形式的算法框架。在求精的過(guò)程中,應(yīng)盡量避免陷入語(yǔ)言細(xì)節(jié),不必過(guò)早表述輔助數(shù)據(jù)結(jié)構(gòu)和局部變量。3. 編碼實(shí)現(xiàn)和靜態(tài)檢查編碼是把詳細(xì)設(shè)計(jì)的結(jié)果進(jìn)一步求精為程序設(shè)計(jì)語(yǔ)言程序。程序的每行不要超過(guò)60個(gè)字符。每個(gè)過(guò)程(函數(shù))體,即不計(jì)首部和規(guī)格說(shuō)明部分,一般不要超過(guò)40行。最長(zhǎng)不得超過(guò)60 行,否則應(yīng)該分割成較小的過(guò)程(函數(shù))。要控制語(yǔ)句連續(xù)嵌套的深度。如何編寫(xiě)程序才能較快地完成調(diào)試是特別要注意的問(wèn)題。對(duì)于編程很熟練的讀者,如果基于詳細(xì)設(shè)計(jì)的偽碼算法就能直接在鍵盤上輸入程序的話,則可以不必用筆在紙上寫(xiě)出編碼,而將這一步的工作放在上機(jī)準(zhǔn)備之后進(jìn)行,即在上機(jī)調(diào)試之前直接用鍵盤輸入。然而,不管你是否寫(xiě)出編碼的程序,在上機(jī)之前,認(rèn)真的靜態(tài)檢查卻是必不可少的。多數(shù)初學(xué)者在編好程序后處于以下兩種狀態(tài)之一:一種是對(duì)自己的“精心作品”的正確性確信不疑;另一種是認(rèn)為上機(jī)前的任務(wù)已經(jīng)完成,糾查錯(cuò)誤是上機(jī)的工作。這兩種態(tài)度是極為有害的。事實(shí)上,非訓(xùn)練有素的程序設(shè)計(jì)者編寫(xiě)的程序長(zhǎng)度超過(guò)50 行時(shí),極少不含有除語(yǔ)法錯(cuò)誤以外的錯(cuò)誤。上機(jī)動(dòng)態(tài)調(diào)試決不能代替靜態(tài)檢查,否則調(diào)試效率將是極低的。靜態(tài)檢查主要有兩種方法,一是用一組測(cè)試數(shù)據(jù)手工執(zhí)行程序(通常應(yīng)先分模塊檢查);二是通過(guò)閱讀或給別人講解自己的程序而深入全面地理解程序邏輯,在這個(gè)過(guò)程中再加入一些注解和斷言。如果程序中邏輯概念清楚,后者將比前者有效。4. 上機(jī)準(zhǔn)備和上機(jī)調(diào)試上機(jī)準(zhǔn)備包括以下幾個(gè)方面:(1) 高級(jí)語(yǔ)言文本(體現(xiàn)與編譯程序用戶手冊(cè))的擴(kuò)充和限制。例如,有些C編譯程序限制for語(yǔ)句的循環(huán)控制變量為局部簡(jiǎn)單變量等。(2) 如果用C語(yǔ)言,要特別注意平時(shí)慣用的類C語(yǔ)言與標(biāo)準(zhǔn)C語(yǔ)言之間的細(xì)微差別。(3) 熟悉機(jī)器的操作系統(tǒng)和語(yǔ)言集成環(huán)境的用戶手冊(cè),尤其是最常用的命令操作,以便順利進(jìn)行上機(jī)的基本活動(dòng)。(4) 掌握調(diào)試工具,考慮調(diào)試方案,設(shè)計(jì)測(cè)試數(shù)據(jù)并手工得出正確結(jié)果。“磨刀不誤砍柴工”。計(jì)算機(jī)各專業(yè)的學(xué)生應(yīng)該能夠熟練運(yùn)用高級(jí)語(yǔ)言的程序調(diào)試器DEBUG調(diào)試程序。上機(jī)調(diào)試程序時(shí)要帶一本高級(jí)語(yǔ)言教材或手冊(cè)。調(diào)試最好分模塊進(jìn)行,自底向上,即先調(diào)試低層過(guò)程或函數(shù)。必要時(shí)可以另寫(xiě)一個(gè)調(diào)用驅(qū)動(dòng)程序。這種表面上麻煩的工作實(shí)際上可以大大降低調(diào)試所面臨的復(fù)雜性,提高調(diào)試工作效率。在調(diào)試過(guò)程中可以不斷借助DEBUG的各種功能,提高調(diào)試效率。調(diào)試中遇到的各種異?,F(xiàn)象往往是預(yù)料不到的,此時(shí)不應(yīng)“苦思具想”,而應(yīng)動(dòng)手確定疑點(diǎn),通過(guò)修改程序來(lái)證實(shí)它或繞過(guò)它。調(diào)試正確后,認(rèn)真整理源程序及其注釋,印出帶有完整注釋的且格式良好的源程序清單和結(jié)果。5. 總結(jié)和整理實(shí)習(xí)報(bào)告注意:在實(shí)踐中,有時(shí)候可能想檢驗(yàn)自己的想法,這時(shí)可以上機(jī)嘗試一下,看看自己的思路是否可行。三、課程設(shè)計(jì)內(nèi)容參考題目:1 二叉樹(shù)的應(yīng)用哈夫曼樹(shù)(電文的編碼和譯碼)2 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)3 學(xué)生成績(jī)管理系統(tǒng)4 簡(jiǎn)易客房管理系統(tǒng)5 其他類型管理系統(tǒng)的題目人事檔案管理系統(tǒng)圖書(shū)管理系統(tǒng)進(jìn)銷存貨物管理系統(tǒng)職工工資管理系統(tǒng)6. 稀疏矩陣運(yùn)算器7. 長(zhǎng)整數(shù)的四則運(yùn)算8. 校園導(dǎo)游咨詢10停車場(chǎng)管理11其余題目:(必須事先得到指導(dǎo)老師允許 )程序經(jīng)常需要輸入輸出,所以可以在考慮采用什么樣的數(shù)據(jù)結(jié)構(gòu)時(shí),考慮如何進(jìn)行數(shù)據(jù)的輸入和輸出,可以把輸入和輸出分別實(shí)現(xiàn)為一個(gè)函數(shù)。實(shí)現(xiàn)了輸入輸出功能,也為以后程序的調(diào)試和測(cè)試帶來(lái)方便。四、課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)報(bào)告統(tǒng)一用A4紙打印,并裝訂成冊(cè),封面格式參見(jiàn)所附文檔,正文格式要求參見(jiàn)附錄1。課程設(shè)計(jì)報(bào)告內(nèi)容具體要求如下:1. 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告內(nèi)容總體要求1)給出問(wèn)題分析過(guò)程根據(jù)自身對(duì)課程的掌握程度,充分分析和理解問(wèn)題的設(shè)計(jì)要求,給出較為明確、簡(jiǎn)潔的設(shè)計(jì)思路。2)給出數(shù)據(jù)結(jié)構(gòu)描述根據(jù)要解決的問(wèn)題,考慮各種可能的數(shù)據(jù)結(jié)構(gòu)類型,從中選擇一種較為有效的方法,并寫(xiě)出采用的數(shù)據(jù)結(jié)構(gòu)描述及其功用。3)給出相應(yīng)算法設(shè)計(jì)根據(jù)問(wèn)題分析的結(jié)果,并確立好所選的數(shù)據(jù)結(jié)構(gòu)描述,然后寫(xiě)出合理的算法設(shè)計(jì)過(guò)程,特別要注意所使用函數(shù)間的調(diào)用與被調(diào)用關(guān)系。4)給出詳細(xì)程序清單根據(jù)算法的內(nèi)容,用計(jì)算機(jī)語(yǔ)言(如C語(yǔ)言)編寫(xiě)完整的程序,并將程序在機(jī)器上反復(fù)調(diào)試,直到結(jié)果正確為止,程序要求附上詳細(xì)注解。特別要注意算法與程序的區(qū)別以及上下層模塊間的接口處理。5)給出程序運(yùn)行結(jié)果利用典型的測(cè)試用例,將數(shù)據(jù)輸入到程序執(zhí)行過(guò)程中去,記下執(zhí)行過(guò)程中屏幕顯示情況與相應(yīng)結(jié)果。2. 具體內(nèi)容要求:報(bào)告包括以下7個(gè)內(nèi)容:1)以無(wú)歧義的陳述說(shuō)明程序設(shè)計(jì)的任務(wù),強(qiáng)調(diào)的是程序要做什么?并明確規(guī)定:(1) 輸入的形式和輸入值的范圍;(2) 輸出的形式;(3) 程序所能達(dá)到的功能;(4) 測(cè)試數(shù)據(jù):包括正確的輸入及其輸出結(jié)果和含有錯(cuò)誤的輸入及其輸出結(jié)果。2)概要設(shè)計(jì)說(shuō)明本程序中用到的所有抽象數(shù)據(jù)類型的定義、主程序的流程以及各程序模塊之間的層次(調(diào)用)關(guān)系。3)詳細(xì)設(shè)計(jì)實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有數(shù)據(jù)類型,對(duì)每個(gè)操作只需要寫(xiě)出偽碼算法;對(duì)主程序和其他模塊也都需要寫(xiě)出偽碼算法(偽碼算法達(dá)到的詳細(xì)程度建議為:按照偽碼算法可以在計(jì)算機(jī)鍵盤直接輸入高級(jí)程序設(shè)計(jì)語(yǔ)言程序);畫(huà)出函數(shù)和過(guò)程的調(diào)用關(guān)系圖。4)調(diào)試分析內(nèi)容包括:(1) 調(diào)試過(guò)程中遇到的問(wèn)題是如何解決的以及對(duì)設(shè)計(jì)與實(shí)現(xiàn)的回顧討論和分析;(2) 算法的時(shí)空分析(包括基本操作和其他算法的時(shí)間復(fù)雜度和空間復(fù)雜度的分析)(3) 改進(jìn)設(shè)想;(4) 經(jīng)驗(yàn)和體會(huì)等。5)用戶使用說(shuō)明說(shuō)明如何使用你編寫(xiě)的程序,詳細(xì)列出每一步的操作步驟。6)測(cè)試結(jié)果列出你的測(cè)試結(jié)果,包括輸入和輸出。這里的測(cè)試數(shù)據(jù)應(yīng)該完整和嚴(yán)格,最好多于需求分析中所列。7)附錄帶注釋的源程序,如果提交程序,可以只列出程序文件名的清單。五、提交材料 課程設(shè)計(jì)完成后的下一周的周一上午,也就是2012年6月28-29日,提交如下資料并答辯:1 課程設(shè)計(jì)報(bào)告。課程設(shè)計(jì)報(bào)告總體上主要包括以下幾個(gè)部分:1) 封面2) 考核方式與評(píng)分標(biāo)準(zhǔn)(見(jiàn)六)3)目錄4)課程設(shè)計(jì)報(bào)告正文5)使用說(shuō)明2.完整的軟件系統(tǒng) 最終必須向指導(dǎo)老師提交完整的程序源代碼(.c和.cpp以及.h為后綴的文件)、數(shù)據(jù)文件以及使用說(shuō)明文件等。源代碼文件要特別注意編程規(guī)范、代碼風(fēng)格,關(guān)鍵代碼需有合理的注釋,不含任何無(wú)用代碼;數(shù)據(jù)文件內(nèi)要求有一定數(shù)量的“真實(shí)”數(shù)據(jù)(如對(duì)于記錄文件,需要有8條以上記錄); 使用說(shuō)明文件的第一行,需要給出設(shè)計(jì)者的學(xué)號(hào)、姓名,后面為其它說(shuō)明。 課程設(shè)計(jì)項(xiàng)目源代碼和相關(guān)數(shù)據(jù),放到一個(gè)目錄下,目錄名以學(xué)號(hào)加姓名方式命名。六、考核方式與評(píng)分標(biāo)準(zhǔn)(下頁(yè)單獨(dú)打?。?綜合實(shí)踐1評(píng)分表班級(jí)姓名指導(dǎo)教師題目:評(píng)分標(biāo)準(zhǔn)評(píng)分標(biāo)準(zhǔn)分?jǐn)?shù)權(quán)重評(píng)分的依據(jù)得分AC選題10選題符合大綱要求,題目較新穎,工作量大選題基本符合大綱要求,工作量適中工作態(tài)度10態(tài)度端正,能主動(dòng)認(rèn)真完成各個(gè)環(huán)節(jié)的工作,不遲到早退,出勤好。能夠完成各環(huán)節(jié)基本工作,出勤較好。存儲(chǔ)結(jié)構(gòu)、算法描述20能正確選擇存儲(chǔ)結(jié)構(gòu),定義準(zhǔn)確,算法流程圖或類C語(yǔ)言描述的算法準(zhǔn)確無(wú)誤能正確選擇存儲(chǔ)結(jié)構(gòu),算法流程圖或類C語(yǔ)言描述的算法基本準(zhǔn)確獨(dú)立解決問(wèn)題的能力10具有獨(dú)立分析、解決問(wèn)題能力,有一定的創(chuàng)造性,能夠獨(dú)立完成軟件的設(shè)計(jì)與調(diào)試工作,程序結(jié)構(gòu)清晰,邏輯嚴(yán)謹(jǐn),功能完善。有一定的分析、解決問(wèn)題能力。能夠在老師指導(dǎo)下完成軟件的設(shè)計(jì)與調(diào)試工作,程序功能較完善。答辨問(wèn)題回答20能準(zhǔn)確回答老師提出的問(wèn)題能基本準(zhǔn)確回答老師提出的問(wèn)題程序運(yùn)行情況10程序運(yùn)行正確、界面清晰,測(cè)試數(shù)據(jù)設(shè)計(jì)合理。程序運(yùn)行正確、界面較清晰,能給出合適的測(cè)試數(shù)據(jù)。綜合實(shí)踐報(bào)告20格式規(guī)范,層次清晰,設(shè)計(jì)思想明確,解決問(wèn)題方法合理,體會(huì)深刻。格式較規(guī)范,設(shè)計(jì)思想基本明確,解決問(wèn)題方法較合理??偡种笇?dǎo)教師(簽字):注:介于A和C之間為B級(jí),低于C為D級(jí)和E級(jí)。按各項(xiàng)指標(biāo)打分后,總分在90100為優(yōu),8089為良,7079為中,6069為及格,60分以下不及格。七、參考文獻(xiàn)1 嚴(yán)蔚敏, 吳偉民. 數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版). 北京: 清華大學(xué)出版社, 1997.42 嚴(yán)蔚敏, 吳偉民, 米寧. 數(shù)據(jù)結(jié)構(gòu)題集(C語(yǔ)言版). 北京: 清華大學(xué)出版社, 1999.2附錄1齊齊哈爾大學(xué)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)說(shuō)明書(shū)(報(bào)告)撰寫(xiě)規(guī)范(一)正文:漢字應(yīng)采用簡(jiǎn)化漢字總表規(guī)定的簡(jiǎn)化字,并嚴(yán)格執(zhí)行漢字的規(guī)范。所有文字字面清晰,不得涂改。要求文字通順,語(yǔ)言流暢,無(wú)錯(cuò)別字,不得使用鉛筆書(shū)寫(xiě)。正文內(nèi)容層次序號(hào)為:1、1.1、1.1.1。正文內(nèi)容一般為:1、 選題背景:說(shuō)明本課題應(yīng)解決的主要問(wèn)題及應(yīng)達(dá)到的技術(shù)要求;簡(jiǎn)述本設(shè)計(jì)的指導(dǎo)思想。2、 方案論證:說(shuō)明設(shè)計(jì)原理并進(jìn)行方案選擇,闡明為什么要選擇這個(gè)設(shè)計(jì)方案以及所采用方案的特點(diǎn)。3、 過(guò)程(設(shè)計(jì)或?qū)嶒?yàn))論述:對(duì)設(shè)計(jì)工作的詳細(xì)表述。要求層次分明、表達(dá)確切。4、 結(jié)果分析:對(duì)研究過(guò)程中所獲得的主要的數(shù)據(jù)、現(xiàn)象進(jìn)行定性或定量分析,得出結(jié)論和推論。5、 結(jié)論或總結(jié):對(duì)整個(gè)研究工作進(jìn)行歸納和綜合。(二)表格說(shuō)明書(shū)(報(bào)告)的表格可以統(tǒng)一編序(如:表15),也可以逐章單獨(dú)編序(如:表2.5),采用哪種方式應(yīng)和插圖及公式的編序方式統(tǒng)一。表序必須連續(xù),不得重復(fù)或跳躍。表格的結(jié)構(gòu)應(yīng)簡(jiǎn)潔。表格中各欄都應(yīng)標(biāo)注量和相應(yīng)的單位。表格內(nèi)數(shù)字須上下對(duì)齊,相鄰欄內(nèi)的數(shù)值相同時(shí),不能用同上、同左和其它類似用詞,應(yīng)一一重新標(biāo)注。表序和表題置于表格上方中間位置,無(wú)表題的表序置于表格的左上方或右上方(同一篇論文位置應(yīng)一致)。(三)圖插圖要精選。圖序可以連續(xù)編序(如 圖52),也可以逐章單獨(dú)編序(如 圖6.8),采用哪種方式應(yīng)與表格、公式的編序方式統(tǒng)一,圖序必須連續(xù),不得重復(fù)或跳躍。僅有一圖時(shí),在圖題前加附圖字樣。課程設(shè)計(jì)中的插圖以及圖中文字符號(hào)應(yīng)打印,無(wú)法打印時(shí)一律用鋼筆繪制和標(biāo)出。由若干個(gè)分圖組成的插圖,分圖用a,b,c,標(biāo)出。圖序和圖題置于圖下方中間位置。(四)公式 說(shuō)明書(shū)中重要的或者后文中須重新提及的公式應(yīng)注序號(hào)并加圓括號(hào),序號(hào)一律用阿拉伯?dāng)?shù)字連續(xù)編序(如:(45)或逐章編序(如(6.10),序號(hào)排在版面右側(cè),且距右邊距離相等。公式與序號(hào)之間不加虛線。(五)數(shù)字用法 公歷世紀(jì)、年代、年、月、日、時(shí)間和各種計(jì)數(shù)、計(jì)量,均用阿拉伯?dāng)?shù)字。年份不能簡(jiǎn)寫(xiě),如1999年不能寫(xiě)成99年。數(shù)值的有效數(shù)字應(yīng)全部寫(xiě)出,如:0.50:2.00不能寫(xiě)作0.5:2。(六)軟件 軟件流程圖和原程序清單要按軟件文檔格式附在說(shuō)明書(shū)(報(bào)告)后面,特殊情況可在成績(jī)?cè)u(píng)定時(shí)展示,不附在說(shuō)明書(shū)(報(bào)告)內(nèi)。(七)工程圖按國(guó)標(biāo)規(guī)定裝訂 圖幅小于或等于3#圖幅時(shí)應(yīng)裝訂在說(shuō)明書(shū)(報(bào)告)內(nèi),大于3#圖幅時(shí)按國(guó)標(biāo)規(guī)定單獨(dú)裝訂作為附圖。(八)計(jì)量單位的定義和使用方法按國(guó)家計(jì)量局規(guī)定執(zhí)行。(九)排版與封面要求1、排版用word排版,具體格式如下:版面要求:頁(yè)邊距:上2.5cm,下2.5cm,左3cm,右2.5cm;字 體:正文宋體、小四,章節(jié)標(biāo)題宋體、小三;行 距:固定值20;頁(yè) 碼:居中、底部。2、封面附錄2 Visual C+ 6.0簡(jiǎn)介考慮到目前大多數(shù)初學(xué)者使用的都是PC機(jī)和Windows操作系統(tǒng),我們以Visual C+作為推薦的C+編譯器。1Visual C+集成開(kāi)發(fā)環(huán)境Visual C+軟件包包含了許多獨(dú)立的組件,如編輯器、編譯器、調(diào)試器,以及各種各樣為開(kāi)發(fā)Windows環(huán)境下的C/C+程序而設(shè)計(jì)的工具。其中最重要的是一個(gè)名為Developer Studio的集成開(kāi)發(fā)環(huán)境。Developer Studio把所有的Visual C+工具結(jié)合在一起,集成為一個(gè)由窗口、對(duì)話框、菜單、工具欄、快捷鍵及宏組成的和諧系統(tǒng),通過(guò)該集成環(huán)境,程序員可以觀察和控制整個(gè)開(kāi)發(fā)進(jìn)程。1顯示了一個(gè)典型的Developer Studio主窗口。它分為幾個(gè)部分:窗口頂部是菜單和工具欄,左面的一個(gè)子窗口是工作區(qū)窗口,工作區(qū)的右面是編輯子窗口。最下面是輸出子窗口。值得注意的是,上述各種部件,包括子窗口、菜單欄和工具欄的位置不是一成不變的,可以根據(jù)個(gè)人的喜好重新安排。圖1 典型的Developer Studio窗口(1)菜單和工具欄Developer Studio中有一個(gè)Menu Bar(菜單欄,通常??吭陂_(kāi)發(fā)環(huán)境窗口的頂部),其中的菜單項(xiàng)有File (文件處理)、Edit(編輯功能)、View(查看)、Insert(插入)、Project(項(xiàng)目管理)、Built(編譯)、Tools(工具)、Window(窗口)和Help(幫助)等,分別對(duì)應(yīng)一個(gè)下拉子菜單。除菜單欄外,開(kāi)發(fā)環(huán)境中還有幾個(gè)工具欄,一般均放在開(kāi)發(fā)環(huán)境的頂部,菜單欄的下方,如Standard(標(biāo)準(zhǔn)工具欄,用于文件管理、編輯和查看等),Wizard Bar(向?qū)Чぞ邫冢┖虰uild MiniBar(建立工具欄,用于編譯、連接等)。工具欄上有常用命令的圖標(biāo)。一般來(lái)說(shuō),工具欄上的命令在菜單中均有對(duì)應(yīng)選項(xiàng),但工具欄使用更方便,只要用鼠標(biāo)左鍵點(diǎn)擊工具欄中的相應(yīng)圖標(biāo)即可調(diào)用相應(yīng)的功能。開(kāi)發(fā)環(huán)境的各種菜單欄和工具欄均為??渴?,可以用鼠標(biāo)拖動(dòng)改變它們的位置,除此之外,Developer Studio的所有部分幾乎都可響應(yīng)鼠標(biāo)右鍵單擊而彈出一個(gè)上下文相關(guān)菜單。甚至當(dāng)Developer Studio沒(méi)有打開(kāi)窗口時(shí),在空白區(qū)右擊鼠標(biāo)也會(huì)彈出一個(gè)菜單,其中含有使窗口可見(jiàn)和調(diào)整工具欄是否可見(jiàn)的命令。在工具欄上除標(biāo)題欄外的任何地方右擊鼠標(biāo),同樣可以彈出菜單。在使用集成環(huán)境工作時(shí)試一試鼠標(biāo)右鍵,還會(huì)發(fā)現(xiàn)許多其他的快捷方式。(2)Developer Studio窗口除了各種對(duì)話框外,Developer Studio顯示兩種類型的窗口,即文檔窗口和??看翱?。文檔窗口是一般的帶邊框子窗口,其中含有源代碼文本或圖形文檔。Window子菜單中列出了在屏幕上以平鋪方式還是以層疊方式顯示文檔窗口的命令。所有其他的Developer Studio窗口,包括工具欄和菜單欄,都是??渴酱翱?。開(kāi)發(fā)環(huán)境有兩個(gè)主要的停靠窗口Workspace(工作區(qū))窗口和Output(輸出)窗口。另外還有一個(gè)Debugger(調(diào)試器)停靠窗口,只在調(diào)試過(guò)程中顯示。圖2 新建一個(gè)項(xiàng)目??看翱诳梢怨潭ㄔ贒eveloper Studio用戶區(qū)的頂端、底端或側(cè)面,或者浮動(dòng)在屏幕上任何地方。??看翱?,不論是浮動(dòng)著的或是固定著的,總是出現(xiàn)在文檔窗口的上面。這樣,就保證了當(dāng)焦點(diǎn)從一個(gè)窗口移到另一個(gè)時(shí),浮動(dòng)的工具欄一直都是可見(jiàn)的。但這也意味著,文檔窗口偶爾會(huì)看起來(lái)像消失了似的。例如,如果正在文本編輯器中編輯源代碼,此時(shí)打開(kāi)一個(gè)占據(jù)整個(gè)Developer Studio用戶區(qū)的??看翱?,源代碼文檔就會(huì)消失,它隱藏在新窗口之下。解決方法是要么關(guān)了覆蓋的窗口,要么把它拖到不擋眼的地方去。(3)菜單選項(xiàng)、快捷鍵和工具欄Developer Studio的許多功能都有不只一種調(diào)用方法。例如,執(zhí)行一個(gè)編譯、連接成功的可執(zhí)行文件,既可通過(guò)選擇菜單選項(xiàng)Build/Execute.exe完成,也可以直接使用快捷鍵Ctrl+F5,還可以用鼠標(biāo)點(diǎn)擊Build MiniBar(編譯工具欄)上的相應(yīng)圖標(biāo)來(lái)完成。一般來(lái)說(shuō),越是常用的功能,可以調(diào)用的方法越多、越方便。(4)用Developer Studio編寫(xiě)和調(diào)試簡(jiǎn)單C+程序在Visual C+中,C+的程序是存放到以后綴名為.CPP的文件中,系統(tǒng)是通過(guò)Projects(工程項(xiàng)目)來(lái)管理這些文件的。所以要編寫(xiě)和運(yùn)行C+程序,首先必須建立一個(gè)Projects。下面以一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明如何在Visual 集成開(kāi)發(fā)環(huán)境編寫(xiě)和調(diào)試簡(jiǎn)單C+程序的步驟:(1)首先運(yùn)行并打開(kāi)Developer Studio系統(tǒng),選擇菜單選項(xiàng)File/New中的Projects選項(xiàng)卡。從卡中選擇Win32 Console Application(Win32控制臺(tái)應(yīng)用程序)。(2)為應(yīng)用項(xiàng)目取一個(gè)名字,填寫(xiě)在選項(xiàng)卡右上方的Project Name(項(xiàng)目名稱)處,并檢查下面的Location(位置)中列出的路徑是否正確。注意使下面的單選框選擇Create New Workspace(即要建立新工作區(qū)),然后按下OK按鈕。如圖2。(3)這時(shí)會(huì)出現(xiàn)Application Wizard(應(yīng)用程序生成向?qū)В釂?wèn)要生成的項(xiàng)目類型。選擇An Empty Project(空項(xiàng)目),按下Finish(結(jié)束)鍵,會(huì)彈出一個(gè)窗口,顯示新項(xiàng)目的有關(guān)信息。檢查無(wú)誤后按OK按鈕。如圖3及4 圖3 確定項(xiàng)目類型 圖4 項(xiàng)目相關(guān)信息(4)這時(shí)屏上會(huì)顯示一個(gè)空項(xiàng)目,并生成一個(gè)工作區(qū)文件(后綴為.DSW)。再次選擇File菜單的New選項(xiàng),并選擇Files選項(xiàng)卡。從卡中選擇C+ Source File(C+源程序)。(5)為程序取一個(gè)名字(可與項(xiàng)目名相同,也可以不同)填寫(xiě)在選項(xiàng)卡右邊的File處,然后按下OK按鈕。如圖5圖5 建立文件(6)這時(shí)開(kāi)發(fā)環(huán)境右側(cè)的文件編輯窗口中出現(xiàn)了一個(gè)空文件,在此可以鍵入源程序代碼。如圖6(7)程序輸入后,應(yīng)仔細(xì)檢查一遍,然后就可以編譯了。(8)選擇菜單選項(xiàng)Build/Compile gravitation.cpp (其中g(shù)ravitation為文件名)編譯源程序。稍候片刻,會(huì)在Output窗口(通常在屏幕下方)中顯示編譯結(jié)果,如出錯(cuò)信息等(編譯錯(cuò)誤的處理在下一節(jié)介紹)。如果程序正確,編譯結(jié)果會(huì)生成一個(gè)目標(biāo)文件(后綴為.OBJ)。(9)目標(biāo)文件還需通過(guò)連接才能生成可執(zhí)行文件。選擇菜單選項(xiàng)Build/Build gravitation.exe連接目標(biāo)文件。結(jié)果顯示在Output窗口中。連接的結(jié)果為可執(zhí)行文件(后綴為. exe)。以上兩步也可以并為一步,即直接使用菜單選項(xiàng)Build/Build gravitation.exe。圖6 代碼的編輯界面生成的可執(zhí)行文件可以單獨(dú)運(yùn)行,也可以在開(kāi)發(fā)環(huán)境中直接運(yùn)行,后一種方法在程序需要反復(fù)調(diào)試時(shí)更加方便。在集成開(kāi)發(fā)環(huán)境中直接運(yùn)行程序的方法是選用菜單選項(xiàng)Build/Excute.exe。程序運(yùn)行結(jié)果如圖7圖7 程序運(yùn)行結(jié)果2Visual C+幫助功能MSDN (Microsoft Developer Network) 是使用 Microsoft 開(kāi)發(fā)工具或是以 Windows 和 Internet 為開(kāi)發(fā)平臺(tái)的開(kāi)發(fā)人員的基本參考資料。通過(guò)MSDN所提供的Help資料,可以對(duì)Visuan C+和Windows的工作機(jī)制有更全面的了解,可以幫助解決開(kāi)發(fā)者遇到的大多數(shù)問(wèn)題。由于MSDN庫(kù)為包括Visual C+在內(nèi)的所有的Visual studio 6.0開(kāi)發(fā)環(huán)境工具提供在線幫助,所以它在系統(tǒng)中作為一個(gè)應(yīng)用程序獨(dú)立運(yùn)行,并沒(méi)有同任何單個(gè)開(kāi)發(fā)環(huán)境結(jié)合在一起。要從Visual C+中訪問(wèn) MSDN,一種方法是從Visual C+的Help菜單中選擇 Contents、Search或Index命令,另一種方法是在Visual C+開(kāi)發(fā)環(huán)境中直接按下 F1鍵,系統(tǒng)都會(huì)自動(dòng)運(yùn)行 MSDN幫助程序。MSDN界面分為三個(gè)窗格,頂端的窗格包含有工具欄。左側(cè)的窗格包含有各種信息定位方法,通過(guò)單擊列表中的主題,即可瀏覽或查找所需的各種信息;右側(cè)的窗格則顯示所選擇的主題的具體內(nèi)容,這些內(nèi)容是以超文本形式存在的,其中的相關(guān)內(nèi)容可以通過(guò)超文本鏈接連接到其他的相關(guān)主題。圖8 MSDN界面左邊窗口中有四個(gè)選項(xiàng)卡:目錄、索引、搜索和書(shū)簽,用于提供四種不同的在線幫助瀏覽方式。(1)目錄。單擊目錄選項(xiàng)卡可瀏覽主題的標(biāo)題。該目錄是依照標(biāo)題和副標(biāo)題的排列方式形成一個(gè)包含了 MSDN中所有可用信息的可擴(kuò)充目錄表。雙擊列表中的標(biāo)題,就可在MSDN窗口的右欄中打開(kāi)該文章。(2)索引。單擊索引選項(xiàng)卡可查看索引項(xiàng)的列表,然后可通過(guò)該欄左邊的滾動(dòng)條翻閱整個(gè)索引列表。也可通過(guò)在對(duì)話框頂部的編輯框中鍵人關(guān)鍵字來(lái)完成查找功能。找到所要的索引條目后雙擊,如果該條目?jī)H對(duì)應(yīng)一篇文章,MSDN就會(huì)立刻在其窗口右欄顯示其內(nèi)容;否則會(huì)出現(xiàn)已找到的主題對(duì)話框,其中列出了該條目可能指向的所有文章,這時(shí)可通過(guò)雙擊列表中所需要主題,打開(kāi)相應(yīng)的一篇文章。(3)搜索。單擊搜索選項(xiàng)卡可查找到包含在某個(gè)主題中的所有詞組或短語(yǔ)。它是一個(gè)全文本搜索引擎,允許尋找包含指定詞或短語(yǔ)的主題。和MSDN的索引選項(xiàng)比起來(lái),全文本搜索所能覆蓋范圍更寬,它可以提供更多的文章以供選擇。(4)書(shū)簽。單擊書(shū)簽選項(xiàng)卡可創(chuàng)建或訪問(wèn)書(shū)簽的列表。用戶只需簡(jiǎn)單地標(biāo)記書(shū)簽中的某些主題,即可重新訪問(wèn)它們。3Developer Studio文本編輯器Developer Studio提供了一個(gè)優(yōu)秀的程序文本編輯器,它使應(yīng)用程序的編輯修改和調(diào)試工作混為一體,非常方便。該文本編輯器不僅可編輯程序文本,還可編輯一般的文本文件和HTML Page。啟動(dòng)文本編輯器非常簡(jiǎn)單,只要建立一個(gè)新文本文件,或打開(kāi)一個(gè)已存在的文本文件,文本編輯器就會(huì)自動(dòng)出現(xiàn)。在文本編輯器中,用一閃爍的短豎線表示編輯位置,通過(guò)鍵盤輸入的文字在此位置插入文本。用鼠標(biāo)左鍵點(diǎn)擊文本中的某個(gè)字符可以改變編輯位置。文本編輯器的基本操作包括:l :光標(biāo)向后移動(dòng)一個(gè)字符。l :光標(biāo)向前移動(dòng)一個(gè)字符。l :光標(biāo)向上移動(dòng)一行。l :光標(biāo)向下移動(dòng)一行。l Home:光標(biāo)移動(dòng)到行首。l End:光標(biāo)移動(dòng)到行尾。l Ctrl+Home: 光標(biāo)移動(dòng)到文件頭。l Ctrl+End: 光標(biāo)移動(dòng)到文件尾。l PgUp:光標(biāo)向上滾動(dòng)一屏。l PgDn: 光標(biāo)向下滾動(dòng)一屏。l Ctrl+Y:刪除行。l Del:刪除光標(biāo)右邊字符。l Backspace:刪除光標(biāo)左邊字符。l Ins:插入/改寫(xiě)方式切換。Developer Studio的Edit子菜單還提供了一批高級(jí)編輯功能,大致可分為以下幾類:(1)Undo和Redo,用于反悔對(duì)文本文件所做的修改(2)剪貼Cut、復(fù)制Copy、粘貼Paste和刪除Delete(3)查找Find和替換Replace(4)書(shū)簽(5)高級(jí)選項(xiàng)(6)斷點(diǎn)設(shè)置(7)編程指導(dǎo)信息4Developer Studio文件處理功能Developer Studio提供了很完整的文件處理功能,可處理程序文本文件、項(xiàng)目文件、WORD文檔和EXCEL文檔等。Developer Studio的File子菜單共有14項(xiàng),分為6組,組與組之間用橫線隔開(kāi)。第1組用于建立、打開(kāi)和關(guān)閉文件處理的對(duì)象,包括項(xiàng)目、文件、工作區(qū)和其他文檔:(1)建立新對(duì)象(New,快捷鍵為CTRL+N)。選擇該菜單項(xiàng),可打開(kāi)一個(gè)有若干卡片的對(duì)話框,各卡片的內(nèi)容分別為:項(xiàng)目(Projects):用于建立項(xiàng)目。項(xiàng)目即要開(kāi)發(fā)的應(yīng)用程序,Developer Studio可用于開(kāi)發(fā)各種類型的應(yīng)用程序,如控制臺(tái)應(yīng)用程序(Win32 Console Application)、32位Windows應(yīng)用程序(Win32 Application)和MFC應(yīng)用向?qū)С绦颍∕FC AppWizard)等。對(duì)于不同類型的項(xiàng)目,建立的具體文件也不同。文件(Files):用于建立各種文件,包括源程序文件(Source File,文件名后綴為cpp)、頭文件(Header File,文件名后綴為h)、文本文件(Text File,文件名后綴為txt)、位圖文件(Bitmap File,文件名后綴為bmp)等。工作區(qū)(Workspaces):每個(gè)正在開(kāi)發(fā)的項(xiàng)目要占用一個(gè)工作區(qū)。一般來(lái)說(shuō),在建立項(xiàng)目的同時(shí)即為其建立了工作區(qū)。但也可用本選項(xiàng)建立一個(gè)空的工作區(qū)。其他文檔(Other Documents): 用于建立一些文檔文件,如MS Excel工作表,MS Excel圖表,MS PowerPoint演示文稿和MS Word排版文檔等。(2)打開(kāi)已有對(duì)象(Open,快捷鍵為CTRL+O)。用于打開(kāi)一個(gè)已存在的項(xiàng)目、文件或文檔。選擇該菜單項(xiàng),會(huì)彈出一個(gè)文件路徑對(duì)話框,用于確定要打開(kāi)的內(nèi)容。(3)關(guān)閉文件(Close)。用于關(guān)閉當(dāng)前打開(kāi)并激活的文件。第2組用于處理工作區(qū)。包括:(1)打開(kāi)工作區(qū)(Open Workspace)。用于一個(gè)已存在的工作區(qū)。工作區(qū)的有關(guān)參數(shù)(包括應(yīng)用程序的結(jié)構(gòu)體系,特別是其類、資源、文件和幫助信息等的參數(shù))存放在后綴名為dsw和mdp的文件中。(2)保存工作區(qū)(Save Workspace)。用于保存當(dāng)前打開(kāi)的工作區(qū)文件。(3)關(guān)閉工作區(qū)(Close Workspace)。用于關(guān)閉當(dāng)前打開(kāi)的工作區(qū)文件。第3組用于處理當(dāng)前文件,包括:(1)保存文件(Save,快捷鍵為CTRL+S)。用于保存當(dāng)前正在使用的文件。(2)另存文件(Save As)。將當(dāng)前文件換一個(gè)名字保存,原來(lái)的文件內(nèi)容不變。(3)保存所有文件(Save All)。保存當(dāng)前打開(kāi)的所有文件。第4組用于打印當(dāng)前文件,包括:(1)頁(yè)面設(shè)置(Page Setup)。設(shè)置打印頁(yè)面格式,為打印當(dāng)前文件作準(zhǔn)備。(2)打印當(dāng)前文件(Print,快捷鍵為CTRL+P)。用于打印當(dāng)前文件。第5組用于快速打開(kāi)或切換文件和工作區(qū)。包括:(1)最近使用過(guò)的文件( Recent Files)。用于直接打開(kāi)最近幾次在Developer Studio 中使用過(guò)的文件,可在彈出的下級(jí)菜單中直接選取。(2)最近使用過(guò)的工作區(qū)(Recent Workspaces)。用于直接打開(kāi)最近幾次在Developer Studio中打開(kāi)過(guò)的工作區(qū),可在彈出的下級(jí)菜單中直接選取。最后1組只有一個(gè)菜單項(xiàng):(1)退出Developer Studio(Exit)。選擇該菜單項(xiàng)可以關(guān)閉當(dāng)前打開(kāi)的所有對(duì)象,包括項(xiàng)目、工作區(qū)和文件等,退出Developer Studio,返回Windows操作系統(tǒng)界面。5Visual C+程序的編譯、連接和運(yùn)行用于編譯、連接和運(yùn)行應(yīng)用程序的功能集中在創(chuàng)建(Build)子菜單中,但其中多數(shù)功能也可通過(guò)快捷鍵和工具條調(diào)用。Developer Studio的Build子菜單共有11項(xiàng),分為4組,組與組之間用橫線隔開(kāi)。第1組包括編譯、連接等功能:編譯當(dāng)前項(xiàng)目(Compile,快捷鍵為Ctrl+F7)。用于將源程序編譯為目標(biāo)代碼。編譯結(jié)果及編譯錯(cuò)誤信息在輸出窗口(Output)顯示。編譯、連接當(dāng)前項(xiàng)目(Build,快捷鍵為F7)。在對(duì)當(dāng)前項(xiàng)目的源程序編譯之后,還進(jìn)行連接(Link)操作,即將目標(biāo)代碼與系統(tǒng)或用戶類庫(kù)連接并生成可執(zhí)行的程序(或動(dòng)態(tài)連接庫(kù).DLL等)。重新編譯、連接當(dāng)前項(xiàng)目(Rebuild All)。功能與基本相同,只是無(wú)論是否修改過(guò),對(duì)所有文件都重新進(jìn)行編譯和連接工作。以批處理方式編譯、連接當(dāng)前項(xiàng)目(Batch Build)。功能與基本相同,只是同時(shí)產(chǎn)生調(diào)試版和發(fā)行版執(zhí)行程序。清除臨時(shí)文件( Clean)。用于清除上一次編譯、連接時(shí)產(chǎn)生的臨時(shí)文件和輸出文件,以整理程序目錄。第2組用于調(diào)試程序,包括開(kāi)始調(diào)試(Start Debug)和遠(yuǎn)程調(diào)試鏈接(Debugger Remote Connect)。第3組用于執(zhí)行當(dāng)前項(xiàng)目的可執(zhí)行程序(Execute,快捷鍵為Ctrl+F5)。第4組用于設(shè)置編譯和連接工作的參數(shù)。包括:設(shè)置項(xiàng)目的版本類型(Set Active Configuration)。Developer Studio生成的可執(zhí)行文件有兩種版本,一種是調(diào)試版本(Win32 Debug),內(nèi)含調(diào)試代碼,體積稍大,主要在編程調(diào)試過(guò)程中使用。另一種是發(fā)放版本(Win32 Release),其中不包含調(diào)試代碼,體積小,用于在程序調(diào)試結(jié)束后提交用戶。管理項(xiàng)目版本(Configuration)。用于管理項(xiàng)目的調(diào)試版本和發(fā)放版本。Profile。設(shè)置、Profile程序和顯示Profile數(shù)據(jù)。6查看和修改編譯、連接錯(cuò)誤剛編寫(xiě)好的程序含有錯(cuò)誤是正常的,即使是熟練的專業(yè)程序員也很難一次就編寫(xiě)出完全沒(méi)有錯(cuò)誤的源程序來(lái)。實(shí)際上,重要的不是程序中是否有錯(cuò)誤,而是怎樣將這些錯(cuò)誤找出來(lái)并改正之。一般來(lái)說(shuō),一段源程序從輸入編輯到通過(guò)編譯,往往要重復(fù)若干次編譯-修改-再編譯的過(guò)程。如果在編譯的過(guò)程中發(fā)現(xiàn)了錯(cuò)誤,則進(jìn)入編輯查錯(cuò)狀態(tài)。這時(shí)在屏幕下方的Output窗口中會(huì)顯示出錯(cuò)誤的類型、錯(cuò)誤發(fā)生的位置以及錯(cuò)誤的原因。錯(cuò)誤信息的格式為:(行): 錯(cuò)誤有兩種,一種是Error,表示這是一個(gè)嚴(yán)重錯(cuò)誤,非改不可。另一種是Warning,表示源程序這里有可能是錯(cuò)誤的,也有可能不是錯(cuò)誤,編譯程序自己也拿不準(zhǔn)。一般來(lái)說(shuō),如果只出現(xiàn)警告信息,還是可以繼續(xù)連接、運(yùn)行程序,建議在出現(xiàn)編譯警告時(shí)最好還是仔細(xì)檢查一下,設(shè)法消除引起警告的原因。錯(cuò)誤發(fā)生的位置包括源程序的路徑和文件名以及錯(cuò)誤所在行。必需說(shuō)明的是+編譯程序的“智力”并不十分高,雖然能夠查出錯(cuò)誤,但對(duì)錯(cuò)誤的說(shuō)明可能并不十分準(zhǔn)確,而且一個(gè)實(shí)際錯(cuò)誤往往會(huì)引出若干條錯(cuò)誤說(shuō)明,使人不容易摸清到底錯(cuò)在什么地方。錯(cuò)誤的原因其實(shí)可能很簡(jiǎn)單,例如少寫(xiě)了一個(gè)括號(hào)、分號(hào)或拼錯(cuò)了一個(gè)單詞,都可能引起一連串的錯(cuò)誤提示。真正的錯(cuò)誤之處也可能在此之前的某個(gè)語(yǔ)句。而且指出的錯(cuò)誤條數(shù)可能偏多,常常是由于一處出錯(cuò)而引發(fā)了一系列錯(cuò)誤提示信息。用鼠標(biāo)雙擊一條錯(cuò)誤信息可使文本編輯器作出反應(yīng),其左框上顯示一個(gè)箭頭指出對(duì)應(yīng)的出錯(cuò)語(yǔ)句,以便修改源程序。在連接階段也可能出現(xiàn)一些錯(cuò)誤提示。與編譯錯(cuò)誤提示信息不同的是連接錯(cuò)誤不指出錯(cuò)誤發(fā)生的詳細(xì)位置,這是因?yàn)檫B接的對(duì)象是目標(biāo)程序,和源程序格式有很大差別,不易確定錯(cuò)誤的準(zhǔn)確位置。連接階段出現(xiàn)的錯(cuò)誤一般比較少,大多數(shù)是因?yàn)樵诔绦蛑姓{(diào)用了某個(gè)函數(shù),而連接程序卻找不到該函數(shù)的定義。這時(shí)最有可能的是函數(shù)名字拼寫(xiě)錯(cuò)誤。另外,如果程序的規(guī)模較大,需要分為若干個(gè)源程序文件分別編譯然后連接,則也可能出現(xiàn)全局變量重復(fù)定義或找不到等錯(cuò)誤現(xiàn)象。在找到連接錯(cuò)誤的原因并改正以后,一定要重新編譯后才能再次連接。否則,雖然源程序已經(jīng)修改,但進(jìn)行連接的目標(biāo)程序還是以前有錯(cuò)誤的目標(biāo)程序,再次連接仍然會(huì)產(chǎn)生同樣的錯(cuò)誤。7運(yùn)行錯(cuò)誤的判斷與調(diào)試通常所說(shuō)的運(yùn)行錯(cuò)誤有兩種, 一種是邏輯錯(cuò)誤, 即程序的實(shí)際運(yùn)行結(jié)果和編程者對(duì)程序結(jié)果的期望不符; 另一種仍是程序設(shè)計(jì)上的錯(cuò)誤, 但是躲過(guò)了編譯程序和連接程序的檢查, 通常表現(xiàn)為突然死機(jī)、自行熱啟動(dòng)或者輸出信息混亂。相對(duì)于編譯和連接錯(cuò)誤來(lái)說(shuō), 運(yùn)行錯(cuò)誤的查找和判斷更為困難。編譯和連接錯(cuò)誤可以由編譯程序和連接程序檢查, 而運(yùn)行錯(cuò)誤就不同了, 很少或根本沒(méi)有提示信息, 只能靠程序員的經(jīng)驗(yàn)來(lái)判斷錯(cuò)誤的性質(zhì)和位置。下面簡(jiǎn)單地介紹一些常見(jiàn)運(yùn)行錯(cuò)誤的調(diào)試方法。邏輯錯(cuò)誤: 一種邏輯錯(cuò)誤是由于在設(shè)計(jì)程序的算法時(shí)考慮欠周引起的, 例如對(duì)邊界和極端條件未作處理等。例如以下循環(huán):while(count) count = count-1;程序員的構(gòu)思是進(jìn)行count次循環(huán)。但是, 如果count中原來(lái)的值為負(fù)數(shù)時(shí), 此循環(huán)就成了一個(gè)“死循環(huán)”而導(dǎo)致無(wú)法停機(jī), 顯然是錯(cuò)誤的。但是編譯程序無(wú)法查出這類錯(cuò)誤, 只有到了程序運(yùn)行之后才有可能發(fā)現(xiàn)。再如, 在利用海倫公式計(jì)算三角型面積時(shí), 首先應(yīng)該確認(rèn)給出的三條邊長(zhǎng)確實(shí)可以構(gòu)成一個(gè)三角形, 否則計(jì)算結(jié)果是沒(méi)有意義的; 而在編寫(xiě)求解一般實(shí)系數(shù)一元二次方程的程序時(shí), 必須在程序中設(shè)計(jì)處理復(fù)根情況的程序段, 以免對(duì)負(fù)數(shù)求平方根。另一種常見(jiàn)的邏輯錯(cuò)誤是由于程序輸入時(shí)的打字錯(cuò)誤造成的, 例如將判斷條件中的“=”誤輸入為“”, 將相等判斷“=”誤輸入為賦值號(hào)“=”等。含有這類錯(cuò)誤的程序在運(yùn)行時(shí)出現(xiàn)的現(xiàn)象多種多樣, 而且通常很難與錯(cuò)誤的原因聯(lián)系起來(lái)。數(shù)組下標(biāo)越界錯(cuò)誤:即使用了并不存在的數(shù)組元素。例如有程序段int a5;for(int i=1; i=5; i+)ai = 0;由于5并不存在,而上述程序段試圖將數(shù)據(jù)存放到一個(gè)并不存在的數(shù)組元素中,這會(huì)引起包括死機(jī)在內(nèi)的嚴(yán)重運(yùn)行錯(cuò)誤。類似錯(cuò)誤還有指針和動(dòng)態(tài)存儲(chǔ)分配引起的一些運(yùn)行錯(cuò)誤。8基本調(diào)試手段程序的基本調(diào)試手段有以下幾種: 標(biāo)準(zhǔn)數(shù)據(jù)檢驗(yàn)、程序跟蹤、邊界檢查和簡(jiǎn)化循環(huán)次數(shù)等。標(biāo)準(zhǔn)數(shù)據(jù)檢驗(yàn): 在程序編譯、連接通過(guò)以后, 就進(jìn)入了運(yùn)行調(diào)試階段。運(yùn)行調(diào)試的第一步就是用若干組已知結(jié)果的標(biāo)準(zhǔn)數(shù)據(jù)對(duì)程序進(jìn)行檢驗(yàn)。標(biāo)準(zhǔn)數(shù)據(jù)的選擇非常重要, 一是要有代表性, 接近實(shí)際數(shù)據(jù); 二是要比較簡(jiǎn)潔, 容易對(duì)其結(jié)果的正確性進(jìn)行分析。另外, 對(duì)重要的臨界數(shù)據(jù)也必須進(jìn)行檢驗(yàn)。程序跟蹤: 對(duì)于比較復(fù)雜的大型程序來(lái)說(shuō), 上述標(biāo)準(zhǔn)數(shù)據(jù)檢驗(yàn)一次就完全通過(guò)的可能性很小。通常程序中總是存在許多各種各樣的錯(cuò)誤,還需要對(duì)程序進(jìn)行細(xì)致的調(diào)試工作。程序跟蹤則是最重要的調(diào)試手段。程序跟蹤的基本原理是讓程序一句一句地執(zhí)行, 通過(guò)觀察和分析程序執(zhí)行的過(guò)程中數(shù)據(jù)和程序執(zhí)行流程的變化來(lái)查找錯(cuò)誤。就Visual C+而言, 程序跟蹤可以采用兩種方法, 一種是直接利用Developer Studio中的分步執(zhí)行、斷點(diǎn)設(shè)置、變量?jī)?nèi)容顯示等功能對(duì)程序進(jìn)行跟蹤, 這種方法在后面的編程與調(diào)試部分介紹; 另一種是傳統(tǒng)的方法, 通過(guò)在程序中直接設(shè)置斷點(diǎn)、打印重要變量?jī)?nèi)容等來(lái)掌握程序的運(yùn)行情況。例如,可以在程序中的關(guān)鍵部位插入這樣的代碼段:/ 調(diào)試代碼段cout 100 endl;cout Variable count = “ count “, x = “ x “, sum = “ sum endl;_getch ( ) ;/ 調(diào)試代碼段結(jié)束其中的變量可以根據(jù)程序的實(shí)際情況進(jìn)行設(shè)計(jì)。使用_getch ( ) 函數(shù)的目的是要程序在執(zhí)行到這一行時(shí)暫時(shí)停下來(lái), 從而可以看清楚調(diào)試代碼段所顯示的信息,然后選擇是否讓程序繼續(xù)執(zhí)行,該函數(shù)的原型在頭文件conio.h中。如果到這一斷點(diǎn)時(shí)尚未發(fā)現(xiàn)錯(cuò)誤, 則可以按下任何一個(gè)鍵讓程序繼續(xù)運(yùn)行到下一個(gè)斷點(diǎn); 否則可以使用組合鍵Ctrl+Break鍵來(lái)中斷程序, 再使用編輯器對(duì)程序進(jìn)行修改。在程序中的所有的問(wèn)題都解決了之后, 再將程序中所有的調(diào)試代碼段統(tǒng)統(tǒng)刪去。邊界檢查: 在設(shè)計(jì)檢查用的數(shù)據(jù)時(shí), 要重點(diǎn)檢查邊界和特殊情況。例如, 對(duì)于循環(huán):while(count a b c;. .這樣的程序時(shí),為了突出測(cè)試該段程序?qū)δ辰M輸入數(shù)據(jù)(如a = 1, b = 2, c= 3)的響應(yīng)情況, 同時(shí)避免每次輸入數(shù)據(jù)的麻煩, 可以利用注解號(hào)將上述程序段落改為:/ cin a b c;a = 1;b = 2;c = 3;. .這樣在調(diào)試程序時(shí)就不必每次停下來(lái)等待輸入數(shù)據(jù)了, 可以直接使用步進(jìn)、跟蹤或設(shè)置斷點(diǎn)等手段調(diào)試這段程序。等到程序中的所有錯(cuò)誤全部修正以后, 再恢復(fù)被修改的內(nèi)容(即注解中的內(nèi)容)即可。10條件編譯條件編譯是編譯預(yù)處理命令的一種,用于對(duì)源程序的內(nèi)容進(jìn)行選擇性編譯。例如, 在調(diào)試程序期間, 常常希望記錄輸出一些調(diào)試用的信息, 而在調(diào)試完成后, 就不再需要這些輸出信息了。要解決這個(gè)問(wèn)題,一種辦法是逐一從源程序中刪去這些輸出這些調(diào)試信息的程序段落, 或者將這些程序段落用注釋標(biāo)記括起來(lái)。顯然這樣很不方便。另一種方法就是使用編譯預(yù)處理中的條件編譯命令。條件編譯命令的格式為:#if #elif . .#elif #else#endif條件編譯中所使用的條件只能是由常數(shù)構(gòu)成的表達(dá)式。如果該常數(shù)表達(dá)式的值不為0, 就表示條件成立, 否則表示條件不成立。一般情況下, 在#if中都是使用由#define指令產(chǎn)生的符號(hào)常數(shù)進(jìn)行測(cè)試。編譯預(yù)處理命令的一個(gè)常見(jiàn)的用途是將調(diào)試代碼插入應(yīng)用程序中。程序員可以定義一個(gè)叫做DEBUG的符號(hào)常數(shù),

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論