2016-03-05 4 views
-5
import java.io.*; 
public class AssignmentMT { 

public static void main(String[] args) throws IOException{ 
    // TODO Auto-generated method stub 
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    int number1, number2, number3, number4, number5; 
    double answer; 
    double geanswer = 0; 
    String word; 
    String operator = ""; 
    int score=0, totalscore=10; 
    float percentage; 
    int intoperator; 

    word = br.readLine(); 


//Game Enhancement. 
while (word.equals("Game Enhancement")){ 
    System.out.println("Now you are in the game enhancement, be ready for your 4 level qustions. Write your answer after press enter."); 
    System.out.println("Press 'Go' to start!"); 
    word = br.readLine(); 
while (!word.equals("Go")){ 
    System .out.println("Please enter again."); 
    word = br.readLine(); 
} 
while (word.equals("Go")){ 

    System.out.println("-Level 1-"); 
     number1 = (int) (Math.round (Math.random() * 9)+1);  
     number2 = (int) (Math.round (Math.random() * 9)+1); 
     intoperator = (int) (Math.round (Math.random() * 4)+1); 
     switch (intoperator) { 
     case 1: 
      operator = "+"; 
      geanswer = number1+number2; 
     break; 
     case 2: 
      operator = "-"; 
      geanswer = number1-number2; 
     break; 
     case 3: 
      operator = "×"; 
      geanswer = number1*number2; 
     break; 
     case 4: 
      operator = "÷"; 
      geanswer = (double)Math.round(((double)number1/(double)number2)*100)/100; 
     break; 
     default: 
      operator = "+"; 
      geanswer = number1+number2; 
     break; 
     } 
    System.out.println(number1 + operator + number2 + "="); 
    answer = Double.parseDouble(br.readLine()); 
if(answer==geanswer){ 
    score++; 
    } 
    System.out.println("Your Score: " + score); 


    System.out.println("-Level 2-"); 
    for (int i=1;i<=2;i++){ 
     number1 = (int) (Math.round (Math.random() * 9)+1);  
     number2 = (int) (Math.round (Math.random() * 9)+1); 
     number3 = (int) (Math.round (Math.random() * 9)+1); 
     intoperator = (int) (Math.round (Math.random() * 4)+1); 
     switch (intoperator) { 
     case 1: 
      operator = "+"; 
      geanswer = number1+number2+number3; 
     break; 
     case 2: 
      operator = "-"; 
      geanswer = number1-number2-number3; 
     break; 
     case 3: 
      operator = "×"; 
      geanswer = number1*number2*number3; 
     break; 
     case 4: 
      operator = "÷"; 
      geanswer = (double)Math.round(((double)number1/(double)number2/(double)number3)*100)/100; 
     break; 
     default: 
      operator = "+"; 
      geanswer = number1+number2+number3; 
     break; 
     } 
    System.out.println(number1 + operator + number2 + operator + number3 + "="); 
    answer = Double.parseDouble(br.readLine()); 
if(answer == geanswer){ 
    score++; 
    }  
     } 
    System.out.println("Your Score: " + score); 


    System.out.println("-Level 3-"); 
    for (int i=1;i<=3;i++){ 
     number1 = (int) (Math.round (Math.random() * 9)+1);  
     number2 = (int) (Math.round (Math.random() * 9)+1); 
     number3 = (int) (Math.round (Math.random() * 9)+1); 
     number4 = (int) (Math.round (Math.random() * 9)+1); 
     intoperator = (int) (Math.round (Math.random() * 4)+1); 
     switch (intoperator) { 
     case 1: 
      operator = "+"; 
      geanswer = number1+number2+number3+number4; 
     break; 
     case 2: 
      operator = "-"; 
      geanswer = number1-number2-number3-number4; 
     break; 
     case 3: 
      operator = "×"; 
      geanswer = number1*number2*number3*number4; 
     break; 
     case 4: 
      operator = "÷"; 
      geanswer = (double)Math.round(((double)number1/(double)number2/(double)number3/(double)number4)*100)/100; 
     break; 
     default: 
      operator = "+"; 
      geanswer = number1+number2+number3+number4; 
     break; 
     } 
    System.out.println(number1 + operator + number2 + operator + number3 + operator + number4 + "="); 
    answer = Double.parseDouble(br.readLine()); 
if(answer == geanswer){ 
    score++; 
    }  
     } 
    System.out.println("Your Score: " + score); 



    System.out.println("-Level 4-"); 
    for (int i=1;i<=4;i++){ 
     number1 = (int) (Math.round (Math.random() * 9)+1);  
     number2 = (int) (Math.round (Math.random() * 9)+1); 
     number3 = (int) (Math.round (Math.random() * 9)+1); 
     number4 = (int) (Math.round (Math.random() * 9)+1); 
     number5 = (int) (Math.round (Math.random() * 9)+1); 
     intoperator = (int) (Math.round (Math.random() * 4)+1); 
     switch (intoperator) { 
     case 1: 
      operator = "+"; 
      geanswer = number1+number2+number3+number4+number5; 
     break; 
     case 2: 
      operator = "-"; 
      geanswer = number1-number2-number3-number4-number5; 
     break; 
     case 3: 
      operator = "×"; 
      geanswer = number1*number2*number3*number4*number5; 
     break; 
     case 4: 
      operator = "÷"; 
      geanswer = (double)Math.round(((double)number1/(double)number2/(double)number3/(double)number4/(double)number5)*100)/100; 
     break; 
     default: 
      operator = "+"; 
      geanswer = number1+number2+number3+number4+number5; 
     break; 
     } 
    System.out.println(number1 + operator + number2 + operator + number3 + operator + number4 + operator + number5 + "="); 
    answer = Double.parseDouble(br.readLine()); 
if(answer == geanswer){ 
    score++; 
    }  
     } 
percentage = (float)((score*100)/totalscore); 
System.out.println("Your total Score: " + score); 
System.out.println(" "); 
System.out.println("Your got " + percentage + "% mark! Congratulation!"); 
System.out.println("Please enter Quit to end."); 
word = br.readLine(); 
if (word.equals("Quit")){ 
    System.out.println(" "); 
    System.out.println("That's the end of the contest. Thank you!"); 
} 
      } 

    } 
     } 

     } 

Привет, ребята, я ученик средней школы. Теперь у меня есть компьютерная наука 11 класса в школе. Вопрос в том, что, как видите, учитель просит о проведении конкурса по математике. Он сказал, что нам нужно сделать не менее 10 уровней. Уровень 1 имеет один случайный оператор. Уровень 2 имеет два случайных оператора ... и так далее. Кроме того, каждый раз, когда участники отвечают правильно, он получает один балл, что означает, что я должен что-то написать, чтобы проверить правильный ответ. Я знаю, что мне нужно использовать для цикла, чтобы выполнить десять уровней, факт, что я уже пытался, но я не могу ................. Я схожу с ума.Как выполнить случайные операции с несколькими операторами математики и проверить правильный ответ в java

Plz помогите мне ..... Спасибо, что прочитали!

+6

Пожалуйста, прочитайте [ask] и сделайте [mcve]. Это невозможно прочитать ... – Tunaki

+1

Первое, что вам нужно сделать, - это научиться форматировать свой код *. То, что у вас там, откровенно просто страшно. –

+0

@Shirley Это действительно основной вопрос (и простой, если вы его сломаете). Прежде всего, вы можете сгенерировать 1 тестовый вопрос. Как только это будет сделано, заключите его в цикл for. – user3437460

ответ

0

Вы должны разбить проблему на следующие:

  • Для каждого уровня, в первую очередь необходимо создать правильное число случайных чисел, на которых вы будете выполнять операции. (для уровня i, i + 1 целых чисел)
  • Далее вам нужно сгенерировать i-й оператор для уровня i.

По существу, вы должны думать о вложенных циклах с внутренними циклами в зависимости от текущего значения счетчика внешнего контура. Надеюсь, это поможет.