四則運算程式擴充:將程式改為java語言,並允許使用者輸入,對輸入結果進行驗證

來源:互聯網
上載者:User

標籤:

題目

每個同學選一個方向,把程式擴充一下:
1、讓程式能接受使用者輸入答案,並判定對錯。最後給出總共對/錯 的數量。
2、把程式變成一個網頁程式,使用者通過設定參數,就可以得到各種題目。
3、把程式變成一個Windows 圖形介面的程式。
4、把程式變成一個智能手機程式 (你正在用什麼手機, 就寫那個手機的程式)。(可以延期3周后)
5、選一個你從來沒有學過的程式設計語言,試一試實現準系統。

設計思想

本次程式採用數組記錄答案,包含輸入數組和正確結果儲存數組,進行比較

原始碼

package minirisoft;import java.util.Random;import java.util.Scanner;public class SizeYunsuan {public static Random rand=new Random();public static class Qst{static int Operand(int Range)//產生運算元{int Opd=rand.nextInt(Range*2+1)-Range;return Opd;}public static char OperatorKind(char Operator,boolean IfSuppMD)//產生運算子{int OperatorPossible=rand.nextInt(4);if(!IfSuppMD){OperatorPossible/=2;}switch(OperatorPossible)            {            case 0:            Operator=‘+‘;                break;            case 1:            Operator=‘-‘;                break;            case 2:            Operator=‘*‘;                break;            case 3:            Operator=‘/‘;                break;            default:            System.out.print("Error!");            }return Operator;}public static boolean IfRepeated(String str[],int Location)//判斷是否重複{for(int i=0;i<Location;i++){if(str[i].equals(str[Location]))return true;}return false;}public static int Ans(int ans,int Operand1,int Operand2,char Operator)//產生答案{switch(Operator)            {            case ‘+‘:            ans=Operand1+Operand2;                break;            case ‘-‘:            ans=Operand1-Operand2;                break;            case ‘*‘:            ans=Operand1*Operand2;                break;            case ‘/‘:            ans=Operand1/Operand2;                break;            default:            System.out.print("Error!");            }return ans;}//產生一道運算題public static void CreateStr(int Range,char Operator,String str[],int i,int QstNum,int ans[],boolean IfSuppMD){    int answer = 0;Qst.OperatorKind(Operator,IfSuppMD);int Operand1=Qst.Operand(Range);int Operand2=Qst.Operand(Range);str[i]=Integer.toString(Operand1);str[i]+=Operator;str[i]+=Integer.toString(Operand2);str[i]+="=";while(IfRepeated(str,i))//判斷是否重複{Operand1=Qst.Operand(Range);Operand2=Qst.Operand(Range);str[i]=Integer.toString(Operand1);str[i]+=Operator;str[i]+=Integer.toString(Operand2);str[i]+="=";}ans[i]=Qst.Ans(answer,Operand1,Operand2,Operator);}public static void Display(String str[],int Col)//輸出產生的運算題{for(int j=0;j<str.length;j++){System.out.print(str[j]);if(j%Col==Col-1){System.out.println();}else{System.out.print(‘\t‘);}}}public static void Input(int Input[],int QstNum)//輸入問題答案{Scanner sca=new Scanner(System.in);for(int j=0;j<QstNum;j++){Input[j]=sca.nextInt();}}public static void OutAns(int ans[],int QstNum,int Col)//輸出答案{for(int j=0;j<QstNum;j++){System.out.print(ans[j]);if(j%Col==Col-1){System.out.println();}else{System.out.print(‘\t‘);}}}public static void ConfirmAns(int ans[],int Input[],int QstNum,int count){count=0;for(int i=0;i<QstNum;i++){if(ans[i]==Input[i])count++;}System.out.println("答題正確個數:");System.out.print(count);}}public static void main(String args[]){int Range,QstNum=0,Col=0,count=0;boolean IfSuppMD=true;char Operator = ‘+‘;Scanner sca=new Scanner(System.in);System.out.println("請輸入產生題目的數量:");QstNum=sca.nextInt();System.out.println("請輸入算數範圍:");Range=sca.nextInt();System.out.println("請輸入劃分列數:");Col=sca.nextInt();System.out.println("是否支援乘除法:(true/false)");IfSuppMD=sca.nextBoolean();String str[] = new String[QstNum];int ans[]=new int[QstNum];int Input[]=new int[QstNum];for( int i=0;i<QstNum;i++){try{Qst.CreateStr(Range,Qst.OperatorKind(Operator,IfSuppMD),str,i,QstNum,ans,IfSuppMD);}catch(Exception e){i--;};}Qst.Display(str,Col);Qst.Input(Input, QstNum);System.out.println("輸入答案:");System.out.println();Qst.OutAns(Input,QstNum,Col);System.out.println("正確答案:");System.out.println();Qst.OutAns(ans,QstNum,Col);Qst.ConfirmAns(ans,Input,QstNum,count);}}

  程式

實驗總結

本次實驗對前面解決該問題的思路進行了梳理,不再意氣用事,採用java語言重新做了一遍,體驗到了java和C++的區別與相似之處,也對模組化演算法的精簡有了一定的提高,程式本身的問題進行了初步的解決,我會再接再厲!

四則運算程式擴充:將程式改為java語言,並允許使用者輸入,對輸入結果進行驗證

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.