Advertisement
_CodeBehind

phone

Feb 13th, 2017
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.43 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace _2._4.Phonee
  5. {
  6.     public class Program
  7.     {
  8.         public static void Main()
  9.         {
  10.             string[] phoneNumbers = Console.ReadLine().Split(' ').ToArray();
  11.             string[] names = Console.ReadLine().Split(' ').ToArray();
  12.  
  13.             var line = Console.ReadLine().Split(' ');
  14.  
  15.             while (line[0] != "done")
  16.             {
  17.                 if (line[0] == "call") // ако командата е call
  18.                 {
  19.                     var splittedNameOrNumber = line[1].ToCharArray(); // сплитвам името/номера
  20.                     bool isLetter = DigitOrLetter(splittedNameOrNumber); // проверявам дали започва с буква или цифра
  21.                     if (isLetter) // ако е буква независимо дали е малка или голяма
  22.                     {
  23.                         CallingName(phoneNumbers, names, line); // викам метода за набиране по име
  24.                     }
  25.                     else if(!isLetter) // ако е цифра
  26.                     {
  27.                         CallingNumber(phoneNumbers, names, line); // викам метода за набиране по номер
  28.                     }
  29.                 }
  30.                 else if (line[0] == "message") // аналогично на команда call
  31.                 {
  32.                     var splittedNameOrNumber = line[1].ToCharArray();
  33.                     bool isLetter = DigitOrLetter(splittedNameOrNumber);
  34.                     if (isLetter)
  35.                     {
  36.                         MessagingName(phoneNumbers, names, line);
  37.                     }
  38.                     else if(!isLetter)
  39.                     {
  40.                         MessagingNumber(phoneNumbers, names, line);
  41.                     }
  42.                 }
  43.                 line = Console.ReadLine().Split(' ');
  44.             }
  45.         }
  46.  
  47.         private static void MessagingNumber(string[] phoneNumbers, string[] names, string[] line)
  48.         {
  49.             for (int i = 0; i < phoneNumbers.Length; i++)
  50.             {
  51.                 if (line[1] == phoneNumbers[i])
  52.                 {
  53.                     phoneNumbers[i] = names[i];
  54.                     Console.WriteLine($"sending sms to {phoneNumbers[i]}...");
  55.                     var sumOfDigits = line[1].ToCharArray();
  56.                     var sum = 0;
  57.                     foreach (var x in sumOfDigits)
  58.                     {
  59.                         if (x > 48 && x <= 57)
  60.                         {
  61.                             sum += x -'0';
  62.                         }
  63.                     }
  64.                     if (sum % 2 == 0)
  65.                     {
  66.                         Console.WriteLine($"meet me there");
  67.                     }
  68.                     else { Console.WriteLine("busy"); }
  69.                     break;
  70.                 }
  71.             }
  72.         }
  73.  
  74.         private static void MessagingName(string[] phoneNumbers, string[] names, string[] line)
  75.         {
  76.             for (int i = 0; i < names.Length; i++)
  77.             {
  78.                 if (line[1] == names[i])
  79.                 {
  80.                     names[i] = phoneNumbers[i];
  81.                     Console.WriteLine($"sending sms to {names[i]}...");
  82.                     var sumOfDigits = phoneNumbers[i].ToCharArray();
  83.                     var sum = 0;
  84.                     foreach (var x in sumOfDigits)
  85.                     {
  86.                         if (x > 48 && x <= 57)
  87.                         {
  88.                             sum += x-'0' ;
  89.                         }
  90.                     }
  91.                     if (sum % 2 == 0)
  92.                     {
  93.                         Console.WriteLine($"meet me there");
  94.                     }
  95.                     else { Console.WriteLine("busy"); }
  96.                     break;
  97.                 }
  98.             }
  99.         }
  100.  
  101.         private static void CallingNumber(string[] phoneNumbers, string[] names, string[] line)
  102.         {
  103.             for (int i = 0; i < phoneNumbers.Length; i++) // проверявам всички номера които са въведени първоначално
  104.             {
  105.                 if (line[1] == phoneNumbers[i]) //ако номерът въведен след команда "call" съвпада с номер от номерата въведени в началото
  106.                 {
  107.                     phoneNumbers[i] = names[i]; // взимам името на съответстващия номер...
  108.                     Console.WriteLine($"calling {phoneNumbers[i]}..."); // ... набирам го
  109.                     var sumOfDigits = line[1].ToCharArray(); //превръщам номера на масив от знаци...
  110.                     var sum = 0;
  111.                     foreach (var x in sumOfDigits) // за всеки знак от масива със знаци....
  112.                     {
  113.                         if (x > 48 && x <= 57) //....проверявам дали е цифра....
  114.                         {
  115.                             sum += x-'0'; // ... ако е цифра събирам аски кода и изваждам аски кода на '0' за да получа реалната стойност на цифрата и я прибавям към сумата на останалите...
  116.                         }
  117.                     }
  118.                     if (sum % 2 == 0)//... ако сумата е четна ...
  119.                     {
  120.                         var min = sum / 60;  //...деля на 60 за минути
  121.                         var sec = sum % 60;  // ... деля процентно за секунди
  122.                         Console.WriteLine($"call ended. duration: 0{min}:{sec}"); // принтирам минутите и секундите
  123.                     }
  124.                     else { Console.WriteLine("no answer"); }
  125.                     break; // защото вече съм намерил човека и номера му
  126.                 }
  127.             }
  128.         }
  129.  
  130.         private static void CallingName(string[] phoneNumbers, string[] names, string[] line)
  131.         {
  132.             for (int i = 0; i < names.Length; i++)//проверявам всички имена които са въведени първоначално
  133.             {
  134.                 if (line[1] == names[i]) //ако името въведено след команда "call" съвпада с име от имената въведени в началото
  135.                 {
  136.                     names[i] = phoneNumbers[i]; // взимам номера съответстващ на името...
  137.                     Console.WriteLine($"calling {names[i]}..."); //... набирам го....
  138.                     var sumOfDigits = phoneNumbers[i].ToCharArray(); //... превръщам номера на масив от знаци
  139.                     var sum = 0;
  140.                     foreach (var x in sumOfDigits) // за всеки знак от масива със знаци....
  141.                     {
  142.                         if (x > 48 && x <= 57) // .... проверявам дали е цифра ....
  143.                         {
  144.                             sum += x -'0'; // ... ако е цифра събирам аски кода и изваждам аски кода на '0' за да получа реалната стойност на цифрата и я прибавям към сумата на останалите...
  145.                         }
  146.                     }
  147.                     if (sum % 2 == 0) //... ако сумата е четна ...
  148.                     {
  149.                         var min = sum / 60; //...деля на 60 за минути
  150.                         var sec = sum % 60; // ... деля процентно за секунди
  151.                         Console.WriteLine($"call ended. duration: 0{min}:{sec}"); // принтирам минутите и секундите
  152.                     }
  153.                     else { Console.WriteLine("no answer"); }
  154.                     break; // защото вече съм намерил човека и номера му
  155.                 }
  156.             }
  157.         }
  158.  
  159.         private static bool DigitOrLetter(char[] splittedNameOrNumber)
  160.         {
  161.             return (splittedNameOrNumber[0] >= 'A' && splittedNameOrNumber[0] <= 'Z') || (splittedNameOrNumber[0] >= 'a' && splittedNameOrNumber[0] <= 'z');
  162.         }
  163.     }
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement