Searching dan Sorting Menentukan Prestasi Siswa

Selamat malam sobat blogger kali ini saya akan share program searching dan sorting menentukan prestasi siswa. di program dibawah sudah sangat lengkap, sobat bisa mengimput banyak data tergantung batasan yang diberikan, disamping itu sobat juga bisa menginput semua nilai, misal Ujian, Uts, Tugas. Pada serachingnya sobat bisa mencari data yang sudah di input berdasarkan Nama dan Nim, untuk lebih jelasnya lihat kodingannya dibawah ini.
#include <iostream>
#include <conio.h>
#include<cstring>
#include<stdio.h>
#include<windows.h>
using namespace std;
COORD coord={0,0};
void gotoxy(int x,int y)
 {
     coord.X=x;
     coord.Y=y;
     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
 }
int main(){
    int NO[20],nim[20],nilai[20],pilihan,jumlah=0,tanda,tandake,pilihancari,carinim,nimsimpan;
    long double quiz[20],uts[20],uas[20],total[20],temp;
    double quizinp[20],utsinp[20],uasinp[20];
    char nama[20][30],grade[20][2];
    char kembali,carinama[20],tukar[20];
    menu:
        gotoxy(38,1);cout<<" Program Ranking "<<endl<<endl;
        gotoxy(65,2);cout<<" Jumlah data yang di input = "<<jumlah<<endl<<endl;
        gotoxy(25,4);cout<<" 1. Masukkan Data "<<endl;
        gotoxy(25,5);cout<<" 2. Lihat Data "<<endl;
        gotoxy(25,6);cout<<" 3. List Peringkat "<<endl;
        gotoxy(25,7);cout<<" 4. Cari Data"<<endl;
        gotoxy(25,10);cout<<" Masukkan Pilihan Anda [1/2/3/4] = ";
        cin>>pilihan;
        switch(pilihan){
        case 1:
            system("cls");
            gotoxy(20,5);cout<<" Masukkan jumlah data yang akan di Input = ";
            cin>>jumlah;
            system("cls");
            for(int x=0;x<jumlah;x++){
                NO[x]=x+1;
                gotoxy(70,2);cout<<" Jumlah Data yang akan di input = "<<jumlah<<endl;
                gotoxy(70,3);cout<<" Data yang sudah di input = "<<x<<endl;
                gotoxy(35,4);cout<<" Masukkan Data ke-"<<x+1<<endl;
                gotoxy(30,6);cout<<" Masukkan NIM ";gotoxy(52,6);cout<<" = ";
                cin>>nim[x];
                gotoxy(30,7);cout<<" Masukkan Nama ";gotoxy(52,7);cout<<" = ";
                cin>>nama[x];
                gotoxy(30,8);cout<<" Masukkan Nilai Quiz ";gotoxy(52,8);cout<<" = ";
                cin>>quizinp[x];
                gotoxy(30,9);cout<<" Masukkan Nilai UTS ";gotoxy(52,9);cout<<" = ";
                cin>>utsinp[x];
                gotoxy(30,10);cout<<" Masukkan Nilai UAS ";gotoxy(52,10);cout<<" = ";
                cin>>uasinp[x];
                quiz[x]=0.25*quizinp[x];
                uts[x]=0.35*utsinp[x];
                uas[x]=0.4*uasinp[x];
                total[x]=quiz[x]+uts[x]+uas[x];
                system("cls");
            }
            gotoxy(35,4);cout<<" Anda telah menginput data sebanyak "<<jumlah;
            gotoxy(35,6);cout<<" Kembali ke menu awal ? [Y/N] = ";
            cin>>kembali;
            if(kembali=='y'||kembali=='Y'){
                system("cls");
                goto menu;
            }
            else{
                return 0;
            }
            break;
        case 2:
            system("cls");
            gotoxy(2,1);cout<<"===========================================";
            gotoxy(2,2);cout<<"| N0 ";
            gotoxy(8,2);cout<<"| NIM";
            gotoxy(15,2);cout<<"| Nama";
            gotoxy(30,2);cout<<"| Nilai Akhir |";
            gotoxy(2,3);cout<<"===========================================";
            for(int x=0;x<jumlah;x++){
                gotoxy(2,x+4);cout<<"| "<<NO[x];
                gotoxy(8,x+4);cout<<"| "<<nim[x];
                gotoxy(15,x+4);cout<<"| "<<nama[x];
                gotoxy(30,x+4);cout<<"|    "<<total[x];
                gotoxy(44,x+4);cout<<"|";
            }
            cout<<"\n  ===========================================";
            cout<<"\n\n\n   Kembali ke menu awal [Y/N] = ";
            cin>>kembali;
            if(kembali=='y'||kembali=='Y'){
                system("cls");
                goto menu;
            }
            else{
                return 0;
            }
            break;
        case 3:
            system("cls");
            for(int i=0;i<jumlah;i++){
                for(int j=0;j<jumlah;j++){
                    if( total[j] < total[j+1] ){
                      temp=total[j];
                      total[j]=total[j+1];
                      total[j+1]=temp;
                      nimsimpan=nim[j];
                      nim[j]=nim[j+1];
                      nim[j+1]=nimsimpan;
                      strcpy(tukar,nama[j]);
                      strcpy(nama[j],nama[j+1]);
                      strcpy(nama[j+1],tukar);
                      }
                    }
              }
                gotoxy(2,1);cout<<"==========================================================";
                gotoxy(2,2);cout<<"| Peringkat ";
                gotoxy(14,2);cout<<"| NIM";
                gotoxy(30,2);cout<<"| Nama";
                gotoxy(45,2);cout<<"| Nilai Akhir |";
                gotoxy(2,3);cout<<"==========================================================";
              for(int h=0;h<jumlah;h++)
              {
                gotoxy(2,h+4);cout<<"| ";
                gotoxy(7,h+4);cout<<NO[h];
                gotoxy(14,h+4);cout<<"| "<<nim[h];
                gotoxy(30,h+4);cout<<"| "<<nama[h];
                gotoxy(45,h+4);cout<<"|    "<<total[h];
                gotoxy(59,h+4);cout<<"|";
              }
              cout<<"\n  ==========================================================";
              cout<<"\n\n\n   Kembali ke menu awal [Y/N] = ";
            cin>>kembali;
            if(kembali=='y'||kembali=='Y'){
                system("cls");
                goto menu;
            }
            else{
                return 0;
            }
            break;
        case 4:
            system("cls");
            gotoxy(45,2);cout<<" Pilihan Pencarian"<<endl;
            gotoxy(38,5);cout<<" 1. Nama "<<endl;
            gotoxy(38,6);cout<<" 2. NIM "<<endl;
            gotoxy(38,8);cout<<" Cari berdasarkan ? [1/2] = ";
            cin>>pilihancari;
            tanda=0;
            switch(pilihancari){
            case 1:
                system("cls");
                gotoxy(38,4);cout<<" Masukkan Nama yang anda cari = ";
                cin>>carinama;
                for(int i=0;i<jumlah;i++){
                    if (strcmp (nama[i],carinama)==0)
                       {
                          tanda++;
                          tandake=i;
                       }
                }
                if (tanda !=0){
                        gotoxy(32,5);cout<<"==============================================";
                        gotoxy(32,6);cout<<"| NIM";
                        gotoxy(48,6);cout<<"| Nama";
                        gotoxy(63,6);cout<<"| Nilai Akhir |";
                        gotoxy(32,7);cout<<"| "<<nim[tandake];
                        gotoxy(48,7);cout<<"| "<<nama[tandake];
                        gotoxy(63,7);cout<<"|    "<<total[tandake];
                        gotoxy(77,7);cout<<"|";
                        gotoxy(32,8);cout<<"==============================================";
                }
                else{
                    gotoxy(47,6);cout<<" Data Tidak Di temukan";
                }
                break;
            case 2:
                system("cls");
                gotoxy(38,4);cout<<" Masukkan NIM yang anda cari = ";
                cin>>carinim;
                for(int i=0;i<jumlah;i++){
                    if (carinim==nim[i])
                       {
                            gotoxy(32,5);cout<<"==============================================";
                        gotoxy(32,6);cout<<"| NIM";
                        gotoxy(48,6);cout<<"| Nama";
                        gotoxy(63,6);cout<<"| Nilai Akhir |";
                        gotoxy(32,7);cout<<"| "<<nim[i];
                        gotoxy(48,7);cout<<"| "<<nama[i];
                        gotoxy(63,7);cout<<"|    "<<total[i];
                        gotoxy(77,7);cout<<"|";
                        gotoxy(32,8);cout<<"==============================================";
                       }
                }
                break;
            }


            cout<<"\n\n     Kembali ke menu awal [Y/N] = ";
            cin>>kembali;
            if(kembali=='y'||kembali=='Y'){
                system("cls");
                goto menu;
            }
            else{
                return 0;
            }
            break;
        default:
            system("cls");
            cout<<" Pilihan yang anda input salah ";
        }
}

Sekian postingan Searching dan Sorting Menentukan Prestasi Siswa semoga apa yang saya share ini bisa bermanfaat, Wassalam­čśÉ



Belum ada tanggapan untuk "Searching dan Sorting Menentukan Prestasi Siswa"

Post a Comment