Wednesday, November 27, 2013

Menghitung IPK Menggunakan C++

#include <iostream>
#include <iomanip>
#include <conio>
#include <stdio>

struct nilai
{
char nama_matkul[30];
double tgs,kuis,mid,uas,sks;int nilai_angka;
}nilai[12];

main()
{
char nama[30],nim[10];
int i,batas,jml_sks=0,j;
double jml_nilai=0,ipk,rata;


cout<<"MENGHITUNG IPK"<<endl;
cout<<"Masukan Nama Mahasiswa = ";gets(nama);
cout<<"Masukan NIM Mahasiswa  = ";gets(nim);
for (i=1;i<2;)
   {
            cout<<"Masukan Jumlah Mata Kuliah yang diambil (Maks 24)= ";cin>>batas;
   if (batas<=24)
   break;
   }
   for (i=0;i<batas;i++)
            {
   cout<<"\n\nMasukan Nama Mata Kuliah                 = ";gets(nilai[i].nama_matkul);
   cout<<"Masukan Jumlah SKS Mata Kuliah           = ";cin>>nilai[i].sks;
   for (j=1;j<2;)
   {
      cout<<"Masukan Nilai Tugas Mata Kuliah (0-100)  = ";cin>>nilai[i].tgs;
      if (nilai[i].tgs>=0&&nilai[i].tgs<=100)
   break;
   }
   for (j=1;j<2;)
   {
      cout<<"Masukan Nilai Kuis Mata Kuliah (0-100)   = ";cin>>nilai[i].kuis;
      if (nilai[i].kuis>=0&&nilai[i].kuis<=100)
   break;
   }
   for (j=1;j<2;)
   {
            cout<<"Masukan Nilai UTS Mata Kuliah (0-100)    = ";cin>>nilai[i].mid;
      if (nilai[i].mid>=0&&nilai[i].mid<=100)
   break;
   }
   for (j=1;j<2;)
   {
            cout<<"Masukan Nilai UAS Mata Kuliah (0-100)    = ";cin>>nilai[i].uas;
      if (nilai[i].uas>=0&&nilai[i].uas<=100)
   break;
   }
   jml_sks=jml_sks+nilai[i].sks;
   rata=( nilai[i].tgs +nilai[i].kuis + nilai[i].mid + nilai[i].uas)/4;
   if (rata>=80)           
            {
      nilai[i].nilai_angka=4;
      }
   else if (rata>=70&&rata<80)
            {
      nilai[i].nilai_angka=3;
      }
   else if (rata>=60&&rata<70)
            {
      nilai[i].nilai_angka=2;
      }
   else if (rata>=50&&rata<60)
            {
      nilai[i].nilai_angka=2;
      }
   else if (rata>=40&&rata<50)
            {
      nilai[i].nilai_angka=1;
      }
   else
            {
      nilai[i].nilai_angka=0;
      }
   jml_nilai=jml_nilai+(nilai[i].nilai_angka*nilai[i].sks);
   }
ipk=jml_nilai/jml_sks;

clrscr();
int bar=9,kol=1;

cout<<"KARTU HASIL STUDI"<<endl;
cout<<"================================================================================"<<endl<<endl;

cout<<"Nama  = "<<nama;
cout<<"\nNIM   = "<<nim;
cout<<endl<<endl;
cout<<"No. |           Nama Mata Kuliah          |  SKS  |  Nilai Huruf  |  Bobot Nilai";
for (i=0;i<batas;i++)
            {
   cout<<i+1;
   kol=5;
   gotoxy (kol,bar);
   cout<<"| "<<nilai[i].nama_matkul;
   kol=43;
   gotoxy (kol,bar);
   cout<<"| "<<nilai[i].sks;
   kol=51;
   gotoxy (kol,bar);
      switch (nilai[i].nilai_angka)
      {
            case 4:cout<<"| A";break;
      case 3:cout<<"| B";break;
                        case 2:cout<<"| C";break;
      case 1:cout<<"| D";break;
      case 0:cout<<"| E";break;
      }
   kol=67;
   gotoxy (kol,bar);
   cout<<"| "<<nilai[i].sks*nilai[i].nilai_angka;
            cout<<endl;
   bar+=1;
  }
bar+=1;
gotoxy (30,bar);
cout<<"Jumlah ";
gotoxy (43,bar);
cout<<"| "<<jml_sks;
gotoxy (67,bar);
cout<<"| "<<jml_nilai;
cout<<"\n================================================================================";
cout<<"\nIPK           = "<<setprecision(2)<<setiosflags(ios::fixed)<<ipk;
getch();
}

0 komentar:

Post a Comment