Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // LINK SOAL https://www.dropbox.com/sh/qaih86hmdsadrrh/AAARgvRLhdMbFfQj4TuFLNRna?dl=0
- // LINK TEMPLATE : http://pastebin.com/Rc7A08xG
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- #include <sys/ipc.h>
- #include <sys/types.h>
- #include <sys/sem.h>
- #include <sys/shm.h>
- struct data{
- char nama[21];
- char nat[10];
- char gender[10];
- int j_pen;
- int j_adl;
- int j_chl;
- char destination[10];
- };
- int main(){
- struct sembuf s;
- int h=shmget(121212, sizeof(struct data), IPC_CREAT|0666);
- int e=semget(121212, 1, IPC_CREAT|0666);
- struct data *book=(struct data *)shmat(h,NULL,0666);
- semctl(e,0,SETVAL,0);
- printf("BOOKING - SERVER\n==============================\n\n");
- int r1,r2,r3,r4;
- do{
- s.sem_num=0;
- s.sem_op=-1;
- s.sem_flg=0;
- semop(e,&s,1);
- if(strcasecmp(book->nama,"exit")!=0){
- srand(time(NULL));
- r1=rand()%5+2;//random 2-6
- r2=rand()%9+71;//random G-O
- r3=rand()%5;//random 0-4
- r4=rand()%4+99;//random c-f
- if(strcasecmp(book->nat,"Local")==0){
- printf("=========================\n");
- printf("BOOKING CODE : LC%d%c%d%c\n",r1,r2,r3,r4);//print satu-satu
- printf("=========================\n\n");
- }
- else if(strcasecmp(book->nat,"Tourist")==0){
- printf("=========================\n");
- printf("BOOKING CODE : TS%d%c%d%c\n",r1,r2,r3,r4);
- printf("=========================\n\n");
- }
- if(strcasecmp(book->gender,"Male")==0)
- printf("Name \t\t: Mr. %s\n",book->nama);//bisa pake sprintf
- else {
- char temp[50];
- sprintf(temp,"Mrs. %s",book->nama);//pake cara sprintf
- printf("Name \t\t: %s\n",temp);
- }
- printf("Nationality \t: %s\n",book->nat);
- printf("Adult \t\t: %d\n",book->j_adl);
- printf("Child \t\t: %d\n",book->j_chl);
- printf("Destination \t: %s\n",book->destination);
- int tujuan;
- float pajak,total;
- if(strcasecmp(book->destination,"Jakarta")==0)
- tujuan=1000000;
- else if(strcasecmp(book->destination,"Bandung")==0)
- tujuan=1500000;
- else if(strcasecmp(book->destination,"Malang")==0)
- tujuan=2500000;
- if(strcasecmp(book->nat,"Local")==0){
- pajak=0.1;//10% itu 0.1
- }
- else if(strcasecmp(book->nat,"Tourist")==0){
- pajak=0.25;//25% itu 0.25
- }
- total=(tujuan*(1+pajak)*book->j_adl)+(tujuan*(1+pajak)*book->j_chl*0.5);//ati2 tanda kurungnya
- printf("Total Cost\t: Rp %.2f\n",total);
- printf("THANK YOU, HAVE A NICE TRIP\n=========================\n\n\n");
- }
- }while(strcasecmp(book->nama,"exit")!=0);
- shmdt(&book);
- shmctl(h,IPC_RMID,0);
- semctl(e,0,IPC_RMID);
- }
Advertisement
Add Comment
Please, Sign In to add comment