1
目錄
目錄
.
.............................................................................................
1
1
.系統需求分析
.......................................................................
2
1.1
問題描述
.
..........................................................................................................................
2
2
.概要設計
...............................................................................
4
2.1
設計思路
.
............................................................................................................................
4
2.2
系統總體設計
.
...................................................................................................................
5
2.3
程序流程圖
.
........................................................................................................................
6
2.3.1
塔盤數量設置
.
.........................................................................................................
6
2.3.2
移動速度調節
.
.........................................................................................................
6
2.3.3
操作對象選擇
.
.........................................................................................................
7
2.3.4
漢諾塔求解流程圖
.
.................................................................................................
8
3
.詳細設計
...............................................................................
9
3.1
模塊設計
.
...........................................................................................................................
9
3.1.1
塔和塔顯示的定義
.
................................................................................................
9
3.1.2
塔盤移動的定義
.
..................................................................................................
11
3.1.3
塔盤移動規律的定義
.
..........................................................................................
1
2
3.1.4
主函數
main( ) ......................................................................................................
1
2
4.
系統調試
...............................................................................
14
5.
運行結果
...............................................................................
14
6.
心得體會
...............................................................................
19
7.
附錄
.
......................................................................................
20
7.1
參考書目
.
.........................................................................................................................
2
0
7.2
源程序
.
............................................................................................................................
2
0
8
評分表
.
....................................................................................
25
2
1
.系統需求分析
1.1
問題描述
(一)
、課程設計題目:
漢諾塔問題
(二)
、目的與要求:
1
、目的:
(
1
)要求學生達到進一步熟練掌握
C
語言的基本知識和技能;
(
2
)基本掌握利用
VC++6.0
制作頁面的基本思路和方法;
(
3
)能夠利用所學的基本知識和技能,解決簡單的漢諾塔問題。
2
、基本要求:
(
1
)要求利用
VC++6.0
以及
MFC
控件來完成系統的設計;
(
2
)要求在設計的過程中,建立清晰的類層次;
(
3
)在系統中定義類,每個類中要有各自的屬性和方法;
(
4
)在系統的設計中,至少要用到
C
中的一種算法。
3
、創新要求:
在基本要求達到后,可進行創新設計,如根據查找結果進行修改的功能。
4
、寫出設計說明書
(三)
、設計方法和基本原理:
1
、問題描述(功能要求)
:
界面劃出大小不等,顏色不同的矩形塊分別代表各盤子,盤子規模
n
為
1~10
,并可以選擇人工控制演示和系統自動運行演示,如果是自動則還要輸
入演示速度。在界面的上方顯示正在移動的盤子的源座和目標座。用人工操
作時,
按任意鍵移動一個盤子,
這樣可以清楚每一步過程。
如果是自動運行,
可以選擇移動一步的暫停時間。要求用
Turbo C
或
VC6.0 MFC
實現的漢諾
塔問題的圖形程序。
設計思路:用棧存放塔,定義三個堆棧,用來表示三個塔座,棧的每個
結點類型為結構體,
其中數據域存放盤子的代號,
根據代號計算盤子的大小。
Top
為塔的棧頂指針,即每個塔的具體高度。例如,結構體可以定義如下:
Struct H
{ int data[15];/*
存放每個盤的代號
*/