Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //LINK : https://www.dropbox.com/s/8z3yo9b72hd17i1/Screen%20Shot%202016-01-21%20at%2011.29.16%20AM.png?dl=0
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <ctype.h>
- #include <string.h>
- #include <sys/types.h>
- #include <sys/sem.h>
- #include <sys/shm.h>
- #include <sys/ipc.h>
- struct data{
- char nama_pelanggan[20];
- char gender[10];
- char majalah[100];
- int bulan;
- char alamat[100];
- };
- int main(){
- struct sembuf s;
- int h=shmget(123456,sizeof(struct data),IPC_CREAT|0666);
- int e=semget(123456,1,IPC_CREAT|0666);
- struct data *langananan=(struct data*)shmat(h,NULL,0666);
- int flag=0,i;
- printf("\n===================================\nPROGRAM PENDAFTARAN MAJALAH-SERVER\n===================================\n\n");
- do{
- printf("\n\nWaiting For Input\n\n");
- s.sem_num=0;
- s.sem_op=-1;
- s.sem_flg=0;
- semop(e,&s,1);
- if(strcasecmp(langananan->nama_pelanggan,"exit")!=0){
- printf("Nama Pelanggan \t\t\t: ");
- if(strcasecmp(langananan->gender,"Male")==0)
- printf("Mr. %s\n",langananan->nama_pelanggan);
- else if(strcasecmp(langananan->gender,"Female")==0)
- printf("Mrs. %s\n",langananan->nama_pelanggan);
- printf("Pilihan Majalah \t\t: %s\n",langananan->majalah);
- printf("Periode Langganan \t\t: %d bulan\n",langananan->bulan);
- printf("Alamat Pengirimana \t\t: %s\n",langananan->alamat);
- int harga;
- if(strcmp(langananan->majalah,"TIME")==0)
- harga=25000;
- else if(strcmp(langananan->majalah,"National Geographic")==0)
- harga=20000;
- else if(strcmp(langananan->majalah,"Femina")==0)
- harga=15000;
- printf("Harga Per Edisi \t\t: Rp. %d,00\n",harga);
- int sebelumDiskon=harga*langananan->bulan;
- printf("Harga Total \t\t\t: Rp. %d,00\n",sebelumDiskon);
- int diskon;
- if(langananan->bulan>18)
- diskon=30;
- else if(langananan->bulan>12)
- diskon=20;
- else if(langananan->bulan>6)
- diskon=10;
- printf("Diskon \t\t\t\t: %d%%\n",diskon);
- int total;
- total=sebelumDiskon-(sebelumDiskon*((float)diskon/100));
- printf("Total yang harus dibayar \t: Rp. %d,00\n",total);
- int pembayaran;
- do{
- printf("Masukan Pembayaran \t\t: Rp. ");
- scanf("%d",&pembayaran);getchar();
- }while(pembayaran<total);
- printf("Pengembalian \t\t\t: Rp. %d,00\n",pembayaran-total);
- printf("Kode Pembayaran \t\t: %c%c%d%c%c\n",langananan->majalah[0],
- langananan->majalah[1],langananan->bulan,langananan->nama_pelanggan[0],langananan->majalah[1]);
- printf("=====================\nORDER COMPLETED\n=====================\n\n");
- }
- else{
- printf("\nExiting Program\n");
- }
- }while(strcasecmp(langananan->nama_pelanggan,"exit")!=0);
- shmdt(&langananan);
- shmctl(h,IPC_RMID,0);
- semctl(e,0,IPC_RMID);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement