Sanady

Zastavka

Mar 4th, 2019
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.43 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #include "cp_data1.h"
  5.  
  6. void mainMenu(int menu);
  7. void cp_data();
  8. void printZastavky();
  9. void printNejakuZastavku(int cislo);
  10. void printNajblizsiSpoj(int cStanici, int sMin, int sHod);
  11.  
  12. int main()
  13. {
  14.     int di;
  15.     printf("===============================================================\n");
  16.     printf("\t (1) - Vyber zastavky\n");
  17.     printf("\t (2) - Zobrazenie CP\n");
  18.     printf("\t (3) - Zistenie najblisieho spoja\n");
  19.     printf("\t (4) - Koniec programu\n");
  20.     printf("===============================================================\n");
  21.     printf("\nVloz svoj vyber z menu: ");
  22.     scanf("%d", &di);
  23.     mainMenu(di);
  24.     return 0;
  25. }
  26.  
  27. void mainMenu(int menu)
  28. {
  29.     int poradie;
  30.     if(menu == 1)
  31.     {
  32.         printf("Vyber poradie zastavky: ");
  33.         scanf("%d", &poradie);
  34.         if(poradie <= 1)
  35.         {
  36.             printf("Chybny vstup");
  37.         }
  38.         else
  39.         {
  40.             printNejakuZastavku(poradie);
  41.         }
  42.     }
  43.     else if(menu == 2)
  44.     {
  45.         printZastavky();
  46.     }
  47.     else if(menu == 3)
  48.     {
  49.         int bStanica;
  50.         int sMin;
  51.         int sHod;
  52.         printf("Vyber si stanicu: ");
  53.         scanf("%d", &bStanica);
  54.         printf("Vyber si hodinu odchodu: ");
  55.         scanf("%d", &sHod);
  56.         printf("Vyber si minutu odchodu: ");
  57.         scanf("%d", &sMin);
  58.  
  59.         printNajblizsiSpoj(bStanica, sMin, sHod);
  60.     }
  61.     else if(menu == 4)
  62.     {
  63.         exit(0);
  64.     }
  65. }
  66.  
  67. void cp_data(){
  68.     char left_space[10] = "\t";
  69.     int width = 17;
  70.     printf("\n... [SPECIFIKACIA CESTOVNEHO PORIADKU] ...\n\n");
  71.  
  72.     // casovy rozdiel medzi 2 po sebe iducimi zastavkami
  73.     printf("%s%-*s %d min\n", left_space, width, "DELTA:", DELTA);
  74.     // hodina odchodu prveho spoja z 1. zastavky
  75.     printf("\n");
  76.     printf("%s%-*s %02d\n", left_space, width, "PRVY_SPOJ_H:", PRVY_SPOJ_H);
  77.     // minuta odchodu prveho spoja z 1. zastavky
  78.     printf("%s%-*s %02d\n", left_space, width, "PRVY_SPOJ_M:", PRVY_SPOJ_M);
  79.     // posledna hodina, kedy linka premava
  80.     printf("%s%-*s %02d\n", left_space, width, "POSLED_SPOJ_H:", POSLED_SPOJ_H);
  81.     printf("\n");
  82.     // hodina zaciatku rannej spicky
  83.     printf("%s%-*s %02d\n", left_space, width, "RANO_START:", RANO_START);
  84.     // hodina konca rannej spicky
  85.     printf("%s%-*s %02d\n", left_space, width, "RANO_END:", RANO_END);
  86.     printf("\n");
  87.     // hodina zaciatku poobednej spicky
  88.     printf("%s%-*s %02d\n", left_space, width, "POOBEDE_START:", POOBEDE_START);
  89.     // hodina konca poobednej spicky
  90.     printf("%s%-*s %02d\n", left_space, width, "POOBEDE_END:", POOBEDE_END);
  91.     printf("\n");
  92.     // frekvencia premavania linky (v minutach) mimo spicky
  93.     printf("%s%-*s %d min\n", left_space, width, "INTERVAL_NORMAL:", INTERVAL_NORMAL);
  94.     // frekvencia premavania linky (v minutach) v rannej spicke
  95.     printf("%s%-*s %d min\n", left_space, width, "INTERVAL_RANO:", INTERVAL_RANO);
  96.     // frekvencia premavania linky (v minutach) v poobednej spicke
  97.     printf("%s%-*s %d min\n", left_space, width,"INTERVAL_POOBEDE:", INTERVAL_POOBEDE);
  98.     printf("\n..........................................\n");
  99. }
  100.  
  101. void printZastavky()
  102. {
  103.     int i, j, m; // i-hodina j-minuta
  104.     printf("\n... [CESTOVNY PORIADOK - 1 ZASTAVKY] ...\n\n");
  105.     printf("Hodina | Minuta\n");
  106.     for(i = PRVY_SPOJ_H; i < POSLED_SPOJ_H; i ++)
  107.     {
  108.         m = 0;
  109.         printf("%d | ", i);
  110.         for(j = 0; j < 60; j++)
  111.         {
  112.             if(i >= RANO_START && i <= RANO_END)
  113.             {
  114.                 m += INTERVAL_NORMAL - INTERVAL_RANO;
  115.                 if(m < 60)
  116.                 {
  117.                     printf("%d ", m);
  118.                 }
  119.             }
  120.             else if(i >= POOBEDE_START && i <= POOBEDE_END)
  121.             {
  122.                 m += INTERVAL_NORMAL - INTERVAL_POOBEDE;
  123.                 if(m < 60)
  124.                 {
  125.                     printf("%d ", m);
  126.                 }
  127.             }
  128.             else
  129.             {
  130.                 m += INTERVAL_NORMAL;
  131.                 if(m < 60)
  132.                 {
  133.                     printf("%d ", m);
  134.                 }
  135.             }
  136.         }
  137.         printf("\n");
  138.     }
  139. }
  140.  
  141. void printNejakuZastavku(int cislo)
  142. {
  143.     int i, j, m; // i-hodina j-minuta
  144.     printf("\n... [CESTOVNY PORIADOK - %d ZASTAVKY] ...\n\n", cislo);
  145.     printf("Hodina | Minuta\n");
  146.     for(i = PRVY_SPOJ_H; i < POSLED_SPOJ_H; i ++)
  147.     {
  148.         m = 0;
  149.         printf("%d | ", i);
  150.         for(j = 0; j < 60; j++)
  151.         {
  152.             if(i >= RANO_START && i <= RANO_END)
  153.             {
  154.                 m += INTERVAL_NORMAL + (cislo * DELTA) - INTERVAL_RANO;
  155.                 if(m < 60)
  156.                 {
  157.                     printf("%d ", m);
  158.                 }
  159.             }
  160.             else if(i >= POOBEDE_START && i <= POOBEDE_END)
  161.             {
  162.                 m += INTERVAL_NORMAL + (cislo * DELTA) - INTERVAL_POOBEDE;
  163.                 if(m < 60)
  164.                 {
  165.                     printf("%d ", m);
  166.                 }
  167.             }
  168.             else
  169.             {
  170.                 m += INTERVAL_NORMAL + (cislo * DELTA);
  171.                 if(m < 60)
  172.                 {
  173.                     printf("%d ", m);
  174.                 }
  175.             }
  176.         }
  177.         printf("\n");
  178.     }
  179. }
  180.  
  181. void printNajblizsiSpoj(int cStanici, int sMin, int sHod)
  182. {
  183.     int i, j, m, sminuty; // i-hodina j-minuta
  184.     for(i = PRVY_SPOJ_H; i < POSLED_SPOJ_H; i ++)
  185.     {
  186.         m = 0;
  187.         //printf("%d | ", i);
  188.         for(j = 0; j < 60; j++)
  189.         {
  190.             if(i >= RANO_START && i <= RANO_END)
  191.             {
  192.                 m += INTERVAL_NORMAL + (cStanici * DELTA) - INTERVAL_RANO;
  193.                 if(m < 60 && sHod == i && sMin < m)
  194.                 {
  195.                     sminuty = m;
  196.                 }
  197.             }
  198.             else if(i >= POOBEDE_START && i <= POOBEDE_END)
  199.             {
  200.                 m += INTERVAL_NORMAL + (cStanici * DELTA) - INTERVAL_POOBEDE;
  201.                 if(m < 60 && sHod == i && sMin < m)
  202.                 {
  203.                     sminuty = m;
  204.                 }
  205.             }
  206.             else
  207.             {
  208.                 m += INTERVAL_NORMAL + (cStanici * DELTA);
  209.                 if(m < 60 && sHod == i && sMin < m)
  210.                 {
  211.                     sminuty = m;
  212.                 }
  213.             }
  214.         }
  215.         //printf("\n");
  216.     }
  217.     printf("Tvoj najblizi spoj je o %d hodin a %d minut", sHod, sminuty);
  218. }
Advertisement
Add Comment
Please, Sign In to add comment