Latihan soal

05/01/2010 12:05

//structure-array-function lat nilai mhs

#include <conio.h>
#include <iostream.h>
#include <stdio.h>

char *keterangan(float rata,char ket[10]);
garis()ihan
{
cout<<"================================"<<endl;
}

main()
{
    struct
   {char nim[8], nama[20];
    float nil1,nil2;
   }mhs[10];

   char grade,ket[10];
   float rata[10];
   int i,n;

   clrscr();
   cout<<"Masukan jumlah data : ";cin>>n;
   for(i=1; i<=n; i++)
   {
       cout<<endl<<"Data Ke "<<i<<endl;
       cout<<"Masukan nim mahasiswa  : ";cin>>mhs[i].nim;
      cout<<"Masukan nama mahasiswa : ";cin>>mhs[i].nama;
      cout<<"Nilai ke 1 : ";cin>>mhs[i].nil1;
      cout<<"Nilai ke 2 : ";cin>>mhs[i].nil2;
      rata[i]=(mhs[i].nil1+mhs[i].nil2)/2;

      if(rata[i] > 80)
          grade='A';
      else if(rata[i] > 70)
          grade='B';
      else if(rata[i] > 50)
          grade='C';
      else if(rata[i] > 40)
          grade='D';
      else
          grade='E';
   }

   clrscr();
   cout<<"     Daftar Nilai Mahasiswa     "<<endl;
   garis();
   cout<<"No NIM    Nama    Rata-Rata  Grade"<<endl;
    garis();
   for(i=1; i<=n; i++)
   {
        cout<<i;
       gotoxy(4,wherey());cout<<mhs[i].nim;
      gotoxy(9,wherey());cout<<mhs[i].nama;
       printf("%8.0f",rata[i]);
       gotoxy(30,wherey());cout<<grade<<endl;
   }
   garis();
   getch();
}

char *keterangan(float rata,char ket[10])
{
    if(rata>40)
       strcpy(ket,"Lulus");
   else
       strcpy(ket,"Gagal");
}

 

===========================================================

//honor pegawai honorer - array dg 2 function

#include <conio.h>
#include <iostream.h>
#include <stdio.h>

ljam(int jmljam, int lbhjam);
gaji(int jmljam, float honor);

garis()
{
    cout<<"=======================================\n";
}

main()
{
    char nama[10][20];
   int i,n,jmljam[10],lbhjam[10];
   float honor[10];
   clrscr();
   cout<<"Input Banyak karyawan : ";cin>>n;
   for(i=1; i<=n; i++)
   {
       cout<<"Nama Pegawai : ";cin>>nama[i];
      cout<<"Jumlah jam Kerja : ";cin>>jmljam[i];
   }
   //Tampilan OUTput
   cout<<"Daftar Honor Pegwai Honorer"<<endl;
   cout<<"    PT ALAKADARNYA"<<endl;
   garis();
   cout<<"NO Nama     Jumlah     Kelebihan  Honor"<<endl;
   cout<<"   Pegawai  Jam Kerja  Jam Kerja       "<<endl;
   garis();
   for(i=1; i<=n; i++)
   {
      cout<<i;
      gotoxy(4,wherey());cout<<nama[i];
      gotoxy(15,wherey());cout<<jmljam[i];
      lbhjam[i]=ljam(jmljam[i],lbhjam[i]);
      gotoxy(25,wherey());cout<<lbhjam[i];
      honor[i]=gaji(jmljam[i],honor[i]);
      printf("%14.0f \n",honor[i]);
   }
   garis();

getch();
}

ljam(int jmljam, int lbhjam)
{
     if (jmljam>8)
       lbhjam=jmljam-8;
   else
      lbhjam=lbhjam;
   return lbhjam;
}

gaji(int jmljam, float honor)
{
    if(jmljam>8)
       honor=15000+((jmljam-8)*5000);
   else
       honor=15000;
   return honor;
}

======================================================================

//Pembelian dengan array-function

long int belanja[5],bayar[5],diskon[5];
char bonus[5][20];
clrscr();

cout<<" Input data : ";cin>>n;
for(i=1; i<=n; i++)
{
    cout<<"\n Data ke : "<<i<<endl;
    cout<<"Besar Pembelian Barang Rp. ";cin>>belanja[i];
    diskon[i]=potong(diskon[i],belanja[i],bonus[i]);
    cout<<"Besar Diskon Yang Diberikan Rp. "<<diskon[i]<<endl;
    cout<<"Bonus Yang Didapat : "<<bonus[i]<<endl;
    bayar[i]=belanja[i]-diskon[i];
    cout<<"Besar Harga Yang Harus Dibayarkan Rp. "<<bayar[i]<<endl;
}
getch();
}
potong(float diskon,long int belanja,char bonus[20])
{
if (belanja >= 5000000)
    {
    diskon=0.35*belanja;
    strcpy(bonus,"Payung");
    }
else if (belanja >=1000000)
    {
    diskon=0.2*belanja;
    strcpy(bonus,"Buku");
    }
else
    {
    diskon=0;
    strcpy(bonus,"Tidak Ada");
    }
return diskon;
}