Advertisement
agusbd

laporanstruct ~#xagusart

Mar 4th, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.86 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3. #include <iomanip>
  4. using namespace std;
  5.  
  6.  
  7. double get_harkat(char);
  8. char get_nilai(int);
  9.  
  10. main(){
  11.  
  12. typedef struct {
  13.     char nama[30],
  14.          dosen[30],
  15.          nilai,
  16.          kode[10];
  17.     int sks;
  18. }matakuliah;
  19.  
  20. typedef struct{
  21.     char nama[30];
  22.     int nim,
  23.         jumlah_matkul;
  24.     double ipk;
  25.     matakuliah matkul[100];
  26. }mahasiswa;
  27.  
  28.     int jum_mhs,
  29.         nilai,
  30.         jum_sks;
  31.     double jum_harkat;
  32.     cout<<"berapa mahasiswa yang ingin di input? : ";cin>>jum_mhs;
  33.     mahasiswa mhs[jum_mhs];
  34.  
  35. for(int i=0;i<jum_mhs;i++){
  36.     jum_sks=0;
  37.     jum_harkat=0;
  38.     cin.ignore();
  39.     cout<<"input data mahasiswa ke "<<i+1<<endl;
  40.     cout<<"masukan nama              : ";cin.getline(mhs[i].nama,30);
  41.     cout<<"masukan nim               : ";cin>>mhs[i].nim;
  42.     cout<<"masukan jumlah matakuliah : ";cin>>mhs[i].jumlah_matkul;
  43.         for(int j=0;j<mhs[i].jumlah_matkul;j++){
  44.             cin.ignore();
  45.             cout<<"    input mata kuliah ke "<<j+1<<endl;;
  46.             cout<<"    nama matakuliah : ";cin.getline(mhs[i].matkul[j].nama,30);
  47.             cout<<"    nama dosen      : ";cin.getline(mhs[i].matkul[j].dosen,30);
  48.             cout<<"    kode matakuliah : ";cin.getline(mhs[i].matkul[j].kode,10);
  49.             cout<<"    nilai           : ";cin>>nilai;
  50.             mhs[i].matkul[j].nilai = get_nilai(nilai);
  51.             cout<<"    Jumlah sks      : ";cin>>mhs[i].matkul[j].sks;
  52.             jum_sks+=mhs[i].matkul[j].sks;
  53.             jum_harkat+= get_harkat(mhs[i].matkul[j].nilai)*mhs[i].matkul[j].sks;
  54.         }
  55.         mhs[i].ipk= jum_harkat/jum_sks;
  56. }
  57.  
  58.     cout<<"========================================================="<<endl;
  59.     for(int i =0;i<jum_mhs;i++){
  60.     cout<<"Data mahasiswa ke "<<i+1<<" : "<<endl;
  61.     cout<<"nama              : "<<mhs[i].nama<<endl;
  62.     cout<<"nim               : "<<mhs[i].nim<<endl;
  63.     cout<<"jumlah matakuliah : "<<mhs[i].jumlah_matkul<<endl;
  64.     cout<<"ipk               : "<<setprecision(3)<<mhs[i].ipk<<endl;
  65.     cout<<"Data mata kuliah"<<endl;
  66.     cout<<"=========================================================="<<endl;
  67.     cout<<"  Nama       |    DOSEN     |    KODE    |  NILAI |   SKS "<<endl;
  68.     cout<<"=========================================================="<<endl;
  69.         for(int j=0;j<mhs[i].jumlah_matkul;j++){
  70.             cout<<setw(10)<<mhs[i].matkul[j].nama<<setw(15)<<mhs[i].matkul[j].dosen<<setw(12);
  71.             cout<<mhs[i].matkul[j].kode<<setw(10)<<mhs[i].matkul[j].nilai;
  72.             cout<<setw(9)<<mhs[i].matkul[j].sks<<endl;
  73.         }
  74.     cout<<"=========================================================="<<endl;
  75.     }
  76. }
  77.  
  78. char get_nilai(int x){
  79.     return(x>80&&x<=100?'A':x>=65&&x<80?'B':x>40&&x<=65?'C':x>=20&&x<40?'D':'E');
  80. }
  81.  
  82. double get_harkat(char x){
  83.  return(x=='A'?4.0:x=='B'?3.0:x=='C'?2.0:x=='D'?1.0:0);
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement