#include<iostream.h>
#include<stdlib.h>
#include<string.h>
//--------- Awal dari Class mhs ---------//
//Declarasi class mhs
class mhs
{
private:
char nama[24];
int jml_mk,nilai[24],sks[24];
public:
mhs();
void input_data();
void nama_mhs(char *);
int jum_matkul();
int jum_sks();
float ip();
};
//Constructor
mhs::mhs()
{
int i;
strcpy(nama,"NULL");
jml_mk=0;
for(i=0;i<24;i++)
{
nilai[i]=5;
sks[i]=0;
}
}
//Method untuk memasukkan data ke dalam class
void mhs::input_data()
{
int i;
char bf[30];
//Masukkan nama mahasiswa
cout << "Nama Mahasiswa = ";
cin.getline(nama,24);
//Masukkan jumlah mata kuliah
while((jml_mk<1)||(jml_mk>24))
{
cout << "Jumlah mata kuliah = ";
cin.getline(bf,30);
jml_mk=atoi(bf);
if((jml_mk<1)||(jml_mk>24))
cout << "Masukkan angka 1-24\n\n";
}
for(i=0;i<jml_mk;i++)
{
//Masukkan nilai untuk masing-masing mata kuliah
while((nilai[i]<0)||(nilai[i]>4)||(strlen(bf)>1))
{
cout << "\nNilai mata kuliah " << (i+1) << " = ";
cin.getline(bf,30);
nilai[i]=(int)bf[0];
if(nilai[i]<70) nilai[i]=69-nilai[i];
else nilai[i]=101-nilai[i];
if((nilai[i]<0)||(nilai[i]>4)||(strlen(bf)>1))
cout << "Masukkan huruf A-E atau a-e\n";
}
//Masukkan jumlah sks untuk masing-masing mata kuliah
while((sks[i]<1)||(sks[i]>4))
{
cout << "Jumlah SKS mata kuliah " << (i+1) << " = ";
cin.getline(bf,30);
sks[i]=atoi(bf);
if((sks[i]<1)||(sks[i]>4))
cout << "Masukkan angka 1-4\n\n";
}
}
}
//Method untuk menampilkan nama
void mhs::nama_mhs(char *s)
{
strcpy(s,nama);
}
//Method untuk menampilkan jumlah mata kuliah
int mhs::jum_matkul()
{
return (jml_mk);
}
//Method untuk menghitung jumlah sks
int mhs::jum_sks()
{
int i,j;
j=0;
for(i=0;i<jml_mk;i++) j+=sks[i];
return(j);
}
//Method untuk menghitung ip
float mhs::ip()
{
int i,j_sks,total;
j_sks=0;
total=0;
for(i=0;i<jml_mk;i++)
{
j_sks+=sks[i];
total+=(nilai[i]*sks[i]);
}
return ((float)total/j_sks);
}
//--------- Akhir dari Class mhs ---------//
//Program utama
int main()
{
//Local Variable
int i,jum_mhs;
char bf[30],nama[24],user[24];
mhs node[10];
//Meminta user untuk memasukkan namanya
cout << "Masukkan nama user : ";
cin.getline(user,24);
cout << "\nSelamat datang, " << user;
cout << " di Program Menghitung IP mahasiswa\n\n";
//Meminta user untuk memasukkan jumlah mahasiswa
jum_mhs=0;
while((jum_mhs<1)||(jum_mhs>10))
{
cout << "Masukkan Jumlah Mahasiswa yang akan dihitung = ";
cin.getline(bf,30);
jum_mhs=atoi(bf);
if((jum_mhs<1)||(jum_mhs>10))
cout << "Masukkan angka 1-10\n\n";
}
//Meminta user untuk memasukkan data masing-masing mahasiswa
for(i=0;i<jum_mhs;i++)
{
cout << "\nDATA MAHASISWA " << (i+1) << endl;
node[i].input_data();
}
//Menampilkan Hasil
cout << endl << endl;
cout << "|--------------------------|-------------|---------|----------|" << endl;
cout << "| Nama Mahasiswa | Jumlah | Jumlah | IP |" << endl;
cout << "| | Mata Kuliah | SKS | |" << endl;
cout << "|--------------------------|-------------|---------|----------|" << endl;
for(i=0;i<jum_mhs;i++)
{
cout.setf(ios::left|ios::showpoint);
node[i].nama_mhs(nama);
cout << "| ";
cout.width(25);
cout << nama;
cout << "| ";
cout.width(7);
cout << node[i].jum_matkul();
cout << "| ";
cout.width(5);
cout << node[i].jum_sks();
cout << "| ";
cout.width(6);
cout.precision(3);
cout << node[i].ip();
cout << " |\n";
}
cout << "|--------------------------|-------------|---------|----------|" << endl;
cout << endl;
return (0);
}
Tidak ada komentar:
Posting Komentar