Javanal mi lehet a hiba?
Készítsen programot, amely a képernyőre ír egy sort (legyenek nehézségi szintek,
és fix karaktersorok, 30-40 karakter legyen egy sorban), majd bekéri a sor
minden egyes karakterét egyenként. Ha rossz karaktert üt le a felhasználó, akkor
jelezze ezt a felhasználónak. A végeredményt (helyes/helytelen) írjuk ki a végén.
Számoljon találati százalékot is. Többszöri végrehajtásra legyen lehetőség, majd
az összesített statisztikát is kiírja, illetve lehessen fájlba menteni is!
import java.*;
import java.io.*;
import java.util.*;
public class karakter {
public static void main(String[] args) throws IOException{
//TODO: szazalek hibas eredmenyt hoz
//TODO: tobbszori vegrehajtasra nincs lehetoseg
//TODO: metodusokba felbontas, pelda stringek letrehozasa
//TODO: osszesitett statisztika
Scanner be = new Scanner (System.in); //Beolvasas billentyuzetrol
String elso = "qwertzuioplkjhgfdsayxcvbnmaswd"; //Egy pelda 30 karakterbol allo string, ebbol kell tobb, kulonbozo nehezsegi szintekkel, ahogy a feladat irja...
int rosszdb = 0; //Hibapontokat szamol
int jodb = 0; //Helyes bevitelt szamol
int szazalek = 0; //%
System.out.println("Irja le a kovetkezo sor karaktereit...");
System.out.println(elso+"\n");
for (int i=0; i<elso.length(); i++){ //A ciklus addig meg ahany karaktert tartalmaz a string
System.out.print("Kerem a(z) "+(i+1)+". karaktert: ");
char c=be.nextLine().charAt(0); //Segedvaltozo, ezzel ellenorizzuk a karakter helyesseget
if (elso.charAt(i)!=c){ //Ha nem egyenlo az i. karaktere a string-nek a bevitt karakterrel, akkor rosszdb = rosszdb + 1 es figyelmezetetjuk a felhasznalot
System.out.println("Rossz!");
rosszdb++;
}
else {
jodb++; //Ha jol irja be, akkor jodb = jodb + 1
}
}
szazalek = rosszdb / elso.length() * 100; //HIBAS!!! Nem tudom miert, lehet az Integer-el nem tudja rendesen kiszamolni, ennek utana kell nezni
//Kiiras
System.out.println("\nHelyes: "+jodb);
System.out.println("Helytelen: "+rosszdb);
System.out.println("A karakterek "+szazalek+"%-at talaltad el.");
//Fajlbairas menu
System.out.print("\nKiirja az eredemenyt kulso fajlba? I/N: ");
String s = be.next();
if (s.equals("I") || s.equals("i")){
//Kiiras fajlba
PrintWriter ki = new PrintWriter (new FileWriter("ki.txt"));
ki.println("\nHelyes: "+jodb);
ki.println("Helytelen: "+rosszdb);
ki.println("A karakterek "+szazalek+"%-at talaltad el.");
ki.close();
System.out.println("Kiirtam a ki.txt fajlba az eredmenyt.\n");
}//Fajlbairas elagazas vege
}
}
Itt tartok, mi kéne még hogy szuperul menjen ?:)
Te ezt írtad: szazalek = rosszdb / elso.length() * 100;
neked int szazalek;
Így működni fog: double százalek;
Kiszámítás: szazalek = (jodb*100)/elso.length();
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!