SÜLEYMAN DEMİREL ÜNİVERSİTESİ MÜH
Transkript
SÜLEYMAN DEMİREL ÜNİVERSİTESİ MÜH
ATATÜRK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BIM 205 – GÖRSEL PROGRAMLAMA 2014-2015 GÜZ DÖNEMİ ÖDEV-1 (Son Teslim Tarihi: 08.11.2014 – 17:00’e kadar) Teslim: Arş. Gör. Uğur Güven ADAR. ÖNBİLGİ Java’da Kullanıcıdan Veri Alma; Java 1,5’ten beri kullanıcıdan veri almak için Scanner sınıfı kullanılmaktadır. Scanner sınıfı kullanıcıdan veri alma amacıyla kullanılacağı gibi, arama, dosya okuma ve veri eşleme içinde kullanılabilmektedir. Scanner sınıfı Java’ya aşağıda belirtildiği gibi dâhil edilir; #import java.util.Scanner; Scanner sınıfının metotlarını kullanabilmek için bir nesne oluşturmak gerekmektedir. Veri girişi için “input” nesnesi aşağıdaki gibi oluşturulabilir; Scanner input = new Scanner(System.in); Aşağıda, kullanıcıdan veri alma ve rastgele sayı oluşturma ile ilgili bir örnek bulunmaktadır. import java.util.Scanner; public class Veri_Girisi{ public static void main(String []args) { Scanner input = new Scanner(System.in); int sayi; String s_ifade; double double_sayi,maximum=20,minimum=10,randomNum;; System.out.print("Bir tam sayı giriniz"); sayi = input.nextInt(); System.out.print("Double bir sayı giriniz"); double_sayi = input.nextDouble(); System.out.print("String bir ifade giriniz"); s_ifade = input.next(); randomNum = minimum + (int)(Math.random()*maximum); System.out.print("Girdiğiniz sayi = " + sayi); System.out.print("Girdiğiniz harfler = " + s_ifade); System.out.print("Girdiğiniz double sayi = " + double_sayi); System.out.print("Üretilen Rastgele Sayi= " + randomNum); } } SORU-1 Taş Kâğıt Makas: SORU-1 hem switch hem de if komutları ile SORU1_a ve SORU1_b gibi iki ayrı şekilde tasarlanacaktır. Kullanıcının bilgisayara karşı oynayacağı Taş kağıt makas oyununu tasarlamanız beklenmektedir. Oyunun kuralları yukarıdaki görüntüde verilmiştir. Buna göre, program çalıştırıldığında kullanıcıya şu şekilde bir soru gelecektir; 1-Taş 2-Kağıt 3-Makas Seçim Yapınız…. Kullanıcının seçtiği rakama göre, bilgisayar tarafından RASTGELE oluşturulmuş bir seçim ile (yukarıdaki üç durumdan biri) karşılaştırılacak ve oyunun kurallarına göre bir sonuç döndürecektir. ÖRNEĞİN; SORU-2 PIN numarası: Ad, Soyad, Şifre ve Cinsiyetten oluşan bir veri_giris nesnesi oluşturmanız beklenmektedir. Bu nesnede veriler private olarak tutulmalıdır. Ayrıca değişken alımında get ve set metotları kullanılmalıdır. Kullanıcı menüye ulaşmadan önce oluşturulan bu nesnede kontrol() metodu bulunacak ve kullanıcının girdiği PIN numarası bu nesnedeki PIN numarası ile karşılaştırılacaktır. Private olarak tutulan verilerden, karakter kısıtları şu şekildedir; Ad; 10 karakter. Soyad; 15 karakter Şifre; 10 karakter, Rakam veya String olabilir. Cinsiyet; Erkek, E, Bay, Kadın, K, Bayan olabilir. Bu durumlar harici veriler kabul edilmeyecektir. Kullanıcı nesnesi çağrılıp belirtilen verilerin girilmesi beklenecektir. Ardından kullanıcıdan PIN numarası istenecek ve bu numara şifre ile uyuşması durumunda “Hoşgeldiniz Cinsiyet(Bay/Bayan) Ad Soyad” şeklinde uyarı verecek, uyuşmaması durumunda “Şifre yanlış Tekrar dene E/H” mesajı verip kullanıcının seçimine göre tekrar şifre isteyecek veya programı bitirecektir. Eğer kullanıcı 3 defa yanlış giriş yaparsa “Program kilitli” mesajı verip program bitirilecektir. SORU-3 Satrançta Atın Hareketi: Boş bir satranç tahtasında bir atın tüm karelere sadece bir kere gelmesini sağlayacak şekilde tüm tahtayı gezen ve hamle notasyonlarını gösteren(b5-d3 gibi) sırayla ekrana yazdıracak bir program tasarlayınız. Kurallar; 1-Satranç tahtası 8x8 iki boyutlu dizi olarak tanımlanmalı. 2- L şeklinde hareket eden bir at nesnesi tanımlanmalı. 3-Maksimum hamle adedi 64’tür. 4-Tahta dışına at hareket edemez. 5-At nesnesi Gezinti() metodu ile çağrılmalıdır. Bu metot atın her hareketinde tekrar çağrılarak at_hareket dizisinde at hakeretleri tutulabilir. 6- Satranç Notasyonları üstte görülen satranç tahtasındaki harf ve rakamlardan oluşmaktadır. Örneğin At sağ alttaki ilk kareden başlayacaksa A1 hücresindedir. Atın gezme hamleleri bu şekilde gösterilmelidir. 7-Veri yapısı ile değil, atın bir önceki hareketi dikkate alınarak atın hareketleri yapılmalıdır. 8-At nesnesi private olarak tanımlanmalıdır. 9-Atın başlangıç noktası satranç tahtasında RASTGELE seçilecektir. 10- Atın kaçıncı hamlesinin satranç tahtasının neresinde olduğu aşağıdaki örnekteki gibi gösterilecektir. 11-Bir kere uğranmış hücrelere tekrar uğranamaz. 12- En az hamle ile sonuca ulaşmaya çalışılmalıdır. 13- Atın başlangıç noktası bilgisayar tarafından her seferinde rastgele seçilecektir. Örnek ekran çıktısı aşağıda verilmiştir. SORU-4 String Menüsü Bir String Menüsü tasarlamanız istenmektedir. Bu menüde; 1- Metin Girişi: Metin girişi kısmı, string bir ifade olmalıdır. Bu kısım seçildiğinde html_editor şeklinde bir sınıf tanımlanmalıdır. Bu sınıf içerisinde aşağıdaki menü numaralarında belirtilen görevleri yapan her bir menü elemanı için metotlar bulunmalıdır. Metin girişi genel olarak bir paragraflık veri girileceği düşünülmelidir. Bu veri girildikten sonra menü tekrar gözükecek ve kullanıcı tarafından seçilmesi sağlanacak böylece kullanıcı bu veri ile işlem yapabilecektir. Metot olarak guncelle isimli bir metot kullanılacak ve bu metot, kullanıcı her işlem yaptığında( örneğin belirli bir kelimeyi kalın(bold) yaptığında) buradaki veri güncellenecektir. (örnekte verildiği üzere, armut kelimesi bold yapıldığında metindeki tüm armut kelimeleri bold olarak gözükmeli ve bu şekilde güncellenmelidir. 2- Html’e Çevir: Metin girişi yapılmış veride bulunan belirli kelimeleri html koduna çevirmelidir. Menünün bu seçilen elemanı için, öncelikle belirtilen kelime kelime_bul metodu ile bulunacak ve html_ceviri metodu ile sağına <br>, soluna <\br> şeklinde html tagları eklenecektir. 3- Büyük Harfe Çevir: İstenen belirli kelime kelime_bul metodu ile bulunduktan sonra, kelimedeki tüm harfler buyuk_harf metodu ile büyük harfe çevrilecektir. Bulunan kelimelerden birtanesi değil tümü büyük harfe çevrilmelidir. 4- İtalik Yap: İstenen belirli kelime kelime_bul metodu ile bulunduktan sonra, kelimedeki tüm harfler italik(sağa eğik) yapılmalıdır. Italik_Yap metodu ile metindeki tüm aranan kelimeler italik olmalıdır. 5- Link_oluştur: İstenen belirli bir kelime kelime_bul metodu ile bulunduktan sonra link_olustur metodu ile metindeki kelimeler bir url adresine sahip olmalıdır. Burada html taglerinin kullanılma şeklini incelemeniz gerekmektedir. 6- Link_Kaldır: Daha önce kelimelerin birine link verilip verilmediği kontrol edilip, eğer verilmişse verilen tüm linkler silinmelidir. 7- Ters_Yazdir: İstenen belirli bir kelime kelime_bul metodu ile bulunduktan sonra kelime tersten yazdırılmalıdır. 8- Tüm Metindeki Sesli ve Sessiz harf sayısı: Verilen metindeki sesli ve sessiz harflerin bulunduğu harf_bul metodu ile metinde kaç adet sesli ve kaç adet sessiz harf bulunduğunu döndürecektir. Örnek Ekran Görüntüsü; ÖDEV TESLİMİ 1-Numara_isim_soyisim.cpp dosyası şeklinde ugur.adar@atauni.com adreslerine gönderiniz. Zamanında ulaşmayan, içeriği boş olan projelerinizle ilgili sorumluluk size aittir. 2-Ödevinizi bir şeffaf dosya içerisinde isminizin yazdığı bir kapak ve CD ile teslim etmelisiniz. CD üzerine de isim ve numara yazıp imzalayınız. KAĞIT ÇIKTI GEREKLİ DEĞİLDİR. 3- Mail harici ödevinizin bir kopyasını CD ile birlikte teslim ediniz. DİKKAT EDİLECEK HUSUSLAR Teslim edeceğiniz ödevin sadece kendi emeğinizin ürünü olması gerektiğini, aksine hareket edenleri ciddi yaptırımlar beklediğini unutmayınız. Ödevin herhangi bir kısım ya da tamamında benzerlik olması durumunda paylaşımda bulunan bütün öğrencilere kopya muamelesi yapılacaktır. Teslim edeceğiniz ödev bir kapağa sahip olmalıdır. Bu kapak üzerine adınız, soyadınız, öğrenci numaranız ve ödev numarası yazılı olmalıdır. Yazdığınız kodları kendiniz yazmalısınız. Hazır şablon/bileşen kullanımı, internetten kopyalanmış veriler yasaktır. İnternette konu ile ilgili bulabileceğiniz kodlar hali hazırda araştırılmıştır. Bu kodların düzenlenerek sunulması durumunda, gerekli yaptırımlar uygulanacaktır. Zamanında teslim edilmeyen ödevlerden puan alamazsınız.