1. 程式人生 > >第三次作業 軟體工程

第三次作業 軟體工程

要求0:

作業地址:

  https://edu.cnblogs.com/campus/nenu/2016CS/homework/2266

要求1:

git倉庫地址:https://git.coding.net/YUAN-FANG/f4.git

 

要求2:

結對同學部落格地址:https://www.cnblogs.com/xinghl907/

結對同學姓名學號:邢海玲 2016011907

 

解題思路:

功能1和功能2: 這兩個功能就要求隨機產生N道四則運算題,使用者輸入一個?加答案與標準答案進行比對並判斷對錯,最後統計有多少四則運算題被正確解答。 此次作業從實現四則運算入手,

要考慮加減乘除按通常四則運算規定的計算優先順序除法用整數除法,即僅保留除法運算結果的整數部分。比如8/3=2。輸入表示式保證無0作為除數情況發生由於基礎較弱,很多部分尚未完成。

 

功能的實現:

1.我們運用了三個陣列來存放相應的數值以及運算子號:

    public static int[] firstNum = new int[100];

    public static int[] secondNum = new int[100];

public static String[] mark = new String[]{"+","-","*","/"};

2.下面為簡單程式碼實現:

public class SizeYunsuan {

    public static int[] firstNum = new int[100];

    public static int[] secondNum = new int[100];

    public static String[] mark = new String[]{"+","-","*","/"};

public static void main(String[] args){

        Random rand = new Random();

        Scanner input = new Scanner(System.in);

        int number = input.nextInt();

        for(int i=0;i<100;i++){

            firstNum[i]= rand.nextInt(number);

            secondNum[i] = rand.nextInt(number);

        }

system.out.println("請輸入產生四則運算的道數:");

number = input.nextInt();

System.out.println("產生四則運算式子:");

  for(int j=1;j<=number;j++){

String markYun = mark[rand.nextInt(4)];

            int answerInput = 0;

            int isFirstNum = firstNum[rand.nextInt(100)];

            int isSecondNum = secondNum[rand.nextInt(100)];

            switch(markYun){

            case "+":

                System.out.println(isFirstNum +  "+" + isSecondNum + "=" );

                answerInput = isFirstNum + isSecondNum;

                break;

            case "-":

 

                if(isFirstNum > isSecondNum){

                    System.out.println(isFirstNum +  "-" + isSecondNum + "=" );

                    answerInput = isFirstNum - isSecondNum;

                }

                else{

                    System.out.println(isSecondNum +  "-" + isFirstNum + "=" );

                    answerInput = isSecondNum - isFirstNum;

                }

                break;

            case "*":

                System.out.println(isFirstNum +  "*" + isSecondNum + "=" );

                answerInput = isFirstNum * isSecondNum;

                break;

            case "/":

                System.err.println("提示:結果取整數!");

                if(isSecondNum != 0){

                    System.out.println(isFirstNum +  "/" + isSecondNum + "=" );

                    answerInput = isFirstNum / isSecondNum;

                }else{

                    System.out.println(isFirstNum +  "/" + secondNum[rand.nextInt(100)]+1 + "=" );

                    answerInput = isFirstNum / isSecondNum;

                }

                break;

            }

            System.out.print("");

            int answer = input.nextInt();

            while(answer != answerInput){

                System.out.print("答案錯誤,請重新輸入:");

                answer = input.nextInt();

            }

            System.out.print("總共\n道題,你答對\n道題!");

        }

        input.close();

   3.程式碼執行片段:

 

照片:

 

 

 程式設計體會: 

1.基礎薄弱,還需要努力學習

2.對同一個問題(即使很小的問題)從多個角度思考,能有不同的認識

3.結對程式設計對程式的質量有明顯的提升