10 Finger Schreiben

Ripper11

Mitglied
Hallo zusammen,
ich möchte ein Programm schreiben, mit dem man das 10 Fingersystem lernen kann. Dazu hab ich ein paar Fragen:
1.Wie errechnet man die Anschläge/Minute?
2.Ich will, das die Fehlerzahl angezeigt wird. Nur ich weis nicht wie ich darauf kommen soll? Wenn ich das so mache wie unten, dann sagt mir das Programm ja nur das ein Fehler beim abschreiben passiert ist. Gibt es eine Methode die mir das sagt?
Code:
                        String str1 = new String("Test");
		InputStreamReader in = new InputStreamReader (System.in);
		BufferedReader tast = new BufferedReader (in);
		
		String str2 = new String (tast.readLine());
		
		if (str2.equals(str1))
		{
			System.out.println("Kein Fehler");
		}
		else 
		{
			System.out.println("Fehler");
		}

Danke schonmal
Gruß Fabi
 
Hallo!

Ich habe davon zwar keine Ahnung, aber ich würde eine Start-, Stop- und Pausen-Taste mit einbauen.
Schliesslich weiss das Programm ja nicht warum z.b. Unterbrechungen stattfinden (z.b. durch eine Telefonat oder weil man mal aufs Klo muss).

Drückt man auf start, dann wird ein Zeitmesser gestartet.
Drückt man auf Pause, dann wird der Zeitmesser angehalten und nach nochmaligen drücken wieder fortgesetzt.
Drückt man auf Stop, dann wird alles angehalten.
Anschliessend werden die Zeichen gezählt und durch die gemessene Zeit geteilt.
Das Ergebnis wird mal 60 (Sekunden) multipliziert, und schon hat man die durchnittliche Anzahl an Anschlägen pro Minute.

Gruss Dr Dau
 
Hallo!
Hol dir mit
Code:
System.currentTimeMillis();
beim Start der Stopuhr den Anfangswert und speicher diesen. Wenn du stoppst holst du dir den Endwert und ziehst davon den Anfangswert ab. Dann erhältst du die vergangene Zeit in milliseconds.

mfg flo
 
Danke für Eure Antworten!
Das mit den Anschlägen funktioniert jetzt.
Weis vielleicht jemand wie das mit den Fehlern funktioniert?
 
Hallo!
Spontan fallen mir da zwei Möglichkeiten ein:
1. Du liest jedes Zeichen einzeln ein und vergleichst dieses Zeichen sofort mit dem Vorgegebenen, oder
2. Du speicherst die Zeichenkette die du vorgegeben hast in einem String und die getippte Zeichenkette in einem extra String. Anschließend läufst du mit einer for-Schleife und charAt() durch beide Strings und vergleichst die jeweiligen Zeichen:
Java:
String target = "abcdefji";
String input = "abcdefghi";

for(int i = 0; i < target.length(); i++)
{
  if(target.charAt(i) != input.charAt(i))
    System.out.println("Error at position " + i);
}
}
Code ist nicht getestet.
 
Zuletzt bearbeitet von einem Moderator:
Heyho...

Mir ist gerad aufgefallen, dass wenn Start - Pause - Stopp Buttons benutzt werden, müsste man ja sofort nach dem drücken des Start Buttons anfangen zu schreiben...
Sinnvoller wäre es, wenn erst nach dem Drücken einer Taste die "Stoppuhr" anfängt zu laufen, finde ich :)

Soll nur ein Denkanstoß meinerseits sein... Vielleicht versteh ich aber auch den Sinn des Programms falsch, dann sorry :)

Grüße
Felix
 
Mir ist gerad aufgefallen, dass wenn Start - Pause - Stopp Buttons benutzt werden, müsste man ja sofort nach dem drücken des Start Buttons anfangen zu schreiben...
Prinzipiell richtig.
Nur wie ich schon gesagt habe, kann das System den Grund der Unterbrechung ja nicht wissen/erkennen.
Um ein realistisches Ergebnis zu bekommen, müssen aber auch solche Pausen mit in die Berechnung einfliessen, die z.b. dadurch resultieren weil man eine bestimmte Tastenkombination (z.b. für Sonderzeichen) nicht auf anhieb findet.
 
Naja man könnte es so ja so implementieren, dass ein Start-Button gedrückt wird und anschließend beim ersten Tastenanschlag erst das Zeitstoppen beginnt. Um eine Pause einzulegen gibts dann einen Pause-Button. Weitermachen geht wie beim Start.
Eine weitere Möglichkeit wäre, dass nach dem Drücken des Start-Buttons erst ein kleiner Countdown runterläuft.
Oder dass der Start durch eine bestimmte Taste ausgelöst wird ("Drücken Sie die Leertaste um zu beginnen") und anschließend der erste zu tippende Buchstabe kommt.
mfg flo
 
Klingt bisher am besten, wie ich finde...
Als Pause-Taste würde sich die "Pause" Taste natürlich anbieten, vielleicht in Kombination mit STRG oder ALT...
Mir fällt auch keine Tasten-Kombi ein, in der man diese Taste braucht :)

Grüße
Felix
 
Zuletzt bearbeitet:
Zurück