結對第2次作業
阿新 • • 發佈:2018-10-13
blog char bee 代碼規範 soft cto face per ram
作業博客鏈接
隊友博客鏈接
分工:
隊友:爬蟲、博客
ME:C++、查找相關資料
PSP表格
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 20 | 30 |
? Estimate | ? 估計這個任務需要多少時間 | 20 | 30 |
Development | 開發 | 900 | 1500 |
? Analysis | ? 需求分析 (包括學習新技術) | 40 | 60 |
? Design Spec | ? 生成設計文檔 | 20 | 30 |
? Design Review | ? 設計復審 | 20 | 15 |
? Coding Standard | ? 代碼規範 (為目前的開發制定合適的規範) | 20 | 30 |
? Design | ? 具體設計 | 70 | 130 |
? Coding | ? 具體編碼 | 400 | 700 |
? Code Review | ? 代碼復審 | 40 | 40 |
? Test | ? 測試(自我測試,修改代碼,提交修改) | 30 | 30 |
Reporting | 報告 | 60 | 60 |
? Test Repor | ? 測試報告 | 30 | 20 |
? Size Measurement | ? 計算工作量 | 15 | 20 |
? Postmortem & Process Improvement Plan | ? 事後總結, 並提出過程改進計劃 | 40 | 60 |
. | 合計 | 825 | 1255 |
解題思路描述與設計實現說明
新增功能:
1.爬取網頁論文信息
使用Python爬取網頁的信息,用正則式匹配論文標題和摘要的代碼,爬取相關信息至result.txt
2.自定義輸入輸出文件
int main(int argc, const char* argv[])
for (int i = 1; i < argc; i++)
輸入文件前面有-i,輸出文件前面有-o所以只要在循環分別判斷-i,-o即可實現自定義輸入輸出文件。
3.加權重的詞頻統計
將Title和Abstract分別放入兩個map(存放單詞和出現次數)中,在統計時對提取的單詞就可按不同的權重計算放入一個新的map(存放單詞和權重值)當中。
4.詞組詞頻統計
查找符合的詞組,采用雙重循環方式,在外圍循環中找到符合的單詞,在內從循環查找出符合的詞組。題目要求不能跨越title和abstract,所以就分開識別統計。
5.自定義詞頻統計輸出
int main(int argc, const char* argv[])
for (int i = 1; i < argc; i++)
在循環中判斷是否出現-n,用一個循環將已經排好順序的單詞輸出即可
6.多參數的混合使用
int main(int argc, const char* argv[])
for (int i = 1; i < argc; i++)
在循環中判斷出現相應的參數是做相應的操作,未出現則采用默認輸出方式
舊功能:
1.字符數統計
2.單詞數統計
3.有效行數統計
4.單詞出現頻率統計
爬蟲使用
使用Python爬蟲爬取網頁信息
部分爬取結果
0
Title: Embodied Question Answering
Abstract: We present a new AI task -- Embodied ...
1
Title: Learning by Asking Questions
Abstract: We introduce an interactive learning framework ...
2
Title: Finding Tiny Faces in the Wild With Generative Adversarial Network
Abstract: Face detection techniques have been developed for ...
3
Title: Learning Face Age Progression: A Pyramid Architecture of GANs
Abstract: The two underlying requirements of face age progress...
代碼組織與內部實現設計(類圖)
說明算法的關鍵與關鍵實現部分流程圖
關鍵代碼解釋
int main(int argc, const char* argv[])
{
for (int i = 1; i < argc; i++)
{
ifstream file;
if (argv[i] == "-i")
{
file.open(argv[i], ios::in);
if (!file) {
cout << "無法打開文件\n";
return -1;
}
file.close();
string mInputFileName = argv[i];
int sum = CountChar(mInputFileName);
int wordnum = CountWordnumber();
int lines = CountLines(mInputFileName);
TenFrequency();
}
if (argv[i] == "-o")
{
ofstream out(argv[i+1]);
out << "characters: " << sum << endl;
out << "words: " << wordnum << endl;
out << "lines: " << lines << endl;
int size = 10;
if (word.size() < 10)
{
size = word.size();
}
vector<pair<string, int>>::iterator vit;
for (vit = word.begin(); vit != word.begin() + size; vit++)
{
out << "<"<<vit->first <<">:"<< " " <<
}
out.close();
}
}
自定義輸入輸出文件,設置參數實現自定義輸入輸出文件。
性能分析與改進
描述你改進的思路
展示性能分析圖和程序中消耗最大的函數
單元測試
部分單元測試代碼
測試的函數
構造測試數據的思路
Github的代碼簽入記錄
遇到的代碼模塊異常或結對困難及解決方法
問題描述 | 做過哪些嘗試 | 是否解決 | 有何收獲 |
---|---|---|---|
經常會理不清解題思路,思路會比較混亂 | 和隊友相互溝通,尋求隊友和同學的建議 | 適當解決了 | 解決問題前還是要先分析好問題理清思路 |
與隊友時間對不上 | 明確分工,分開同時進行 | 解決 | 不管與時間能否對上,都應該要明確分工,需要商討的部分在有限的重疊時間時討論。 |
還是基礎的問題... | 查閱相關的博客以及文章 | 不能說解決了吧... | 依然是好吃力啊T T |
評價你的隊友
值得學習的地方
樂於學習新知識,相對我來說會比較主動,學習能力比較強,做事效率高需要改進的地方
和我一樣會有點拖延癥.相對於其他人來說,和我一樣基礎不是很好.
學習進度條
第N周 | 新增代碼(行) | 累計代碼(行) | 本周學習耗時(小時) | 累計學習耗時(小時) | 重要成長 |
---|---|---|---|---|---|
1 | 338 | 338 | 32 | 32 | 理清思路,學習多參數混合使用 |
2 | 94 | 432 | 12 | 44 | 對之前的代碼做補充,學習《構建之法》 |
3 | 354 | 786 | 31 | 75 | 求助隊友,解決了一些我不懂的問題 |
結對第2次作業