BSM201 Nesneye Dayalı Programlama 13. Hafta – Sınıf Diyagramı Dr. Öğr. Üyesi Nesibe YALÇIN BARTIN ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
BSM201 Nesneye Dayalı Programlama
13. Hafta – Sınıf Diyagramı
Dr. Öğr. Üyesi Nesibe YALÇIN
BARTIN ÜNİVERSİTESİ
MÜHENDİSLİK FAKÜLTESİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
2
Uygulama 1?
• Kullanıcı iki zar atsın, zarların toplamı ≥7 ise kazansın değilse kaybetsin.
class zar{ … ???
}
class oyun{ …??
}
3
Uygulama 1
• Kullanıcı iki zar atsın, zarların toplamı ≥7 ise kazansın değilse kaybetsin.
oyun
zar1:zar zar2:zar oyna()
2 zar deger:int zar_at() deger_oku():int
1 içerir
main(args[]:String )
4
Uygulama 1 class zar { private int deger; public void zar_at() { System.out.println("zar atıldı"); deger = (int) (1 + Math.random() * 5); } public int deger_oku() { System.out.println("gelen sayı:"+deger); return deger; } }
5
Uygulama 1 public class oyun { zar zar1 = new zar(); zar zar2 = new zar();
public void oyna() { zar1.zar_at(); int x = zar1.deger_oku(); zar2.zar_at(); int y = zar2.deger_oku(); if ((x + y) >= 7) System.out.println("Kazandınız"); else System.out.println("Zar toplamı 7'den küçük!!"); } public static void main(String[] args) { oyun oyun1= new oyun(); oyun1.oyna(); } }
6
Uygulama 1
oyuncu ad:string
zar deger:int zar_at() deger_oku():int
1
2
oyun zar1:zar zar2:zar oyna(x:oyuncu)
1
1
1
2
içerir
oynar
atar
* Oyuncu dahil edilirse
7
Uygulama 2? • Fakülteye yeni bir bölüm açılmak isteniyor.
• Bu bölümün, hazırlık sınıfı bulunmamaktadır. • Yaz okulu uygulaması yapılmaktadır. • Her dönemde 30 AKTS lik maksimum ders yer almaktadır.
Buna ilişkin sınıf diyagramını oluşturunuz.
8
Uygulama 2 • Sınıflar
• Fakülte – Fakülte adı, eğitim-öğretim süresi, bölümler, fakulte(….), bolum_ekle(….), ..
• Bölüm – Bölüm adı, hazırlık sınıfı var mı?, derslik-laboratuvar adları, sınıflar, bolum(….), sınıf_ekle(…..), …
• Sınıf – Sınıf adı, dönemler, dönem_ekle(), … • Dönem – Dönem adı, dersler, toplam akts, toplam ders sayısı,
ders_ekle(….), ders_sil(…..), … • Ders – Ders adı, ders kodu, teori saati, uygulama saati, kredisi,
akts değeri, ...
9
Uygulama 2 • Fakülte – Fakülte adı, eğitim-öğretim süresi, bölümler,
fakulte(….), bolum_ekle(….), ..
10
Uygulama 2 • Bölüm – Bölüm adı, hazırlık sınıfı var mı?, derslik-laboratuvar
adları, sınıflar, bolum(….), sınıf_ekle(…..), …
11
Uygulama 2 • Sınıf – Sınıf adı, dönemler, dönem_ekle(), … • Dönem – Dönem adı, dersler, toplam akts, toplam ders sayısı,
ders_ekle(….), ders_sil(…..), …
12
Uygulama 2 • Ders – Ders adı, ders kodu, teori saati, uygulama saati, kredisi,
akts değeri, ...
13
Uygulama 2
1 .. N
1 .. N
1 .. 3
1 .. N
14
Uygulama 3 • Bir şirket, çalışanlarına haftalık olarak ödeme yapmaktadır. 4 tip
çalışanlar vardır: • Maaşlı çalışan - Çalışılan saat sayısına bakılmaksızın
haftalık sabit bir ücret ödenmektedir. • Saatlik çalışan: Saatlik ücret ödenmektedir ve 40 saatten
fazla çalışılan tüm saatler için fazla mesai ücreti (örneğin saatlik maaş oranının 1.5 katı) almaktadır.
• Komisyonla çalışan: Satışların bir yüzdesi ödenmektedir. • Baz maaşlı komisyonla çalışan: Baz maaş artı satışlarının
bir yüzdesi verilmektedir.
• Şirket baz maaşlı komisyon çalışanlarını, temel maaşlarına % 10 ekleyerek ödüllendirmeye karar vermiştir.
15
Uygulama 3
Çalışan
Maaşlı çalışan
Saatlik çalışan
Komisyonla çalışan
Baz maaşlı
komisyonla çalışan
16
Uygulama 3
17
Uygulama 3
void maas_hesapla(){ if(calisma_saati 40) maas= 40*saatlik_ucret+ saatlik_ucret*1.5*(calisma_saati-40); }
saatlik_calisan
void maas_hesapla(){ maas= komisyon_orani*brut_satis; }
komisyonla_calisan
void maas_hesapla(){ maas= baz_maas+ komisyon_orani*brut_satis; }
baz_maas_komisyonla_calisan
18
Uygulama 3
19
Uygulama 4
Kontrol sistemi
Hava durumu bilgi sistemi
Hava durumu
istasyonu
Uydu
1..1
1..n
1..1 1..n
1..n
20
Örnekler
21
Örnekler