Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //LINK SOAL : https://www.dropbox.com/s/s0qki5su9pdoj8d/Screen%20Shot%202016-01-19%20at%208.07.24%20PM.png?dl=0
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- #include <sys/ipc.h>
- #include <sys/sem.h>
- #include <sys/shm.h>
- #include <sys/types.h>
- struct data{
- char namaUser[100];
- char namaUserDepan[100];
- char namaUserBelakang[100];
- char genre[100];
- char title[100];
- };
- int main(){
- struct sembuf s;
- int h=shmget(123456,sizeof(struct data),IPC_CREAT|0666);
- int e=semget(123456,1,IPC_CREAT|0666);
- semctl(e,0,SETVAL,0);
- int flag,i;
- struct data *buku=(struct data*)shmat(h,NULL,0666);
- printf("==========================================\nE-LIBRARY\nSERVER SIDE\n==========================================\n");
- do{
- printf("\nWaiting For Confirmation\n");
- s.sem_num=0;
- s.sem_op=-1;
- s.sem_flg=0;
- semop(e,&s,1);
- if(strcasecmp("Exit",buku->namaUser)!=0){
- //karena harus di balik printnya
- //nama bekalang, nama depan
- printf("Nama User : %s, %s\n",buku->namaUserBelakang,buku->namaUserDepan);
- srand(time(NULL));
- int randomAngka;
- randomAngka=rand()%900+100;
- printf("Book Code : %c%c%d\n",buku->title[0],buku->title[1],randomAngka);
- int price,randomPrice;
- randomPrice=rand()%71+30;
- if(strcasecmp("Horror",buku->genre)==0){
- price=500*randomPrice;
- }
- else if(strcasecmp("Science",buku->genre)==0){
- price=800*randomPrice;
- }
- else if(strcasecmp("Fantasy",buku->genre)==0){
- price=600*randomPrice;
- }
- printf("Book Price : Rp. %d,00\n",price);
- int pay;
- do{
- printf("Masukan Payment : ");
- scanf("%d",&pay);fflush(stdin);getchar();
- }while(pay<price);
- printf("Change : Rp. %d,00\n",pay-price);
- }
- }while(strcasecmp("Exit",buku->namaUser)!=0);
- shmdt(&buku);
- shmctl(h,IPC_RMID,0);
- semctl(e,0,IPC_RMID);
- }
Advertisement
Add Comment
Please, Sign In to add comment