turknext
Admin
Yaş : 44
Kayıt tarihi : 20/07/07
Mesaj Sayısı : 114
Nerden : Tekirdağ
|
Konu: 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"; }
} }
|
|