ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ
BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ
2013-2014 BAHAR DÖNEMİ
ÖDEV-3
(Son Teslim Tarihi: 06.06.2014 – 17:30’a kadar )
Teslim: Arş. Gör. Ferhat Bozkurt
BM 104 Nesneye Yönelik Programlama dersi kapsamında Visual Studio ortamında C++
programlama dili ile “Öğrenci Bilgi Sistemi” hazırlanması istenmektedir.
ÖN BİLGİ
Bu ödevde sizden, bir okuldaki öğrenciler için basit bir bilgi sistemi oluşturulacaktır. Bu
öğrenci bilgi siteminde tüm bilgi sistemlerinde bulunan temel işlemlerden sadece öğrenci,
ders ve not işlemlerine yönelik işlemleri yapabilmesi istenmektedir. Bu amaçla sizden,
nesneye yönelik programlama dersinde öğrendiğiniz bilgileri esas alarak bir “Öğrenci Bilgi
Sistemi” hazırlamanız gerekmektedir.
İÇERİK
Program çalıştırıldığında, kullanıcıya bir ana menü gelmelidir. Bu Ana Menü içeriğinde,
1.
2.
3.
4.
Öğrenci İşlemleri
Ders İşlemleri
Not İşlemleri
Çıkış
şeklinde bir Ana Menü gelmelidir.
 Kullanıcı Ana menüden birinci seçeneği (Öğrenci İşlemleri)’ni seçtiğinde gelen alt
ekranda ise aşağıdaki işlemleri yapabilecek bir menü gelmelidir.
Öğrenci İşlemleri Menüsü:
1.
2.
3.
4.

Öğrenci Ekleme
Öğrenci Silme
Öğrenci Arama
Öğrencileri Listeleme
Kullanıcı Ana menüden ikinci seçeneği (Ders İşlemleri)’ni seçtiğinde gelen alt ekranda
ise aşağıdaki işlemleri yapabilecek bir menü gelmelidir.
Ders İşlemleri Menüsü:
1. Ders Ekleme
2. Ders Silme
3. Ders Listeleme

Kullanıcı Ana menüden üçüncü seçeneği (Not İşlemleri)’ni seçtiğinde gelen alt ekranda
ise aşağıdaki işlemleri yapabilecek bir menü gelmelidir.
Not İşlemleri Menüsü:
1. Derse Öğrenci Notu Gir
2. Öğrencini Notlarını Listele
3. Ders İstatistiklerini Hesapla

Kullanıcı Ana menüden dördüncü seçeneği seçtiğinde program sonlanacaktır.
Genel olarak konsol ekranında bu işlemi aşağıdaki gibi yapabilirsiniz. Örnek: Kullanıcı 21
girişi yaptığında, sistem “Ders Ekleme” işlemini gerçekleştirmelidir.
ÖĞRENCİ BİLGİ SİSTEMİ
1. Öğrenci İşlemleri
11. Öğrenci Ekleme
12. Öğrenci Silme
13. Öğrenci Arama
14. Öğrencileri Listeleme
2. Ders İşlemleri
21. Ders Ekleme
22. Ders Silme
23. Ders Listeleme
3. Not İşlemleri
31. Derse Öğrenci Notu Gir
32. Öğrenci Notlarını Listele
33. Ders İstatistiklerini Hesapla
4. Çıkış
Bir öğrenci hakkındaki bilgileri tutmaya yarayacak Ogrenci sınıfı, aşağıdaki üye değişkenleri ve bu
değişkenlerin get/set fonksiyonları içermelidir:



int ogrenciNo
char* isim
char* soyIsim
Bir ders hakkındaki bilgileri tutmaya yarayacak Ders sınıfı, aşağıdaki üye değişkenleri ve bu
değişkenlerin get/set fonksiyonları içermelidir:


char* dersKodu
char* dersAdi
Bir not hakkındaki bilgileri tutmaya yarayacak DersNot sınıfı, aşağıdaki üye değişkenleri ve bu
değişkenlerin get/set fonksiyonları içermelidir:



int ogrenciNo
char* dersKodu
int not
OgrenciSistemi sınıfı ise, sistemde kayıtlı öğrencileri, Ogrenciler isimli STL listesinde tutacaktır,
sistemdeki dersleri Dersler isimli STL listesinde, öğrencilerin not bilgilerini DersNotlari isimli STL
listelerinde tutulacaktır. Bir diğer ifadeyle yazdığınız kod en az üç tane liste içerecek olup, bunlar;
Ogrenciler, Dersler, DersNotlari isimli STL listeleridir. Sisteminiz öğrenciler, dersler ve öğrenci not
işlemleri üzerinde değişiklik yapmak için aşağıdaki fonksiyonları içerecektir:










void ogrenciEkle(Ogrenci ogr)
int ogrenciSil(int ogrenciNo) – Fonksiyon -1 döndürürse öğrencinin bulunamadığı, 0
döndürürse öğrencinin bulunup silindiği bildirilir.
Ogrenci ogrenciAra(int ogrenciNo)
void ogrencileriEkranaYazdir()
void dersEkle (char * dersKodu, char* dersAdi)
int dersSil(char* dersKodu) – Fonksiyon -1 döndürürse dersin bulunamadığı, 0 döndürürse
dersin bulunup silindiği bildirilir.
void dersleriEkranaYazdir()
void derseOgrenciNotuGir (char* dersKodu, int ogrenciNo, int ogrNot) – Fonksiyon öğrenci
no -1 girilene kadar not girmeye devam edecek şekilde çalışmalıdır.
void ogrenciNotlariniListele (char* ogrenciNo) – Fonksiyon öğrenci no girildikten sonra, notu
olan bütün derleri bulup Ders Kodu, Ders Adı ve Not lari tablo olarak yazdıracaktır.
void dersIstatistikleriniHesapla (char* dersKodu) – Fonksiyon ders kodu girildikten sonra, ilgili
ders ile ilgili başarı istatistiklerini sınıf ortalaması, medyan, ve 60 üzerine alan öğrenci sayısı
gibi istatistik bilgilerini getirmelidir.
Program çalıştırıldığında içi boş bir OgrenciSistemi nesnesi oluşturulacak ve kullanıcıya aşağıdaki işlem
olasılığı sunan bir menü gösterilecektir. Kullanıcının girdiği işlem koduna göre ilgili işlem
gerçekleştirildikten sonra, kullanıcıya yeniden menü gösterilecek (4. işlem hariç) ve yeni bir işlem
kodu seçmesine izin verilecektir.
11. Öğrenci Ekleme: Kullanıcı 11 işlem kodunu girdiğinde, kullanıcıdan yeni öğrencinin öğrenci
numarası, isimi ve soyisimi alınacak, bu bilgilerle yeni bir öğrenci oluşturulup öğrenci
sistemine eklenecektir.
12. Öğrenci Silme: Kullanıcı 12 işlem kodunu girdiğinde, kullanıcıdan öğrencinin numarası
alınacak ve eğer bu numaralı öğrenci sistemde kayıtlı ise, sistemden silinecektir.
13. Öğrenci Arama: Kullanıcı 13 işlem kodunu girdiğinde, kullanıcıdan öğrencinin numarası
alınacak ve eğer bu numaralı öğrenci sistemde kayıtlı ise, isim ve soyismi ekrana yazılacaktır.
14. Öğrencileri Listeleme: Kullanıcı 14 işlem kodunu girdiğinde, sitemde kayıtlı olan öğrencilerin
bilgileri liste halinde ekrana yazılacaktır.
21. Ders Ekleme: Kullanıcı 21 işlem kodunu girdiğinde, kullanıcıdan yeni dersin ders kodu, ders adı
bilgileri alınacak, bu bilgilerle yeni bir ders oluşturulup öğrenci sistemine eklenecektir.
22. Ders Silme: Kullanıcı 22 işlem kodunu girdiğinde, kullanıcıdan ders kodu alınacak ve eğer bu
ders kodu öğrenci sisteminde kayıtlı ise, sistemden silinecektir.
23. Dersleri Listeleme: Kullanıcı 23 işlem kodunu girdiğinde, sitemde kayıtlı olan derslerin bilgileri
liste halinde ekrana yazılacaktır.
31. Derse Öğrenci Notu Gir: Kullanıcı 31 işlem kodunu girdiğinde, kullanıcıdan öğrenci no -1
girilene kadar not girmeye devam edecek şekilde çalışmalıdır. Kullanıcıdan alınan öğrenci no, ders
kodu ve not bilgileri alınarak bu bilgi sisteme eklenecektir.
32. Öğrencinin Notlarını Listele: Kullanıcı 32 işlem kodunu girdiğinde, kullanıcıdan öğrencinin
numarası alınacak ve notu olan bütün dersleri bulunup Ders Kodu, Ders Adı ve Not lari tablo
olarak yazdıracaktır.
33. Ders İstatistiklerini Hesapla: Kullanıcı 33 işlem kodunu girdiğinde, kullanıcıdan alınan ders
kodu girildikten sonra, ilgili ders ile ilgili başarı istatistiklerini sınıf ortalaması, medyan, ve 60
üzerini alan öğrenci sayısı gibi istatistik bilgilerini getirecektir.
4. Sistemden Çıkış: Kullanıcı 4 işlem kodunu girdiğinde ise program sonlandırılacaktır.
Medyan Hesaplanması:
Küçükten büyüğe yada büyükten küçüğe doğru sıralanmış puan dağılımında tam ortada yer
alan, yani sıralanmış puan dağılımında baştan ve sondan aynı sırada bulunan ölçme sonucuna
"MEDYAN" (Ortanca) denir.
Örnek: 1,2,3,4,5,6,7 yedi sayının bulunduğu bu sıralamanın medyanı "4" sayısıdır. Baştan ve
sondan sayıldığında aynı yerde bulunur. Eğer veri sayısı çift ise son kalan iki veri çiftinin
ortalaması medyan olur.
Örnek: 2,2,8,4,5,9 sayı dizisinin medyanı 8 + 4 / 2= 6' dır.
ÖDEV TESLİMİ
1- Ödevlerini Visual Studio ortamında derlenmiş ve çalışır halde teslim ediniz.
2- Ödevlerinizi ilgili araştırma görevlisine proje dosyanızı ve ilgili dökumanlarınızı
sıkıştırarak(zip,rar) [email protected] adreslerine gönderiniz. Zamanında ulaşmayan,
içeriği boş olan projelerinizle ilgili sorumluluk size aittir.
3- Ödevinizin çıktısını belirtilen tarihe kadar ilgili araştırma görevlisine 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

bu bağlantıdan