物件導向程式設計寒假作業2

2022-03-28 19:16:05 字數 3866 閱讀 2183

這個作業屬於哪個課程

2020物件導向程式設計張棟班

這個作業的要求在**

物件導向程式設計寒假作業2

這個作業的目標

1、學習git的建立倉庫和上傳**;2、優化**並且可以優雅地命名;3、學習window批處理

作業正文

2020物件導向程式設計寒假作業2

其他參考文獻

freopen函式;c++語言程式設計基礎;windows批處理教程;建立倉庫;commit和push

首先讀題吧!

程式設計題(請使用c語言或者c++完成以下題目):

• 繼續完成作業一的程式設計題。

• 優化架構,一般要求每個函式長度不超過15行。

• 優化規範,尤其是命名規範。

• 製作乙個編譯指令碼,執行該指令碼可以編譯你的**,可選的指令碼語言,python(2.7),windows批處理,powershell,shell。

• 進行單元測試,即測試每乙個函式,並製作乙個測試指令碼,執行該指令碼可以進行測試,並顯示測試結果。

• 在作業一程式設計題的基礎上新增以下功能:

o 通過命令列讀取乙個檔案,然後執行這個檔案。如我的程式叫lang,lang 1.txt代表我要執行1.txt這個文字中的**。

o 假設我的1.txt內容如下:

• 整數 錢包 等於 零

• 錢包 增加 四

• 錢包 減少 三

看看 錢包

o 輸入lang 1.txt後,命令列輸出一。

我要解決的就是函式長度問題和命名的問題(main(主函式),transform(轉化),process(步驟),output(輸出),這是第二個要求,命名,我也不曉得我這樣命名專不專業!),自己**太長了,要思考更好的寫法。這一次我想嘗試用c++來寫,原因是我覺得string類這個應該會有很大的用處,就可不用strcmp函式了,直接用==,output的時候直接用+,這樣可太方便了。還有乙個就是getline函式!!

首先我初始化了一些東西,主要是用在漢字轉化上,

string chinese[11] = , add = "增加", depress = "減少";

之後我把整個問題分為了,四個函式來實現,分別是main(主函式),transform(轉化),process(步驟),output(輸出)。

第乙個transform(轉化)是漢字轉化為阿拉伯數字,這裡的想法是運用陣列下標對於數字,這在結束的轉化裡也用到了。

int  transform(string number)

} return i;

}

第二個是錢包的加加減減,函式process(步驟)同樣是運用到陣列下標的對應。
void process(string first)

else

}

第三個是output函式,**比較長,原本想要分兩個來函式來寫,但是最終還是沒分出來,它們之間的變數關係比較緊密,所以超出了幾行。
void putout()

if (a[i - 1] != 1) outcome = chinese[a[i - 1]];

if (a[i - 2] == 0) outcome = outcome + "十";

else

}cout << sum << endl << outcome;

} }}

最後是main函式。大量應用了getline函式,比如最開始「整數 錢吧 等於 零」,三個迴圈,每次讀取字串到空格,最後分出漢字數字「零」來,這解決了我在第一次作業裡的困惑。
int main()

else

} while (flag);

return 0;

}

完整**如下:

#include#includeusing namespace std;

string chinese[11] = , add = "增加", depress = "減少";

int sum;

int transform(string number)

} return i;

}void process(string first)

else }

void putout()

if (a[i - 1] != 1) outcome = chinese[a[i - 1]];

if (a[i - 2] == 0) outcome = outcome + "十";

else

}cout << sum << endl << outcome;

} }}int main()

else

} while (flag);

return 0;

}

我好難啊!

學習過程就不提了!

講講我遇到的問題

首先,我的思路的這樣的,依次開啟(type)檔案,直至開啟作業二.cpp,然後編譯!

可想而知,我遇到了什麼!

那就是滿屏的**!!

但是,就在我開心的轉圈圈的時候!!gcc它竟然找不到作業二.cpp了

所以!我試了一遍又一遍都搞不定它,所以我只好靈機一動,把作業二.cpp複製在了指令碼的資料夾了,然後成功了!!

哈哈哈!!

我開始因為是寫乙個批處理檔案然後就相當於乙個程式來測試,然後參考了其他同學的作業,才發現是,重新寫乙個.cpp來測試,測試指令碼只是來執行它的??希望我的理解沒有錯。

首先根據我自己的**吧,我覺得只有output函式最需要測試,這也是自己在寫**的時候修改最多的。

根據這個函式的性質,我的測試程式的功能是,輸入乙個數字(當然這個數字在0~99之間),得到正常的對應漢字可判斷。

這很像在學習寫作業的提交反饋哦。

我的測試**:

#includeusing namespace std;

int sum;

string b[10] = ;

string chinese[11] = , add = "增加", depress = "減少";

string output()

if (a[i - 1] != 1) outcome = chinese[a[i - 1]];

if (a[i - 2] == 0) outcome = outcome + "十";

else }}

}return outcome;

}int main()

,i; for (i = 0; i < 10; i++)

}

我的測試指令碼和截圖:

}結果:

再push它

ok了!

物件導向程式設計寒假作業2

這個作業屬於哪個課程 2020物件導向程式設計 這個作業要求在 物件導向程式設計寒假作業2 這個作業的目標 1.繼續完成程式設計題 2.新建乙個github倉庫,並把作業推送到該倉庫。作業正文 如下其他參考文獻 在文中相關部分 繼續完成作業一的程式設計題。gcc 1.cpp test.cpp o t...

物件導向程式設計寒假作業2

這個作業屬於哪個課程 2020物件導向程式設計 這個作業要求在 物件導向程式設計寒假作業2 這個作業的目標 1.繼續完成程式設計題2.新建乙個github倉庫,並把作業推送到該倉庫。3.發布部落格 1.實踐題 新建乙個github倉庫,使用git,或者github desktop把接下去的程式設計題...

2020物件導向程式設計寒假作業2

這個作業屬於哪個課程 2020物件導向程式設計張棟班 這個作業要求在 物件導向程式設計寒假作業2 這個作業的目標 1.繼續完成作業1的程式設計題。2.新建乙個github倉庫,並把作業推送到該倉庫。3.發布部落格。作業正文 2020物件導向程式設計寒假作業2 其他參考文獻 1.git 設定忽略檔案提...