Project OOP + Video Penjelasan
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
Posting Komentar