Jumat, 13 April 2012

Program Struct in Struct

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;
}

Tidak ada komentar:

Posting Komentar