課程實驗報告
課程名稱:物件導向程式設計
實驗名稱:面向過程的整型棧程式設計
院系 :電腦科學與技術
專業班級 : cs1201
學號 : u201214819
姓名 : 魏茹珺
指導教師 : 馬光志
2015 年 1 月 5 日
1、需求分析
1. 題目要求
整型棧是一種先進後出的儲存結構,對其進行的操作通常棧括判斷棧是否為空、向棧頂新增乙個整型元素、出棧等。整型棧型別及其操作函式採用非物件導向的純c語言定義,請將完成上述操作的所有函式採用純c語言程式設計, 然後寫乙個main函式對棧的所有操作函式進行測試。
struct stack;
void initstack(stack *const p, int m); //初始化p指向的棧:最多m個元素
void initstack(stack *const p, const stack&s); //用棧s初始化p指向的棧
int howmany (const stack *const p); //返回p指向的棧的實際元素個數pos
stack *const push(stack *const p, int e); //將e入棧,並返回p
stack *const pop(stack *const p, int &e); //出棧到e,並返回p
stack *const assign(stack*const p, const stack&s); //賦s給p指的棧,並返回p
void print(const stack*const p列印p指向的棧
void destroystack(stack*const p銷毀p指向的棧
2. 需求分析
本實驗需要實現棧的功能的操作,如元素的進棧,連續進棧,出棧和連續出棧,所以需要設計兩個棧,在完成初始化後直接在程式裡給定棧內元素。
2、系統設計
1. 概要設計
首先需要完成實現個功能的函式,然後在主函式裡給定乙個棧,通過呼叫各個功能函式來判斷功能的實現與否。
2. 詳細設計
初始化棧需要為棧內的元素動態分配乙個空間,然後將結構體內的當前元素初始化為0;
實現入棧則需要將入棧元素e放入棧內,將當前元素pos加一;
實現出棧操作則需將棧頂的元素賦給乙個變數然後將當前元素pos減一;
實現棧的賦給即需要將s1棧內的元素依次賦給s2棧的,當前元素也需一致;
3、軟體開發
在codeblocks下,用c++編譯
4、軟體測試
所得截圖如下:
第一行:將1壓入s1棧;
第二行:將2壓入s1棧;
第三行:將3,4連續壓入棧;
第四行:實現上述操作後s1棧內的元素個數;
第五行:將s1棧的乙個元素出棧後s1棧的值;
第六行:將s1棧賦給s2棧後,s2棧的值;
第七行:將s2棧連續出棧兩個元素後,s2棧的值;
5、特點與不足
1. 技術特點
成功完成實驗要求,沒有錯誤。
2. 不足和改進的建議
不足之處在於不能按需求輸入,如果需要改變棧值則只能通過修改程式才能實現
6、過程和體會
1. 遇到的主要問題和解決方法
想的太多了,總是把程式想的很複雜,還想通過寫介面實現對應模組功能,後來仔細看了報告書,將介面刪除,只留下功能實現的部分。
2. 課程設計的體會
通過這次的實驗,我體會到了,不能一味地光寫程式而是要看清實驗要求,不要將問題複雜化,自己給自己找麻煩。看清題意,完成就好。
7、原始碼和說明
1. 檔案清單及其功能說明
執行檔案: shiyan1.exe
原始碼: shiyan1.cpp
2. 使用者使用說明書
程式要在支援c++程式設計的開發軟體中執行
3. 源**
#include
#include
#include
struct stack;
void initstack( stack *const p, int m)//初始化p指向的棧:最多m個元素
void initstack(stack *const p, const stack&s)//用棧s初始化p指向的棧
}int howmany (const stack *const p) //返回p指向的棧的實際元素個數pos
stack *const push(stack *const p, int e) //將e入棧,並返回p
return p;
}stack *const pop(stack *const p, int &e) //出棧到e,並返回p
stack *const assign(stack *const p, const stack&s) //賦s給p指的棧,並返回p
p->pos=s.pos;
return p;
}void print(const stack*const p列印p指向的棧
printf("\n");
}void destroystack(stack*const p銷毀p指向的棧
int main()
物件導向程式設計實驗報告
綜合實驗報告 專業名稱 物聯網工程 班級 2012級2班 姓名 你哥哥 學號 201202051928 資訊科學與工程學院 二零一三年七月 第一題 2 1.1題目概述 2 1.2設計思路 2 1.3設計說明與除錯分析 2 1.4編碼實現 3 1.5程式執行結果 4 1.6設計心得 4 第二題 5 2...
物件導向程式設計實驗報告
安康學院經濟與管理系 課程單項實驗 上機 實訓 報告 課程名稱物件導向程式設計 班級專業 11級資訊管理與資訊系統1班 學生姓名 學號指導教師 填寫時間 年月日 課程單項實驗 上機 實訓 報告填寫要求 1.課程單項實驗是指該課程實驗由每乙個單獨設定的實驗專案組成,每個實驗專案應寫乙份實驗報告,課程實...
《物件導向程式設計》實驗1實驗報告
南京工程學院實驗報告 注 將實驗成果檔案 包含實驗報告電子檔案 程式源 檔案等 用winrar打包,以 班級 學號 實驗x rar檔案形式交付指導老師。一 實驗目的 熟悉visual studio 開發環境。掌握變數的定義 運算子的使用,以及列舉型別的定義與使用 掌握分支語句和迴圈語句的使用 熟悉除...