Advertisement
EmoRz

VotingSystem.1.1

Sep 13th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 22.44 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Delegates
  6. {
  7.     class Program
  8.     {
  9.         const byte all = 33;
  10.  
  11.         static void Main(string[] args)
  12.         {
  13.             List<string> kvorum = new List<string>();
  14.             string[] toName =
  15.          {    "Ахтер Исметов Чилев", "Божинел Василев Христов", "Валентина Маркова Френкева", "Веселин Валентинов Спасов",
  16.              "Владимир Димитров Димитров", "Галин Пенчев Парашкевов", "Гюлвер Исмаил Хасан", "Джипо Николов Джипов", "Диана Добромирова Мирчева",
  17.              "Елка Александрова Неделчева", "Емине Бейти Хасан", "Иво Борисов Димитров", "Илия Христов Илиев", "Калоян Руменов Монев",
  18.              "Левент Али Апти", "Мануел Василев Чутурков", "Марина Петрова Христова", "Мариан Пламенов Иванов", "Милена Дачева Орешкова",
  19.              "Митко Иванов Ханчев", "Надежда Радославова Димитрова", "Наско Стоилов Анастасов", "Радиана Ангелова Димитрова",
  20.              "Рейхан Ридван Вели", "Светослав Теофилов Банков", "Стефан Димов Стефанов", "Стоян Димитров Ненчев", "Таня Петрова Тодорова",
  21.              "Фатме Зелкиф Емин", "Фатме Селим Али","Хами Ибрахимов Хамиев", "Хасан Халилов Хасанов", "Янка Трифонова Георгиева"
  22.         };
  23.             List<string> take = toName.ToList();
  24.             var gerb = new List<string>();
  25.             var bsp = new List<string>();
  26.             var dps = new List<string>();
  27.             var reforma = new List<string>();
  28.             var nezavisim = new List<string>();
  29.             var kauza = new List<string>();
  30.  
  31.             Dictionary<string, List<string>> delegateByPoliticians = new Dictionary<string, List<string>>();
  32.             byte count = 0;
  33.             //Kvorum => string za potvyrjdenie => Tuk
  34.             for (int person = 0; person < all; person++)
  35.             {
  36.                 Console.Write(toName[person] + " => ");
  37.                 var checking = Console.ReadLine();
  38.                 Console.WriteLine(checking);
  39.          
  40.                 if (checking == "tuk")
  41.                 {
  42.                     count++;                    
  43.                     kvorum.Add($"{toName[person]}");
  44.                     take.Remove(toName[person]);
  45.                     //
  46.                     if (toName[person] == "Радиана Ангелова Димитрова" || toName[person] == "Валентина Маркова Френкева"
  47.                         || toName[person] == "Галин Пенчев Парашкевов" || toName[person] == "Гюлвер Исмаил Хасан"
  48.                         || toName[person] == "Мариан Пламенов Иванов" || toName[person] == "Марина Петрова Христова"
  49.                         || toName[person] == "Надежда Радославова Димитрова" || toName[person] == "Наско Стоилов Анастасов"
  50.                         || toName[person] == "Светослав Теофилов Банков" || toName[person] == "Стефан Димов Стефанов")
  51.                     {
  52.                         if (!delegateByPoliticians.ContainsKey("ГЕРБ"))
  53.                         {
  54.                             delegateByPoliticians.Add("ГЕРБ", new List<string>());
  55.                             gerb.Add(toName[person]);
  56.                         }
  57.                         delegateByPoliticians["ГЕРБ"].Add(toName[person]);
  58.                         gerb.Add(toName[person]);
  59.  
  60.                     }
  61.                     else if (toName[person] == "Левент Али Апти" || toName[person] == "Ахтер Исметов Чилев"
  62.                         || toName[person] == "Емине Бейти Хасан" || toName[person] == "Фатме Зелкиф Емин"
  63.                         || toName[person] == "Хами Ибрахимов Хамиев" || toName[person] == "Хасан Халилов Хасанов")
  64.                     {
  65.                         if (!delegateByPoliticians.ContainsKey("Движение за права и свободи"))
  66.                         {
  67.                             delegateByPoliticians.Add("Движение за права и свободи", new List<string>());
  68.                             dps.Add(toName[person]);
  69.  
  70.                         }
  71.                         delegateByPoliticians["Движение за права и свободи"].Add(toName[person]);
  72.                         dps.Add(toName[person]);
  73.  
  74.  
  75.                     }
  76.                     else if (toName[person] == "Елка Александрова Неделчева" || toName[person] == "Илия Христов Илиев"
  77.                        || toName[person] == "Диана Добромирова Мирчева" || toName[person] == "Стоян Димитров Ненчев"
  78.                        || toName[person] == "Таня Петрова Тодорова")
  79.                     {
  80.                         if (!delegateByPoliticians.ContainsKey("Българска социалистическа партия"))
  81.                         {
  82.                             delegateByPoliticians.Add("Българска социалистическа партия", new List<string>());
  83.                             bsp.Add(toName[person]);
  84.  
  85.                         }
  86.                         delegateByPoliticians["Българска социалистическа партия"].Add(toName[person]);
  87.                         bsp.Add(toName[person]);
  88.  
  89.                     }
  90.                     else if (toName[person] == "Митко Иванов Ханчев" || toName[person] == "Веселин Валентинов Спасов"
  91.                       || toName[person] == "Джипо Николов Джипов" || toName[person] == "Иво Борисов Димитров"
  92.                       || toName[person] == "Мануел Василев Чутурков")
  93.                     {
  94.                         if (!delegateByPoliticians.ContainsKey("Реформаторски блок"))
  95.                         {
  96.                             delegateByPoliticians.Add("Реформаторски блок", new List<string>());
  97.                             reforma.Add(toName[person]);
  98.                         }
  99.                         delegateByPoliticians["Реформаторски блок"].Add(toName[person]);
  100.                         reforma.Add(toName[person]);
  101.  
  102.                     }
  103.                     else if (toName[person] == "Божинел Василев Христов" || toName[person] == "Владимир Димитров Димитров"
  104.                         || toName[person] == "Калоян Руменов Монев")
  105.                     {
  106.                         if (!delegateByPoliticians.ContainsKey("Кауза Разград"))
  107.                         {
  108.                             delegateByPoliticians.Add("Кауза Разград", new List<string>());
  109.                             kauza.Add(toName[person]);
  110.                         }
  111.                         delegateByPoliticians["Кауза Разград"].Add(toName[person]);
  112.                         kauza.Add(toName[person]);
  113.  
  114.  
  115.                     }
  116.                     else if (toName[person] == "Фатме Селим Али" || toName[person] == "Милена Дачева Орешкова"
  117.                         || toName[person] == "Рейхан Ридван Вели" || toName[person] == "Янка Трифонова Георгиева")
  118.                     {
  119.                         if (!delegateByPoliticians.ContainsKey("Независим общински съветник"))
  120.                         {
  121.                             delegateByPoliticians.Add("Независим общински съветник", new List<string>());
  122.                             nezavisim.Add(toName[person]);
  123.                         }
  124.                         delegateByPoliticians["Независим общински съветник"].Add(toName[person]);
  125.                         nezavisim.Add(toName[person]);
  126.  
  127.                     }
  128.                 }
  129.             }
  130.             var result = kvorum.Count > 16 ? "Има кворум" : $"Няма кворум, нужни са още/поне {16-kvorum.Count} гласа!";
  131.             Console.WriteLine("..................................................");
  132.             Console.WriteLine("Присъстват по партийни групи:");
  133.             var tempC = 0;
  134.             foreach (var party in delegateByPoliticians)
  135.             {                
  136.                 Console.WriteLine(party.Key);
  137.                 foreach (var person in party.Value)
  138.                 {
  139.                     tempC++;
  140.                     Console.WriteLine($"{tempC}. "+person);
  141.                    
  142.                 }
  143.                 Console.WriteLine();
  144.             }
  145.             Console.WriteLine("..................................................");
  146.             Console.WriteLine($"Гласували общо: {count}");
  147.             Console.WriteLine($"{result}");
  148.             Console.WriteLine($"Присъстват следните съветници => \n"+string.Join($"\n=>", kvorum));
  149.             Console.WriteLine($"Отсъстват следните съветници =>");
  150.             var countMising = 1;
  151.             for (int i = 0; i < take.Count; i++)
  152.             {
  153.                 Console.WriteLine($"{countMising++} => {take[i]}");
  154.             }
  155.             Console.WriteLine("..................................................");
  156.             Dictionary<byte, string> positive = new Dictionary<byte, string>();
  157.             Dictionary<byte, string> negative = new Dictionary<byte, string>();
  158.             Dictionary<byte, string> neutral = new Dictionary<byte, string>();
  159.             Dictionary<byte, string> invalidVotes = new Dictionary<byte, string>();
  160.  
  161.             byte a = 1; byte b = 1; byte c = 1; ;
  162.            
  163.  
  164.             if ( kvorum.Count > 16)
  165.             {
  166.                 Console.WriteLine("Заседанието има кворум и докладните могат да се гласуват!");
  167.                 //работи се с лист от кворума => приема се до доказване на противното,
  168.                 //че за да се приеме докладна трябва да има >50% от гласовете на делегатите.
  169.                 Console.WriteLine("Желате ли да започнете гласуването? Yes/No"+$"\nИмате кворум от => {kvorum.Count} делегата!");
  170.                 var askAction = Console.ReadLine();
  171.              
  172.                 var gerbCountN = new byte[3]{ 0, 0, 0 };
  173.                 var bspCountN = new byte[3] { 0, 0, 0 };
  174.                 var dpsCountN = new byte[3] { 0, 0, 0 };
  175.                 var reformaCountN = new byte [3] { 0, 0, 0 };
  176.                 var kauzaCountN = new byte[3] { 0, 0, 0 };
  177.                 var freeCountN = new byte[3] { 0, 0, 0 };
  178.  
  179.                 while (askAction != "No")
  180.                 {
  181.                     for (int i = 0; i < kvorum.Count; i++)
  182.                     {
  183.                         Console.Write(kvorum[i] + " => ");
  184.                         var voting = Console.ReadLine();
  185.                         Console.WriteLine(voting);
  186.                         if (voting == "z")
  187.                         {
  188.                             positive.Add(a, kvorum[i]);
  189.                             if (gerb.Contains(kvorum[i]))
  190.                             {
  191.                                 gerbCountN[0]++;
  192.                             }
  193.                             if (bsp.Contains(kvorum[i]))
  194.                             {
  195.                                 bspCountN[0]++;
  196.                             }
  197.                             if (dps.Contains(kvorum[i]))
  198.                             {
  199.                                 dpsCountN[0]++;
  200.                             }
  201.                             if (reforma.Contains(kvorum[i]))
  202.                             {
  203.                                 reformaCountN[0]++;
  204.                             }
  205.                             if (kauza.Contains(kvorum[i]))
  206.                             {
  207.                                 kauzaCountN[0]++;
  208.                             }
  209.                             if (nezavisim.Contains(kvorum[i]))
  210.                             {
  211.                                 freeCountN[0]++;
  212.                             }
  213.                             a++;
  214.                         }
  215.                         if (voting == "p")
  216.                         {
  217.                             negative.Add(b, kvorum[i]);
  218.                             if (gerb.Contains(kvorum[i]))
  219.                             {
  220.                                 gerbCountN[1]++;
  221.                             }
  222.                             if (bsp.Contains(kvorum[i]))
  223.                             {
  224.                                 bspCountN[1]++;
  225.                             }
  226.                             if (dps.Contains(kvorum[i]))
  227.                             {
  228.                                 dpsCountN[1]++;
  229.                             }
  230.                             if (reforma.Contains(kvorum[i]))
  231.                             {
  232.                                 reformaCountN[1]++;
  233.                             }
  234.                             if (kauza.Contains(kvorum[i]))
  235.                             {
  236.                                 kauzaCountN[1]++;
  237.                             }
  238.                             if (nezavisim.Contains(kvorum[i]))
  239.                             {
  240.                                 freeCountN[1]++;
  241.                             }
  242.                             b++;
  243.                         }
  244.                         if (voting == "v")
  245.                         {
  246.                             neutral.Add(c, kvorum[i]);
  247.                             if (gerb.Contains(kvorum[i]))
  248.                             {
  249.                                 gerbCountN[2]++;
  250.                             }
  251.                             if (bsp.Contains(kvorum[i]))
  252.                             {
  253.                                 bspCountN[2]++;
  254.                             }
  255.                             if (dps.Contains(kvorum[i]))
  256.                             {
  257.                                 dpsCountN[2]++;
  258.                             }
  259.                             if (reforma.Contains(kvorum[i]))
  260.                             {
  261.                                 reformaCountN[2]++;
  262.                             }
  263.                             if (kauza.Contains(kvorum[i]))
  264.                             {
  265.                                 kauzaCountN[2]++;
  266.                             }
  267.                             if (nezavisim.Contains(kvorum[i]))
  268.                             {
  269.                                 freeCountN[2]++;
  270.                             }
  271.                             c++;
  272.                         }
  273.                         else
  274.                         {
  275.                             continue;
  276.                         }
  277.                      
  278.  
  279.                     }
  280.                     Console.WriteLine("..................................................");
  281.                     Console.WriteLine("Резултат от гласуването =>");
  282.                     Console.WriteLine("За");
  283.                     if (positive.Count() !=0)
  284.                     {
  285.                         foreach (var za in positive)
  286.                         {
  287.                             Console.Write($"{za.Key} поредност на вота => ");
  288.                             foreach (var item in za.Value)
  289.                             {
  290.                                 Console.Write($"{item}");
  291.                             }
  292.                             Console.WriteLine();
  293.                         }
  294.                     }
  295.                     else
  296.                     {
  297.                         Console.Write(" => "+0);
  298.                     }
  299.                     Console.WriteLine("Против");
  300.                     if (negative.Count() != 0)
  301.                     {
  302.                         foreach (var protiv in negative)
  303.                         {
  304.                             Console.Write($"{protiv.Key} поредност на вота => ");
  305.                             foreach (var item in protiv.Value)
  306.                             {
  307.                                 Console.Write(item);
  308.                             }
  309.                             Console.WriteLine();
  310.                         }
  311.                     }
  312.                     else
  313.                     {
  314.                         Console.Write(" => " + 0);
  315.                     }
  316.                     Console.WriteLine("Въздържал се");
  317.                     if (neutral.Count() != 0)
  318.                     {
  319.                         foreach (var pass in neutral)
  320.                         {
  321.                             Console.Write($"{pass.Key} поредност на вота => ");
  322.                             foreach (var item in pass.Value)
  323.                             {
  324.                                 Console.Write(item);
  325.                             }
  326.                             Console.WriteLine();
  327.                         }
  328.                     }
  329.                     else
  330.                     {
  331.                         Console.Write(" => " + 0);
  332.                     }
  333.                     Console.WriteLine("..................................................");
  334.                     var isOk = positive.Count() > kvorum.Count / 2;
  335.                     var p = positive.Count() == 0 ? 0 : positive.Count();
  336.                     var nega = negative.Count() == 0 ? 0:negative.Count();
  337.                     var neutr = neutral.Count() == 0 ? 0:neutral.Count();
  338.                     var invalidV = invalidVotes.Count() == 0 ? 0 : invalidVotes.Count();            
  339.                    
  340.                     Console.WriteLine("..................................................");
  341.                     if (isOk)
  342.                     {
  343.                         Console.WriteLine("Докладната се приема!");                      
  344.                         Console.WriteLine(p+" ЗА");
  345.                         Console.WriteLine(nega + " Против");
  346.                         Console.WriteLine(neutr + " Въздържал се");
  347.                     }
  348.                     else
  349.                     {
  350.                         Console.WriteLine("Докладната се отхвърля!");
  351.                         Console.WriteLine(p + " ЗА");
  352.                         Console.WriteLine(nega + " Против");
  353.                         Console.WriteLine(neutr + " Въздържал се");
  354.                     }
  355.                     Console.WriteLine("..................................................");
  356.                     Console.WriteLine("По политически групи:");
  357.                     Console.WriteLine("..................................................");
  358.                     Console.WriteLine("За");
  359.                     Console.WriteLine("GERB => "+ gerbCountN[0]);
  360.                     Console.WriteLine("BSP => "+ bspCountN[0]);
  361.                     Console.WriteLine("DPS => "+ dpsCountN[0]);
  362.                     Console.WriteLine("Reforma => "+ reformaCountN[0]);
  363.                     Console.WriteLine("Kauza => "+ kauzaCountN[0]);
  364.                     Console.WriteLine("Free => "+ freeCountN[0]);
  365.                     //
  366.                     Console.WriteLine("Против");
  367.                     Console.WriteLine("GERB => " + gerbCountN[1]);
  368.                     Console.WriteLine("BSP => " + bspCountN[1]);
  369.                     Console.WriteLine("DPS => " + dpsCountN[1]);
  370.                     Console.WriteLine("Reforma => " + reformaCountN[1]);
  371.                     Console.WriteLine("Kauza => " + kauzaCountN[1]);
  372.                     Console.WriteLine("Free => " + freeCountN[1]);
  373.                     //
  374.                     Console.WriteLine("Въздържал се:");
  375.                     Console.WriteLine("GERB => " + gerbCountN[2]);
  376.                     Console.WriteLine("BSP => " + bspCountN[2]);
  377.                     Console.WriteLine("DPS => " + dpsCountN[2]);
  378.                     Console.WriteLine("Reforma => " + reformaCountN[2]);
  379.                     Console.WriteLine("Kauza => " + kauzaCountN[2]);
  380.                     Console.WriteLine("Free => " + freeCountN[2]);
  381.                     Console.WriteLine("..................................................");
  382.                     Console.ReadKey();
  383.  
  384.  
  385.  
  386.                     Console.WriteLine("Желате ли да започнете ново гласуване ? Yes/No");
  387.                     Console.ReadKey();
  388.                     //зануляване на стойностите.
  389.                     positive.Clear();
  390.                     neutral.Clear();
  391.                     negative.Clear();
  392.                     invalidVotes.Clear();
  393.                     for (int i = 0; i < gerbCountN.Length; i++)
  394.                     {
  395.                         gerbCountN[i] = 0;
  396.                     }
  397.                     for (int i = 0; i < bspCountN.Length; i++)
  398.                     {
  399.                         bspCountN[i] = 0;
  400.                     }
  401.                     for (int i = 0; i < dpsCountN.Length; i++)
  402.                     {
  403.                         dpsCountN[i] = 0;
  404.                     }
  405.                     for (int i = 0; i < reformaCountN.Length; i++)
  406.                     {
  407.                         reformaCountN[i] = 0;
  408.                     }
  409.                     for (int i = 0; i < kauzaCountN.Length; i++)
  410.                     {
  411.                         kauzaCountN[i] = 0;
  412.                     }
  413.                     for (int i = 0; i < freeCountN.Length; i++)
  414.                     {
  415.                         freeCountN[i] = 0;
  416.                     }
  417.                    
  418.                     askAction = Console.ReadLine();
  419.                 }
  420.                
  421.             }
  422.             Console.ReadKey();
  423.         }
  424.     }
  425. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement