20194658自動生成四則運算題第一版報告


一.需求分析

(1)自動生成10道100以內的2個操作數的四則運算算式(+ - *  /)

(2)剔除重復算式。  2 + 3 =    和  2 + 3 =     是重復算式      2 + 3 =   和   3 + 2 =  不屬於重復算式

(3)題目數量可定制

(4)相關參數可控制

         是否包含乘法和除法

         操作數數值范圍可控(如操作數 在100以內   還是1000以內)

         操作數是否含負數    

  (5)生成的運算題存儲到外部文件result.txt中

二.程序設計

主要流程圖:

四則運算Calculator類:

三.功能設計

    基本功能

(1)自動生成小學生的四則運算,需要用隨機數生成數字

       1.先實現隨機數相加    

        r1[i]=(int)(number3+Math.random()*(number4-number3));
        r2[i]=(int)(number3+Math.random()*(number4-number3));   

        S1[i]=(r1[i]+r2[i]);

      2.然后生成隨機運算符

         建立了一個數組r3,將運算符存儲在數組r3中

         static String[] r3={"+","-","*","/"};

      3.能夠確保生成符號加減乘除計算

     擴展功能

(1)自動生成100以內四則運算

(2)相關參數可以控制

(3)操作數數值范圍可控制

    是否包括負數

    是否包括乘法或者除法

(4)生成的運算題存儲到外部

   

 四.代碼片段

1.選擇所需要的功能

 

while(true) { Scanner scan1=new Scanner(System.in); System.out.println("請輸入四則運算的選項:1:整數計算  2:退出"); //System.out.println(""); //使用choose來存儲從鍵盤輸入的數據
            int choose=scan1.nextInt(); if(choose==1) { System.out.println("功能1:請輸入定制數量:"); Scanner scan2=new Scanner(System.in); int number=scan2.nextInt(); //是否有乘除法
                System.out.println("功能2:是否有乘除:0.否  1.是"); int number2=scan2.nextInt(); //輸入數值范圍
                System.out.println("功能3:輸入數值范圍:"); System.out.println("請輸入上界:"); int number3=scan2.nextInt(); System.out.println("請輸入下界:"); int number4=scan2.nextInt(); //加減有無負數 
                System.out.println("功能4:加減有無負數:0.否  1.是"); int number5=scan2.nextInt(); //除法有無余數
                System.out.println("功能5:除法有無余數:0.否  1.是"); int number6=scan2.nextInt();
}
}

2.顯示結果

 System.out.println("是否輸出定制結果?(1.輸出    其他: 不輸出)"); Scanner scan3=new Scanner(System.in); int judge1=scan3.nextInt(); if(judge1==1) { for(int i=0;i<number;i++) { System.out.println("第"+(i+1)+"個算式的結果為:"+S1[i]); } } 

3.退出答題系統

if(choose==2) { System.out.println("您已退出自動出題系統"); System.exit(0); }  

4.將結果保存在result.txt文件中

 PrintStream as=new PrintStream("d:/result.txt"); //設置並初始化流對象,設置將要輸入的文件目錄和文件格式
 System.setOut(as); //將流對象中數據輸出文件中

 

五.總結

設計四則運算算法,在運行無誤后,根據客戶需求逐一增加代碼功能,每增加一步進行測試,測試無誤后,寫下一個功能。

六.PSP

 

PSP2.1

任務內容

計划共完成需要的時間(min)

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

Planning

計划

10

20

·       Estimate

·  估計這個任務需要多少時間,並規划大致工作步驟

10

20

Development

開發

820

1020

··       Analysis

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

60

120

·       Design Spec

·  生成設計文檔

0

0

·       Design Review

·  設計復審 (和同事審核設計文檔)

0

0

·       Coding Standard

  代碼規范 (為目前的開發制定合適的規范)

5

10

·       Design

  具體設計

10

10

·       Coding

  具體編碼

625

720

·       Code Review

·  代碼復審

60

80

·       Test

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

60

80

Reporting

報告

20

120

··       Test Report

·  測試報告

0

0

·       Size Measurement

  計算工作量

0

0

·       Postmortem & Process Improvement Plan

·  事后總結 ,並提出過程改進計划

20

120

 

七.分析

在本次實驗中,主要在代碼完成、調試中花了很多時間。我感覺一方面由於跨專業沒有接觸過編程語言,對於Java語法結構等知識方面都嚴重匱乏。另一方面還是對於軟件工程這門課理解有偏差。不過在同學的幫助下以及自己查找資料下完成了作業。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM