プロジェクトアドレス | 倉庫住所 |
結果チームパートナー | [陳Yuhong] |
PSP2.1 | パーソナルソフトウェアプロセス段階 | 推定時間がかかる(分) | 実際の時間がかかる(分) |
プランニング | 計画 | 20 | 40 |
推計 | このタスクが必要とどのくらいの時間を見積もります | 480 | 600 |
開発 | 開発 | 40 | 45 |
分析 | (新しい技術を学ぶ含む)ニーズ分析 | 20 | 15 |
デザインスペック | 設計ドキュメントの生成 | 60 | 60 |
デザインレビュー | デザインレビュー(と同僚が設計文書を見直し) | 20 | 30 |
VoIP音声コーディング | コードの仕様(現在の開発のための適切な規範の開発) | 20 | 15 |
設計 | 具体的な設計 | 80 | 100 |
コーディング | 具体的なコーディング | 240 | 300 |
コードレビュー | コードレビュー | 120 | 120 |
テスト | 検査(セルフテスト、コードを変更し、変更を提出) | 240 | 200 |
報告 | レポート | 30 | 30 |
試験報告書 | テストレポート | 60 | 60 |
サイズ測定 | コンピューティングのワークロード | 30 | 30 |
死後&プロセス改善計画 | その後まとめ、およびプロセス改善計画 | 60 | 50 |
トータル | 1040 | 1095 |
問題解決のためのアイデア
アイデアの説明:
1.サブディビジョンタイトル、小さなタスクに分けは以下のように
C ++のファイル操作を学んでいないので大体ファイルの下の基本操作を習得した後、オンラインでチェックし、私は教科書を見て、2チュートリアルのファイル操作。
3.コードはソートに関連して、私は、データ構造の側面についての知識のソートをオンにだけでなく、どのようにコードを記述すること。
設計プロセス
1.実質的方法をプログラミング
2.丁合いや関数、クラス間の関係を分析し、
我々はそれぞれの機能にほぼ交渉さがとても清潔で整然として持っているより多くの誘導機能として設計され、デバッグプロセスは、障害を見つけることは比較的容易です。その後、我々は、クラスとして統計的性質の最も基本的な側面を分割し、その後クラスとしての単語に分割し、最終的に行数統計のカテゴリに分け、分類を描きます。私たちは、各機能の設計に入れているため、クラスとクラス間の最も重要な機能は、関数に含まれる機能として設計されているので、簡単に機能を想像することができるクラスが分かれている実装する必要があります。
コードの仕様
これは私達の両方をC ++でプロジェクトを完了するのは初めてですので、我々は、オンライン++コードの仕様Cを参照しているためかどうかを知るために、このことを知っ
コードレビュー
レビューモジュール名
coutword_1
1.主な問題
1.出会う仲間は、単語の制限条件、「番号から始まる」の省略は言葉その状態でない場合には、設計プロセスに欠けている機能に登場しました
2.第二の問題は、私が原因無限ループで発現不適切ロジックに、使用されるループ構造内の単語の数を数えることです。
改正前:
void word_count2::read_str()
{
char ch;//收集每一个文件中字符
string str_1;//记录每一个规定的字符
long pos;//记录f_in的位置
int fir = 0;//判断第一个字符是否为字母
f_in.clear();
f_in.seekg(0, ios::beg);
while (!f_in.eof())
{
int read=0;
f_in.get(ch);
read++;
int k;
f_in.seekg(pos);
//f_in.get(ch);
for ( k = 1; k < 4; k++)
{
read++;
f_in.get(ch);
if ( ch<'A' || (ch > 'Z'&& ch < 'a') || ch>'z' ) break;
}
if (k == 4)
{
f_in.get(ch);
while (('a' <= ch && 'z' >= ch) || ('A' <= ch && 'Z' >= ch)|| ( '0' <= ch && ch <= '9'))
{
f_in.get(ch);
read++;
}
pos = f_in.tellg();
f_in.seekg(pos - read);
getline(f_in, str_1, ch);
store_str(str_1);
f_in.seekg(pos);
}
}
}
}
更新:
void word_count2::read_str()
{
char ch;//收集每一个文件中字符
string str_1;//记录每一个规定的字符
long pos;//记录f_in的位置
int fir = 0;//判断第一个字符是否为字母
f_in.clear();
f_in.seekg(0, ios::beg);
while (!f_in.eof())
{
f_in.get(ch);
fir++;
if (('a' <= ch && 'z' >= ch) || ('A' <= ch && 'Z' >= ch))
{
int read=1;//记录规定字符创的长度。
//-------------------------------------------------->增加代码
if (fir == 1)
{
pos = f_in.tellg();
}
else
{
pos = f_in.tellg();
f_in.seekg(pos-1);//得到上一个字符
f_in.get(ch);
}
if (('0' <= ch && ch <= '9') || ch== '" ')
{
f_in.seekg(pos);
f_in.get(ch);
while (('a' <= ch && 'z' >= ch) || ('A' <= ch && 'Z' >= ch) || ('0' <= ch && ch <= '9'))
{
f_in.get(ch);
}
}//-------------------------------------------------------------------------------------------------------------------
else
{
read++;
int k;
f_in.seekg(pos);
//f_in.get(ch);
for ( k = 1; k < 4; k++)
{
read++;
f_in.get(ch);
if ( ch<'A' || (ch > 'Z'&& ch < 'a') || ch>'z' ) break;
}
if (k == 4)
{
f_in.get(ch);
while (('a' <= ch && 'z' >= ch) || ('A' <= ch && 'Z' >= ch)|| ( '0' <= ch && ch <= '9'))
{
f_in.get(ch);
read++;
}
pos = f_in.tellg();
f_in.seekg(pos - read);
getline(f_in, str_1, ch);
store_str(str_1);
f_in.seekg(pos);
}
}
}
}
}
2.レビューのセンチメント
私たちの必須のコメント、またはコードレビューの重要な部分のためのコードを書くときに大きな影響を与える原因となります。でも、コードの考えを再考します。
パフォーマンスの改善
パフォーマンスの向上時間は費やした
約120分の
改善のアイデア
パフォーマンス分析チャート