まず、ニーズ分析:
プライマリ計算アプレットの調製四則演算のために、プログラムパラメータをカスタマイズすることができ、生成された方程式result.txtは、外部ファイルに格納されています。
第二に、機能の実装:
基本的な機能
( - * / +)、演算結果を100内で必要とされている(1)自動式2数の四則演算が10未満100生成
(2)複製式を破棄する。= 2 + 3 + 3 = 2及び式2が繰り返され、3 + = 3 + 2 =繰り返さない式
番号(3)タイトルをカスタマイズすることができます
(4)パラメータを制御することができます
乗算と除算を含めるかどうか
オペランドの制御可能範囲の値(例えば1000 100内又は内オペランド)
オペランドが負を含むかどうか
(5)result.txtに格納されている外部ファイルのタイトルに動作を生成します
・拡張機能
(1)式の出力を最適化した:追加された括弧内のすべての負のオペランドを与えることによって、大幅式の清浄度を向上させることができる、式は可読性を向上させます。
第三に、設計と実装:
(1)rand.nextInt()文と(int型)(Math.random()*番号)を使用して、文は、乱数を生成するために達成するために
INT A = rand.nextInt(100); // 0〜100の範囲でランダムに生成された整数
INT B = rand.nextInt(100); // 0〜100の範囲でランダムに生成された整数
ASUM [I] =(INT)(Math.random()* 数値1)。 Bsum [I] =(INT)(Math.random()*数値1)。
(2)は、4つの演算子は(INT)(Math.random()*数)ステートメントは、4つのランダムな表現を生成使用して、文字の配列に格納されています。
チャーオペラ[] = { '+'、 ' - '、 '*'、 '/'}; // オペラ[0]〜オペラ[3]が順次出力"+"、 " - "、 "*"、「/ 「 INTの R&LT =(INT)(Math.random()* number3); // OUT解析+、 - 、*、/
(3)のPrintStream日=新しいのPrintStream(「D:/result.txt」)を使用して、result.txtドキュメント生成方程式に保存された声明。
PrintStream psの= 新しいのPrintStream( "D:/result.txt" ); System.setOut(PS)。
(4)INT数値1 = reader.nextInt()を使用して、アイテムの数が制御を達成します。
System.out.println( "方程式の数を入力してください" ); int型数値2 = reader.nextInt(); INT Bsum [] = 新しい新しい INT [数値2]。
(5)オペランドの値の制御範囲を達成します。
System.out.println( "入力制御範囲の数" ); INT数値1 = reader.nextInt(); INT ASUM [] = 新しい新しい INT [数値1]。
(6)負の値の計算を達成します。
チャー Opera2 [] = { ''、 ' - '}; // オペラ[0]〜オペラ[1]が順次出力される"(スペース)"、 " - " INT N- =(INT)(Math.random()* number4 ); // 最初の値が負の場合 、INT、M =(INT)(Math.random()* number4); // 値が負であるか否かを第二
(7)括弧内のすべての負の値を達成します。
チャー Opera3 [] = { ''、 '('、 '')}; // オペラ[0]〜オペラ[2]を順次出力"(スペース)"、 "("、 ")" のint R&LT =(INT) (Math.random()* number3); // OUT分析+、 - 、*、/
(8)また、式動作を再実装します。
ASUM [0] =(INT)(Math.random()* 数値1)。 Bsum [ 0] =(INT)(Math.random()* 数値2)。 用(int型、iが<I 1 = {1;数値)を ASUM [I] =(INT)(Math.random()* 数値1)。 Bsum [I] =(INT)(Math.random()* 数値1)。 もし(!ASUM [I] = ASUM [I-1 ]){ I ++ 。 } }
第四に、テストの実行:
(1)基本的なニーズテストラン
(2)開発は、テストの実行を必要とします
ファイブより満足スニペット:
char Opera[]= {'+','-','*','/'};//Opera[0]~Opera[3]依次输出“+”,“-”,“*”,“/” char Opera2[]= {' ','-'};//Opera[0]~Opera[1]依次输出“ (空格)”,“-” char Opera3[]= {' ','(',')'};//Opera[0]~Opera[2]依次输出“ (空格)”,“(”,“)” for(int i=0;i<number2;i++) { int n=(int) (Math.random()*number4);//第一个数值是否为负数 int m=(int) (Math.random()*number4);//第二个数值是否为负数 int r=(int) (Math.random()*number3);//判断输出+,-,*,/ System.setOut(ps); System.out.printf("%c%c%d%c%c%c%c%d%c=\r",Opera3[n*1],Opera2[n],Asum[i],Opera3[n*2],Opera[r],Opera3[m*1],Opera2[m],Bsum[i],Opera3[m*2]); System.out.println(); }
六、总结:
对新技术的学习能力还需要加强。把所有的方法和对象都放到了一个类中进行了实现,代码的结构层次不明显。
七、PSP
PSP2.1 | 任务内容 | 计划共完成需要的时间(h) | 实际完成需要的时间(h) |
---|---|---|---|
Planning | 计划 | 0.5 | 1 |
· Estimate | · 估计这个任务需要多少时间,并规划大致工作步骤 | 18.3 | 27.4 |
Development | 开发 | 5 | 8 |
·· Analysis | 需求分析 (包括学习新技术) | 3 | 5 |
· Design Spec | · 生成设计文档 | 0.5 | 0.6 |
· Design Review | · 设计复审 (和同事审核设计文档) | 0.5 | 0.5 |
· Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 0.2 | 0.4 |
· Design | 具体设计 | 2 | 2 |
· Coding | 具体编码 | 2 | 2 |
· Code Review | · 代码复审 | 1 | 1.5 |
· Test | · 测试(自我测试,修改代码,提交修改) | 3 | 6 |
Reporting | 报告 | 0.5 | 0.5 |
·· Test Report | · 测试报告 | 0.2 | 0.2 |
· Size Measurement | 计算工作量 | 0.2 | 0.2 |
· Postmortem & Process Improvement Plan | · 事后总结 ,并提出过程改进计划 | 0.5 | 0.5 |