2016011991 小學四則運算練習軟件項目報告

代碼地址:https://git.coding.net/sheep47/xiaoxuesizeyunsuan.git

1、前言

  此次的做業是用java來寫一個四則運算練習軟件,雖然已經在大一的時候學過Java這門課程,但我並無學的很好,甚至因爲在這半年裏沒有代碼的練習,忘記了不少基礎知識,因此這樣的做業對我來講有些困難。剛開始的時候不知道該如何讓下手,也致使寫做業的時間有些倉促,在看過先教做業的幾個同窗的代碼以後纔開始動手。在此感謝宇欣給個人幫助,她詳細給我解釋瞭如何運用java將簡單等式鏈接起來,如何運算,如何測試,還交給我若是增長括號的解決方法,雖然我沒有實現這個功能,可是在這次做業的完成過程當中,我學到了不少。java

2、需求分析

一、軟件基本功能:git

      程序可接收一個輸入參數n,而後隨機產生n道加減乘除(分別使用符號+-*÷來表示)練習題,每一個數字在 0 和 100 之間,運算符在3個到5個之間。算法

二、用戶需求:dom

      爲了讓小學生獲得充分鍛鍊,每一個練習題至少要包含2種運算符。同時,因爲小學生沒有分數與負數的概念,你所出的練習題在運算過程當中不得出現負數與非整數,好比不能出 3÷5+2=2.6,2-5+10=7等算式。函數

三、基本要求:學習

      練習題生成好後,將你的學號與生成的n道練習題及其對應的正確答案輸出到文件「result.txt」中,不要輸出額外信息,文件目錄與程序目錄一致。測試

3、設計實現

總體思路:在這裏我採用的是宇欣教給個人方法,先用Math.random()生成兩個隨機數進行加減乘除的運算生成簡單式,因爲在運算過程當中要保證能整除和不出現負數,因此再用+或*鏈接幾個簡單式就能夠獲得有3-5個運算符的式子,而後利用棧來運算答案。代碼中共用到了四個函數,分別實現了:兩個數的四則運算題目、將運算符增長至3-5個、實現n個混合四則運算、計算答案。編碼

4、算法詳解和代碼展現

一、生成運算式spa

int x = (int) (Math.random() * 100);// 產生100之內的隨機數
        int y = (int) (Math.random() * 100);
        int z = (int) (Math.random() * 4);// 產生整數0到3
        if (z == 1) {
            if (x < y) {
                int temp = x;
                x = y;
                y = temp;
            }
        }
        if (z == 3) {// 若是是除法,保證能整除
            y = (int) (Math.random() * 20) + 1;
            x = (int) (Math.random() * 6) * y;
        }
        String m = x + op[z] + y;
        if (op[z].equals("-") || op[z].equals("+")) {
            flag = 1;
        }
        return m;

二、產生3-5個運算符.net

String question = "";
        for (int i = 0; i < p; i++) {
            if (i < p - 1) {
                String con = op1[(int) (Math.random() * 2)];
                
                    question += MakeQuestion1() + con;
                
            } else {
                question += MakeQuestion1();
            }
            flag = 0;
        }

三、產生n個混合運算

 for (int i = 0; i < n; i++) {
          
                MakeQuestion3();
                if(ifsame==1||answer==1){
                    i--;
                    ifsame=0;
                    answer=0;
                }
            
        }

5、測試運行

6、項目總結

此次項目中遇到了一些小的問題,好比在剛開始運行的時候沒有注意到題目要求,須要保證整除,因而在計算一些除法問題時出現了錯誤,以及個人自學能力太差,不少地方都要向同窗請教,並且沒有看懂老師提供的調度場算法,但願老師在課上的時候能夠講解一下。完成這次做業的過程當中,也讓我意識到本身在時間分配上的不足,以及瞭解了一個項目的製做過程,學到了不少經驗,相信在下次的做業中,能夠作到更合理的時間分配,以及學習利用老師提供的資源。

7、psp

PSP2.1

任務內容

計劃共完成須要的時間(min)

實際完成須要的時間(min)

Planning

計劃

15

20

 

Estimate

估計這個任務須要多少時間,並規劃大體工做步驟

10

8

Development

開發

360

900

Analysis

需求分析 (包括學習新技術)

6

8

Design Spec

 生成設計文檔

0

0

Design Review

設計複審 (和同事審覈設計文檔)

30

20

Coding Standard

 代碼規範 (爲目前的開發制定合適的規範)

10

8

Design

具體設計

30

40

Coding

具體編碼

300

360

Code Review

代碼複審

30

15

Test

測試(自我測試,修改代碼,提交修改)

30

20

Reporting

報告

60

90

Test Report

 測試報告

5

3

Size Measurement

計算工做量

10

10

Postmortem & Process Improvement Plan

過後總結, 並提出過程改進計劃

3

3

相關文章
相關標籤/搜索