1.Github:https://github.com/S1mon-fq/S1mon
2. PSP2.1テーブル
PSP2.1 |
パーソナルソフトウェアプロセス段階 |
推定時間がかかる(分) |
実際の時間がかかる(分) |
プランニング |
計画 |
30 |
25 |
・見積り |
•このタスクが必要と推定どのくらいの時間 |
30 |
25 |
開発 |
開発 |
1140 |
1360 |
・分析 |
・分析(新しい技術を学ぶ含む)が必要 |
60 |
55 |
・デザインスペック |
設計ドキュメントの生成 |
60 |
70 |
・デザインレビュー |
・デザインレビュー(と彼の同僚は、設計文書を見直し) |
30 |
30 |
・コーディング標準 |
・コードの仕様(現在の開発のための適切な規範の開発) |
20 |
15 |
・ 設計 |
・具体的な設計 |
120 |
120 |
・コーディング |
・具体的なコーディング |
600 |
720 |
・コードレビュー |
・コードレビュー |
120 |
150 |
・テスト |
・テスト(セルフテスト、コードを変更し、変更を提出) |
120 |
200 |
報告 |
レポート |
90 |
120 |
・ 試験報告書 |
・テストレポート |
60 |
90 |
・サイズ測定 |
・コンピューティングのワークロード |
10 |
10 |
・死後&プロセス改善計画 |
・後知恵、およびプロセス改善計画を提案します |
20 |
20 |
トータル |
|
1260 |
1510 |
3.効果分析
万式が使用される時間の生成:
4.設計と実装プロセス
クラスは、私のフロントGeneralOneFomulas Fomulas機能にコールする必要性を文書式を書き込み、生成元の方程式を、GeneralOneFormula属およびFomulas機能を持っている4つのクラスがあります。
応答クラスは、5つの演算を実施し、結果を返す関数、マッチングブラケット、適切な画分の変換、ファイルが書き込まれた回答を有します
対象クラスはタイトル番号を生成するように最適化されていることを確認し、それがネガティブが発生したかどうか、除数が0であるか否かを判定する
裁判官のクラスは、ファイルを読むことによって解答のチェック機能を実装して、一致するファイルをラインを押して、出力
詳細な説明の機能コード
5.コード説明
属:括弧内の演算子のリストに、同一のランダムに選択された機能RD()と、乱数は、4つの演算子の合計を生成し、リストを使用してRD()関数を使用して、記号のリストはリストをマージ
デフGeneralOneFormula(自己):
範囲= self.range
#OperateNumbers = random.randint(1、3)
X1 = INT(はrandom.Random()* 10000)
X2 = INT(はrandom.Random()* 10000)
OperateNumbers = X1% 3 + 1
CountNUmbers = OperateNumbers + 1
Ostyle = [ '+'、 ' - '、 '*'、 '÷']
#生成符号リストは
動作し= []
= 0
ながら(<= OperateNumbers):
#1 Operates.append (random.choice(Ostyle))
IF(== 0):
Operates.append(Ostyle [X1%4])
IF(== 1):
Operates.append(Ostyle [X2%4])
であれば(= = 2):
動作します。(Ostyle [(X1 + X2)%4])を追加し
、A + = 1
答え:正規表現加算および減算、乗算および除算リターン用い異なる方法、カルク一致するエントリブラケットと統合された機能の算術演算子ことを除いて、オペレータの位置を照合することによって、適切な分数に変換し、存在する場合、小数点、小数点以下3桁に運ばれ、その後、小数部を丸め、その後、適切な画分を生成します
デフmul_divOperation(自己、秒):
- sub_str = re.search( '?。?(\ dは+ \ \ D * [* /] \ dは+ \ \ D *)'、S)
:sub_strしばらく
sub_str = sub_str。グループ()
sub_str.count( '*')の場合:
l_num、r_num = sub_str.split( '*')
S = s.replace(sub_str、STR(フロート(l_num)*フロート(r_num)))
それ以外:
l_num、 r_num = sub_str.split( '/')
S = s.replace(sub_str、STR(フロート(l_num)/フロート(r_num)))
sub_str = re.search( '(\ dは+ \。?\ D * [* / ] \ dは+ \。?\ D *)」、s)は
リターンの
検証:新しい数式を生成する、すなわち、限り負の発生など、計算結果で、括弧内の式のそれぞれの内容を抽出します
抽出プロセスは、最初の左端の左括弧を見つけ、その後、抽出された左端の左括弧の右括弧の権利を見つけます
DEF compute_c(自己、E1):
num_int =フロート()
num_int = self.filt_num(E1)
sym_int = self.filt_sym(E1)
フラグ= self.int_compute(num_int、sym_int)
フラグ<0の場合:
戻り'F'
ほか:
戻りSTR(フラグ)
裁判官:行を照合することによって、ドキュメントを読んで、読み取りが回答文書を比較し、正解正しい文字列をスペースで出力を比較することにより、撮影したデジタルメディア数、間違った質問番号との数の右への回答
6.テストを実行します
万式を生成します。
生成された答え:
自分自身との回答文書-e機能:
間違った回答文書の-eとすべての文書:
-N指示入力のみ、無インスタンス変数:
唯一-n、-rコマンドを入力します。
7.プロジェクト概要
このプロジェクトは、私のpython、パイソンだけではない、長い自己学習、書き込み機能への直接呼び出しを記述するために使用し、熟練度の低い機能し、彼のクラスメートのアドバイスを求め初めてです。コマンドラインパラメータの受け渡しも繰り返し、長い時間のために改訂し、最終的に達成されていない、ほとんどの機能が実装されている、成功を達成するための方程式の複製機能を排除する最初のプロジェクトと同様に、プロジェクトが大幅に改善されているその能力。