search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
821 gösterim

Sizden bir Garaj sınıfı dizayn etmeniz isteniyor. Garaja “parkEt” ve “parktanAl” şeklinde iki yordam tanımlanmalıdır. Garaj sadece bir araç almaktadır ve doluysa yeni bir araç park edilmemesi sağlanmalıdır.

Garaja kamyon, otomobil, bisiklet, vb. farklı araçlar park edilebilir. Her aracın farklı özellikleri olduğu gibi ortak noktaları da bulunmaktadır. Tasarım bu ortak noktaların tek yerde toplandığı bir yapıyı desteklemelidir. Bu ortak noktalar değişkenler(özellikler) olabileceği gibi yordamlar da olabilecektir. Tüm araçların ortak bir atadan gelen hizlanma() ve ferenleme() yordamlarına sahip olmalıdır. Bu yordamlar her nesilde override edilmesi zorunlu olarak tasarlanmalıdır. Ayrıca bunların tekerlek sayısı da farklı olabilir. Misal, otomobilin 4 tekerleği varken bisikletin 2 tekerleği bulunmaktadır. Üretilen tüm araç nesnelerinde tekerlekSayisi değişkenin saklanması yazılım mimari tarafından zorunlu kılınmalıdır. Garaj sınıfımızın ayrıca park edilmiş olan aracın tekerlek sayısını dönen bir fonksiyon bulundurması istenecektir.

Araç olarak en az 3 farklı (Kamyon, otomobil ve bisiklet) yeni araç sınıfı türetilmelidir. Tüm araçlarda ortak bilgi olarak kullanılacak olan bir aracSayisi değerine ihtiyaç vardır. Bu aracSayisi değeri ata’dan türetilen tüm sınıflardan üretilen tüm nesnelerde ortak olmalıdır ve her türlü yöntemle (new, extends ve implements) üretilen yeni araçta 1 artırılmalıdır. aracSayisi değişken projenin içerisinde üretilen tüm araçların sayısını saklayacaktır. Bu sayı üzerinden her araca bir aracID değeri de atanması istenmektedir. Her yeni araç sınıfı üretilirken mutlaka tekerlekSayisi ve aracID bilgisi otomatik olarak tanımlanmalıdır. Yine her yeni araç üretildiğinde aracSayisi otomatik olarak artırılmalıdır.

Özetle, Garaj sınıfımıza araç sınıf tiplerinden bir aracı park ediyoruz. Garaj boş ise dolduruyoruz ve yeni park etmeye izin vermiyoruz. Garaj’dan Araç’ı alırken, Garaj’da Araç’ı tuttuğumuz değişkeni boşaltıyoruz ve buna göre boş olduğunu anlayıp yeni araç kabulü yapabiliyoruz.

Tekerlek sayısını ise bu içerde tuttuğumuz nesne vasıtasıyla alınacaktır. Tekerlek sayısını dönmeden önce içerde araç var mı kontrolü önemlidir. Garaj sınıfı içerisinde park edilmiş bir araç yok ise tekerlek sayını geri döndürecek olan yordam hata vermemelidir. Zira Garaj boşken de bu fonksiyon çağrılabilir. Garaj sınıfında bulunan parkEt ve parktanAl yordamları her çalıştırıldığında ekran işlem yapılan aracın aracID bilgisi yazdırılmalıdır. (“2 nolu araç park edildi.” , “2 nolu araç parktan alındı.” gibi)

Garaj sınıfına araç park edildiğinde bunun sadece park eden kişi tarafından alınabilmesini istenmektedir. Yani güvenli bir garaj olmalıdır. “parkEt” fonksiyonumuz araç park edildiğinde geriye unique bir şifre dönecek. Bu değeri daha sonradan “parktanAl” fonksiyonuna ile garaja gönderdiğimizde fonksiyona araç nesnesi geri gönderilmelidir.

Java kategorisinde 111 puan
soruyu çözmeye hiç uğraştın mı bilmiyorum , takıldığın belli bir kısım var mı?  (yoksa soruyu çözüp eline verelim mi istiyorsun. İkinci seçenek ise cevap veriyorum C şıkkı :)

Soruya uğraştım fakat parçaları birleştiremiyorum yani bütün halinde yapamadım kodu.Final sınavımızda hocamızın sorduğu bir soru.Yapabilirseniz çok minnettar olurum..

Sen yaptıklarını bi incele takıldığın yerde sor. Alın ödevimi yapın tarzı yaklaşım ne senin için ne de buradaki insanlar için güzel. Takıldığın yerlerde soruların için yardımcı olmaya çalışırız


class Garaj {

    boolean aracVarmi = false;
    int aracSifresi;

    public void ParkEt() {
        if (AracKontrol()) {
            System.out.println("Aracınızı park edemezsiniz.Garaj dolu");
        } else {
            System.out.println(AracID + " nolu araç park edildi");
            aracVarmi = true;
            aracSifresi = AracID;  //her aracın kendisine ait benzersiz bir id’si vardır.
        }
    }

    public void ParktanAl() {
        if (AracKontrol() == true) {
            if (aracSifresi == AracID) {
                System.out.println(AracID + " nolu araç parktan alındı");
                aracVarmi = false;
            } else {
                System.out.println("Araç güvenlik şifresi dogru degil");
            }
        }
    }

    public int AracTekerlekSayisi() {
        if (AracKontrol()) {
            return tekerlekSayisi;
        } else {
            System.out.println("araç bulunmadığı için tekerlek sayısı söylenememekte");
        }
    }

    public boolean AracKontrol() {
        if (aracVarmi == true) {
            return true;
        }
        return false;
    }

}

abstract class Arac {

    public int tekerlekSayisi;
    public int AracSayisi;
    public int AracID;

    abstract void hizlanma();

    abstract void frenleme();
}

class Araba extends Arac {

    Araba() {
        tekerlerkSayisi = 4;
        AracSayisi++;
        AracID = AracSayisi;
    }

    @Override
    public void hizlanma() {
        System.out.println("Araba hizlandi");
    }

    @Override
    public void frenleme() {
        System.out.println("Araba yavaşladı");
    }

}

class Bisiklet extends Arac {

    Bisiklet() {
        tekerlerkSayisi = 2;
        AracSayisi++;
        AracID = AracSayisi;
    }

    @Override
    public void hizlanma() {
        System.out.println("Bisiklet hizlandi");
    }

    @Override
    public void frenleme() {
        System.out.println("Bisiklet yavaşladı");
    }

}

class Kamyon extends Arac {

    Kamyon() {
        tekerlekSayisi = 8;
        AracSayisi++;
        AracID = AracSayisi;
    }

    @Override
    public void hizlanma() {
        System.out.println("Kamyonet hizlandi ");
    }

    @Override
    public void frenleme() {
        System.out.println("Kamyonet yavaşladı");
    }
}

public class GarajYonet {

    public static void main(String[] args) {
    }
}

 

ParkEt metodu bence araç almalıydı ki hangi aracı park ettiğini anlaman gerekirdi. Anladığın zaman haliyle kaç tekerleği olduğunu da anlayabileceksin. İlk yorumum bu olsun.

Araç sayılarını tutmak için değişkenin normal sınıf bazlı bir değişken olduğu için her new dediğin araçta o sayı 0 dan başlar. O yüzden sayamazsın. Onu static yaparsan daha geniş bir scope içine almış olursun o zaman sayıların düzgün artacaktır.

Başka hangi alanlarda soruların varsa sorabilirsin yorumlardan.

1 cevap

0 oy
ParkEt metodu bence araç almalıydı ki hangi aracı park ettiğini anlaman gerekirdi. Anladığın zaman haliyle kaç tekerleği olduğunu da anlayabileceksin. İlk yorumum bu olsun.

Araç sayılarını tutmak için değişkenin normal sınıf bazlı bir değişken olduğu için her new dediğin araçta o sayı 0 dan başlar. O yüzden sayamazsın. Onu static yaparsan daha geniş bir scope içine almış olursun o zaman sayıların düzgün artacaktır.

Başka hangi alanlarda soruların varsa sorabilirsin yorumlardan.
6.2k puan

İlgili sorular

0 oy
1 cevap 286 gösterim
286 gösterim
A={a,b,c} kümesinden rastgele kelimeler oluşturulmaktadır.Oluşturulan rastgele kelimelerin uzunlukları uz(K) şeklinde tanımlanmıştır ve K ise üretilen kelimedir.K kelimesi bir karakter dizisi olarak düşünülebilir.Rastgele oluşturulan kelime b ile başlayıp b veya c ile bitiyorsa ve aynı zamanda ardışık en az iki tane a içermiyorsa,AC değişkeninin değeri 1 olacaktır ve diğer durumda ise 0 olacaktır.
15 Mayıs 2020 Java kategorisinde ertq 111 puan sordu
0 oy
0 cevap 136 gösterim
136 gösterim
AŞAĞIDAKİ KODDA SADECE TEK SAYILAR İÇİN ÇALIŞAN BİR SİSTEM VAR.BUNU NASIL TEK VEYA ÇİFT SAYI FARKETMEYECEK ŞEKİLDE DÜZELTEBİLRİZ? package ulam; import java.util.Arrays; public class Ulam{ enum Direction{ RIGHT, UP, LEFT, DOWN; } private static String[][] genUlam(int n){ return genUlam(n, 0 ... { String[][] ulam = genUlam(6); for(String[] row : ulam){ System.out.println(Arrays.toString(row)); } } }
5 Eylül 2020 Java kategorisinde ertq 111 puan sordu
0 oy
0 cevap 353 gösterim
353 gösterim
Bir hastanede, aktif olarak kullanılan asansörlerin birinde asansör kullanımına ilişkin analiz yapılmak istenmektedir. Asansör kullananların yaş ve cinsiyet bilgilerini kullanıcıdan isteyen ve buna göre 35-45 yaş arası asansör kullanan bayanların, tüm asansör kullananlara oranını hesaplayan akış diyagramını çiziniz.
25 Nisan 2020 Algoritma kategorisinde ozyaksr_suna 102 puan sordu
0 oy
0 cevap 187 gösterim
187 gösterim
Özyinelemeli olarak A[2,n]’ yi sırala, sonra sıralanmış A[2,n] içine A[1]’i araya yerleştir (insert). Öncelikle sözde kodu yazınız, sonra istediğiniz programlama dilinde uygulayınız. Introduction to Algorithms kitabındaki 2.3-4 benzeri
17 Temmuz 2018 Algoritma kategorisinde refk.ylmz 102 puan sordu
0 oy
1 cevap 246 gösterim
246 gösterim
Hayvanat Bahçesi ile ilgili bir oyun programı yazacağınızı düşünün. Hayvanat Bahçesinde Kedi, Köpek, Kuş, Yılan, Maymun, Ayı ve Balık türünde hayvanlar olacaktır. Kuş Uçanlar türünde, Yılan Sürünenler türünde, Balık Yüzenler türünde, diğerleri ... . Sürünenler türü sadece Yürüyenler türünü yakalayabilir. Yüzenler türü hiçbir türü yakalayamaz. Yürüyenler türü Yüzenler türünü yakalayabilir.
30 Nisan 2021 Java kategorisinde jroky1104 102 puan sordu