2009-11-16 68 views
4

我是一名在學校學習C++的學生。我們正在使用Dev-C++進行一些簡短的練習。有時候我很難知道我犯了什麼錯誤或者程序中有什麼真正的問題。我們的老師教我們畫圖。使用鏈接列表和指針時它們可能很有用,但有時我的繪圖本身是錯誤的。可視化C++以幫助理解它

(例子可視化鏈接列表中的繪圖:nl.wikibooks.org/wiki/Bestand:GelinkteLijst.png)

是否有可以解釋我的C++代碼/程序和可視化的任何軟件(爲我製作圖紙)? 我發現這一點:link text

其他鏈接: cs.ru.ac.za/research/g05v0090/images/screen1.png和 cs.ru.ac.za/research/g05v0090/index.html

這看起來像我需要但不能用於任何下載。我試圖聯繫那個人,但沒有得到答案。

有人知道這樣的軟件嗎?可能是其他學生也我猜有用...

親切的問候,

juFo

回答

6

這與實際標題無關,但我想就如何理解程序中發生的事情提出一個簡單的建議。

我不知道你是否看過一個調試器,但它是一個很棒的工具,它絕對可以大大提高你對正在發生的事情的理解。根據您的IDE,它會或多或少的功能,其中一些內容應包括:

  • 看到當前調用堆棧(可以讓你瞭解什麼功能調用的)
  • 看到當前訪問的變量以及它們的值
  • 允許您一步一步地走路,看看每個值如何變化
  • 以及許多更多。

所以我建議你花一些時間來學習關於IDE的特定調試器,並開始使用所有這些功能。有時會有更多的東西,然後點擊Next。有些東西可能包括動態代碼評估,回溯時間等。

+0

我在維基百科上發現了這個問題:http://en.wikipedia.org/wiki/List_%28C%2B%2B%29#List_Visualization 這是由程序自動創建的還是手工繪製的?如果它是自動的:那裏使用什麼軟件? – juFo 2009-11-23 18:52:16

+0

@juFo:這只是一個手動完成的圖表來說明鏈接列表。 – JRL 2009-11-23 20:17:41

1

Doxygen有,如果我還記得,這種基本形式,但它真的只有一個太大的次要功能更大的圖書館,這可能是爲了你想要的矯枉過正。 (雖然這是一個偉大的文件程序!)

+0

Doxygen實際上有非常令人印象深刻的可視化工具。它可以生成複雜的調用圖,調用者圖,繼承圖,並且擁有最完整的C++解析器之一(它實際上比MSVC更好!) – coppro 2009-11-16 20:32:38

+0

非常好!自從我上次看了以後,他們肯定有所改善。 – Toji 2009-11-16 22:41:41

2

看看DDD。它是調試器的圖形前端。

嘗試一般的調試程序以瞭解您的程序在做什麼,它們可以逐步引導您完成代碼。

0

對某種圖表進行逆向工程代碼,會使IMO受益有限。理解程序流程的更好方法是在調試器中執行代碼。如果你還沒有使用調試器,你應該;對於這個特定的問題,它是更合適的工具。

當重複使用或維護未記錄或遺留代碼較少的遺留代碼時,對代碼進行逆向工程代碼很有用,但它很少暴露代碼的設計意圖,因爲它缺少在設計代碼時使用的抽象。你不應該在你自己寫的新代碼上使用這些東西!而且,這些工具甚至適度地完成工作也很昂貴。

如果您認爲可以避免設計,並且只需交出自動生成的圖表,則不要這樣做。這將是一個自動生成的圖!