Ad Soyad: İmza: Object-Oriented Programming Quiz 4 60dk. Kapalı kitap. Kapalı defter. Kapalı cep telefonu. Hesap makinesi yok.

Benzer belgeler
Object-Oriented Programming Laboratuvar 11

Object-Oriented Programming Lab 4. - Sıcaklık değeri, Kelvin biriminde saklansın. Varsayılan sıcaklık değeri K olsun.

Fall Object-Oriented Programming Laboratory 02 - Structures

#ifndef COMPLEX_H #define COMPLEX_H

#ifndef VEKTOR_H #define VEKTOR_H. struct vektor_s { double x; double y; double z; }; typedef struct vektor_s vektor_t;

#ifndef FATURA_H #define FATURA_H

Fall Object-Oriented Programming Laboratory 03

Object-Oriented Programming Laboratuvar 10

Object-Oriented Programming Lab Shape, TwoDShape, ThreeDShape, Disk, Square, Sphere, Cube class hiyerarşisi.

C ++ Ders 6. Çoklubenzesim

1 PROGRAMLAMAYA GİRİŞ

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

KONU 7: DOSYA İŞLEME ( File Processing )

Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü

TEMPLATES. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama

Inheritance. Inheritance (turetim)

C++ Dersi: Nesne Tabanlı Programlama

String ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü

Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü

Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü

C++ Dersi: Nesne Tabanlı Programlama

Karma C/C + + Kodlama

const objects & const member functions

const objects & const member functions const objects ve const functions Data Member Initializer List Data Member Initializer List

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş

C++ Class larina baslangic. C++ Versus C Object-oriented Language C++ Structure dan Object Create etmek. Structure tanimlama.

NESNEYE YÖNELİK PROGRAMLAMA

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

TEMPLATES. Kalıp-Parametrik Çok Şekillilik Nedir? Fonksiyon Kalıbı Tanımlamak. Örnek

Programlamaya Giriş Karar Yapıları, Tekrarlı İfadeler(Döngüler)

Parçacık (Widget) Eren BAŞTÜRK

Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü

C++ Giriş Ders 5 MSGSU Fizik Bölümü Ferhat ÖZOK

C++ Operatörler (Operators)

Kalıtım (Inheritance)

SAKARYA ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM BİLİMLERİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ GÜZ DÖNEMİ PROGRAMLAMAYA GİRİŞ DERSİ

Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü

NESNEYE YÖNELİK PROGRAMLAMA

Nesne İşaretçileri. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. Sınıf Yapısı. Kalıtım Çok Şekillilik

CBÜ Teknoloji Fakültesi, Yazılım Mühendisliği. Nesneye Yönelik Programlama

DERSİN WEB SİTESİ:

C++0x - Sağ Taraf Değerine Bağlanan Referanslar (Rvalue References)

Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü

Binary Tree nedir?uygulamas nasl yaplr?

C++ Dersi: Nesne Tabanlı Programlama

BİLG Dr. Mustafa T. Babagil 1

BMT 101 Algoritma ve Programlama I 5. Hafta. Yük. Müh. Köksal Gündoğdu 1

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

C++ ile Nesneye Dayalı Programlama

Örnek1: #include <iostream> #include <string> using namespace std;

Veri Yapıları Lab Notları 1

10/17/2007 Nesneye Yonelik Programlama 3.1

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Pros and Cons of Pointers. Pointers. Avantajlar. Dezavantajlar

NESNEYE YÖNELİK PROGRAMLAMA

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

YAZILIM MODELLEME VE TASARIMI

Diziler & Karakter Katarı (String)

NESNEYE YÖNELİK PROGRAMLAMA THIS İŞARETÇİSİ, KOPYA YAPICI FONKSİYON, STATİK ELEMANLAR, ARKADAŞ SINIF VE FONKSİYONLAR,NESNE DİZİLERİ

YZM 2105 Nesneye Yönelik Programlama

C++ Dersi: Nesne Tabanlı Programlama

Operatörlere İşlev Yükleme

Statik veri üyeleri sınıf dosyası içerisinde, ancak sınıf bildirimi dışında başlatılmalıdır. Statik üye fonksiyonları

Yordamsal Tabanlı Programlama

Bölüm 14 İleri C Konuları

KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

*/

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

En kucuk calisabilir birime satetement denir Statements semicolon (;) ile sonlanir Yalniz basina ; null statement i ifade eder

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 203 Veri Yapıları ve Algoritmalar I

C++ Statements. { ve } arasında ifade edilen bir dizi statement bir compound statement (birleşik ifade) oluşturur.

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

Nesneye Yönelmek. veya sadece formülleri bilgisayarın anlayacağı dile çevirmeyi bilen birinin C++ kullanma yöntemleri. Gökhan Ünel

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

2. Iterasyon. Bu bölümde ele alınan problemler:

Dizi ( Array ) ve Dizgi ( String )

BMT 106 Algoritma ve Programlama II Bahar Dönemi

Object-Oriented Oriented Design (OOD) Procedure Based Programlama. OOD Ana Ozellikleri

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Ders 8 Konu Özeti ve Problemler

Operatörlere Yeni İşlevler Yüklenmesi (Operator Overloading)

BİLGİSAYAR PROGRAMLAMA

YAZILIM MODELLEME VE TASARIMI

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Çok Şekillilik (Polymorphism)

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

KALITIM. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. Sınıf Yapısı. Kalıtım Çok Şekillilik

13.3 Relationships Among Objects in an Inheritance Hierarchy

446 GÖMÜLÜ SİSTEM TASARIMI. Lab 9 UART

Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1

Ön program (elin yazma hizi ile): 0 - Genel hata: C kastedip C++ demek 1 - C++ kutuphanesi kullanmak!= C++ programlamak 2 - Class kutuphanesi

C ++ Ders 8. Stream ve Şablon Yapıları. Prof. Dr. M. Serdar ÇELEBİ, İTÜ

Final Sınavı Soruları Güz, Süre: 90 Dakika

C++ Programming: Program Design Including Data Structures, Third Edition. Bölüm 3: Giriş/Çıkış

Transkript:

Ad Soyad: İmza: Object-Oriented Programming Quiz 4 60dk. Kapalı kitap. Kapalı defter. Kapalı cep telefonu. Hesap makinesi yok. 21.12.2018 1. (30 puan) Aşağıda, aralarında herhangi bir kalıtım (inheritance) ilişkisi bulunmayan StdKargo ve HizliKargo class larının UML diyagramları verilmiştir. Bu iki class ın ortak özelliklerini birleştiren, abstract bir Kargo class ını tasarlayın. Paket class ını yazdıktan sonra StdKargo ve HizliKargo class larını, üyelerinde gerekli değişiklikleri de yaparak Kargo class ından türeyecek şekilde yeniden yazın. StdKargo -gonderen:char[256] -alici:char[256] -hacim:double +<<constructor>>(g:char*, a:char*, h:double) +getgonderen() const:const char* +getalici() const:const char* +gethacim() const:double +ucret() const:double // ücreti 2*hacim olarak hesaplar. HizliKargo -gonderen:char[256] -alici:char[256] -hacim:double -mesafe:double +<<constructor>>(g:char*, a:char*, h:double, m:double) +getgonderen() const:const char* +getalici() const:const char* +gethacim() const:double +getmesafe() const:double +ucret() const:double // ücreti 3*hacim + 0.25*mesafe olarak hesaplar. #ifndef KARGO_H #define KARGO_H class Kargo char gonderen[256]; char alici[256]; double hacim; Kargo(char*g, char*a, double h); const char* getgonderen(void) const; const char* getalici(void) const; double gethacim(void) const; virtual double ucret(void) const = 0;

#endif // KARGO_H #include "Kargo.h" #include <cstring> Kargo::Kargo(char*g, char*a, double h) strncpy(this->gonderen, g, 256); this->gonderen[256] = '\0'; strncpy(this->alici, g, 256); this->alici[256] = '\0'; this->hacim = h; const char* Kargo::getGonderen(void) const return this->gonderen; const char* Kargo::getAlici(void) const return this->alici; double Kargo::getHacim(void) const return this->hacim; #ifndef STD_KARGO_H #define STD_KARGOH #include "Kargo.h" class StdKargo : public Kargo StdKargo(char*g, char*a, double h); double ucret(void) const; #endif // STD_KARGO_H #include "StdKargo.h" StdKargo::StdKargo(char*g, char*a, double h) : Kargo(g, a, h)

double StdKargo::ucret() const return 2*this->getHacim(); #ifndef HIZLI_KARGO_H #define HIZLIK_KARGO_H #include "StdKargo.h" class HizliKargo : public Kargo double mesafe; HizliKargo(char*g, char*a, double h, double m); double getmesafe(void) const; double ucret(void) const; #endif // HIZLI_KARGO_H #include "HizliKargo.h" HizliKargo::HizliKargo(char*g, char*a, double h, double m) : Kargo(g, a, h) this->mesafe = m; double HizliKargo::getMesafe(void) const return this->mesafe; double HizliKargo::ucret(void) const return 3*this->getHacim() + 0.25*this->getMesafe();

2. (70 puan) Aşağıda verilen UML diyagramında yer alan BasePlusCommissionEmployee class ı (.h) ve bu class a ait metodların tanımlarını (.cpp) yazınız. Employee -firstname:char[33] -lastname:char[33] -SSN:char[11] +<<constructor>>(fn:char*, ln:char*, ssn:char*) +get_first_name() const:const char* +get_last_name() const:const char* +get_ssn() const:const char* SalariedEmployee -weeklysalary:double +<<constructor>>(fn:char*, ln:char*, ssn:char*, ws:double) CommissionEmployee -commissionrate:double -grosssales:double +<<constructor>>(fn:char*, ln:char*, ssn:char*, cr:double) +get_commission_rate() const:double +get_gross_sales() const:double +set_gross_sales(gs:double) BasePlusCommissionEmployee -basesalary:double +<<constructor>>(fn:char*, ln:char*, ssn:char*, cr:double, bs:double)

#ifndef BASEPLUSCOMMISSIONEMPLOYEE_H #define BASEPLUSCOMMISSIONEMPLOYEE_H #include "CommissionEmployee.h" class BasePlusCommissionEmployee : public CommissionEmployee BasePlusCommissionEmployee(char*fn, char*ln, char*ssn, double cr, double bs); double earnings(void); void print(void) const; double basesalary; #endif // BASEPLUSCOMMISSIONEMPLOYEE_H #include "BasePlusCommissionEmployee.h" #include <iostream> using std::cin; using std::cout; using std::endl; BasePlusCommissionEmployee::BasePlusCommissionEmployee(char*fn, char*ln, char*ssn, double cr, double bs) : CommissionEmployee(fn, ln, ssn, cr) basesalary = bs; double BasePlusCommissionEmployee::earnings(void) double temp; cout << "base plus commission employee: " << get_first_name() << " " << get_last_name() << endl << "enter gross sales: "; cin >> temp; set_gross_sales(temp); return get_gross_sales() * get_commission_rate() + basesalary; void BasePlusCommissionEmployee::print(void) const cout << "base plus commission employee: " << get_first_name() << " " << get_last_name() << endl << "social security number: " << get_ssn() << endl << "commission rate: " << get_commission_rate() << endl << "gross sales: " << get_gross_sales() << endl << "base salaary: " << basesalary << endl; return;