Project OOP + Video Penjelasan

Project OOP dengan Studi Kasus Perhitungan Nilai Siswa
Code C++:
#include<iostream>
#include<fstream>
#include<cstring>

using namespace std;

class siswa
{
public:
	char nama[50];
	char nilai[20][2];
	int hitung_nilai=0;
	int kode_siswa;
	float persen_nilai;
};
siswa siswaKursus[30];

void inputData(int i)
{
	ofstream datasiswa("data.dat");
	cout << "Input Data Siswa Ke-" << i + 1 << endl;
	cout << "Kode Siswa\t: ";	cin >> siswaKursus[i].kode_siswa;
	cout << "Nama\t\t: "; cin >> siswaKursus[i].nama;

	datasiswa.write((char*)&siswaKursus, sizeof(siswaKursus));
	datasiswa.close();

}

void dataNilai(int j, int kode_mapel)
{
	ifstream bukadata("data.dat");
	bukadata.read((char*)&siswaKursus, sizeof(siswaKursus));

	cout << siswaKursus[j].kode_siswa <<"\t"<< siswaKursus[j].nama<<"\t";
	cout << "\t Nilai[A/B/C/D/E]: ";
	fflush(stdin);
	cin >> siswaKursus[j].nilai[kode_mapel];

	ofstream simpandata("data.dat");
	simpandata.write((char*)&siswaKursus, sizeof(siswaKursus));

	bukadata.close();
	simpandata.close();
}

void rekapDataSiswa(int banyakSiswa){
    int i, j;
	int hitungNilaiA;
	ifstream fileRekap("data.dat");
	fileRekap.read((char*)&siswaKursus, sizeof(siswaKursus));

	cout << "Kode\tNama\t\tM1\tM2\tM3\tM4\t%\tKet." << endl << endl;
	for(i = 0; i < banyakSiswa; i++){
        cout << siswaKursus[i].kode_siswa <<"\t"<< siswaKursus[i].nama<<"\t\t";
        for (j = 0; j < 4; j++){
            cout << siswaKursus[i].nilai[j]<<"\t";

			hitungNilaiA = strcmp(siswaKursus[i].nilai[j], "A");
			if (hitungNilaiA == 0){
				siswaKursus[i].hitung_nilai += 1;
			}
        }
        siswaKursus[i].persen_nilai = siswaKursus[i].hitung_nilai*100/4;
		cout << siswaKursus[i].persen_nilai;

		if(siswaKursus[i].persen_nilai >= 75){
            cout << "\tLulus" << endl;
		}else{
            cout << "\tTidak Lulus" << endl;
		}
	}
	fileRekap.close();
}

int main()
{
    int i, n = 4;
	int x; int Mapel=0;
	char pilih_lagi;
	int pilih;
	cout << "Pilih Opsi" << endl;
	cout << "1. Memasukkan Data Siswa\n2. Nilai Siswa\n3. Rekap Data" << endl;
	cout << "Pilih nomor: ";
	cin >> pilih;
	system("cls");

	switch (pilih){
    case 1:
        for (i = 0; i < n; i++){
            inputData(i);
            system("cls");
        }
        break;
    case 2:
        cout << "Catatan Kode Mapel: \n";
        cout << "Kode M1: Listening\n";
        cout << "Kode M2: Structure\n";
        cout << "Kode M3: Reading\n";
        cout << "Kode M4: Writing\n";
        cout << "\n";
        do{
            cout << "Nilai Mapel dengan kode M" << Mapel + 1 << endl;
            for (x = 0; x < n; x++){
				dataNilai(x, Mapel);
			}
			cout << "\nMasukkan nilai mapel berikutnya[Y/N]= ";
			cin >> pilih_lagi;
			Mapel++;
        }while(pilih_lagi == 'y' || pilih_lagi == 'Y');
        break;
    case 3:
        rekapDataSiswa(n);
        break;
    default:
        cout << "Pilihan Salah";
	}

	return 0;

}

Penjelasan Video:
https://drive.google.com/file/d/1yFGYdalKVDI6Z6eQi3lM3dB2j7g0MrDV/view?usp=sharing

Komentar

Postingan populer dari blog ini

Microsoft PowerPoint