這個作業屬於哪個課程
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(轉化)是漢字轉化為阿拉伯數字,這裡的想法是運用陣列下標對於數字,這在結束的轉化裡也用到了。
第二個是錢包的加加減減,函式process(步驟)同樣是運用到陣列下標的對應。int transform(string number)
} return i;
}
第三個是output函式,**比較長,原本想要分兩個來函式來寫,但是最終還是沒分出來,它們之間的變數關係比較緊密,所以超出了幾行。void process(string first)
else
}
最後是main函式。大量應用了getline函式,比如最開始「整數 錢吧 等於 零」,三個迴圈,每次讀取字串到空格,最後分出漢字數字「零」來,這解決了我在第一次作業裡的困惑。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;
}
我好難啊!#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 設定忽略檔案提...