30 Eylül 2012 Pazar

Asp.Net Theme





Theme1/Skin1.skin


<asp:Button runat="server" BackColor="SteelBlue" ForeColor="White" />

<asp:TextBox runat="server" BackColor="Red" ForeColor="Black"/>

<asp:Label runat="server" ForeColor="Green" BackColor="Yellow"/>


Theme2/Skin2.skin


<asp:Button runat="server" BackColor="Blue" ForeColor="White" />

<asp:TextBox runat="server" BackColor="Yellow" ForeColor="Red"/>

<asp:Label runat="server" ForeColor="Green" BackColor="Black"/>


WebForm1.aspx


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Tema.WebForm1"
    Theme="Theme1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table>
            <tr>
                <td>
                    <asp:Label ID="Label1" runat="server" Text="Kullanıcı Adı :"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Button ID="Button1" runat="server" Text="Button" />
                </td>
            </tr>
            <tr>
                <td>
                 
                    <asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">Tema-1</asp:LinkButton>
                 
                </td>
                <td>
                 
                    <asp:LinkButton ID="LinkButton2" runat="server" onclick="LinkButton2_Click">Tema-2</asp:LinkButton>
                 
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>


WebForm1.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Tema
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_PreInit(object sender, EventArgs e)
        {
            if (Session["Theme"] != null)
                Page.Theme = Session["Theme"].ToString();
            else
                Page.Theme = "";
        }

        protected void LinkButton1_Click(object sender, EventArgs e)
        {
            Session["Theme"] = "Theme1";
            Response.Redirect("WebForm1.aspx");
        }

        protected void LinkButton2_Click(object sender, EventArgs e)
        {
            Session["Theme"] = "Theme2";
            Response.Redirect("WebForm1.aspx");
        }
    }
}








Asp.Net User Control



AdresBilgisi.ascx


<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AdresBilgisi.ascx.cs"
    Inherits="User.AdresBilgisi" %>
<table>
    <tr>
        <td>
            <asp:Label ID="Label6" runat="server" Text="İl"></asp:Label>
        </td>
        <td>
            <asp:DropDownList ID="DropDownList1" runat="server">
                <asp:ListItem>İstanbul</asp:ListItem>
                <asp:ListItem>Ankara</asp:ListItem>
                <asp:ListItem>İzmir</asp:ListItem>
            </asp:DropDownList>
        </td>
    </tr>
    <tr>
        <td>
            <asp:Label ID="Label7" runat="server" Text="İlçe"></asp:Label>
        </td>
        <td>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        </td>
    </tr>
    <tr>
        <td>
            <asp:Label ID="Label3" runat="server" Text="Cadde"></asp:Label>
        </td>
        <td>
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        </td>
    </tr>
    <tr>
        <td>
            <asp:Label ID="Label4" runat="server" Text="Sokak"></asp:Label>
        </td>
        <td>
            <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
        </td>
    </tr>
    <tr>
        <td>
            <asp:Label ID="Label5" runat="server" Text="Posta Kodu"></asp:Label>
        </td>
        <td>
            <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
        </td>
    </tr>
</table>


WebForm1.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="User.WebForm1" %>
<%@ Register TagPrefix="uc" TagName="AdresBilgisi" Src="~/AdresBilgisi.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <uc:AdresBilgisi id="AdresBilgisi1" 
        runat="server" 
        MinValue="1" 
        MaxValue="10" />
    </div>
    </form>
</body>
</html>


Asp.Net Validation Controls



WebForm1.aspx


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<script type="text/javascript">
    function onlyNumber(e) {
        var keyCode = event.keyCode;
        if ((keyCode < 46 || keyCode > 57) && keyCode != 8 && keyCode != 9 && keyCode != 0 && keyCode != 47 && (keyCode < 96 || keyCode > 105)) {
            returnfalse;
        }
    }
</script>
<body>
    <form id="form1" runat="server">
    <div>
        <table border="2" bgcolor="#FFCCFF">
            <tr>
                <td>
                    <asp:Label ID="Label1" runat="server" Text="Üyelik Bilgileri" Font-Bold="True" Font-Size="Larger"
                        ForeColor="#0000CC"></asp:Label>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label2" runat="server" Text="Ad Soyad"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label3" runat="server" Text="Şifrenizi Yazınız"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label4" runat="server" Text="Şifrenizi Tekrar Yazınız"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
                    <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="TextBox2"
                        ControlToValidate="TextBox3" ErrorMessage="Şifre aynı değil" ForeColor="Red"></asp:CompareValidator>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label5" runat="server" Text="Doğduğunuz Ay"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
                    <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="TextBox4"
                        ErrorMessage="[1-12] olmalı " ForeColor="Red" MaximumValue="12" MinimumValue="1"
                        Type="Integer"></asp:RangeValidator>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label6" runat="server" Text="Posta Kodu"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
                    <asp:CompareValidator ID="CompareValidator3" runat="server" ControlToValidate="TextBox5"
                        ErrorMessage="Rakam olmalı" ForeColor="Red" Operator="DataTypeCheck" Type="Integer"></asp:CompareValidator>
                    <asp:CustomValidator ID="CustomValidator2" runat="server" ControlToValidate="TextBox5"
                        ErrorMessage="Altı haneli olmalı" ForeColor="Red" OnServerValidate="CustomValidator2_ServerValidate"></asp:CustomValidator>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label7" runat="server" Text="E-Mail"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
                    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox6"
                        ErrorMessage="Hatalı" ForeColor="Red" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label8" runat="server" Text="Telefon Numarası"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="TextBox7" runat="server"></asp:TextBox>
                    <asp:CompareValidator ID="CompareValidator2" runat="server" ControlToValidate="TextBox7"
                        ErrorMessage="Rakam olmalı" ForeColor="Red" Operator="DataTypeCheck" Type="Integer"></asp:CompareValidator>
                    <asp:CustomValidator ID="CustomValidator3" runat="server" ControlToValidate="TextBox7"
                        ErrorMessage="On haneli olmalı" ForeColor="Red" OnServerValidate="CustomValidator3_ServerValidate"></asp:CustomValidator>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label9" runat="server" Text="Çİft Sayı Giriniz"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="TextBox8" runat="server"></asp:TextBox>
                    <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Tek sayı girmeyin"
                        ForeColor="Red"></asp:CustomValidator>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Button ID="Button1" runat="server" Text="Üye Ol" OnClick="Button1_Click" />
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>


WebForm1.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Kontrol
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            if (TextBox8.Text != "")
            {
                if (Convert.ToInt32(TextBox8.Text) % 2 != 0)
                    CustomValidator1.IsValid = false;
                else
                    CustomValidator1.IsValid = true;
            }

        }

        protected void CustomValidator2_ServerValidate(object source, ServerValidateEventArgs args)
        {
            if (args.Value.Length == 6)
                args.IsValid = true;
            else
                args.IsValid = false;
        }

        protected void CustomValidator3_ServerValidate(object source, ServerValidateEventArgs args)
        {
            if (args.Value.Length == 10)
                args.IsValid = true;
            else
                args.IsValid = false;
        }
    }
}

Tree Application

Urun.java



public class Urun {

private String urunAdi;
private int fiyat;

public Urun(String urunAdi, int fiyat) {
super();
this.urunAdi = urunAdi;
this.fiyat = fiyat;
}

public String getUrunAdi() {
return urunAdi;
}

public int getFiyat() {
return fiyat;
}

@Override
public String toString() {
return "Urun [urunAdi=" + urunAdi + ", fiyat=" + fiyat + "]";
}

}



Node.java


public class Node {

Urun urun;
Node leftChild;
Node rightChild;

public Node(Urun urun)
{
this.urun = urun;
}

}



Tree.java



public class Tree {

private Node root;

public Tree()
{
root = null;
}

public Node getRoot()
{
return root;
}

public void ekle(Urun yeniUrun)
{
Node yeniNode = new Node(yeniUrun);

String urunAdi = yeniUrun.getUrunAdi();

if(root == null)
root = yeniNode;
else
{
Node gecici = root;
Node parent;

while(true)
{
parent = gecici;

if(gecici.urun.getUrunAdi().compareTo(urunAdi) < 0)
{
gecici = gecici.leftChild;

if(gecici == null)
{
parent.leftChild = yeniNode;
return;
}
}
else
{
gecici = gecici.rightChild;

if(gecici == null)
{
parent.rightChild = yeniNode;
return;
}
}
}


}

}

public int elemanSay(Node node)
{
if(node == null)
return 0;

return 1 + elemanSay(node.leftChild) + elemanSay(node.rightChild);
}

public int topDerinlik(Node node, int derinlik)
{
if(node == null)
return 0;

return derinlik + topDerinlik(node.leftChild, derinlik) + topDerinlik(node.rightChild, derinlik);
}

public int maxDerinlik(Node node, int derinlik)
{
if(node == null)
return 0;

else if(node.leftChild == null && node.rightChild == null)
return derinlik;

else
{
int maxLeft = maxDerinlik(node.leftChild, derinlik);
int maxRight = maxDerinlik(node.rightChild, derinlik);

if(maxLeft > maxRight)
return maxLeft;
else
return maxRight;
}
}

public void inOrder(Node node)
{
if(node != null)
{
inOrder(node.leftChild);
System.out.println(node.urun.toString());
inOrder(node.rightChild);
}
}

}


Test.java


import java.util.ArrayList;


public class Test {

public static void main(String args[])
{
ArrayList<Urun> list = urunler();

Tree tree = new Tree();

for(int i=0;i<list.size();i++)
tree.ekle(list.get(i));

int elemanSayisi = tree.elemanSay(tree.getRoot());
int toplamDerinlik = tree.topDerinlik(tree.getRoot(), 0);
int maximumDerinlik = tree.maxDerinlik(tree.getRoot(), 0);

tree.inOrder(tree.getRoot());

System.out.println("Eleman Sayisi: "+ elemanSayisi);
System.out.println("Toplam Derinlik: "+ toplamDerinlik);
System.out.println("Maximum Derinlik: "+ maximumDerinlik);

}

private static ArrayList<Urun> urunler() {

int[] fiyatlar = {550,120,20,720,960,30,60,140,840,630};
String[] isimler = {"masa","koltuk","tabak","catal","kasik","bardak","laptop","tv","radio","dolap"};

ArrayList<Urun> liste = new ArrayList<Urun>();

for(int i=0;i<fiyatlar.length;i++)
{
liste.add(new Urun(isimler[i], fiyatlar[i]));
}

return liste;
}

}

HashTable


Urun.java

public class Urun {

private String ad;
private int fiyat;

public String getAd() {
return ad;
}

public void setAd(String ad) {
this.ad = ad;
}

public int getFiyat() {
return fiyat;
}

public void setFiyat(int fiyat) {
this.fiyat = fiyat;
}

public Urun(String ad, int fiyat) {

this.ad = ad;
this.fiyat = fiyat;
}

@Override
public String toString() {
return "Urun [ad=" + ad + ", fiyat=" + fiyat + "]";
}

}


Test.java



import java.sql.Array;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Vector;


public class Test {

public static void main(String args[])
{
ArrayList<Urun> dizi = urunler();

Vector<Queue<Urun>> vector = urunYerlestir(dizi);

for(Queue<Urun> queue : vector)
{
System.out.println(queue);
}

System.out.println("-------------------------------------------");

Hashtable has = new Hashtable();

for(Queue<Urun> queue : vector)
{
for(Urun u : queue)
{
has.put(u.getAd(), u.getFiyat());
}
}

Enumeration e = has.keys();

String ad;
int fiyat;

while(e.hasMoreElements())
{
ad = (String) e.nextElement();
fiyat = (Integer) has.get(ad);
System.out.println(ad + " " + fiyat);
}

System.out.println("-------------------------------------------");




}


private static Vector<Queue<Urun>> urunYerlestir(ArrayList<Urun> dizi) {

Queue<Urun> q1 = new LinkedList<Urun>();
q1.add(dizi.get(0));

Queue<Urun> q2 = new LinkedList<Urun>();
q2.add(dizi.get(1));
q2.add(dizi.get(2));

Queue<Urun> q3 = new LinkedList<Urun>();
q3.add(dizi.get(3));
q3.add(dizi.get(4));
q3.add(dizi.get(5));

Queue<Urun> q4 = new LinkedList<Urun>();
q4.add(dizi.get(6));
q4.add(dizi.get(7));
q4.add(dizi.get(8));
q4.add(dizi.get(8));

Vector<Queue<Urun>> v = new Vector<Queue<Urun>>();
v.add(q1);
v.add(q2);
v.add(q3);
v.add(q4);

return v;
}


private static ArrayList<Urun> urunler() {

int[] fiyatlar = {40,150,210,650,870,50,60,980,20,250};
String[] isimler = {"Masa","Kitaplık","Dolap","Koltuk","TV","Çamaşır Makinası", "Buzdolabı", "Cezve", "Bardak", "Tabak"};

ArrayList<Urun> list = new ArrayList<Urun>();
for(int i=0;i<9;i++)
{
list.add(new Urun(isimler[i], fiyatlar[i]));
}

return list;
}

}





29 Eylül 2012 Cumartesi

Selection Sort


public class SelectionSort {

public static void main(String args[])
{
int[] dizi = {1,3,5,4,2};
sort(dizi);


}

public static void sort(int[] dizi) {

     int i, j, index, tut;
     int n = dizi.length;
     for (i = 0; i < n - 1; i++) {
           index = i;
           for (j = i + 1; j < n; j++)
                 if (dizi[j] < dizi[index])
                       index = j;
           if (index != i) {
                 tut = dizi[i];
                 dizi[i] = dizi[index];
                 dizi[index] = tut;
           }
     }
   
     for(i=0;i<dizi.length;i++)
     System.out.print(dizi[i] + " ");
}

}

Tree



Node.java


public class Node {

public int data;
public Node leftChild;
public Node rightChild;

public void goruntule()
{
System.out.print(data + " ");
}

}


Tree.java



public class Tree {

private Node root;

public Tree()
{
root = null;
}

public Node getRoot()
{
return root;
}

public void preOrder(Node rootNode)
{
if(rootNode != null)
{
rootNode.goruntule();
preOrder(rootNode.leftChild);
preOrder(rootNode.rightChild);
}
}

public void inOrder(Node rootNode)
{
if(rootNode != null)
{
inOrder(rootNode.leftChild);
rootNode.goruntule();
inOrder(rootNode.rightChild);
}
}

public void postOrder(Node rootNode)
{
if(rootNode != null)
{
postOrder(rootNode.leftChild);
postOrder(rootNode.rightChild);
rootNode.goruntule();
}
}

public void ekle(int newData)
{
Node newNode = new Node();
newNode.data = newData;

if(root == null)
{
root = newNode;
}
else
{
Node gecici = root;
Node parent;

while(true)
{
parent = gecici;

if(newData < gecici.data)
{
gecici = gecici.leftChild;

if(gecici == null)
{
parent.leftChild = newNode;
return;
}
}
else
{
gecici = gecici.rightChild;

if(gecici == null)
{
parent.rightChild = newNode;
return;
}
}
}
}
}

}


Test.java


public class Test {
public static void main(String args[])
{
Tree tree = new Tree();
System.out.println("Sayilar :");
for(int i=0;i<9;i++)
{
int sayi = (int) (Math.random() * 99);
System.out.print(sayi + " ");
tree.ekle(sayi);
}
System.out.println("\nAğacı preorder dolas:");
tree.preOrder(tree.getRoot());
System.out.println("\nAğacı inder dolas:");
tree.inOrder(tree.getRoot());
System.out.println("\nAğacı postorder dolas:");
tree.postOrder(tree.getRoot());
}

}



27 Eylül 2012 Perşembe

Java - Banka


a) Bir bankaya sabahleyin gelmiş olan N kişinin, geliş sıralarına göre kuyruk oluşturduklarını düşünün. Her birinin işleminin 10 saniye ile 1000 sn. arasında random bir zaman aldığını varsayın. Bunun için öncelikle, Java’da FIFO kuyruk yapısı (sınıf) tasarlayınız. Her bir banka müşterisine numara vererek ve her birine random birer işlem süresi atayarak N elemanlı bir kuyruk oluşturunuz. Her bir müşterinin işi biterek kuyruktan çıkarıldığında işlem tamamlanma süresini (işlem süresi dahil ne kadar süre kuyrukta kaldığını) liste halinde yazdırınız. Ayrıca, N müşteri için ortalama işlem tamamlanma süresini de hesaplayıp yazdırınız.        
b) Aynı işlemi aynı değerleri kullanarak öncelikli kuyruk için tekrarlayınız. Kuyruğu, işlem süresi en kısa olan müşteri ilk (öncelikli) olarak hizmet alacak şekilde tasarlayınız (kuyruk, elemanları küçükten büyüğe sıralı tutacak). Bu yapıda, hangi müşterilerin FIFO kuyruğa göre, daha az beklediğini listeleyiniz (işlem süreleri ve sıra numaraları ile). Ortalama işlem tamamlanma süresindeki kazancı (a şıkkına göre) (fark ve %) hesaplayınız.      
c) Aynı işlemleri (a ve b) 3 adet gişe için tekrarlayarak süreleri karşılaştırınız.     


Musteri.java


public class Musteri {
public final int musteriNo;
public final int islemSuresi;
public int beklemeSuresi;
public int oncelikliBeklemeSuresi;
public Musteri sonraki;
public Musteri(int musteriNo, int islemSuresi)
{
this.islemSuresi = islemSuresi;
this.musteriNo = musteriNo;
this.beklemeSuresi = 0;
}

public Musteri(int musteriNo, int islemSuresi, int beklemeSuresi) 
{
this.musteriNo = musteriNo;
this.islemSuresi = islemSuresi;
this.beklemeSuresi = beklemeSuresi;
}
}


Kuyruk.java


public class Kuyruk {
Musteri bas;
Musteri son;
boolean oncelikli;
public Kuyruk() {
bas = null;
son = null;
oncelikli = false;
}
public Kuyruk(boolean oncelikli)
{
this.oncelikli = oncelikli;
bas = null;
son = null;
}
public void kuyrugaEkle(int musteriNo, int islemSuresi)
{
Musteri m = new Musteri(musteriNo, islemSuresi);
kuyrugaEkle(m);
}
public void kuyrugaEkle(int musteriNo, int islemSuresi, int beklemeSuresi)
{
Musteri m = new Musteri(musteriNo, islemSuresi, beklemeSuresi);
kuyrugaEkle(m);
}

private void kuyrugaEkle(Musteri m) {
if(oncelikli)
{
Musteri onceki = null;
Musteri etkin = bas;
while(etkin != null && m.beklemeSuresi > etkin.beklemeSuresi)
{
onceki = etkin;
etkin= etkin.sonraki;
}
if(onceki == null)
{
bas = m;
}
else
{
onceki.sonraki = m;
}
m.sonraki = etkin;
}
else
{
if(son == null)
{
bas = m;
son = m;
}
else
{
son.sonraki = m;
son = m;
}
}
}
public Musteri cikar()
{
Musteri cikan = bas;
if(bas != null)
{
bas = bas.sonraki;
}
return cikan;
}
public boolean bosMu()
{
if(bas == null)
return true;
else
return false;
}
}


Test.java

import javax.swing.JOptionPane;


public class Test {
public static void main(String args[])
{
int n = Integer.parseInt(JOptionPane.showInputDialog("Bankaya kaç kişi geldi?"));
int islemSuresi;
int toplamBeklemeSuresi = 0;
int oncekiBeklemeSuresi = 0;
float[] ortalama = new float[6];
int sayac = 1;
for(int i=1;i<4;i++)
{
System.out.println();
System.out.println(i+ ". Gişe İşlemleri");
System.out.println("--------------------");
Kuyruk k = new Kuyruk();
Kuyruk pk = new Kuyruk(true);
for(int j=1;j<=n;j++)
{
islemSuresi = (int) (10 + Math.random() * 991);
k.kuyrugaEkle(j, islemSuresi);
System.out.println(j+". müşterinin işlem süresi = " + islemSuresi);
}
System.out.println();
while(!k.bosMu())
{
Musteri musteri = k.cikar();
musteri.beklemeSuresi = musteri.islemSuresi + oncekiBeklemeSuresi;
pk.kuyrugaEkle(musteri.musteriNo, musteri.islemSuresi, musteri.beklemeSuresi); // cikan musteriyi 
                    // oncelik kuyruguna ekliyorum
oncekiBeklemeSuresi = musteri.beklemeSuresi;
toplamBeklemeSuresi += musteri.beklemeSuresi;
System.out.println(musteri.musteriNo + " numaralı müşteri " + musteri.beklemeSuresi+ " saniye bekledi.\n");
}
ortalama[i+sayac-2] = toplamBeklemeSuresi / n ;
System.out.println("Ortalama bekleme süresi: "+ ortalama[i+sayac-2]+ " saniye.\n");
System.out.println(i+". Gise'nin Oncelikli Kuyruk Islemleri");
System.out.println("--------------------------------------");

oncekiBeklemeSuresi = 0;
toplamBeklemeSuresi = 0;
while(!pk.bosMu())
{
Musteri musteri = pk.cikar();
musteri.oncelikliBeklemeSuresi = musteri.islemSuresi + oncekiBeklemeSuresi;
oncekiBeklemeSuresi = musteri.beklemeSuresi;
toplamBeklemeSuresi += musteri.beklemeSuresi;
           if (musteri.oncelikliBeklemeSuresi < musteri.beklemeSuresi) {//hangisi daha az beklemisse o yazdirilir
               System.out.println(musteri.musteriNo+ ". müşteri öncelikli kuyrukta "+ (musteri.beklemeSuresi - musteri.oncelikliBeklemeSuresi)+ " saniye daha az bekledi.");
                      }
 
                 System.out.println(musteri.musteriNo+ " numaralı müşteri "+ musteri.oncelikliBeklemeSuresi+ " saniye bekledi.\n");
}
ortalama[sayac+i-1]=toplamBeklemeSuresi / n ;//oncelik kuyrugu icin ortalama
System.out.println("Ortalama bekleme süresi: "+ ortalama[sayac+i-1]+ " saniye.");
System.out.println("Ortalama islem bekleme süresindeki kazanç: "+(ortalama[i+sayac-2]-ortalama[sayac+i-1])+" saniye.");
System.out.println("Yuzde olarak kazanç: %"+((ortalama[i+sayac-2]-ortalama[sayac+i-1])*100)/(ortalama[sayac+i-1]+ortalama[i+sayac-2]));
sayac++;
}
System.out.println("\nGISE KARSILASTIRMALARI");
System.out.println("----------------------");
System.out.println("1.Gise FIFO Ortalama Bekleme Süresi-->"+ortalama[0]);//1.gise normal ort 2.gise normal ort karsılastır
System.out.println("2.Gise FIFO Ortalama Bekleme Süresi-->"+ortalama[2]);
System.out.println("3.Gise FIFO Ortalama Bekleme Süresi-->"+ortalama[4]);
System.out.println("1.Gise Oncelikli Ortalama Bekleme Süresi-->"+ortalama[1]);//1.gise oncelikli ort 2.gse oncelikli ort karsılastır
System.out.println("2.Gise Oncelikli Ortalama Bekleme Süresi-->"+ortalama[3]);
System.out.println("3.Gise Oncelikli Ortalama Bekleme Süresi-->"+ortalama[5]);
System.out.println("1.Gise Icin Ortalama Bekleme Süresindeki Kazanc(saniye)-->"+(ortalama[0]-ortalama[1]));//kazancları karsılastır saniye ve yüzde olarak
System.out.println("2.Gise Icin Ortalama Bekleme Süresindeki Kazanc(saniye)-->"+(ortalama[2]-ortalama[3]));
System.out.println("3.Gise Icin Ortalama Bekleme Süresindeki Kazanc(saniye)-->"+(ortalama[4]-ortalama[5]));
System.out.println("1.Gise Icin Ortalama Bekleme Süresindeki Kazanc(yüzde)-->%"+(((ortalama[0]-ortalama[1])*100)/(ortalama[0]+ortalama[1])));
System.out.println("2.Gise Icin Ortalama Bekleme Süresindeki Kazanc(yüzde)-->%"+(((ortalama[2]-ortalama[3])*100)/(ortalama[2]+ortalama[3])));
System.out.println("3.Gise Icin Ortalama Bekleme Süresindeki Kazanc(yüzde)-->%"+(((ortalama[4]-ortalama[5])*100)/(ortalama[4]+ortalama[5])));
}

}


Java - Otopark


Bir fabrikadan üretim hatası ile çıkan arabalar, daha sonra kaza testlerinde kullanılmak için bir otoparka yerleştirilmektedir. Otomobiller, otoparkın ilk yani 1. katına bir kuyruk, 2. katına bir yığıt ve 3. katına da bir dairesel bağlaçlı liste düzeninde yerleştirilip alınmaktadır. Otopark 6 katlı olup bu yapı üst katlarda da tekrarlanmaktadır.
Random bir kat numarası seçilmekte ve ardından 1 adet araba kaza testi için otoparktan alınmaktadır. Sadece arabaların bağlaçlı liste düzeninde yerleştirildiği katlarda, alınacak araba balon problemine benzer şekilde n adet araba atlanarak seçilmekte ve bağlaçlı listelerde kalınan yer tutulmaktadır.   

Java dilinde bu problemin çözümünü ve simülasyonunu yapan programı yazınız:
a)         Tüm veri yapılarına 30’ar adet araba yerleştiriniz ve listeyi ekrana yazdırınız. Arabaların her birinin farklı renklerde olduğunu düşünüp Renkleri (Kırmızı, Yeşil, Mavi,… gibi) “text” olarak temsil edebilirsiniz. (Java’nın hazır Stack, Queue sınıfları kullanılmalı; Dairesel bağlaçlı listeyi ise kendiniz tasarlamalısınız.) İpucu: Kolaylık açısından, katları vektörde temsil edebilirsiniz.
b)         Tüm arabalar bitene kadar yukarıda anlatılan işlemi tekrarlayınız ve her turda, katlarda kalanların, silinenlerin renklerini ekrana yazdırınız. Son kalan arabanın rengini belirtiniz.
c)         Kullandığınız bilgisayarın 3 saniyede ortalama kaç adet otopark problemi çözebildiğini hesaplatınız. Zamanı hesaplarken ekrana yazdırma, girdi alma gibi komutları devre dışı bırakacak şekilde kodu ayarlayınız.


Araba.java

public class Araba {
public int no;
private String renk;
public Araba sonraki;
public Araba(int no)
{
this.no = no;
String[] renkler = {"Siyah","Mavi","Yesil","Kırmızı","Turuncu","Sarı","Turuncu","Gri","Beyaz"};
this.renk = renkler[(int) (Math.random() * renkler.length)];
}
public void cikaniYazdir()
{
System.out.print(renk + " ");
}
public String toString()
{
return renk;
}

} 



DaireselBaglıListe.java


public class DaireselBaglıListe {
Araba etkin;
int katNo;
public DaireselBaglıListe(int katNo)
{
this.katNo = katNo;
etkin = null;
}
public void ekle(int no)
{
if(etkin == null) // liste bos ise
{
Araba yeniAraba = new Araba(no);
etkin = yeniAraba;
etkin.sonraki = etkin;  // dairesel oldugu icin
}
else
{
Araba yeniAraba = new Araba(no);
Araba simdiki = etkin;
Araba gecici = etkin;
do {
gecici = gecici.sonraki;
simdiki = gecici.sonraki;
} while (simdiki != etkin);
etkin.sonraki = yeniAraba;
yeniAraba.sonraki = etkin;
}
}
public void cikar(int n)
{
Araba cikan = etkin.sonraki; // cikarilacak olan
if(n == 1) // teker teker cikarilacaksa
{
while(cikan.sonraki != etkin)
{
cikan = cikan.sonraki;
}
System.out.println(katNo+".kattaki "+n+".sıradaki arabalar cikarilmaktadır. "+"\nListedeki arabalar:\n");
yazdir();
System.out.println("Cikarilan Araba ");
etkin.cikaniYazdir();
cikan.sonraki = etkin.sonraki;
etkin = etkin.sonraki;
System.out.println("\nListedeki arabalar:\n");
yazdir();
}
else
{
System.out.print("\n"+katNo+".katta ilk arabadan itibaren her "+n+".araba cikarilmaktadır.\n\n");
System.out.println(katNo + ". katta olan arabalar:");
yazdir();
System.out.println();
int sayac = 1;
while (sayac < n - 1) {// n defa dönmek için..
sayac++;
etkin = etkin.sonraki;
cikan = cikan.sonraki;
}
System.out.println("\n"+katNo+".katta "+"cikarilan; ");
cikan.cikaniYazdir();// her turda kat numarası ve n değerinin
// yazdırılması
System.out.println();// bir satır alta geçmek için
etkin.sonraki = cikan.sonraki;
etkin = etkin.sonraki;
cikan = cikan.sonraki.sonraki;
}
System.out.println("\n"+katNo+".katta "+"kalanlar;\t");
yazdir();// ekrana yazdirma methodu 
System.out.println();
}

void yazdir() {
Araba dolas;
dolas = etkin;
do{
dolas.cikaniYazdir();
}while(dolas != etkin);
}
public boolean doluMu() {
if (etkin == etkin.sonraki)
return false;
else
return true;
}
public int bosMu() {
if (etkin == null)
return 1;
else
return 0;
}

}


Test.java


import java.util.Iterator;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;


public class Test {
public static void main(String args[])
{
int n = 0;
int kontrol1 = 0;
int kontrol2 = 0;
String[] kalanlar = {null,null,null,null,null,null};  // katlarda son kalan arabalar
do{
System.out.println("Kaç arabada bir çıkarılsın (bir araba)");
Scanner input = new Scanner(System.in);
n = input.nextInt();
}while(n <= 0);
int sayac1 = 1;   // baglı listeli katlarda araba eklerken kullanılacak
int sayac2 = 1;
int kacinciKat = 3;
Stack<Araba> kat5 = new Stack<Araba>();
Stack<Araba> kat2 = new Stack<Araba>();
Queue<Araba> kat1 = new LinkedList<Araba>();
Queue<Araba> kat4 = new LinkedList<Araba>();
for(int i=1;i<31;i++)
{
Araba araba = new Araba(i);
kat2.push(araba);
}
for(int j=1;j<31;j++)
{
Araba araba = new Araba(j);
kat5.push(araba);
}
for(int m=1;m<31;m++)
{
Araba araba = new Araba(m);
kat1.add(araba);
}
for(int k=1;k<31;k++)
{
Araba araba = new Araba(k);
kat4.add(araba);
}
  Iterator<Araba> itr1=kat1.iterator();    
      Iterator<Araba> itr2=kat2.iterator();    
      Iterator<Araba> itr3=kat5.iterator();   
      Iterator<Araba> itr4=kat4.iterator();
      
      System.out.print("1.kattaki arabalar\n");    
      listele(itr1);
      System.out.print("\n");
      System.out.print("2.kattaki arabalar\n");    
      listele(itr2);
      System.out.print("\n");
      System.out.print("4.kattaki arabalar\n");     
      listele(itr4);                               
      System.out.print("\n");
      System.out.print("5.kattaki arabalar\n");
      listele(itr3);
      
      
      DaireselBaglıListe kat3 = new DaireselBaglıListe(kacinciKat);      
      DaireselBaglıListe kat6 = new DaireselBaglıListe(kacinciKat+3);    
                                           
while(sayac1<=30){
kat3.ekle(sayac1);     
sayac1++;                
}
   System.out.println("\n"+kacinciKat+". kattaki arabalar:");   
kat3.yazdir();                 
kacinciKat+=3;                       
while(sayac2<=30){   
kat6.ekle(sayac2);
sayac2++;
}
System.out.println("\n"+kacinciKat+". kattaki arabalar:"); 
kat6.yazdir();       
System.out.println();  
System.out.println("----------------------------------------------------------------------------");
int random_sayi=-1;     
int problemSayisi=0;
long zaman;
final long baslangic = System.currentTimeMillis();
while(kat1.size()!=0 || kat2.size()!=0 || kat4.size()!=0 || kat5.size()!=0 || kontrol1!=1 || kontrol2!=1){
random_sayi=(int)(Math.random()*6);   
switch(random_sayi)                  
{                             
case 0:  
System.out.println("1. kattaki arabalar");  
System.out.println(kat1);
if(kat1.size()==0)
{
System.out.println("Kat bos!\n");  
break;
}
if(kat1.size()==1)
{  
kalanlar[0]=kat1.peek().toString(); 
                                   
}
System.out.println("Silinen araba:"+kat1.remove());   
   System.out.println(kat1);    
   System.out.println();   
 
break;  
case 1:
System.out.println("2. kattaki arabalar");  
System.out.println(kat2);                    
if(kat2.size()==0)
{
System.out.println("Kat bos!\n");    
break;
}
if(kat2.size()==1)
{
kalanlar[1]=kat2.peek().toString();    
                                                    
}
System.out.println("Silinen araba:"+kat2.pop());  
   System.out.println(kat2);            
   System.out.println();                  
break;                          
case 2:
if(kat3.bosMu()==1){    
System.out.println("Kat bos!\n");
break;    
}
if(kat3.doluMu()==false)   
{
if(kontrol1==0){            
kalanlar[2]=kat3.etkin.toString();        
System.out.println("3. kattaki arabalar\n");
System.out.print("3.katta ilk arabadan itibaren her "+n+".araba cikarilmaktadır.\n\n");
System.out.println("3.katta kalan arabalar :");
System.out.println(kat3.etkin);
System.out.println("\n3.katta cikarilan;");  
System.out.println(kat3.etkin);
System.out.println("\n3.katta kalanlar;\n");
kontrol1++;  
}
else   
{
System.out.println("3. kattaki arabalar\n");
System.out.println("Kat bos!\n");
  break;  
}
 
}
else{   
System.out.println("3. kattaki arabalar");   
kat3.cikar(n);        
}
System.out.println();
   
break;  
case 3:
System.out.println("4. kattaki arabalar");    
System.out.println(kat4);
if(kat4.size()==0)   
{
System.out.println("Kat bos!\n");   
break;
}
if(kat4.size()==1)    
{
kalanlar[3]=kat4.peek().toString();   
}
System.out.println("Silinen araba:"+kat4.remove());   
   System.out.println(kat4);
   System.out.println();
break;       
case 4:
System.out.println("5. kattaki arabalar");   
System.out.println(kat5);
if(kat5.size()==0)   
{
System.out.println("Kat bos!\n");
break;
}
if(kat5.size()==1)   
{
kalanlar[4]=kat5.peek().toString();
}
System.out.println("Silinen araba:"+kat5.pop());  
   System.out.println(kat5);
   System.out.println();
break;  
case 5:
if(kat6.bosMu()==1){   
System.out.println("kat bos!");
break;    
}
if(kat6.doluMu()==false)   
{   
   if(kontrol2==0){   
kalanlar[5]=kat6.etkin.toString();  
System.out.println("6. kattaki arabalar\n");
System.out.print("6.katta ilk arabadan itibaren her "+n+".araba cikarilmaktadır.\n\n");
System.out.println("6.katta kalan arabalar :");
System.out.println(kat6.etkin);
System.out.println("\n6.katta cikarilan;");  
System.out.println(kat6.etkin);
System.out.println("\n6.katta kalanlar;\n");
kontrol2++;   
}
  else  
  {
  System.out.println("6. kattaki arabalar\n");
  System.out.println("Kat bos!\n");
  break;
  }
}
else {  
System.out.println("6. kattaki arabalar");   
kat6.cikar(n);
}
System.out.println();
 
break;  
problemSayisi++;   // While'in kac kez dondugunu gormek icin kullandigimiz degisken.
}
  
final long bitis = System.currentTimeMillis(); //islem bitince sistem saatine bakildi.
zaman=bitis-baslangic;   // Aradaki zaman farki bulundu.
if(zaman==0){ 
System.out.println("Problemin cozum suresi, sistem saatinin algilayabilecegi kadar buyuk degil.");
}
else{    
System.out.println("----------------------------------------------------------------------------");
System.out.println("\n\n"+problemSayisi+" kere while dongusune girildi.");
System.out.println("1 adet problem yaklasik "+zaman+" milisaniyede cozuldu.");
System.out.println("3 saniyede cozulebilecek otopark problemi sayisi = "+(long)3000/zaman);
}
 
System.out.println("1.kattan son cikarilan araba: " +kalanlar[0]);
System.out.println("2.kattan son cikarilan araba: " +kalanlar[1]);
System.out.println("3.kattan son cikarilan araba: " +kalanlar[2]);
System.out.println("4.kattan son cikarilan araba: " +kalanlar[3]);
System.out.println("5.kattan son cikarilan araba: " +kalanlar[4]);
System.out.println("6.kattan son cikarilan araba: " +kalanlar[5]);
}
public static void listele(Iterator<Araba> itr1)
{
System.out.print("Arabaların renkleri:");  
while(itr1.hasNext())
      {
      Araba iteratorValue=itr1.next();  
      
      System.out.print(iteratorValue+" ");
      }
}

}