4
BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ PROGRAMLAMA DİLLERİ II 1.ARA SINAVI 1 Sınav Tarihi: 7 KASIM 2012, 10.00 A.S. İlk Harfleri: / No: İmza: LÜTFEN SORU VE CEVAP KÂĞIDINA ADINIZIN VE SOYADINIZIN BAŞ HARFLERİNİ YAZINIZ. SINAV SÜRESİNCE DERSLE İLGİLİ TÜM NOTLAR SERBESTTİR. SORULAR Aşağıdaki kod içerisinde açıklama kısımlarında yazılan soruları yukarıda hazırlanmış olan forma göre cevaplandırınız. Form üzerinde kullanılan nesnelerin isimleri (name) küçük puntolarla belirtilmiştir. #include <vcl.h> #pragma hdrstop #define N 100 #include "soru1.h" #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; 1 (25p) 2 (15p) 3 (20p) 4 (10p) 5 (30p) T(100p)

PROGRAMLAMA 1.ARA SINAVI±nav_2012_2013gyy.pdfBİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ PROGRAMLAMA DİLLERİ II 1.ARA SINAVI 2 int sayac=0;

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PROGRAMLAMA 1.ARA SINAVI±nav_2012_2013gyy.pdfBİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ PROGRAMLAMA DİLLERİ II 1.ARA SINAVI 2 int sayac=0;

BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

PROGRAMLAMA DİLLERİ II

1.ARA SINAVI

1

Sınav Tarihi: 7 KASIM 2012, 10.00

A.S. İlk Harfleri: /

No:

İmza:

LÜTFEN SORU VE CEVAP KÂĞIDINA ADINIZIN VE SOYADINIZIN BAŞ HARFLERİNİ

YAZINIZ. SINAV SÜRESİNCE DERSLE İLGİLİ TÜM NOTLAR SERBESTTİR.

SORULAR

Aşağıdaki kod içerisinde açıklama kısımlarında yazılan soruları yukarıda hazırlanmış olan forma göre

cevaplandırınız. Form üzerinde kullanılan nesnelerin isimleri (name) küçük puntolarla belirtilmiştir. #include <vcl.h> #pragma hdrstop #define N 100 #include "soru1.h" #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1;

1 (25p) 2 (15p) 3 (20p) 4 (10p) 5 (30p) T(100p)

Page 2: PROGRAMLAMA 1.ARA SINAVI±nav_2012_2013gyy.pdfBİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ PROGRAMLAMA DİLLERİ II 1.ARA SINAVI 2 int sayac=0;

BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

PROGRAMLAMA DİLLERİ II

1.ARA SINAVI

2

int sayac=0; // N adet mezun öğrenci veri girişi için global int türünden sayaç tanımlanmıştır. enum bolum { Elektronik=0, Bilgisayar, Kimya, Insaat, Makina }; struct date{ int g, a, y; }; typedef struct date tarih; typedef struct { AnsiString adi, soyadi, no; bolum b; tarih t; }kayit; typedef class { private: public: kayit mezun[N]; void yeni_ad(kayit *ptr, AnsiString ad); //girilen ismi kaydeder. void yeni_soyad(kayit *ptr, AnsiString soyad); //girilen soyadını kaydeder. void yeni_no(kayit *ptr, AnsiString numara); //girilen numarayı kaydeder. void bolum_sec(kayit *ptr, int bolum_no); //seçilen bölümü kaydeder. // Bölüm seçenekleri BolumComboBox->Items içerisinde aşağıdaki sırayla verilmiştir. // Elektrik-Elektronik Müh. // Bilgisayar Müh. // Kimya & Süreç Müh. // İnşaat Müh. // Makina & İmalat Müh. void yeni_tarih(kayit *ptr,int x,int y,int z); // girilen mezuniyet tarihini gün, ay ve yıl olarak kaydeder. String listele1(kayit *ptr); //veri yapısındaki ad, soyad ve no verilerini tek bir string verisine dönüştürür. String listele2(kayit *ptr); //veri yapısındaki bölüm ve mezuniyet tarihi verilerini tek bir string verisine // dönüştürür. } mezuniyet; //class sonudur... /* SORU 1. mezuniyet sınıfı (class) içerisinde işlev bildirimleri verilmiş olan yedi fonksiyonu/işlevi yazınız. 25PUAN */ /* SORU 2. mezuniyet sınıfı (class) içerisinde ilk beş işlevin yerine kayit yeni(AnsiString ad, AnsiString soyad, AnsiString numara, int bolum_no, int x, int y, int z) fonksiyonunu/işlevini yazınız. İşlev girilen ismi, soyadı, numarayı, seçilen bölümü ve girilen mezuniyet tarihini gün, ay, yıl olarak veri yapısına kaydeder. 15PUAN */ mezuniyet BilecikMezun; // tanımlanan mezuniyet sınıfına değişken ataması yapılıyor void __fastcall TForm1::Button2Click(TObject *Sender) { Close( ); // formdan çıkış... }

Page 3: PROGRAMLAMA 1.ARA SINAVI±nav_2012_2013gyy.pdfBİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ PROGRAMLAMA DİLLERİ II 1.ARA SINAVI 2 int sayac=0;

BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

PROGRAMLAMA DİLLERİ II

1.ARA SINAVI

3

void __fastcall TForm1::Button1Click(TObject *Sender) { /* SORU 3. KAYDET butonuna basıldığında NameEdit, SurnameEdit, NoEdit, BolumComboBox ve tarih Edit girişlerinden (gün olarak Edit1, ay olarak Edit2, yıl olarak Edit3) alınan verileri mezuniyet sınıfı (class) içerisindeki mezun[N] veri (struct) yapısına, class içinde tanımlanan işlevleri kullanarak kaydeden kodu yazınız. 20PUAN */ } void __fastcall TForm1::Button4Click(TObject *Sender) { /* SORU 4. LISTELE butonuna basıldığında kaydedilen tüm verileri ilk satırda ad, soyad ve no, ikinci satırda ise bölüm ve mezuniyet tarihi(gün/ay/yıl) olacak şekilde String listele1(kayit *ptr) ve String listele2(kayit *ptr) işlevlerini kullanarak ListBox1 içine ekleyen kodu yazınız. 10PUAN */ } void __fastcall TForm1::Button3Click(TObject *Sender) { int i=0; char* bolum_dizi[ ]={"Elektronik","Bilgisayar","Kimya","Insaat","Makina"}; ListBox1->Clear(); for(i=0;i<sayac;i++) { switch (AramaComboBox->ItemIndex) { // Arama seçenekleri AramaComboBox->Items içerisinde aşağıdaki sırayla verilmiştir. // Adı // Soyadı // Numarası // Bolumu // M.Yılı /* SORU 5. ARA butonuna basıldığında AramaComboBox içerisinden seçilen metin bilgisine göre Edit1 kutusuna yazılan veriyi BilecikMezun sınıfı içerisinde arayarak bulunan veriyi/verileri ilk satırda ad, soyad ve no, ikinci satırda ise bölüm ve mezuniyet tarihi(gün/ay/yıl) olacak şekilde ListBox1 içerisine ekleyen kodu yazınız. Aranan veri bulunamadı ise "Aranan veri bulunamadı" yazısı ListBox1'de gözüksün. 30PUAN */ default: break; }//switch }//for... } /* Sınav Süresi : 75 dk’dır. Basarılar U.Y. */

Page 4: PROGRAMLAMA 1.ARA SINAVI±nav_2012_2013gyy.pdfBİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ PROGRAMLAMA DİLLERİ II 1.ARA SINAVI 2 int sayac=0;

BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

PROGRAMLAMA DİLLERİ II

1.ARA SINAVI

4

Örnek Bazı Ekran Çıktıları:

Şekil 1. KAYDET butonu ile kayıt alma işlemi Şekil 2. LISTELE butonu ile kayıtları gösterme işlemi

Şekil 3. "Zeynep" metnini Ad içinde arama işlemi Şekil 4. "Dönmüş" metnini Soyadı içinde arama işlemi

Şekil 5. "121000564" metnini No içinde arama işlemi Şekil 6. "2009" ismini M.Yılı içinde arama işlemi