Neler yeni
Türkiye'nin En Güncel Forum Sitesi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

Java İle Plaka Okutma Programı | Yapımı

ByOnur58

Kayıtlı Üye
MFC Üyesi
  • Üyelik Tarihi
    7 Ocak 2015
  • Mesajlar
    2,113
  • MFC Puanı
    10
  • MFC Seviyesi

Kod:
Öncelikle programın çalışması için;

Sayı sesleri;
0,1,2,3,4,5,6,7,8,9;
10,20,30,40,50,60,70,80,90;
100,200,300,400,500,600,700,800,900;

Harf sesleri;
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,r,s,t,u,v,y,z
ses
şeklinde .au uzantılı ses dosyaları gerekiyor.

Programın çalışma mantığından biraz bahsedeyim;
3 adet text kutusu bulunmakta; 1. kutu il kodu; ikinci kutu harf kodu; 3. kutu plakanın sonunda yer alan rakam kod.

15 AA 155
şeklinde girilen plakayı

"On-Beş-Adana-Adana-Yüz-Elli-Beş-plaka sayılı araç lütfen aracınızı bulunduğu yerden kaldırınız."
şeklinde okumakta.

Import’ları buraya yazma gereği duymadım.
Kod tarafında anlaşılmayacak pek bi kısım yok.

Hatta siz benden daha iyi bir kod çıkarabilirsiniz.
Plaka[] değişkenine döngü ile atama yapabilirsiniz.
Bunu denediğimde bir çok çıkmazın içine girdim ben;
En son çare olarak da bu şekilde yazdım.





public class PlakaOku extends JFrame {
private JLabel lbl;
private JTextField txtil;
private JTextField txtharf;
private JTextField txtkod;
private JLabel lblcizgi;
private JLabel lblcizgi2;
private JButton btnoku;
private int j;
private JButton btncik;
public PlakaOku()
{
PlakaFrame();

}

private **** PlakaFrame() {
this.setLayout(new GridBagLayout());
this.setSize(new Dimension(500,300));
this.setTitle("Plaka Okuma Programı");
JMenuBar jbar = new JMenuBar();
JMenu jm = new JMenu("Dosya");
JMenuItem jmi = new JMenuItem("Çıkış");
jbar.add(jm);
jm.add(jmi);
jmi.addActionListener(new ActionListener() {
@Override
public **** actionPerformed(ActionEvent arg0) {
System.exit(0); 
}
});
lbl = new JLabel("Plaka: ");
txtil = new JTextField();
txtil.setPreferredSize(new Dimension(30,24)); 
lblcizgi = new JLabel("-");
txtharf = new JTextField();
txtharf.setPreferredSize(new Dimension(30,24)); 
lblcizgi2=new JLabel("-");
txtkod = new JTextField();
txtkod.setPreferredSize(new Dimension(60,24)); 
btnoku = new JButton("Oku");
btnoku.addActionListener(new ActionListener() {
@SuppressWarnings("static-access")
@Override
public **** actionPerformed(ActionEvent arg0) { 
if(txtil.getText().equals("") || txtkod.getText().equals("") || txtharf.getText().equals("")){
JOptionPane.showMessageDialog(null, "Alanlardan en az birini boş bıraktınız");
return;
}
int il = 0;
il=Integer.parseInt(txtil.getText());
String harfkod = txtharf.getText();
int kod = 0;
kod=Integer.parseInt(txtkod.getText());
if(il<1 || il>82)
{
JOptionPane.showMessageDialog(null, "İl 1-81 aralığı olmalı");
}
else if(kod<1 || kod>9999)
{
JOptionPane.showMessageDialog(null, "Kod 1-9999 aralığı olmalı");
}
else if("".equals(harfkod))
{
JOptionPane.showMessageDialog(null, "Harf kod girmediniz.");
}
else if(harfkod.length()>3)
{
JOptionPane.showMessageDialog(null, "Harf kod 3 karakterden fazla olamaz.");
}
else
{
String birlestir = txtil.getText()+txtharf.getText()+txtkod.getText() ;
String il1 = Integer.toString(il);
String kod1 = Integer.toString(kod);
//Eksik alabilir.
final String[] plaka = new String[20];
if(il1.length()==1)
{
birlestir = "0"+birlestir;
System.out.print(birlestir);
plaka[0]="0";
plaka[1]=birlestir.substring(1,2);
} 
else if(il1.length()==2)
{
int a = Integer.parseInt(il1.substring(0, 1));
int b = Integer.parseInt(il1.substring(1,2));
int c = a-b;
if(c==a)
{
c*=10;
plaka[0]=Integer.toString(c);
System.out.println(plaka[0]);
}
else if(c*-1==b)
{
plaka[0]="0";
plaka[1]=Integer.toString(c);
}
else
{
plaka[0]=Integer.toString(a*10);
plaka[1]=Integer.toString(b);
}
}
else
{
JOptionPane.showMessageDialog(null, "hata");
}

if(harfkod.length()==1)
{
plaka[2]=harfkod.substring(0,1);
if(kod1.length()==1)
{
plaka[3]=kod1;
}
else if(kod1.length()==2)
{
int a = Integer.parseInt(kod1.substring(0, 1));
int b = Integer.parseInt(kod1.substring(1,2));
int c = a-b;
if(c==a)
{
plaka[3]=Integer.toString(c*10);
}
else if(c*-1==b)
{
plaka[3]=Integer.toString(b);
}
else
{
plaka[3]=Integer.toString(a*10);
plaka[4]=Integer.toString(b);
}

}

else if(kod1.length()==3)

{

int a = Integer.parseInt(kod1.substring(0,1));

int b = Integer.parseInt(kod1.substring(1,2));

int c = Integer.parseInt(kod1.substring(2,3));

int r=a-b;

int p=b-c;

if(r==a && p*-1==c)

{

plaka[3]=Integer.toString(a*100);

plaka[4]="";

if(c>0)

{

plaka[5]=Integer.toString(c);

}

}

else if(r*-1==b && r>0)

{

plaka[3]="";

plaka[4]=Integer.toString(b*10);

if(c>0)

{

plaka[5]=Integer.toString(c);

}

}

else


{

if(a!=0)

plaka[3]=Integer.toString(a*100);

if(b!=0)

plaka[4]=Integer.toString(b*10);

if (c!=0)

plaka[5]=Integer.toString(c);

}

}

else if(kod1.length()==4)

{

int a = Integer.parseInt(kod1.substring(0,1));

int b = Integer.parseInt(kod1.substring(1,2));

int c = Integer.parseInt(kod1.substring(2,3));

int d = Integer.parseInt(kod1.substring(3,4));

int e = a-b;

int f = c-d;

if(e==a)

{

if(e!=0)

plaka[3]=Integer.toString(c*10);

plaka[4]="";

}

else if(e*-1==b)

{

if(e!=0)

plaka[3]="";

plaka[4]=Integer.toString(b);

}

else


{

plaka[3]=Integer.toString(a*10);

plaka[4]=Integer.toString(b);

}

if(f==c)

{

if(f!=0)

plaka[5]=Integer.toString(c*10);

plaka[6]="";

}

else if(f*-1==c)

{

if(f!=0)

plaka[5]="";

plaka[6]=Integer.toString(d);

}

else


{

plaka[5]=Integer.toString(c*10);

plaka[6]=Integer.toString(d);

}

}

}

else if (harfkod.length()==2)

{

plaka[2]=harfkod.substring(0,1);

plaka[3]=harfkod.substring(1,2);

if(kod1.length()==1)

{

plaka[4]=kod1;

}

else if(kod1.length()==2)

{

int a = Integer.parseInt(kod1.substring(0, 1));

int b = Integer.parseInt(kod1.substring(1,2));

int c = a-b;

if(c==a)

{

plaka[4]=Integer.toString(c*10);

}

else if(c*-1==b)

{

plaka[4]=Integer.toString(b);

}

else


{

plaka[4]=Integer.toString(a*10);

plaka[5]=Integer.toString(b);

}

}

else if(kod1.length()==3)

{

int a = Integer.parseInt(kod1.substring(0,1));

int b = Integer.parseInt(kod1.substring(1,2));

int c = Integer.parseInt(kod1.substring(2,3));

int r=a-b;

int p=b-c;

if(r==a && p*-1==c)

{

plaka[4]=Integer.toString(a*100);

plaka[5]="";

if(c>0)

{

plaka[6]=Integer.toString(c);

}

}

else if(r*-1==b && r>0)

{

plaka[4]="";

plaka[5]=Integer.toString(b*10);

if(c>0)

{

plaka[6]=Integer.toString(c);

}

}

else


{

if(a!=0)

plaka[4]=Integer.toString(a*100);

if(b!=0)

plaka[5]=Integer.toString(b*10);

if (c!=0)

plaka[6]=Integer.toString(c);

}

}

else if(kod1.length()==4)

{

int a = Integer.parseInt(kod1.substring(0,1));

int b = Integer.parseInt(kod1.substring(1,2));

int c = Integer.parseInt(kod1.substring(2,3));

int d = Integer.parseInt(kod1.substring(3,4));

int e = a-b;

int f = c-d;

if(e==a)

{

if(e!=0)

plaka[4]=Integer.toString(c*10);

plaka[5]="";

}

else if(e*-1==b)

{

if(e!=0)

plaka[4]="";

plaka[5]=Integer.toString(b);

}

else


{

plaka[4]=Integer.toString(a*10);

plaka[5]=Integer.toString(b);

}

if(f==c)

{

if(f!=0)

plaka[6]=Integer.toString(c*10);

plaka[7]="";

}

else if(f*-1==c)

{

if(f!=0)

plaka[6]="";

plaka[7]=Integer.toString(d);

}

else


{

plaka[6]=Integer.toString(c*10);

plaka[7]=Integer.toString(d);

}

}

}

else if(harfkod.length()==3)

{

plaka[2]=harfkod.substring(0,1);

plaka[3]=harfkod.substring(1,2);

plaka[4]=harfkod.substring(2,3);

if(kod1.length()==1)

{

plaka[5]=kod1;

}

else if(kod1.length()==2)

{

int a = Integer.parseInt(kod1.substring(0, 1));

int b = Integer.parseInt(kod1.substring(1,2));

int c = a-b;

if(c==a)

{

plaka[5]=Integer.toString(c*10);

}

else if(c*-1==b)

{

plaka[5]=Integer.toString(b);

}

else


{

plaka[5]=Integer.toString(a*10);

plaka[6]=Integer.toString(b);

}

}

else if(kod1.length()==3)

{

int a = Integer.parseInt(kod1.substring(0,1));

int b = Integer.parseInt(kod1.substring(1,2));

int c = Integer.parseInt(kod1.substring(2,3));

int r=a-b;

int p=b-c;

if(r==a && p*-1==c)

{

plaka[5]=Integer.toString(a*100);

plaka[6]="";

if(c>0)

{

plaka[7]=Integer.toString(c);

}

}

else if(r*-1==b && r>0)

{

plaka[5]="";

plaka[6]=Integer.toString(b*10);

if(c>0)

{

plaka[7]=Integer.toString(c);

}

}

else


{

if(a!=0)

plaka[5]=Integer.toString(a*100);

if(b!=0)

plaka[6]=Integer.toString(b*10);

if (c!=0)

plaka[7]=Integer.toString(c);

}

}

else if(kod1.length()==4)

{

int a = Integer.parseInt(kod1.substring(0,1));

int b = Integer.parseInt(kod1.substring(1,2));

int c = Integer.parseInt(kod1.substring(2,3));

int d = Integer.parseInt(kod1.substring(3,4));

int e = a-b;

int f = c-d;

if(e==a)

{

if(e!=0)

plaka[5]=Integer.toString(c*10);

plaka[6]="";

}

else if(e*-1==b)

{

if(e!=0)

plaka[5]="";

plaka[6]=Integer.toString(b);

}

else


{

plaka[5]=Integer.toString(a*10);

plaka[6]=Integer.toString(b);

}

if(f==c)

{

if(f!=0)

plaka[7]=Integer.toString(c*10);

plaka[8]="";

}

else if(f*-1==c)

{

if(f!=0)

plaka[7]="";

plaka[8]=Integer.toString(d);

}

else


{

plaka[7]=Integer.toString(c*10);

plaka[8]=Integer.toString(d);

}

}

}

for(j=0; j<birlestir.length(); j++)

{

try{

Thread th1= new Thread(new Okuyucu("D:/sounds/"+plaka[j]+".au"));

th1.start();

th1.sleep(900);

//clip.start();


}

catch (Exception e){

e.printStackTrace();

}

try{

if(j==birlestir.length()-1)

{

Thread th2= new Thread(new Okuyucu("D:/sounds/ses.au"));

th2.start();

th2.sleep(900);

}

}

catch(Exception e){

e.printStackTrace();

}

}

}

}

});

this.add(lbl, gbclbl);

this.add(txtil, gbctxtil);

this.add(lblcizgi, gbccizgi);

this.add(lblcizgi2, gbccizgi2);

this.add(txtharf, gbctxtharf);

this.add(txtkod, gbctxtkod);

this.add(btnoku);

this.add(jbar);

this.addWindowListener(new WindowAdapter() {

@Override


public **** windowClosing(WindowEvent arg0) {

System.exit(0);

}

});

}

public static **** main(String[] args) {

PlakaOku po = new PlakaOku();

po.setVisible(true);

}

public class Okuyucu implements Runnable {

String okunacakDeger;

public Okuyucu(String okunacakDeger) {

this.okunacakDeger=okunacakDeger;

}

@Override


public **** run() {

try {

AudioInputStream stream = AudioSystem.getAudioInputStream(new File(okunacakDeger));

AudioFormat format = stream.getFormat();

DataLine.Info info = new DataLine.Info(Clip.class, stream.getFormat(),

((int)stream.getFrameLength()*format.getFrameSize( )));

Clip clip = (Clip) AudioSystem.getLine(info);

clip.open(stream);

clip.start();

} catch (UnsupportedAudioFileException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} catch (LineUnavailableException e) {

e.printStackTrace();

}

}

}

}
 
Üst Alt