Advertisement
mubaharu

Program Hitung Nilai Akhir Mahasiswa

Nov 15th, 2018
1,567
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.15 KB | None | 0 0
  1. //Muhammad Balya Khaidir
  2. #include <iostream>
  3. #include <iomanip>
  4. #include <string.h>
  5. using namespace std;
  6.  
  7. struct Data {
  8.     int Tugas,N_Tugas,UTS,N_UTS,UAS,N_UAS,N_akhir,absen;
  9.     float N_absen;
  10.     string grade;
  11.     long int nim;
  12.     char nama[50];
  13.     char gender;
  14.     string gender1;
  15. }f[50];
  16. struct matakuliah {
  17.     int kode_mtk[50];
  18.     string nama_mtk[50];
  19. }c;
  20. struct dosen {
  21.     int kode_dosen[50];
  22.     string nama_dosen[50];
  23. }d;
  24. struct kelas {
  25.     int kode_kelas[50];
  26.     string kelas[50];
  27. }e;
  28.  
  29. int main (){
  30.  
  31.     Data temp1;
  32.     matakuliah temp2;
  33.     dosen temp3;
  34.     kelas temp4;
  35.  
  36.     int x,z,i,j,a,m;
  37.     string pass,user;
  38.     char y;
  39.    
  40.     //=========================================================================login screen
  41.     awal2:
  42.     cout<<"User Name : ";
  43.     cin>>user;
  44.     if(user=="Admin" || user=="admin"){
  45.         cout<<"Password : ";
  46.         cin>>pass;
  47.         if(pass=="12345"){
  48.             system("cls");
  49.             cout<<"Selamat! Anda Telah Memasuki Home Admin."<<endl;
  50.            
  51.     awal:
  52.     cout<<"Masukkan jumlah mahasiswa : ";
  53.     cin>>x;
  54.     if(x<=5){
  55.         cout<<"================================"<<endl;
  56.         goto inputan;
  57.        
  58.     }
  59.     else{
  60.         cout<<"Mahasiswa Kebanyakan Oe Nanti Pusing!"<<endl;
  61.         cout<<"Max 5 Aja Oe!"<<endl<<endl;
  62.         goto awal;
  63.     }
  64.    
  65.     //=========================================================================input
  66.     inputan:
  67.     for(int z=1;z<=x;z++){
  68.     cout<<"Masukkan NIM Mahasiswa ke "<<z<<" : ";
  69.     cin>>f[z].nim;
  70.     cout<<"Masukkan Nama Mahasiswa ke "<<z<<" : ";
  71.     cin>>f[z].nama;
  72.     cout<<"Masukkan Jenis Kelamin (L/P) : ";
  73.     cin>>f[z].gender;
  74.     if(f[z].gender=='l' || f[z].gender=='L'){
  75.         f[z].gender1 = "Laki-Laki";
  76.     }
  77.     else if(f[z].gender=='p' || f[z].gender=='P'){
  78.         f[z].gender1 = "Perempuan";
  79.     }
  80.    
  81.     cout<<"Masukkan Kode Kelas untuk "<<x<<" Mahasiswa : ";
  82.     cin>>e.kode_kelas[z];
  83.     switch(e.kode_kelas[z]){
  84.         case 106:
  85.             e.kelas[z] = "03TPLE006";
  86.         break;
  87.         default:
  88.             e.kelas[z] = "...";
  89.     }
  90.    
  91.     cout<<"Masukkan Kode Dosen Untuk Kode Kelas "<<e.kode_kelas[z]<<" : ";
  92.     cin>>d.kode_dosen[z];
  93.     switch(d.kode_dosen[z]){
  94.         case 15:
  95.             d.nama_dosen[z] = "Niki Ratama";
  96.             c.nama_mtk[z] = "Structure Data";
  97.         break;
  98.         default:
  99.             d.nama_dosen[z] = "...";   
  100.             c.nama_mtk[z] = "...";
  101.     }
  102.     cout<<"========================================"<<endl;
  103.    
  104.     //========================================================================inputan nilai
  105.     cout<<"Masukkan nilai Absensi "<<f[z].nama<<" : ";      //hitung nilai absensi
  106.     do{
  107.         cin>>f[z].absen;
  108.     }while(f[z].absen>14);
  109.     f[z].N_absen = (f[z].absen*10)/14;
  110.  
  111.  cout<<"Masukkan nilai Tugas "<<f[z].nama<<" : ";       //hitung nilai tugas
  112.     cin>>f[z].Tugas;
  113.     if(f[z].Tugas>100)
  114.     {
  115.         f[z].N_Tugas = 20;
  116.        
  117.         cout<<"Masukkan nilai UTS "<<f[z].nama<<" : ";      //hitung nilai UTS
  118.         cin>>f[z].UTS;
  119.         if(f[z].UTS>100)
  120.         {
  121.             f[z].N_UTS = 30;
  122.            
  123.             cout<<"Masukkan nilai UAS "<<f[z].nama<<" : ";      //hitung nilai UAS
  124.             cin>>f[z].UAS;
  125.             cout<<endl;
  126.             if(f[z].UAS>100)
  127.             {
  128.                 f[z].N_UAS = 40;
  129.                 f[z].N_akhir = f[z].N_absen+f[z].N_Tugas+f[z].N_UTS+f[z].N_UAS;
  130.             }
  131.             else
  132.             {
  133.                 f[z].N_UAS = (f[z].UAS*40)/100;
  134.                 f[z].N_akhir = f[z].N_absen+f[z].N_Tugas+f[z].N_UTS+f[z].N_UAS;
  135.             }
  136.         }
  137.         else
  138.         {
  139.             f[z].N_UTS = (f[z].UTS*30)/100;
  140.            
  141.             cout<<"Masukkan nilai UAS "<<f[z].nama<<" : ";      //hitung nilai UAS
  142.             cin>>f[z].UAS;
  143.             cout<<endl;
  144.             if(f[z].UAS>100)
  145.             {
  146.                 f[z].N_UAS = 40;
  147.                 f[z].N_akhir = f[z].N_absen+f[z].N_Tugas+f[z].N_UTS+f[z].N_UAS;
  148.             }
  149.             else
  150.             {
  151.                 f[z].N_UAS = (f[z].UAS*40)/100;
  152.                 f[z].N_akhir = f[z].N_absen+f[z].N_Tugas+f[z].N_UTS+f[z].N_UAS;
  153.             }
  154.         }
  155.     }
  156.     else
  157.     {
  158.         f[z].N_Tugas = (f[z].Tugas*20)/100;                 //hitung nilai Tugas
  159.        
  160.         cout<<"Masukkan nilai UTS "<<f[z].nama<<" : ";      //hitung nilai UTS
  161.         cin>>f[z].UTS;
  162.         if(f[z].UTS>100)
  163.         {
  164.             f[z].N_UTS = 30;
  165.            
  166.             cout<<"Masukkan nilai UAS "<<f[z].nama<<" : ";      //hitung nilai UAS
  167.             cin>>f[z].UAS;
  168.             cout<<endl;
  169.             if(f[z].UAS>100)
  170.             {
  171.                 f[z].N_UAS = 40;
  172.                 f[z].N_akhir = f[z].N_absen+f[z].N_Tugas+f[z].N_UTS+f[z].N_UAS;
  173.             }
  174.             else
  175.             {
  176.                 f[z].N_UAS = (f[z].UAS*40)/100;
  177.                 f[z].N_akhir = f[z].N_absen+f[z].N_Tugas+f[z].N_UTS+f[z].N_UAS;
  178.             }
  179.         }
  180.         else
  181.         {
  182.             f[z].N_UTS = (f[z].UTS*30)/100;
  183.            
  184.             cout<<"Masukkan nilai UAS "<<f[z].nama<<" : ";      //hitung nilai UAS
  185.             cin>>f[z].UAS;
  186.             cout<<endl;
  187.             if(f[z].UAS>100)
  188.             {
  189.                 f[z].N_UAS = 40;
  190.                 f[z].N_akhir = f[z].N_absen+f[z].N_Tugas+f[z].N_UTS+f[z].N_UAS;
  191.             }
  192.             else
  193.             {
  194.                 f[z].N_UAS = (f[z].UAS*40)/100;
  195.                 f[z].N_akhir = f[z].N_absen+f[z].N_Tugas+f[z].N_UTS+f[z].N_UAS;
  196.             }
  197.         }  
  198.     }
  199.  
  200. }
  201.     //=======================================================================================output
  202.     system("cls");
  203.     cout<<"* Tabel Identitas Mahasiswa : "<<endl;
  204.     cout<<"|============|=================================|===========|"<<endl;
  205.     cout<<"|"<<setw(8)<<"NIM"<<setw(5)<<"|"<<setw(18)<<"NAMA"<<setw(16)<<"|"<<setw(8)<<"GENDER"<<setw(4)<<"|"<<endl;
  206.     cout<<"|============|=================================|===========|"<<endl;
  207.     for(int z=1;z<=x;z++){
  208.     cout<<"|"<<setiosflags(ios::left)<<setw(12)<<f[z].nim<<"|"<<setiosflags(ios::left)<<setw(33)<<strupr(f[z].nama)<<"|"<<setiosflags(ios::left)<<setw(11)<<f[z].gender1<<"|"<<endl;
  209.     }
  210.     cout<<"|============|=================================|===========|"<<endl;
  211.     cout<<"\n"<<endl;
  212.     cout<<"* Tabel Jadwal Perkuliahan Mahasiswa : "<<endl;
  213.     cout<<"|=================================|=========|============|===============|"<<endl;
  214.     cout<<"|"<<setiosflags(ios::left)<<setw(33)<<"NAMA MAHASISWA"<<"|"<<setiosflags(ios::left)<<setw(9)<<"KELAS"<<"|"<<setiosflags(ios::left)<<setw(12)<<"NAMA DOSEN"<<"|"<<setiosflags(ios::left)<<setw(15)<<"NAMA MATKUL"<<"|"<<endl;
  215.     cout<<"|=================================|=========|============|===============|"<<endl;
  216.     //sorting bubble sort ascending
  217.     for(i=0;i<=x;i++){
  218.         for(m=1;m<x-i;m++){
  219.             if(strcmp(f[m].nama, f[m+1].nama)>0){  
  220.                 //tukar nama
  221.                 strcpy(temp1.nama,f[m].nama);
  222.                 strcpy(f[m].nama,f[m+1].nama);
  223.                 strcpy(f[m+1].nama,temp1.nama);
  224.                 //tukar kelas
  225.                 temp4.kelas[m]=e.kelas[m];
  226.                 e.kelas[m]=e.kelas[m+1];
  227.                 e.kelas[m+1]=temp4.kelas[m];                                
  228.                 //tukar nama dosen
  229.                 temp3.nama_dosen[m]=d.nama_dosen[m];
  230.                 d.nama_dosen[m]=d.nama_dosen[m+1];
  231.                 d.nama_dosen[m+1]=temp3.nama_dosen[m];                              
  232.                 //tukar nama matkul
  233.                 temp2.nama_mtk[m]=c.nama_mtk[m];
  234.                 c.nama_mtk[m]=c.nama_mtk[m+1];
  235.                 c.nama_mtk[m+1]=temp2.nama_mtk[m];  
  236.                 //tukar nilai akhir
  237.                 temp1.N_akhir=f[m].N_akhir;
  238.                 f[m].N_akhir=f[m+1].N_akhir;
  239.                 f[m+1].N_akhir=temp1.N_akhir;
  240.                 //tukar grade
  241.                 temp1.grade=f[m].grade;
  242.                 f[m].grade=f[m+1].grade;
  243.                 f[m+1].grade=temp1.grade;              
  244.             }
  245.         }
  246.     }
  247.  
  248.     for(int z=1;z<=x;z++){ 
  249.     cout<<"|"<<setiosflags(ios::left)<<setw(33)<<strupr(f[z].nama)<<"|"<<setiosflags(ios::left)<<setw(9)<<e.kelas[z]<<"|"<<setiosflags(ios::left)<<setw(12)<<d.nama_dosen[z]<<"|"<<setiosflags(ios::left)<<setw(15)<<c.nama_mtk[z]<<"|"<<endl;
  250.     }
  251.     cout<<"|=================================|=========|============|===============|"<<endl;
  252.     cout<<"\n"<<endl;
  253.     cout<<"* Tabel Nilai Mahasiswa : "<<endl;
  254.     cout<<"|=================================|===============|============|=====|"<<endl;
  255.     cout<<"|"<<setiosflags(ios::left)<<setw(33)<<"NAMA MAHASISWA"<<"|"<<setiosflags(ios::left)<<setw(15)<<"MATA KULIAH"<<"|"<<setiosflags(ios::left)<<setw(12)<<"NILAI AKHIR"<<"|"<<setiosflags(ios::left)<<setw(5)<<"GRADE"<<"|"<<endl;
  256.     cout<<"|=================================|===============|============|=====|"<<endl;
  257.     //sorting buble sort descending
  258.     for(i=0;i<=x;i++){
  259.         for(j=1;j<x-i;j++){
  260.             if(f[j].N_akhir<f[j+1].N_akhir){
  261.                 //tukar nilai akhir
  262.                 temp1.N_akhir=f[j].N_akhir;
  263.                 f[j].N_akhir=f[j+1].N_akhir;
  264.                 f[j+1].N_akhir=temp1.N_akhir;
  265.                 //tukar grade
  266.                 temp1.grade=f[j].grade;
  267.                 f[j].grade=f[j+1].grade;
  268.                 f[j+1].grade=temp1.grade;
  269.                 //tukar nama
  270.                 strcpy(temp1.nama,f[j].nama);
  271.                 strcpy(f[j].nama,f[j+1].nama);
  272.                 strcpy(f[j+1].nama,temp1.nama);
  273.                 //tukar matkul
  274.                 temp2.nama_mtk[j]=c.nama_mtk[j];
  275.                 c.nama_mtk[j]=c.nama_mtk[j+1];
  276.                 c.nama_mtk[j+1]=temp2.nama_mtk[j];
  277.             }
  278.         }
  279.     }
  280.     for(int z=1;z<=x;z++){
  281.     if(f[z].N_akhir>=80)
  282.     {
  283.         f[z].grade = "A";
  284.     }
  285.     else if(f[z].N_akhir>=70)
  286.     {
  287.         f[z].grade = "B";
  288.     }
  289.     else if(f[z].N_akhir>=60)
  290.     {
  291.         f[z].grade = "C";
  292.     }
  293.     else if(f[z].N_akhir>=55)
  294.     {
  295.         f[z].grade = "D";
  296.     }
  297.     else
  298.     {
  299.         f[z].grade = "E";
  300.     }
  301.     cout<<"|"<<setiosflags(ios::left)<<setw(33)<<strupr(f[z].nama)<<"|"<<setiosflags(ios::left)<<setw(15)<<c.nama_mtk[z]<<"|"<<setiosflags(ios::left)<<setw(12)<<f[z].N_akhir<<"|"<<setiosflags(ios::left)<<setw(5)<<f[z].grade<<"|"<<endl;
  302. }
  303.     cout<<"|=================================|===============|============|=====|"<<endl;
  304.     cout<<"\n";
  305.     cout<<"Ingin Mengulang Lagi?(Y/N)";
  306.         cin>>y;
  307.         if(y=='Y' || y=='y')
  308.         {system("cls");
  309.         goto awal;}
  310.         else if(y=='N' || y=='n')
  311.         {goto akhir;}
  312.         akhir:
  313.         exit(0);
  314.     }
  315.     else{
  316.             cout<<"Password Salah! Silahkan Masukkan Password Yang Benar!"<<"\n"<<endl;
  317.             goto awal2;
  318.         }
  319.         }
  320.        
  321.     else{
  322.         cout<<"Anda Adalah Orang Asing! Masukkan User Yang Benar"<<"\n"<<endl;
  323.         goto awal2;
  324.     }
  325.  
  326. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement