《實時控制軟體設計》第乙個程式設計作業

2022-05-04 08:06:10 字數 1944 閱讀 6733

c++程式設計是基本功訓練,鄒欣老師在教學中,第乙個作業是

花二十分鐘寫乙個能自動生成小學四則運算題目的命令列 「軟體」,要求:

a) 除了整數以外,還要支援真分數的四則運算。 (例如: 1/6 + 1/8 = 7/24)

b) 讓程式能接受使用者輸入答案,並判定對錯。 最後給出總共 對/錯 的數量。

詳見

在此基礎上,進一步可以完成第二個作業,進行模組化程式設計,資訊隱藏,介面設計,tdd等方面的訓練。

詳見 侯捷老師在他的c++課程中,則以複數的運算為例講解物件導向程式設計的關鍵知識點。

#include #include using eigen::matrixxd;

int main()

然後編譯執行,就可以在命令列環境中看到輸入結果了。

因為採用c++程式設計,所以開發環境也有多種選擇,如ubuntu linux/vim/gcc、windows/visual studio, 由於orocos是用gcc編譯器編譯的,我們優先選用ubuntu linux/vim/gcc,如果你對linux環境不熟悉,可以採用windows下的輕量級開發環境dev-c++,該軟體也是基於gcc編譯器。dev-c++開發環境的建立過程如下:

2)執行該安裝檔案,按提示完成安裝過程。

3)開啟dev-c++軟體,新建乙個新專案,新建乙個main.cpp檔案,把上面的程式**拷貝到main.cpp檔案中。

為了使上述**能夠執行,我們還必須在開發環境中整合eigen庫,為此:

5)對壓縮包解壓縮到剛才新建的專案目錄下。

6)點選dev-c++的選單「專案->專案屬性」,在彈出對話方塊中選擇「檔案/目錄」選項卡下的「包含檔案目錄」。

7)把eigen**所在的根目錄新增到「包含檔案目錄」列表中,如下圖所示。

8)現在編譯執行程式,就可以看到執行結果了,如圖所示。

在此基礎上,同學們可以著手應用eigen庫完成乙個具體的功能。參照鄒欣老師布置的作業,我們的第乙個「軟體」開發作業如下:

第一步: 寫乙個根據輸入座標生成乙個平面圖形(點、線段和三角形)並能對該幾何圖形進行平移和旋轉操作的命令列 「軟體」,要求:

a) 通過命令列輸入圖形的名稱,端點數(1為點,2為線段,3為三角形)和端點座標(x,y)。

如:輸入乙個點 p1 1 (2,5)

輸入乙個線段 l1 2 (3,5) (4,6)

輸入乙個三角形 t1 3 (1,1) (2,5) (-4,7)

b) 輸入乙個計算指令,實現對上述圖形的平移和繞原點旋轉等操作,並輸出該圖形新的座標值。

如:move l1 (3,6) 表示把線段l1沿x方向移動3,沿y方向移動6。

rotate t1 -30 表示把三角形t1繞原點逆時針旋轉30度。

程式設計要求使用eigen庫函式,(如覺得有難度可先用自己編寫的函式實現,但在實現第二步前必須修改成使用eigen庫函式),先在部落格上提交**,並附上執行結果截圖。同學之間可相互閱讀部落格,比較一下各自程式的功能、實現方法的異同。

第二步,

在小組內每個同學在如下方向中選擇乙個,進行功能擴充套件:

a) 實現更複雜的二維圖形操作,如定義更複雜的圖形(多邊形),實現圖形圍繞任意點的旋轉,圖形相對於某一條線的映象,並考慮擴充套件到三維空間。

b) 把圖形資料儲存到檔案,並能從檔案中恢復。

c) 實現簡易gui,通過gui輸入圖形座標和操作命令,並顯示圖形。

考慮如何把上述三個軟體功能整合在一起,如何定義介面?

估計做好這個軟體需要的時間,並且寫出大概的設計步驟和實現演算法。

《實時控制軟體設計》期末作業

1 每個團隊的pm在github.com rtcsd2016下建立本團隊的專案repository,把團隊成員新增進去。2 在repository的根目錄下建立readme.md文件用於簡述團隊組成和團隊開發目標,在專案完成後新增關於軟體編譯和執行的簡要說明。也可新增todo.md用於介紹團隊近期的...

《實時控制軟體設計》作業一 Eigen庫的使用

作業內容及要求這裡 repo 題目要求實現對平面圖形的一系列圖形學操作。平面圖形可以表示為其所有頂點的有序連線,對圖形的操作可以分解為對其所有頂點依次應用同一操作。以 頂點序列表示圖形 的思路,定義geoelement型別,用於表示包括點 線 多邊形的平面圖形元素,使用stl中的動態陣列vector...

《實時控制軟體設計》第三週作業

閱讀作業 快速通讀 構建之法 現代軟體工程 全書,列出幾條問題項,發表在個人部落格上,如 git github實踐作業 把上述操作過程記錄在個人部落格上,至少截一張最後的log顯示的圖。在個人的github上進行一次fork操作,把感興趣的 庫fork到個人賬號,預設可選擇 在個人github帳號下...