PDA

View Full Version : Program Jasa Travel delphi-c


KiBa_Bunshin
01-09-2010, 10:16 AM
Om Gwa stuck bgt nhh d void Cari nama dll..cz gwa cupu abiz :shy:..Please Help me:D...nhh programna en gwa mke tpe data pointer..klo ada yg salah tlong bnerin yah om :-"..




#include <stdio.h>
#include <stdlib.h>
#include <conio2.h>

typedef struct
{
char kode[5],kj[10],np[20],alamat[30];
long ht,htk;
int jml;
}travel;
typedef travel tr;

void menupilihan2();
void isidata(int n,long *total,tr *tra);
void hapusdata(int n,tr *tra,long *total,int *i);
void carinama (int n,tr *tra,long total,int i);
void tampil(int n,tr *tra,long total,int i);

int main(int argc, char *argv[])
{
tr *tra;
int i,n=0,pilih,pilihcari,ketemu;
long total;
do
{
textbackground(BLACK);textcolor(RED);clrscr();
gotoxy(29,1);printf("========================");
gotoxy(9,2);printf(" TUGAS UAS PEMROGRAMAN 1 ");
gotoxy(13,3);printf(" 2008/2009 ");
gotoxy(29,4);printf("========================");
textcolor(RED);
gotoxy(31,6);printf("TRAVEL MAJU MUNDUR");
textcolor(RED);
gotoxy(29,7);printf("========================");
gotoxy(30,8);printf("Menu Pilihan\n");
gotoxy(30,9);printf("1. Isi data\n");
gotoxy(30,10);printf("2. Hapus Data di depan\n");
gotoxy(30,11);printf("3. Tampil data\n");
gotoxy(30,12);printf("4. Cari\n");
gotoxy(30,13);printf("0. Keluar\n");
gotoxy(30,14);printf("========================");
gotoxy(30,16);printf("========================");
gotoxy(30,15);printf("Pilihan Anda : ");scanf("%i",&pilih);


switch(pilih)
{
case 1 : clrscr();
i=0;
printf("Banyaknya Data : ");scanf("%i",&n);
tra=(tr*)malloc(sizeof(travel)* n);
isidata(n,&total,tra);getch();break;
case 2 : clrscr();
hapusdata(n,tra,&total,&i);
if(i>n)
printf("Data Kosong\n");
else
printf("Data sudah dihapus\n");
getch();break;
case 3 : clrscr();
if(i==n)
printf("Data Kosong\n");
else
tampil(n,tra,total,i);
getch();break;
case 4 :clrscr();
do
{
clrscr();
menupilihan2();
gotoxy(17,16);gotoxy(19,13);printf("Pilihan Anda : ");scanf("%i",&pilihcari);
while (pilihcari<0 || pilihcari>3)
{
gotoxy(17,18);textcolor(RED);printf("Salah Memilih Menu....Ulangi!!!");
gotoxy(17,19);printf("Tekan Enter!");getch();
gotoxy(17,18);clreol();gotoxy(17,19);clreol();
gotoxy(32,16);clreol();textcolor(15);textcolor(BLA CK);scanf("%i",&pilihcari);
}
switch(pilihcari)
{
case 1 : clrscr();
if(i==n)
printf("Data Kosong\n");
else
carinama(n,tra,total,i);
getch();break;
getch();break;
case 2 : clrscr();
getch();break;
case 3 : clrscr();
getch();break;
}
}while(pilihcari != 0);break;
}
}while(pilih!=0);
return 0;
}




void menupilihan2()
{

gotoxy(19,7);printf("Menu Cari Data");
gotoxy(19,8); printf("++++++++++++++");
gotoxy(19,9);printf("1. Cari Nama Tertentu");
gotoxy(19,10);printf("2. Cari Jurusan Tertentu");
gotoxy(19,11);printf("0. Kembali Ke Menu Pilihan");

}

void isidata(int n,long *total,tr *tra)
{
int i;


*total=0;
for(i=0;i<n;i++)
{
printf("masukan(1)untuk kode Bandung-Jakarta \n");
printf("masukan(2)untuk kode Bandung-Cirebon \n");
printf("masukan(3)untuk kode Bandung-Tasikmalaya \n");
printf("Data Ke-%i\n",i+1);
printf("Nama Penumpang : ");fflush(stdin);gets((tra+i)->np);
printf("Alamat : ");fflush(stdin);gets((tra+i)->alamat);
printf("Kode Jurusan : ");fflush(stdin);gets((tra+i)->kode);
while(strcmpi((tra+i)->kode,"1")!=0 && strcmpi((tra+i)->kode,"2")!=0 && strcmpi((tra+i)->kode,"3")!=0)
{
printf("Kode jurusan Salah...ulangi!\n");
printf("Kode Jurusan : ");fflush(stdin);gets((tra+i)->kode);
}

printf("Jumlah tiket : ");scanf("%i",&(tra+i)->jml);
if(strcmpi((tra+i)->kode,"1")==0)
{
strcpy((tra+i)->kj,"Jakarta");
(tra+i)->htk = 65000;
}
else
if(strcmpi((tra+i)->kode,"2")==0)
{
strcpy((tra+i)->kj,"Cirebon");
(tra+i)->htk = 85000;
}
else
{
strcpy((tra+i)->kj,"Tasikmalaya");
(tra+i)->htk = 90000;
}
(tra+i)->ht=(tra+i)->htk*(tra+i)->jml;
*total=*total+(tra+i)->ht;

}
}

void hapusdata(int n,tr *tra,long *total,int *i)
{

if (n==0)
*i=n;
else
{
*total=*total-(tra+*i)->ht;
free(tra+*i);
*i=*i+1;
}

}

void tampil(int n,tr *tra,long total,int i)
{
int j,no;
printf("Data Penumpang\n");
printf("===========\n");
no=1;
for(j=i;j<n;j++)
{
printf("Data Ke-%i\n\n",no);
printf("Nama Penumpang: %s\n",(tra+i)->np);
printf("Alamat : %s\n",(tra+i)->alamat);
printf("Kode Jurusan : %s\n",(tra+i)->kode);
printf("Jurusan : %s\n",(tra+j)->kj);
printf("Jumlah tiket : %i\n",(tra+i)->jml);
printf("Harga Tiket : %li\n",(tra+j)->htk);
printf("Harga Total : %li\n\n",(tra+j)->ht);
no++;
}
printf("\nTotal Bayar : %li\n",total);
}
void carinama(int n,tr *tra,long total,int i)
{
char namacari[9];
int Ia,Ib,k,j; //Ia=indeks atas,Ib=indeks bawah,k=titik tengah
int ketemu;
//Binary Search
printf("NAMA Yang Dicari : ");fflush(stdin);gets(namacari);
ketemu=0;
Ia=0;
Ib=n-1;
while(!ketemu && Ia<=Ib)
{
k=(Ia+Ib)/2;
if(strcmpi((tra+i)->carinama)==0)
ketemu=1;
else
{
if(strcmpi(tra[k].np,namacari)<0)
Ia=k+1;
else
Ib=k-1;

}
}

if(ketemu==1)
{
clrscr();
printf("Nama Penumpang: %s\n",(tra+i)->np);
printf("Alamat : %s\n",(tra+i)->alamat);
printf("Kode Jurusan : %s\n",(tra+i)->kode);
printf("Jurusan : %s\n",(tra+j)->kj);
printf("Jumlah tiket : %i\n",(tra+i)->jml);
printf("Harga Tiket : %li\n",(tra+j)->htk);
printf("Harga Total : %li\n\n",(tra+j)->ht);
}
else
printf("NAMA %s tidak ada\n",namacari);
}