Nexttürk Forum
 
AnasayfaSSSKayıt OlKullanıcı GruplarıGiriş yap

 

Harfli Der Notu Hesaplama Örneği [Kodlarıyla]

Önceki başlık Sonraki başlık Aşağa gitmek 
Yazar Mesaj
turknext
Admin
Admin
avatar


Yaş : 38 Kayıt tarihi : 20/07/07 Mesaj Sayısı : 114 Nerden : Tekirdağ

MesajKonu: Harfli Der Notu Hesaplama Örneği [Kodlarıyla]   Cuma Tem. 20 2007, 23:45

bu programda 10 kişilik bir sınıftaki öğrencilerin vize proje ve final notu na göre ortalamaları alınıp harf notu veriliyor yanlız 10 kişilik bir sınıf için gerekli sınıftaki öğrencileri ayrı birsoyaya yazın sıra ile vie proje ve final notlarını yazın eğer isterseniz daha kapsamllı bi çalışma yapabilirim

#include<iostream.h>
#include<fstream.h>
#include<math.h>

void korthesapla(double kort[],int vize[],int lab[], int final[],int boyut);
double sorthesapla(double kort[], int sayac);
double ssapmahesap(double kort[],double sort, int sayac);
void yaz(char*notu[],double sort, double kort[], int sayac,double ssapma);


int main()
{


ifstream oku;
int i =0;
char dos[10];
char ad[10][15];
char soyad[10][15];
int vize[10],lab[10],final[10];
char*hnotu[10];



cout<<" hangi dosyadan okuyalım" << endl;
cin>>dos;
oku.open(dos);
while(1)
{
if(oku.fail())
{
cout<<"belirttiğiniz isimde bi dosya bulunamadı yada eksik bilgi var tekrar kontrol edin"<<endl;
exit(-1);
}
oku>>ad[i];
oku>>soyad[i];
oku>>vize[i];
oku>>lab[i];
oku>>final[i];
i++;
if(oku.eof())
break;
}
oku.close();

int sayac = i-1;//kişi sayısı




//kişilerin ortalaması
double kort[10];
korthesapla(kort,vize,lab,final, sayac);


//sınıf ortalaması
double sort;
sort = sorthesapla(kort,sayac);




//standart sappma için hesap
double ssapma = ssapmahesap(kort,sort,sayac);



//harf notu hesabı
yaz(hnotu, sort, kort, sayac,ssapma);


//ekrana yazdıralım
cout<<"ad"<<"\t\tsoyad\t\tvize notu\tlab notu\tfinal notu\tortalama\tharf notu"<<endl;

for(i=0;i<sayac;i++)
{
cout<<"---------------------------------------------------------------------------------------------------------------------"<<endl;
cout<<ad[i]<<"\t\t"<<soyad[i]<<"\t\t "<<vize[i]<<"\t\t "<<lab[i]<<"\t\t "<<final[i]<<"\t\t "<<kort[i]<<"\t\t "<<hnotu[i]<<endl;
}

return 0;
}



//kişilerin ortalamalarının hesaplanması
void korthesapla(double kort[],int vize[],int lab[], int final[],int boyut)
{
int i ;
for(i=0;i<boyut;i++)
kort[i]=(double)(((vize[i]*28)+(lab[i]*12)+(final[i]*60))/100);
}


//sınıf ortalamasının hesaplanması

double sorthesapla(double kort[], int sayac)
{

double top=0;

for(int i=0;i<sayac;i++)
top = top + kort[i];

double sort = (double)top / sayac;

return sort;

}


//standart sapmanın hesaplanması
double ssapmahesap(double kort[],double sort, int sayac)
{

double vary;

double tvary = 0;
//varyans hesabı
for(int i=0;i<sayac;i++)
{
vary = ((sort-kort[i])*(sort-kort[i]))/(sayac-1);
tvary = tvary + vary;
}
double ssapma;


ssapma = (double)sqrt(tvary);

return ssapma;
}




void yaz(char*pnotu[],double sort, double kort[], int sayac,double ssapma)
{

//harf notu aralıkları

double cb_ust_sinir =(double) (sort+(0.58*ssapma));
double cc_alt_sinir =(double) (sort-(0.25*ssapma));
double cc_ust_sinir =(double) (sort+(0.25*ssapma));
double dc_alt_sinir =(double) (sort-(0.75*ssapma));
double ba_ust_sinir =(double) (sort+(1.25*ssapma));
double aa_alt_sinir =(double) (ba_ust_sinir+1);
double aa_ust_sinir = 100;
double bb_ust_sinir =(double) (sort+(0.81+ssapma));
double ba_alt_sinir =(double) (bb_ust_sinir+1);
double bb_alt_sinir =(double) (cb_ust_sinir+1);
double cb_alt_sinir =(double) (cc_ust_sinir+1);
double dc_ust_sinir =(double) (cc_alt_sinir-1);
double dd_alt_sinir =(double) (sort-ssapma);
double dd_ust_sinir =(double) (dc_alt_sinir-1);
double ff_alt_sinir = 0;
double ff_ust_sinir =(double) (dd_alt_sinir-1);




for(int i=0;i<sayac;i++)

{
if(kort[i]<= aa_ust_sinir && kort[i]>aa_alt_sinir)
{
pnotu[i]="aa";
}
if(kort[i]<=ba_ust_sinir && kort[i]>ba_alt_sinir)
{
pnotu[i]="ba";
}

if(kort[i]<=bb_ust_sinir && kort[i]>bb_alt_sinir)
{
pnotu[i]="bb";
}

if(kort[i]<=cb_ust_sinir && kort[i]>cb_alt_sinir)
{
pnotu[i]= "cb";
}

if(kort[i]<=cc_ust_sinir && kort[i]>cc_alt_sinir)
{
pnotu[i]="cc";
}

if(kort[i]<=dc_ust_sinir && kort[i]>dc_alt_sinir)
{
pnotu[i]="dc";
}

if(kort[i]<=dd_ust_sinir && kort[i]>dd_alt_sinir)
{
pnotu[i]="dd";
}

if(kort[i]<=ff_ust_sinir && kort[i]>ff_alt_sinir)
{
pnotu[i]="ff";
}

}
}
Sayfa başına dön Aşağa gitmek
Kullanıcı profilini gör http://turkmoney.ws.tc

Harfli Der Notu Hesaplama Örneği [Kodlarıyla]

Önceki başlık Sonraki başlık Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var: Bu forumdaki mesajlara cevap veremezsiniz
www.nextturk.com :: C ve C++ -
Forum Nextturk
stats counter
Yeni bir forum kurmak | © phpBB | Bedava yardımlaşma forumu | Suistimalı göstermek | Yetkinblog.com