Selasa, 03 April 2018

Tugas Data Mahasiswa

/* file:177006077 */
#include<stdio.h>

typedef struct{
int Tanggal;
   int Bulan;
   int Tahun;
} Tanggal;

typedef struct{
char NPM[20];
   char Nama[20];
   Tanggal tglLahir;
   char Kelas[1];
   float IPK;
} Mahasiswa;

Mahasiswa MakeMahasiswa(){
Mahasiswa mhs;
   char c;


printf("         Input Data Mahasiswa         \n\n");

printf(" NPM\t\t: "); scanf ("%s",mhs.NPM);
while((c=getchar() != '\n' &&c != EOF));

printf(" Nama\t\t: "); gets (mhs.Nama);
printf(" Tanggal Lahir (contoh:11/11/2000)\n");
printf("     \t\t: ");
scanf("%d/%d/%d",&mhs.tglLahir.Tanggal,&mhs.tglLahir.Bulan,&mhs.tglLahir.Tahun);

printf(" Kelas\t\t: "); scanf ("%s",mhs.Kelas);
printf(" IPK\t\t: "); scanf ("%f",&mhs.IPK);

return mhs;
}

void TulisMahasiswa(Mahasiswa mhs){
printf("                          Output  Data Mahasiswa   \n\n");
   printf("+------------+----------------------+---------------+-------+-------+\n");
   printf("| %-10s | %-20s | %-7s | %-3s | %-5s |\n",
    "NPM",
         "Nama Lengkap",
         "Tanggal Lahir",
         "Kelas",
         "IPK");
   printf("+------------+----------------------+---------------+-------+-------+\n");
   printf("| %-10s | %-20s | %d-%d-%-7d   | %-5s | %-6.2f|\n",mhs.NPM,mhs.Nama,mhs.tglLahir.Tanggal,
mhs.tglLahir.Bulan,mhs.tglLahir.Tahun,mhs.Kelas,mhs.IPK);
printf("+------------+----------------------+---------------+-------+-------+\n");

}

int main(){
int x;
   Mahasiswa mhs;
   mhs = MakeMahasiswa();
   printf("\n\n\n");
   TulisMahasiswa(mhs);

   getchar();
   getchar();
   return 0;
}

Analisis: program diatas menggunakan 1 fungsi ,1 procedur dan 2 struct . program fungsi yaitu MakeDataMahasiswa() untuk membaca inputan dan si simpan dalam variable bertipe data mahasiswa yang telah bertipe data struck dan procedur TulisDataMahasiswa untuk membaca output dan memanggil data yang telah di tulis sebelumnya dan menampilkan hasilnya seperti dibawah ini:

0 komentar:

Posting Komentar