Friday, June 22, 2007

SD: ADT Tugas 22 Juni 2007

//file header.h
/*karena format HTML, maka semua karakter lebih besar (>) dan lebih kecil (<) diganti dengan karakter ((>)) dan ((<)) sorry (^-^)*/

#include (<)conio.h(>)
#include (<)stdio.h(>)

typedef struct{
int hari;
int bulan;
int tahun;
}tanggal;

void tanggalpinjam(tanggal *t);
tanggal tanggalbatasmaks(tanggal t);
void tanggalkembali(tanggal tawal,tanggal takhir);
int denda(tanggal tawal, tanggal takhir);

//file main.c

#include "header.h"

void main()
{
tanggal pinjam,kembali;
tanggalpinjam(&pinjam);
kembali=tanggalbatasmaks(pinjam);
printf("\nTanggal Kembali : %d-%d-%d",kembali.hari,kembali.bulan,kembali.tahun);
tanggalkembali(pinjam,kembali);
getch();
}

//file definition.c

#include "header.h"

void tanggalpinjam(tanggal *t)
{
printf("Input Tanggal Peminjaman : ");
scanf("%d",&(*t).hari);
printf("Input Bulan Peminjaman : ");
scanf("%d",&(*t).bulan);
printf("Input Tahun Peminjaman : ");
scanf("%d",&(*t).tahun);
}

tanggal tanggalbatasmaks(tanggal t)
{
tanggal batas;
batas.tahun=t.tahun;
batas.bulan=t.bulan;
batas.hari=t.hari+3;
if (batas.hari(>)30)
{
batas.bulan=batas.bulan+1;
batas.hari=batas.hari-30;
}
if (batas.bulan(>)12)
{
batas.tahun=batas.tahun+1;
batas.bulan=batas.bulan-12;
}
return batas;
}

void tanggalkembali(tanggal tawal,tanggal takhir)
{
printf("\n\nInput Tanggal Pengembalian : ");
scanf("%d",&takhir.hari);
printf("Input Bulan Pengembalian : ");
scanf("%d",&takhir.bulan);
printf("Input Tahun Pengembalian : ");
scanf("%d",&takhir.tahun);
printf("\nDenda sebesar:Rp. %d",denda(tawal,takhir));
}

int denda(tanggal tawal, tanggal takhir)
{
tanggal sem;
if (takhir.hari(<)tawal.hari)
{
takhir.bulan=takhir.bulan-1;
takhir.hari=takhir.hari+30;
}
sem.hari=takhir.hari-tawal.hari;
if (takhir.bulan(<)tawal.bulan)
{
takhir.tahun=tawal.tahun-1;
takhir.bulan=takhir.bulan+12;
}
sem.bulan=takhir.bulan-tawal.bulan;
sem.tahun=takhir.tahun-tawal.tahun;
sem.hari=sem.hari-3;
if ((sem.hari+(sem.bulan*30)+(sem.tahun*360))*500 (< )0)
return 0;
else
return (sem.hari+(sem.bulan*30)+(sem.tahun*360))*500;
}

No comments: