Jumat, 05 Februari 2010

Program Menghitung Statistik Ulangan Kelas

#include<iostream.h>
#include<ctype.h>
#include<stdlib.h>
#include<iomanip.h>
int b2;

class kelas
{
private :
    struct data
    {
        char nama[10];
        int nilai;
        int hit;
    } siswa[100];
    int jumlah_murid;
    int dadat;
    char *nama_kelas;


public:
    kelas(char *p,int j,int rent);
    void murid();
    void info_kelas();
    int keterangan(int d);
    float rata_rata();
    int max();
    int min();
    int modus();
};

kelas:: kelas(char *p,int j,int rent)
{
    nama_kelas=p;
    jumlah_murid=j;
    dadat=rent;

}
void kelas::murid()
{
    for (int i=0;i<jumlah_murid;i++)
    {
        cout<<"\n\t FORM MASUKAN DATA NILAI SISWA \n"<<endl;
        cout<<"masukan nama Murid ke- "<<i+1<<"= ";cin>>siswa[i].nama;
        cout<<"masukan Nilai Murid ke-  "<<i+1<<"= ";cin>>siswa[i].nilai;
        while (siswa[i].nilai >b2)
        {
            cout<<"nilai yang anda masukan melebihi batas range nilai"<<endl;
            cout<<"masukan Nilai      : ";cin>>siswa[i].nilai;
        }

        siswa[i].hit=siswa[i].nilai;
    }

}
float kelas::rata_rata()
{
    int hasil;
    float coba;
    hasil=0;
    for (int i=0;i<jumlah_murid;i++)
    {
        hasil=hasil + siswa[i].nilai;
    }
    coba= (float)hasil/jumlah_murid;
return coba;
}

    int kelas::max()
    {
    int hasil_max;
    hasil_max=0;
    for (int i=0;i<jumlah_murid;i++)
    {
        if (hasil_max< siswa[i].nilai)
        hasil_max=siswa[i].nilai;
    }

      // Untuk mencari Max
    return hasil_max;
    }

    int kelas::min()
    {
    int hasil_min;
    hasil_min=siswa[1].nilai;
    for (int i=0;i<jumlah_murid;i++)
    {
        if (hasil_min > siswa[i].nilai)
        hasil_min=siswa[i].nilai;
    }

    return hasil_min;
    }

    //untuk mencari modus
    int kelas::modus()
    {
    int count;
    for(int a=0 ;a<jumlah_murid-1;a++)
    {
        for(int b=1 ;b<jumlah_murid;b++)
        {
            if (siswa[a].hit>siswa[b].hit)
            {
                int d;
                d=siswa[a].hit;
                siswa[a].hit=siswa[b].hit;
                siswa[b].hit=d;
            }

        }
    }
    count=1; int mod=1,mod_nil,mod_data;
     siswa[jumlah_murid+1].hit=12121;
    for(int p=0 ;p<jumlah_murid;p++)
    {

    if (siswa[p].hit == siswa[p+1].hit)
    {
        mod=mod+1;
        mod_nil= siswa[p].hit;
    }
    else
    {
      if (mod>count)
      {
            count=mod;
            mod_data=mod_nil;
      }
      mod=1;
    }


    }

    if  (count<=1) cout<<"tidak ada modus";
    else cout<< "Modus = "<< mod_data;
    return 0; ;
    }

void kelas::info_kelas()
{
cout<<"\t INFORMASI HASIL ULANGAN"<<endl;
cout<<"\t"<<"      kelas= "<<nama_kelas<<endl;
 cout<<"**********************************************"<<endl;
 cout<<"| NO |   Nama Siswa  |  Nilai |  keterangan  |"<<endl;
 cout<<"**********************************************"<<endl;
 for(int i=0;i<jumlah_murid;i++)
 {
 cout<<"|"<<setw(4)<<i+1<<"|"<<setw(15)<< siswa[i].nama<<"|"<<setw(8)<<siswa[i].nilai<<"|"<<setw(14);kelas::keterangan(siswa[i].nilai);cout<<"|"<<endl;
 }
 cout<<"**********************************************"<<endl;
 cout<<"|"<<setw(22)<<"MAX = "<<" "<<setw(21)<<kelas::max()<<"|"<<endl;
 cout<<"|"<<setw(22)<<"MIN = "<<" "<<setw(21)<<kelas::min()<<"|"<<endl;
 cout<<"|"<<setw(22)<<"RATA RATA = "<<" "<<setw(21)<<kelas::rata_rata()<<"|"<<endl;
 cout<<"|"<<setw(22)<<"MODUS = "<<" "<<setw(21);kelas::modus();cout<<"|"<<endl;
  cout<<"**********************************************"<<endl;
}


int kelas::keterangan(int d)
{
if (d<(0.4*dadat))
cout<<"tidak Lulus"  ;
else cout<<"LULUS";


 return 0;
}

//program utama
int main()
{
    char nam_kel[10];
    int b1;
    char dat1[10],dat2[10];
    int teguhp[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q',
    'r','s','t','u','v','w','x','y','z'} ;

    cout<<"\t SELAMAT DATANG DI PROGRAM STATISTIK ULANGAN KELAS \n"<<endl<<endl;;

    cout<<"masukan nama kelas = ";cin>>nam_kel;cout<<endl;

    cout<<"masukan jumlah murid max=100 = ";cin>>b1;cout<<endl;

    cout<<"masukan range tertinggi nilai = ";cin>>b2;cout<<endl;
    for(int k=0;k<(strlen(dat2));k++)
    {
        for(int l=0;l<26;l++)
        {
            if ((dat2[k])==teguhp[l] )
                {
                    cout<< teguhp[l]<<endl;
                    cout<<"masukana tidak valid "<<endl;exit(1);
                }
        }
    }

 //b1=dat1+1; cout<<" b1 "<<b1<<endl;
 //b2=dat2+1; cout<<" b2 "<<b2<<endl;

  kelas teguh(nam_kel,b1,b2) ;
  teguh.murid() ;
 // cout<<teguh.rata_rata();
  teguh.info_kelas();
return 0;
}

Tidak ada komentar:

Posting Komentar