Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Threading;
- namespace ZADATAK_BANKA
- {
- class Program
- {
- static int k = 0;
- static int brojUplatnica = 0;
- static AutoResetEvent a = new AutoResetEvent(true);
- static SemaphoreSlim semafor = new SemaphoreSlim(15);
- static int red1 = 0;
- static int red2 = 0;
- static int red3 = 0;
- static void radnoVreme()
- {
- Thread.Sleep(17000);
- k++;
- Console.WriteLine("........POSTA SE ZATVARA........\n");
- }
- static void Salter3()
- {
- Console.WriteLine("Klijent popunjava uplatnicu/ce na salteru 3.");
- red3++;
- Thread.Sleep(brojUplatnica * 40);
- Console.WriteLine("KLIJENT IZLAZI SA SALTERA.");
- red3--;
- Console.WriteLine("Klijent prolazi pored obezbedjenja i izlazi iz banke.");
- semafor.Release();
- }
- static void Salter1()
- {
- Console.WriteLine("Klijent popunjava uplatnicu/ce na salteru 1.");
- red1++;
- Thread.Sleep(brojUplatnica * 40);
- Console.WriteLine("KLIJENT IZLAZI SA SALTERA.");
- red1--;
- Console.WriteLine("Klijent prolazi pored obezbedjenja i izlazi iz banke.");
- semafor.Release();
- }
- static void Salter2()
- {
- Console.WriteLine("Klijent popunjava uplatnicu/ce na salteru 2.");
- red2++;
- Thread.Sleep(brojUplatnica * 40);
- Console.WriteLine("KLIJENT IZLAZI SA SALTERA.");
- red2--;
- Console.WriteLine("Klijent prolazi pored obezbedjenja i izlazi iz banke.");
- semafor.Release();
- }
- static int najmanji()
- {
- if(red1 > red2)
- {
- return 2;
- }
- if(red1 < red2)
- {
- return 1;
- }
- else
- {
- return 50;
- }
- }
- static void Banka()
- {
- a.WaitOne();
- Console.WriteLine("Klijent je usao u banku.");
- Console.WriteLine("Obezbedjenje provera klijenta.");
- a.Reset();
- semafor.Wait();
- Console.WriteLine("Klijent popunjava uplatnice.");
- Random r = new Random();
- brojUplatnica = r.Next(1, 5);
- Console.WriteLine("Klijent ime {0} uplatnica.", brojUplatnica);
- int najmanjiRed = najmanji();
- if(brojUplatnica > 3)
- {
- Salter3();
- }
- else if (brojUplatnica < 3 && najmanjiRed==1)
- {
- Salter1();
- }
- else if(najmanjiRed==2)
- {
- Salter2();
- }
- }
- static void Main(string[] args)
- {
- Thread nit = new Thread(radnoVreme);
- nit.Start();
- while(k == 0)
- {
- Thread t = new Thread(Banka);
- t.Start();
- Thread.Sleep(70);
- }
- Console.WriteLine("Broj izvrsenih uplata je: {0}", brojUplatnica);
- Console.ReadLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement