目
錄
1
題目的內容及要求
.
....................................................................................................................
2
2
需求分析
.....................................................................................................................................
2
3
概要設計
.
....................................................................................................................................
2
4
詳細設計
.......................................................................................................................................
4
5
源代碼
...........................................................................................................................................
6
6
運行結果及分析
.
........................................................................................................................
1
3
7
收獲及體會
.
............................................................................................................................
1
4
1
題目的內容及要求
從文件讀取表達式,判斷表達式是否合理,將表達式轉換成后綴形式,按后
綴表達式求值;題目涉及加減乘除,帶括弧的混合運算;隨時可以退出。
2
需求分析
利用棧設計一個程序,
該程序能夠用于表達式求值,
程序將讀入的中綴表達
式轉換為后綴表達式,然后讀取后綴表達式,輸出結果。
本程序具有檢測表達式語法是否正確的功能,
如果表達式出現錯誤的時候,
程序會提示
操作人員執行的表達式不合理,
語法是不能執行的。
語法正常的情況下,
程序可以實現了加、
減、乘、除以及帶括號的基本運算。
程序在執行表達式的時候,
先檢查表達式是否合理,
不合理則輸出表達式不
符合要求,
合理則將中綴表達式轉化為后綴表達式,
然后則對表達式求值,
輸出
結果。
3
概要設計
本程序選用的是線性表數據結構。它按照后進先出的原則存儲數據,先進
的數據被壓入棧底,
最后的數據在棧頂,
需要度數據的時候才棧頂開式探出數據。
程序采用的是順序存儲結構,可以將邏輯上相鄰的數據元素在物力上相鄰的
存儲單元里,節電之間的關系由存儲單元相鄰的關系來決定。
選擇線性表結構是因為程序是用棧來設計的,可以將優先運算的送至棧頂,
低級別的運算則最后根據先后進棧的順序來執行。
選擇順序存儲結構是因為順序
存儲結構存取數據數度快,占用的存儲空間小。
系統的功能模塊劃分: