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 [email protected] 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.
Download

buradan