Kezdőoldal » Számítástechnika » Programozás » Java-s programban mi lehet a...

Java-s programban mi lehet a hiba?

Figyelt kérdés

Sziasztok!

A segítségeteket szeretném kérni, az alábbi feladat az lenne, hogy a program bekér argumentumban egy txt fájlt és egy betűt, hogy a fájlban található sok számot hogyan ellenőrízze le. Lehet Adóigazolvány szám, Személyi szám és TAJ szám is.


A programot megírtam, le tudja fordítani a fordító, de a lefutáskor nem csinál semmit.

Tudnátok segíteni, mi lehet a hiba? ​


import java.io.*;

public class szamok{

private static void szemelyi(String forras){

File f1 = new File(forras);

try{

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(f1)));

String inputLine;

int sor=0;

while ((inputLine = in.readLine()) != null){

int sum=0;

for(int i=0;i<9;i++){

sum=sum+(inputLine.charAt(i)*(i+1));

}

int maradekos=sum%11;

sor++;

if(maradekos!=inputLine.charAt(10)){

System.out.println("Hibás a "+sor+". sorban lévő szám!");

}

if(inputLine.charAt(0)>'9'){

System.out.println("Hibás a "+sor+". sorban lévő szám!");

}

if(maradekos>9){

System.out.println("Hibás a "+sor+". sorban lévő szám!");

}

}

}

catch(IOException e){

System.out.println("Hiba történt!");

System.exit(0);

}

}


private static void taj(String forras){

File f1 = new File(forras);

try{

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(f1)));

String inputLine;

int sor=1;

while ((inputLine = in.readLine()) != null){

int sum=0;

for(int i=0;i<7;i++){

sum=sum+(inputLine.charAt(i)*(i+1));

}

int maradekos=sum%10;

sor++;

if(maradekos!=inputLine.charAt(8)){

System.out.println("Hibás a "+sor+". sorban lévő szám!");

}

}

}

catch(IOException e){

System.out.println("Hiba történt!");

System.exit(0);

}

}


private static void ado(String forras){

File f1 = new File(forras);

try{

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(f1)));

String inputLine;

int sor=1;

while ((inputLine = in.readLine()) != null){

int sum=0;

int i=0;

while(i<8){

sum=sum+(3*(i+1));

i=(i+2);

}

i=1;

while(i<8){

sum=sum+(3*(i+1));

i=(i+2);

}

/*for(int i=0;i<8;i=i+2){ //elsőtől indul - páratlan

sum=sum+(3*(i+1));

}

for(int i=1;i<8;i=i+2){ //másodiktól indul - páros

sum=sum+(7*(i+1));

}*/

int maradekos=sum%10;

sor++;

if(inputLine.charAt(0)!='8'){

System.out.println("Hibás a "+sor+". sorban lévő szám!");

}

if(maradekos!=inputLine.charAt(9)){

System.out.println("Hibás a "+sor+". sorban lévő szám!");

}

if(maradekos>9){

System.out.println("Hibás a "+sor+". sorban lévő szám!");

}

}

}

catch(IOException e){

System.out.println("Hiba történt!");

System.exit(0);

}

}


public static void main(String[] args){

if(args[1]=="S"){

szemelyi(args[0]);

}else{

if(args[1]=="A"){

ado(args[0]);

}else{

if(args[1]=="T"){

taj(args[0]);

}

}

}

}

}


/* A személyi azonosító 11. számjegyét úgy kell képezni, hogy a 2. a)-c) pontok szerint képzett tíz számjegy mindegyikét szorozni kell azzal a sorszámmal, ahányadik helyet foglalja el a személyi azonosítón belül. (Első számjegy szorozva eggyel, a 2. számjegy szorozva kettővel és így tovább.) Az így kapott szorzatokat össze kell adni és az összeget tizeneggyel osztani. Az osztás maradéka a 11. számjeggyel lesz egyenlő.


A TAJ szám egy kilenc számjegyből álló szám, amelyben az első nyolc számjegy egy folyamatosan kiadott egyszerű sorszám, amely mindig az előző, utoljára kiadott sorszámból egy hozzáadásával keletkezik. A kilencedik számjegy ellenőrző ún. CDV kód, melynek képzési algoritmusa az alábbi:

A TAJ szám első nyolc számjegyéből a páratlan helyen állókat hárommal, a páros helyen állókat héttel szorozzuk, és a szorzatokat összeadjuk. Az összeget tízzel elosztva a maradékot tekintjük a kilencedik, azaz CDV kódnak."


az 1. számjegy konstans 8-as szám, mely az adóalany magánszemély voltára utal,

Az adóazonosító jel 10. számjegyét úgy kell képezni, hogy a 2. a)-c) pontok szerint képzett 9 számjegy mindegyikét szorozni kell azzal a sorszámmal, ahányadik helyet foglalja el az azonosítón belül. (Első számjegy szorozva eggyel, második számjegy szorozva kettővel és így tovább.)

Az így kapott szorzatok összegét el kell osztani 11-gyel, és az osztás maradéka a 10. számjeggyel lesz egyenlő. A 2. c) pont szerinti születési sorszám nem adható ki, ha a 11-gyel való osztás maradéka egyenlő tízzel. */


Segítségeteket előre is köszönöm


2010. okt. 28. 13:58
 1/2 anonim ***** válasza:
Tyű mennyi copy-paste kód. Az ilyet kerüld. A fájlmegnyitást elég egyszer learni, mert mindegyiknél ugyanúgy csinálod. Fel tudod valahova tölteni a kódot, mert ez számomra olvashatatlan...
2010. okt. 28. 16:15
Hasznos számodra ez a válasz?
 2/2 anonim válasza:
Debuggolás? GONDOLKODÁS? ISTENEM komolyan, annyira királyak vagytok, valami nem megy és jöttök egyből mással megcsináltatni a bajotokat... Gratulálok
2010. okt. 30. 23:33
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!