Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.26 KB | None | 0 0
  1. public class Rechner2 {
  2. //(c) Team LoL
  3.  
  4.     public static void main(String[] args) {
  5.         System.out.println("Bitte die gewünschte Rechenart wählen:");
  6.         System.out.println("+ , - , * (oder x) , / , %");
  7.         String s;
  8.         char auswahl,a;
  9.         a = 'a';
  10.        
  11.         int i = 0;
  12.         boolean eingabe = true;
  13.         while(eingabe)
  14.         {
  15.             //Rechenart einlesen
  16.             eingabe = false;
  17.             s = IO.readLine(); 
  18.             a = IO.charAt(s,0);
  19.             if (a != '+' && a != '-' && a != '*' && a != 'x' && a != '/' && a != '%')
  20.             {
  21.                 if(i == 3)
  22.                 {
  23.                     System.out.println("Ich hab keine Lust mehr, danke und tschüß");
  24.                     System.exit(0);
  25.                 }
  26.                 System.out.println("Bitte nochmal versuchen!");
  27.                 i++;
  28.                 eingabe = true;
  29.             }
  30.         }
  31.        
  32.         auswahl = a;
  33.        
  34.         //Anzahl der Aufgaben einlesen
  35.         System.out.println("Wie viele Aufgaben?");
  36.         int n = IO.readInt();
  37.  
  38.         int x, y;
  39.         double ergebnis,time;
  40.         long time1, time2,zeitdifferenz,zeit;
  41.         int wans = 0, fans = 0;
  42.         time1 = System.currentTimeMillis();
  43.        
  44.         for (int j = 0; j < n; ++j)
  45.         {
  46.  
  47.             //Aufgabe erstellen
  48.  
  49.              x = IO.randomNumber(1,100);
  50.              y = IO.randomNumber(1,100);
  51.             //untere Grenze auf 1 gesetzt, damit es beim Dividieren keine Probleme gibt
  52.        
  53.        
  54.             System.out.print(x + " " + auswahl + " " + y + " = ");
  55.             ergebnis = IO.readDouble();
  56.             boolean istRichtig = false;
  57.  
  58.             //Ueberpruefen ob das Ergebniss korrekt ist
  59.             switch(auswahl)
  60.             {
  61.                 case '+':
  62.                     istRichtig = (ergebnis == (double)(x+y));                          
  63.                     break;
  64.                 case '-':
  65.                     istRichtig = (ergebnis == (double)(x-y));
  66.                     break;
  67.                 case '*': case 'x':
  68.                     istRichtig = (ergebnis == (double)(x*y));
  69.                     break;
  70.                 case '/':
  71.                     /*Anmerkung: in der vorliegenden Form ist Division leicht sinnlos
  72.                     Man kann zum einen nur wenige Lösungen wirklich eingeben
  73.                     (wie soll man zB 1/3 als Kommazahl eingeben?)
  74.                     Daraus folgt, dass man die Lösungen als Bruch eingeben muss
  75.                     Hierbei reicht es vollkommen den ungekürzten Bruch, also x/y einzugeben,
  76.                     genauso wie er in der Aufgabenstellung steht.
  77.                     Um eine ordentliche Divisionsaufgabe hinzukriegen müsste man vollständig
  78.                     gekürzte Brüche fordern und den eingegebenen String dann in Zähler und Nenner zerlegen,
  79.                     etc.
  80.                     Da das allerdings nicht gefordert und mit unserem bisherigen Vorlesungs-
  81.                     und Übungswissen auch nur sehr umständlich bis unschön (für den User) umsetzbar ist
  82.                     lassen wir diese, wenn auch sinnlose, Division so stehen.
  83.                     Wenn der Kunde es so haben will, nicht unser Problem. xD */
  84.                     auswerten(ergebnis == (double)(x/y));
  85.                     break;
  86.                 case '%':
  87.                     istRichtig = (ergebnis == (double)(x%y));
  88.                     break;
  89.             }
  90.            
  91.             if(isRichtig)
  92.             {
  93.                 //Wenn Ergebniss richtig
  94.                 System.out.println("Richtig!");
  95.                 wans++;
  96.             }
  97.             else
  98.             {
  99.                 //Wenn Ergebniss falsch
  100.                 System.out.print("Gehe in die Grundschule. Gehe nicht über los. ");
  101.                 System.out.println("Ziehe nicht 200€ Hartz 4 ein.");
  102.                 fans++;
  103.             }
  104.             System.out.println("");
  105.                
  106.         }
  107.        
  108.         time2 = System.currentTimeMillis();
  109.         zeitdifferenz = time2 - time1;
  110.         zeit = zeitdifferenz / 100;
  111.         time = zeit / 10.0;
  112.         System.out.println("Zeit: " + time + " Sekunden");
  113.         System.out.println("Richtige Antworten: " + wans);
  114.         System.out.println("Falsche Antworten: " + fans);
  115.     }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement