EGE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 204 DATA STRUCTURES (3+1) 2011-2012 GÜZ YARIYILI PROJE 3 Veriliş Tarihi Teslim Tarihi Finaldeki Yüzdesi : 01.11.2011 : 29.11.2011 saat 12:00 : 12 puan (Gecikilen her gün için birer puan azaltılarak değerlendirilecektir) ŞİFALI BİTKİLER veya AKTAR (HERBALIST) YAZILIMI Şifalı Bitki satışı yapan sanal marketler için müşterilerin sipariş vermesini sağlamak üzere bir yazılım geliştirilmesi istenmektedir. Sistem, aynı zamanda müşterilerin de bitkiler ve hastalıklar hakkında bilgi edinebilmesini sağlayacaktır. Bitkilerin isimleri ve miktarları, bitki adına göre ikili arama ağacı yapısı üzerinde tutulacaktır. Ağacın her bir düğümü, bir bitkiye ilişkin bilgileri (bitki adı, bitkinin latince ismi, bitkinin özellikleri, önerilen hastalıklar, miktarı, fiyatı, bitki resminin diskteki yeri ve adı) içerecektir. Önerilen hastalıkların isimleri bir dinamik bir dizide (Vector, ArrayList veya LinkedList vb.) tutulacaktır. Bitki bilgilerindeki miktarı sahası ilgili bitkisel destek ürününden firmada o anda kaç paket bulunduğunu ifade eder. Miktarı paket cinsinden belirtilecektir; fiyatı da paket fiyatıdır. Satılacak ürünler temelde 3 kategori altında bulunmaktadır: i) Bitkiler, ii) Bitki çayları ve iii) Vitaminler. Bu kategoriler, bir vektörde veya herhangi bir dinamik dizide tutulacaktır. Her bir dinamik dizi elemanının altında ayrı bir ağaç yer alacaktır. Hastalıklara ilişkin bilgiler (Hastalık adı, belirtileri, nedenleri, tedavisi, önerilen bitkiler) ise, hastalık adına göre bir Hash Table’da tutulacaktır. Müşterilerin Kullanacağı Bölüm Adından ürün arama ve bilgilerini listeleme Belirli fiyatlar arasındaki tüm ürünlerin bulunup listelenmesi Verilen bir kelimenin kategori ağaçlarında tutulan bitkilerin özellikleri içinden aratılması, bulunan bitki isimlerinin listelenmesi. Ürün Siparişi (birden çok paket istenebilir) ve Alımı. Belirtilen bir kategorideki tüm Ürünleri düzeyleri ile birlikte Listeleme (Inorder, preorder, postorder). İlgili ağacın derinliğini ve eleman sayısını yazdırma Kategori ağaçlarını dengeleme Verilen bir hastalığa ilişkin bilgilerin listelenmesi (Hash Table’dan) Belli bir hastalığa iyi gelen bitkilerin fiyatlarına göre bir Heap’e atılması ve en ucuz N (müşteri belirtecek) tanesinden 1’er paket satın alınması. Sadece Firma Personelinin Kullanacağı Bölüm Yeni kategori ekleme, kategori silme Firmaya yeni türde ürün girişi Adından Ürün bilgisi arama ve silme Ürün bilgilerinde değişiklik (bitki adı, bitkinin latince ismi, bitkinin özellikleri, önerilen hastalıklar, miktarı, fiyatı) Yeni Hastalık bilgisi girişi Not : Öncelikle konu ile ilgili internetten araştırma yapılarak ilgili dosyalar (herhangi bir dosya editörü ile elle yazılarak) oluşturulmalıdır: bitki.txt ve hastalik.txt. İstek gelmesi durumunda dersim asistanları tarafından örnek birer dosya hazırlanabilecektir. Program başladığında bu dosyalar okunarak kategori ağaçları ve hash table oluşturulmalıdır. Arasınava Ağaçlar, Heap ve Hash Table Veri Yapıları dahil olduğundan Proje verildiği anda üzerinde çalışılmaya başlanması önerilir. Geniş bir Proje olduğundan son haftaya da bırakılmamalıdır. Seçimlik [yapılması zorunlu değil ve puan etkisi yok]: Gerçek ve daha kapsamlı bir bitkisel ürün sanal marketi programına benzeyecek şekilde işlemler değiştirilip çoğaltılabilir: müşterilerin üye olması (birden çok müşteri), alışveriş listesi eklenmesi, müşterilerin ürünler hakkında yorum yazabilmesi, dosyaya kaydetme ve alma ... Yazılım Web tabanlı veya Mobil cihaz tabanlı yapılabilir. Bitkilerin yetiştikleri yerler harita üzerinde (Google Maps API vs.) gösterilebilir. Günümüzde modern ilaçların yapımında bitkisel kaynaklardan da önemli ölçüde yararlanılmaktadır. İlaç geliştirme çalışmalarına destek veren farmakoloji alanında kullanılmak üzere yazılım genişletilebilir. Örnek olarak ilaçların bileşiminde hangi bitkiden ne kadar ve ne şekilde kullanıldığı gibi. Herbalism, alternatif tıp gibi konular son yıllarda tekrar önem kazanmıştır. Bu adlar altında yapılan çalışmaların bir kısmı bilimsel bir değer taşırken bir kısmı da sadece toplumun ilgisini ve ihtiyaçlarını suistimal ederek para kazanmaya yönelik olabilmektedir. Bunun için programda, satılan ürünlerin ilaç değil bitkisel destek ürünü olduğu belirtilmelidir. Projenin Değerlendirmesi: Program 9, Rapor 3 puan. Proje Grubu, proje ile birlikte tek ortak rapor teslim edecek ve proje kontrolüne beraber geleceklerdir. Rapor Formatı 0. Kapak : Proje numarası ve adı, öğrenci numaraları ve ad-soyadları, teslim tarihi bilgilerini içermelidir. 1. Programcı Kataloğu 1.1 Gerçekleştirilen Platform ve Dil (Java, Eclipse?) ve Sürüm Adı 1.2 Problemin kısa tanımı 1.3 Kullanılan sınıfların ve metotlarının kısa açıklamaları 1.4 Kullanılan veri yapıları ve kısa açıklamaları 1.5 Kullanılan dosyaların özellikleri ve kısa açıklamaları 1.6 Yazılım Geliştirme İçin Harcanan Süreler (kişi ve saat bazında) 2. Kullanıcı Kataloğu 2.1 Programın İşletimi ve Ekran Görüntüsü (en az 1 tane) 2.2 Kullanıcı Kılavuzu 2.3 Programın Kısıtlamaları Raporun kapak dahil 5-11 sayfa arasında olması önerilir, sayfaları numaralandırılmalıdır. Rapor, proje ile beraber, ilgili oturum asistanının önceki projelerde belirtilen e-posta adreslerine gönderilmelidir. Yazıcı çıktısı istenmemektedir.