Berikut adalah source code dari Algoritma C++ Struktur bersarang,, untuk menampilkan data mahasiswa beserta mata kuliah yang diambil turut serta jumlah sks dan nilai mata kuliahnya. Prosedur penginputan data menggunakan array dimensi 1 bersifat dinamis dimana jumlah data dapat ditentukan oleh user.
Program berikut telah ditesting menggunakan Borlan C++ versi 5.02 dengan kompilasi yang menghasilkan nilai Error = 0.
Code :
//struc in struct
#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#include<iomanip.h>
struct data_matkul
{
//char kode_matkul[3];
char Mata_Kuliah[20];
float Nilai;
};
struct Mahasiswa
{
char Nim[11];
char Nama[20];
data_matkul unggul[50];
};
int n;
Mahasiswa M[50];
main()
{
int jlh_mk;
//clrscr();
cout<<"Masukan Jumlah Mahasiswa : ";
cin>>n;
for ( int i=1; i<=n; i++ )
{
cout<<"\nData Mahasiswa ke-"<<i;
cout<<endl;
cout << "Nim : "; gets ( M[i].Nim );
cout << "Nama : "; gets ( M[i].Nama );
cout << "\n";
cout<<"\nJumlah Mata Kuliah yang diambil "<<M[i].Nama<<" : ";
cin>>jlh_mk;
for (int j=1; j<=jlh_mk; j++)
{
cout<<endl;
// cout<<"Kode Mata Kuliah : ";
// gets(M[j].unggul[j].kode_matkul);
cout<<"Nama Mata Kuliah : ";
gets(M[i].unggul[j].Mata_Kuliah);
cout<<"Nilai : ";
cin>>M[i].unggul[j].Nilai;
}
}
cout << "\n----------------------------------------------------------------------\n";
cout << "No Nim Nama Mahasiswa Mata Kuliah Nilai\n";
cout << "----------------------------------------------------------------------\n";
for ( int i=1; i<=n; i++ )
{
cout<<endl;
cout<<setw(3)<<setiosflags(ios::left)<<i;
cout<<setw(13)<<setiosflags(ios::left)<<M[i].Nim;
cout<<setw(25)<<setiosflags(ios::left)<<M[i].Nama;
for (int j=1; j<=jlh_mk; j++)
{
cout<<setw(25)<<setiosflags(ios::left)<<M[i].unggul[j].Mata_Kuliah;
cout<<setw(4)<<setprecision(3)<<M[i].unggul[j].Nilai;
cout<<endl;
cout<<"\t\t\t\t\t ";
}
}
cout << "\n---------------------------------------------------------------------\n";
getch();
return 0;
}
Program berikut telah ditesting menggunakan Borlan C++ versi 5.02 dengan kompilasi yang menghasilkan nilai Error = 0.
Code :
//struc in struct
#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#include<iomanip.h>
struct data_matkul
{
//char kode_matkul[3];
char Mata_Kuliah[20];
float Nilai;
};
struct Mahasiswa
{
char Nim[11];
char Nama[20];
data_matkul unggul[50];
};
int n;
Mahasiswa M[50];
main()
{
int jlh_mk;
//clrscr();
cout<<"Masukan Jumlah Mahasiswa : ";
cin>>n;
for ( int i=1; i<=n; i++ )
{
cout<<"\nData Mahasiswa ke-"<<i;
cout<<endl;
cout << "Nim : "; gets ( M[i].Nim );
cout << "Nama : "; gets ( M[i].Nama );
cout << "\n";
cout<<"\nJumlah Mata Kuliah yang diambil "<<M[i].Nama<<" : ";
cin>>jlh_mk;
for (int j=1; j<=jlh_mk; j++)
{
cout<<endl;
// cout<<"Kode Mata Kuliah : ";
// gets(M[j].unggul[j].kode_matkul);
cout<<"Nama Mata Kuliah : ";
gets(M[i].unggul[j].Mata_Kuliah);
cout<<"Nilai : ";
cin>>M[i].unggul[j].Nilai;
}
}
cout << "\n----------------------------------------------------------------------\n";
cout << "No Nim Nama Mahasiswa Mata Kuliah Nilai\n";
cout << "----------------------------------------------------------------------\n";
for ( int i=1; i<=n; i++ )
{
cout<<endl;
cout<<setw(3)<<setiosflags(ios::left)<<i;
cout<<setw(13)<<setiosflags(ios::left)<<M[i].Nim;
cout<<setw(25)<<setiosflags(ios::left)<<M[i].Nama;
for (int j=1; j<=jlh_mk; j++)
{
cout<<setw(25)<<setiosflags(ios::left)<<M[i].unggul[j].Mata_Kuliah;
cout<<setw(4)<<setprecision(3)<<M[i].unggul[j].Nilai;
cout<<endl;
cout<<"\t\t\t\t\t ";
}
}
cout << "\n---------------------------------------------------------------------\n";
getch();
return 0;
}
Tidak ada komentar:
Posting Komentar