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. Öğrenci İşlemleri 2. Ders İşlemleri 3. Not İşlemleri 4. Çı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. Öğrenci Ekleme 2. Öğrenci Silme 3. Öğrenci Arama 4. Öğ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 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 char* derskodu char* dersadi Bir not hakkındaki bilgileri tutmaya yarayacak DersNot sınıfı, aşağıdaki üye değişkenleri ve bu 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) fbozkurt@atauni.com 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.