Android İçin Karne Notu Ortalaması Hesaplama Uygulamam

Başlatan DoGuKaN, 30 Ocak 2012 - 15:52:54

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

DoGuKaN

Yeni Sürümler
An itibariyle 0.9 Beta sürümünü duyurmaktan gurur duyuyorum :D Projeyi geliştirmek ve tanıtmak için bir Google Code sayfası açmayı uygun gördüm. Projeyi takip edenler (takip eden varsa) projemin Google Code sayfasını ziyaret edebilir.

http://code.google.com/p/ortalama-hesaplayici/

0.7 Beta

Bu sabah okul servisinde uygulamamın yeni versiyonunu arkadaşa gösterirken arkadaş "Ondalıklı sayılar yazabiliyor muyuz?" diye sordu. Ben de kendimden emin bir şekilde "Tabii ki" dedim ve arkadaşa göstermek için bir sayı yazmaya başladım. Ama o da ne? 67.8 yazacakken 67. yazabildim sadece. Neler olduğunu düşünürken aklıma geldi, son güncellemede basamak sayısına getirdiğim sınırlama ondalıklı sayılar için yeterli olmuyordu. Güncellemeyi yaparken aklımda sadece tam sayılar vardı, bu yüzden sınırı 3 basamak yapmıştım. Eve gelir gelmez bu komik hatayı düzeltip yeni bir versiyon hazırladım. Hata için özür dilerim, tabi kullanan varsa :P

Uygulamayı indirmek için: http://goo.gl/xbnua
Kaynak kodları için: http://goo.gl/zOSGG

0.6 Beta

Bugün canım sıkıldı ve Ortalama Hesaplayıcı isimli Android uygulamamın yeni versiyonunu hazırladım. Yaptığım iki tane değişiklik var. Bunlardan biri menüdeki simgeleri 4.0'daki simgelerle değiştirmek oldu (Eski simgeler 2.3'dendi). Diğer değişiklik ise boşluklara girilen sayıların uzunluklarını kısıtlamak oldu. Artık Ders saati bölümüne en fazla 2 basamaklı sayı, Not ortalaması bölümüne de en fazla 3 basamaklı sayılar yazılabiliyor. Ayrıca uygulamam, Applanet uygulaması aracılığıyla da indirilebilir durumda.

Uygulamayı indirmek için: http://goo.gl/K3stk
Kaynak kodları için: http://goo.gl/PJXRn

0.5 Beta

Uygulamanın okullar açılmadan önceki son sürümü hazır. Bir süre yeni versiyon çıkartacağımı sanmıyorum ki bu versiyon gayet yeterli, çalışmayan bir fonksiyonu yok. Yine de önerileriniz varsa seve seve dinlerim.



Değişenler

  • Uygulama artık 100'ün üstündeki ve 0'ın altındaki not ortalamalarını kabul etmiyor..
  • Yardım bölümü kaldırıldı. Uygulama o kadar basit ki kimsenin yarıma ihtiyaç duyacağını sanmıyorum. Zaten bu bölüm boştu.
  • Dikey modda görüntü sığmadığından uygulama artık sadece yatay modda çalışıyor

İndirmeler

Uygulamayı indirmek için: http://goo.gl/5lmi4
Kaynak kodu için: http://goo.gl/luP0Y

0.4 Beta

0.3 Beta versiyonunun ömrü kısa sürdü biraz :D Yeni versiyonu hazırladım.



Değişenler

  • Boşluklarla ilgili bir hata giderildi.
  • Eskiden sabit olan sonuç bölümündeki renk şimdi ortalamaya göre değişiyor. Eğer ortalama takdir belgesi alama yetiyorsa yeşil, teşekkür belgesi almaya yetiyorsa sarı ve yeşil arasında bir ton, belge almaya yetmiyorsa açık kırmızı oluyor.
  • Hakkında bölümü eklendi.

Bilinen Eksikler ve Hatalar

  • Ekran dikey konumdayken kutucuklar gerçekten kötü gözüküyor.
  • Menüdeki Yardım bölümleri hazır değil.

İndirmeler

Uygulamayı indirmek için: http://goo.gl/6ZYwa
Kaynak kodu için: http://goo.gl/igQYh

0.3 Beta

Aldığım yorumlar ve tavsiyeler üzerine yeni bir versiyon çıkarttım. İlk versiyondaki tüm hataları bu versiyonda giderdim. Bu da uygulamanın artık her okul ve her öğrenci için kullanılabileceği anlamına geliyor. Fakat giden hataların yanında gelen hatalar da var. Hatadan çok eksiklik diyelim. Bu eksiklikler sadece arayüzde, programın temelinde herhangi bir sorun yok. Temeli oturttum yani :) Yorum yapan herkese çok teşekkür ederim. Tavsiye verenler olmasaydı muhtemelen çözemezdim problemi.




Değişenler

  • İşlemde değişiklikler yapıldı. Eski uygulamada otomatik olarak toplam 33'e bölünürken bu versiyonda girilen ders saatlerinin toplamına bölünüyor.
  • Artık boş bırakılan kutulara uygulama otomatik olarak 0 değerini veriyor.  Ders saati de dersin ortalaması da 0 olunca boş kutucuk etkisiz hale geliyor.
  • Uygulamaya Android telefonlardaki Menu tuşuna basınca açılan menü eklendi.

Bilinen Eksikler ve Hatalar

  • Ekran dikey konumdayken kutucuklar gerçekten kötü gözüküyor.
  • Menüdeki Hakkında ve Yardım bölümleri hazır değil. Sadece kısayollarını ekledim. Sonraki versiyona bıraktım bunları. Çıkış sorunsuz bir şekilde çalışıyor.

İndirmeler

Uygulamayı indirmek için: http://goo.gl/Ou0hY
Kaynak kodu için: http://goo.gl/H2sVv

0.2 Alpha

Yarıyıl tatilinden önce okulda geçirdiğimiz son günlerdi, arkadaşlarla boş geçen derslerin tadını çıkartırken iki arkadaşımın tahtada birkaç işlem yaptığını gördüm. Merak edip yanlarına gittim ve ne yaptıklarını sordum ve karne notlarının ortalamasını hesapladıklarını söylediler. Tahtanın yarısını dolduran işlemleri görünce bunun daha basit bir yolu olmalı diye düşündüm, işte o anda kafamda bir ampul yandı. "Neden bunu hesaplamak için basit bir Android uygulaması yazmayayım ki?" diye düşündüm ve oturdum uygulamayı yazmaya başladım.

Karne notu ortalaması nasıl hesaplanır açıklayayım. Karne ortalaması = Ders notlarının ortalamasının haftalık ders saatiyle çarpımlarının toplamının 1 haftadaki toplam ders saati sayısına bölümüdür. Biraz karışık oldu sanırım örnekle açıklayayım. Örneğin, sıradan bir anadolu lisesi öğrencisi 1 haftada 4 ders saati matematik görür ve 1 haftada dersinden not aldığı 33 ders saati vardır. Öğrencinin matematik dersinden not ortalamasının 75 olduğunu kabul edelim. 75 sayısını 4 ile çarpıyoruz ve aynı işlemi öğrencinin gördüğü tüm derslerde yapıyoruz. Ardından bu sonuçları toplayıp 33'e bölüyoruz ve bu sonuç bize karne notu ortalamasını veriyor.

Peki karne notu ortalaması neden bu kadar önemli? Çünkü takdir ve teşekkür belgeleri öğrencinin karne notu ortalamasına göre veriliyor.

Bende bu hesabı bizim için yapıp ortalamamızı ve hangi belgeyi aldığımızı gösteren bir uygulama yazdım. Hoş, sınıfımızda benimle beraber sadece iki kişi Android kullanıyor :P Uygulamamı yorumlarınız ve önerileriniz için koyuyorum buraya. (Ekran görüntülerindeki notlar bana ait değil, rastgele yazdım onları :D )




Bilinen Eksikler ve Hatalar

  • Kutulardan biri bile boş bırakılıp Hesapla butonuna basılırsa uygulama çöküyor.
  • Uygulama sadece bizim okulun (Güzelkent Anadolu Lisesi) TM sınıflarında iş görüyor. Herkeste iş görecek bir uygulama yazmak isterdim fakat ilk maddedeki sorunu çözmem gerekiyor bunun için. Aklımda birkaç çözüm yolu var fakat aşırı uzun ve gereksiz yollar.

İndirmeler

Uygulamayı indirmek için: http://goo.gl/Jq1eX
Kaynak kodu için: http://goo.gl/4rMhY

OnurK

Öyle bir program yazılmalı ki, kullanıcılar derslerinin adlarını ve hangi dersi kaç kredi aldıklarını grafiksel arayüzle girebilsin.
Böyle olursa geniş kesimlere hitap eder gibime geliyor.
We are silenced by the night.

empax

double hesap = (new Double(matematik.getText().toString()) * 4 + new Double(geometri.getText().toString()) * 3 + new Double(edebiyat.getText().toString()) * 3 + new Double(dilveanlatim.getText().toString()) * 4 + new Double(diksiyon.getText().toString()) + new Double(inkilap.getText().toString()) * 2 + new Double(tarih.getText().toString()) * 2 + new Double(cografya.getText().toString()) * 2 + new Double(felsefe.getText().toString()) * 2 + new Double(ingilizce.getText().toString()) * 4 + new Double(almanca.getText().toString()) * 2 + new Double(gomu.getText().toString()) + new Double(din.getText().toString()) + new Double(beden.getText().toString()) * 2) / 33;                                           
                ortalama.setText(Double.toString(hesap));


/33 toplam ders saati sanirim (?)

Textbox'lari bir dizi icinde toplayip dongu icinde kontrol ettirip eger verilmeyen deger  varsa(if -> TxtBox[j] == "") ToplamDersSaati gibi bir degiskene eklenmeyecek sekilde yapilabilir mi ?
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

DoGuKaN

@OnurK, ben de onu istiyorum. Önümdeki tek engel girilmeyen dersleri nasıl hesaptan çıkartacağım.

@empax, evet 33 toplam ders saati. Ben de tam sizin dediğiniz şeyi yapmak istiyorum ama nasıl yapacağım konusunda bir fikrim yok. Maalesef o kadar iyi bilmiyorum. Ama her türlü yardıma açığım yani :)

empax

Diziye atmak icin ve toplam saati bulmak icin alttaki yontem isinizi gorecektir sanirim.  :)

int bolunecek_saat = 33;
int[] saatler = {4,3,3,4,....};
String[] TextFieldNames = {"matematik", "geometri", "edebiyat", "dilveanlatim",....};
JTextField[] fields = new JTextField[TextFieldNames.lenght];
for(int i = 0; i < fields.length; i++) {
if(fields[i].getText == ""){
fields[i].setText = "0"; //Degeri sifir yapip carpmada etkisiz hale getiriyoruz.
bolunecek_saat = bolunecek_saat - saatler[i];//deger girilmemis dersin saatlerini 33'ten cikariyoruz.
}


Not: saatler[] dizisinin degerleri siralamasi ve TextFieldNames[] dizisindeki yazi kutularinin siralarinin ayni olmasina dikkat edin.
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

barış

Bir benzerini de ben kredi sistemi için yazmıştım zamanında. Fakat anadolu lisesi, düz lise, kolej vs. gibi liseler ayrı olduğu için vaz geçmiştim. :)

DoGuKaN

@empax, JTextField ile bir alıp veremediği var, aşağıdakini diyor.

JTextField cannot be resolved to a type

empax

try-catch blogu icine alip dener misin. Arastiriyorum suan, ben de java'da yeniyim :)
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

DoGuKaN

Alıntı yapılan: empax - 30 Ocak 2012 - 22:38:12
try-catch blogu icine alip dener misin. Arastiriyorum suan, ben de java'da yeniyim :)

Şimdi ben de araştırdım. Sanırım JTextField Java'dayi yazı yazma bölümüymüş ama Android'de işler biraz daha farklı. Aynı işi EditText ile yapıyoruz Android ile. Düz mantıkla JTextField yerine EditText yazdım ama bu sefer de setText ve getText çakıldı :P

getText cannot be resolved or is not a field

empax

Android tarafina daha gecis yapamadim ama biraz daha arastirmak gerkiyor. Bir fikrim yok yani  :)
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

cagriemer

Ben de soyle bir oneride bulunayim. Sadece belirli bir sinifa gore kodlamaktansa, kullaniciya o donem aldigi toplam ders sayisini soran, bunun sonucunda da iki sutun ve alinan ders sayisi kadar satirdan olusan bir bos tablo gosterse, kullanici da bu bos tablonun ilk sutununa bekledigi notu, ikinci sutununa kredi sayisini(ya da haftalik ders saati) yazsa okul bagimliligini kaldirmis olursunuz. Bu sekilde yazmak cok mu zor bilemiyorum. Fikir olsun diye soyluyorum.

DoGuKaN

Alıntı yapılan: cagriemer - 31 Ocak 2012 - 00:13:42
Ben de soyle bir oneride bulunayim. Sadece belirli bir sinifa gore kodlamaktansa, kullaniciya o donem aldigi toplam ders sayisini soran, bunun sonucunda da iki sutun ve alinan ders sayisi kadar satirdan olusan bir bos tablo gosterse, kullanici da bu bos tablonun ilk sutununa bekledigi notu, ikinci sutununa kredi sayisini(ya da haftalik ders saati) yazsa okul bagimliligini kaldirmis olursunuz. Bu sekilde yazmak cok mu zor bilemiyorum. Fikir olsun diye soyluyorum.

Benim de yapmak istediğim o zaten. Hatta daha önceden bunun için bir arayüz bile hazırlamıştım.



Fakat burada da aynı yere dönüyoruz. Mesela TM ve MF öğrencileri farklı dersler alıyorlar. Bir MF öğrencisi Fizik, Kimya, Biyoloji gibi dersler görürken bir TM öğrencisi Coğrafya, Tarih gibi dersler görüyor. Görülen ders sayısı eşit değil ve mutlaka bir kutucuk boş bırakılacaktır. İşte burada da soruna geldik. Boş bırakılan kutucukları nasıl çıkartacağım işlemden?

empax

get ve set icin soyle bir ornek var ama anlayamadigim bazi bolumleri var  :-\

etName.setOnClickListener(new OnClickListener() {


String name = etName.getText().toString();
String origVal = getResources().getText(R.string.NameDefault).toString(); //mesela burasini tam cozumleyemiyiorum ama sanirim NameDefault bolumunu fields[i] seklinde uyarlayabilirz.

@Override
public void onClick(View v) {
if(name.equals(origVal));
{
etName.setText("");

}

}
});


Ilk verdigim if dongusunu soyle degistirisek daha iyi olur.
String bosluk = "";

if(fields[i].equals(bosluk)){

بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

travego0403

Programın daha geniş bir kitleye hitap etmesi için dediğiniz gibi derslerin ve ders kredilerinin ayarlanabilir olması gerekiyor. Bunun için bir admin paneli veya ayar paneli daha ekleyebilirsiniz. Buradan derslerin adlarını ve kredilerini girebilirsiniz ve varsayılan olarak kaydedebilirsiniz. Programı açıp kapadığınızda hep bu ayarlarla açılması gerekir.  Tabi bu teorik olarak kolay gözüküyor. Pratiğe dökmek zordur. Bunun için programın ayarlarını saklamanız lazım. Artık bir dosyaya mı yazarsınız veya veritabanı (var mıdır?) mı yazarsınız bilemiyorum. Olay dinamik olarak çalışacak.  Şöyle ki 10 tane ders kaydettiğimizi varsayıyoruz. Dosyamızın başına 10 diye yazıyoruz. Daha sonra dersler hakkında bilgileri
id     DersAdi           DersKredisi
1      Matematik         5
2      Edebiyat            3
3      Fizik                  5
.....
gibi. Programımız açıldığı zaman dosyamızın ilk satırını okuyacak ve 10 tane ders olduğunu anlayacak. Daha sonra arayüze 10 tane textBox her ne lazımsa yerleştirecek ve bilgileride dosyamızdan okuyarak dolduracak. Kullanıcıdan da bilgiler alındıktan sonra işlemler yapılacak. Tabiki işlemler yapılırken genelde değişken ismi olarak id numarası ile işlem yapmanız işinizi kolaylaştıracaktır.

Benim aklıma gelen yöntem bu belki daha kolay, farklı yöntemlerde olabilir.  :)
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

cagriemer

Alıntı yapılan: DoGuKaN - 31 Ocak 2012 - 07:36:15
Görülen ders sayısı eşit değil ve mutlaka bir kutucuk boş bırakılacaktır. İşte burada da soruna geldik. Boş bırakılan kutucukları nasıl çıkartacağım işlemden?

Alıntı yapılan: cagriemer - 31 Ocak 2012 - 00:13:42
kullaniciya o donem aldigi toplam ders sayisini soran, bunun sonucunda da iki sutun ve alinan ders sayisi kadar satirdan olusan bir bos tablo

DoGuKaN


ersinkandemir

Benim de bunun gibi bir projem var, kodlar gerçekten yararlı olacaktır bana fikir açısından. Teşekkür ederim, ellerinize sağlık. :)
Where there's a shell, there's a way.



DoGuKaN

Alıntı yapılan: Ersin Kandemir - 02 Şubat 2012 - 23:52:24
Benim de bunun gibi bir projem var, kodlar gerçekten yararlı olacaktır bana fikir açısından. Teşekkür ederim, ellerinize sağlık. :)

Rica ederim, umarım yardımı dokunur kodların :)