Advertisement
Guest User

Rental

a guest
Dec 18th, 2017
362
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.23 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. typedef struct {
  5.     char *Nama;
  6.     float JamM;
  7.     float JamK;
  8.     float JamR;
  9.     float JumK;
  10.     float TotB;
  11. } pengguna;
  12.  
  13. typedef struct {
  14.         float HH;
  15.         float MM;
  16.         float SS;
  17. } Jam;
  18.  
  19. int N=1;
  20. int i=0;
  21. pengguna Dt_Rental[100];
  22. Jam Jam_Masuk[100];
  23. Jam Jam_Keluar[100];
  24.  
  25. void input(){
  26.     system("cls");
  27.     printf("USER %d\n",i+1);
  28.     printf("Nama :"); Dt_Rental[i].Nama = (char*) malloc (30 * sizeof(char)); fflush(stdin); gets(Dt_Rental[i].Nama);
  29.     printf("Jam Masuk : "); scanf("%f %f %f",&Jam_Masuk[i].HH,&Jam_Masuk[i].MM,&Jam_Masuk[i].SS);
  30.     while (Jam_Masuk[i].HH<0 || Jam_Masuk[i].MM<0 || Jam_Masuk[i].SS<0 || Jam_Masuk[i].HH>23 || Jam_Masuk[i].MM>59 || Jam_Masuk[i].SS>59){
  31.         printf("Format Jam Salah\n");
  32.         printf("Jam Masuk : "); scanf("%f %f %f",&Jam_Masuk[i].HH,&Jam_Masuk[i].MM,&Jam_Masuk[i].SS);
  33.     }
  34.     printf("Jam Keluar : "); scanf("%f %f %f",&Jam_Keluar[i].HH,&Jam_Keluar[i].MM,&Jam_Keluar[i].SS);
  35.     while (Jam_Keluar[i].HH<0 || Jam_Keluar[i].MM<0 || Jam_Keluar[i].SS<0 || Jam_Keluar[i].HH>23 || Jam_Keluar[i].MM>59 || Jam_Keluar[i].SS>59) {
  36.         printf("Format Jam Salah\n2");
  37.         printf("Jam Keluar : "); scanf("%f %f %f",&Jam_Keluar[i].HH,&Jam_Keluar[i].MM,&Jam_Keluar[i].SS);
  38.     }
  39.     printf("Kertas Yang Dipakai (Lembar)\t: "); scanf("%f",&Dt_Rental[i].JumK);
  40. }
  41.  
  42. void hitung(){
  43.     Dt_Rental[i].JamM = (Jam_Masuk[i].HH * 3600) + (Jam_Masuk[i].MM * 60) + Jam_Masuk[i].SS;
  44.     Dt_Rental[i].JamK = (Jam_Keluar[i].HH * 3600) + (Jam_Keluar[i].MM * 60) + Jam_Keluar[i].SS;
  45.     Dt_Rental[i].JamR = (Dt_Rental[i].JamK - Dt_Rental[i].JamM) / 3600;
  46.     Dt_Rental[i].TotB = (Dt_Rental[i].JamR * 3000) + (Dt_Rental[i].JumK * 250);
  47.     if (Dt_Rental[i].TotB > 10000)
  48.         Dt_Rental[i].TotB = Dt_Rental[i].TotB - 1000;
  49. }
  50.  
  51. void tampil(){
  52.     system("cls");
  53.     int a,x=0;
  54.     while (x<N){
  55.     printf("---------------- USER %-2d ----------------\n",x);
  56.     printf("Nama   : %s\n",Dt_Rental[x].Nama);
  57.     printf("Masuk  : %.0f.%.0f.%.0f (WIB)\n",Jam_Masuk[x].HH,Jam_Masuk[x].MM,Jam_Masuk[x].SS);
  58.     printf("Keluar : %.0f.%.0f.%.0f (WIB)\n",Jam_Keluar[x].HH,Jam_Keluar[x].MM,Jam_Keluar[x].SS);
  59.     printf("Durasi : %.0f Jam\n",Dt_Rental[x].JamR);
  60.     printf("Kertas : %.0f Lembar\n",Dt_Rental[x].JumK);
  61.     printf("Total  : Rp %.4f\n",Dt_Rental[x].TotB);
  62.     x++;
  63.     }
  64.     printf("Ketik Apa Saja, Untuk Kembali Ke Menu");
  65.     getche();
  66.     main();
  67. }
  68.  
  69.  
  70. void rental(){
  71.     int a;
  72.     while(i<N){
  73.         input();
  74.         hitung();
  75.         i++;
  76.         printf("Ketik 0, Untuk Kembali Ke Menu\nKetik 1 Untuk Melanjutkan\n "); scanf("%d",&a);
  77.         switch (a){
  78.             case 0 : main(); break;
  79.             case 1 : N++; break;
  80.         }
  81.     }
  82. }
  83.  
  84. void menu(){
  85.     system("cls");
  86.     printf("+-------------- SELAMAT DATANG --------------+\n");
  87.     printf("| USER TERDAFTAR                        %4d |\n",i);
  88.     printf("+--------------------------------------------+\n");
  89.     printf("| 1. INPUT USER                              |\n");
  90.     printf("| 2. TAMPILKAN DATA                          |\n");
  91.     printf("| 9. KELUAR                                  |\n");
  92.     printf("+--------------------------------------------+\n");
  93.    
  94. }
  95.  
  96. int main(){
  97.     int a=0;
  98.     menu();
  99.     printf("Pilih : "); scanf("%d",&a);
  100.     switch (a){
  101.         case 9 : return 0; break;
  102.         case 1 : rental(); break;
  103.         case 2 : tampil(); break;
  104.         default : main();
  105.     }
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement