Advertisement
wojtas626

[C] Kolejka

Dec 21st, 2014
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.70 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4.  
  5. #define SIZE 10
  6.  
  7.  
  8. void clrScr()
  9. {
  10.     system("cls");
  11. }
  12.  
  13. void showOptions()
  14. {
  15.     printf("Aby dodac zlecenie wprowadz I\n");
  16.     printf("Aby obsluzyc zlecenie wprowadz O\n");
  17.     printf("Aby zakonczyc wprowadz X\n");
  18. }
  19.  
  20. int checkSize(int taskQueue[])
  21. {
  22.     int result, i;
  23.  
  24.     result = 0;
  25.     for(i = 0; i < SIZE; i++)
  26.     {
  27.         if(taskQueue[i] != 0)
  28.         {
  29.             result++;
  30.         }
  31.     }
  32.     return result;
  33. }
  34.  
  35. int isEmpty(int taskQueue[])
  36. {
  37.     int result, i;
  38.  
  39.     result = 1;
  40.     for (i = 0; i < SIZE; i++)
  41.     {
  42.         if(taskQueue[i] != 0)
  43.         {
  44.             result = 0;
  45.             break;
  46.         }
  47.     }
  48.     return result;
  49. }
  50.  
  51. int isFull(int taskQueue[])
  52. {
  53.     int result, i;
  54.  
  55.     result = 1;
  56.     for (i = 0; i < SIZE; i++)
  57.     {
  58.         if (taskQueue[i] == 0)
  59.         {
  60.             result = 0;
  61.             break;
  62.         }
  63.     }
  64.     return result;
  65. }
  66.  
  67. void showQueue(int taskQueue[])
  68. {
  69.     int i;
  70.     for (i = 0; i < SIZE; i++)
  71.     {
  72.         if (taskQueue[i] == 0)
  73.         {
  74.             printf("__ ");
  75.         }
  76.         else
  77.         {
  78.             printf("%2d ", taskQueue[i]);
  79.         }
  80.     }
  81.     printf("\n\n\n");
  82. }
  83.  
  84.  
  85. void push(int taskQueue[])
  86. {
  87.     int i, j, queueSize;
  88.  
  89.     if (isFull(taskQueue))
  90.     {
  91.         printf("Kolejka pelna - nie moge dodac zlecenia!");
  92.         Sleep(350);
  93.         printf(".");
  94.         Sleep(350);
  95.         printf(".");
  96.         Sleep(350);
  97.         printf(".\n");
  98.         Sleep(350);
  99.     }
  100.     else
  101.     {
  102.         if(isEmpty(taskQueue))
  103.         {
  104.             taskQueue[0] = 1;
  105.         }
  106.         else
  107.         {
  108.             i = 0;
  109.             while(taskQueue[i] == 0)
  110.             {
  111.                 i++;
  112.             }
  113.             queueSize = checkSize(taskQueue);
  114.             for (j = i; j < i + queueSize; j++)
  115.             {
  116.                 taskQueue[j - i] = taskQueue[j];
  117.             }
  118.             for(i = queueSize; i < SIZE; i++)
  119.             {
  120.                 taskQueue[i] = 0;
  121.             }
  122.             i = 1;
  123.             while (taskQueue[i] != 0)
  124.             {
  125.                 i++;
  126.             }
  127.             taskQueue[i] = taskQueue[i - 1] + 1;
  128.         }
  129.     }
  130.     showQueue(taskQueue);
  131. }
  132.  
  133.  
  134. void pop(int taskQueue[])
  135. {
  136.     int i;
  137.  
  138.     if(isEmpty(taskQueue))
  139.     {
  140.         printf("Kolejka pusta - nie moge wyrejestrowac zadnego zlecenia!");
  141.         Sleep(350);
  142.         printf(".");
  143.         Sleep(350);
  144.         printf(".");
  145.         Sleep(350);
  146.         printf(".\n");
  147.         Sleep(350);
  148.     }
  149.     else
  150.     {
  151.         i = 0;
  152.         while(taskQueue[i] == 0)
  153.         {
  154.             i++;
  155.         }
  156.         taskQueue[i] = 0;
  157.     }
  158.     showQueue(taskQueue);
  159. }
  160.  
  161.  
  162. void loop(int taskQueue[])
  163. {
  164.     char input;
  165.  
  166.     showOptions();
  167.     while (1)
  168.     {
  169.         scanf("%c", &input);
  170.         if(input == 'I')
  171.         {
  172.             clrScr();
  173.             push(taskQueue);
  174.             showOptions();
  175.         }
  176.         else if(input == 'O')
  177.         {
  178.             clrScr();
  179.             pop(taskQueue);
  180.             showOptions();
  181.         }
  182.         else if(input == 'X')
  183.         {
  184.             clrScr();
  185.             break;
  186.         }
  187.         else
  188.         {
  189.             clrScr();
  190.             showQueue(taskQueue);
  191.             showOptions();
  192.         }
  193.     }
  194.     printf("Koniec programu!\n");
  195.     printf("Nacisnij dowolny klawisz aby kontynuowac...\n\n");
  196.     getchar();
  197. }
  198.  
  199. void zeroing(int taskQueue[])
  200. {
  201.     int i;
  202.     for(i = 0; i < SIZE; i++)
  203.     {
  204.         taskQueue[i] = 0;
  205.     }
  206. }
  207.  
  208. int main()
  209. {
  210.     int taskQueue[SIZE];
  211.  
  212.  
  213.     zeroing(taskQueue);
  214.     loop(taskQueue);
  215.  
  216.  
  217.     return 0;
  218. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement