SHARE
TWEET

JustFindsYourAges

JOHNYTHEWINNER Apr 4th, 2015 (edited) 332 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2.  
  3. public class HappyBirthday
  4. {
  5.     public static void Main()
  6.     {
  7.  
  8.         string AgeNowStr; // Тук потребителя въвежда на колко години е в момента//
  9.         int AgeNow; // При коректно въведено число, то се задава на тази променлива//
  10.         int AgeLater; // Това ще е възрастта му след X години//
  11.         bool canProceed = false;
  12.         string BirthdayAlready;// Тук потребителят въвежда дали вече е имал рожден ден през тази година//
  13.         int HasOrNot; // Това ще е стойност 0 ако е имал рожден ден през тази година и стойност 1 ако е имал рожден ден през тази година//
  14.         int XYears; // Това ще е КОРЕКТНИЯТ на потребителя за колко години да се пресметне//
  15.         string XYearsStr; //Това ще е изборът на потребителя за колко години да се пресметне//
  16.         int AgeInXYears; // Това ще е възрастта му след Х на брой години//
  17.         bool isNumber; // Проверка дали въведеното от потребителя е число//
  18.  
  19.  
  20.  
  21.  
  22.         Console.WriteLine("Здравейте!");   //Поздравяваме потребителя//
  23.  
  24.  
  25.                 AskAgeAgain:    // Тук ще го връщаме, докато се научи да познава числата//
  26.  
  27.         Console.Write(" На колко години сте? Не се притеснявайте, няма да кажа на никого!");    // Искаме от потребителя да въведе възрастта си//
  28.         AgeNowStr = Console.ReadLine();       // Задаваме въведената информация на string AgeNowStr//
  29.         isNumber = int.TryParse(AgeNowStr, out AgeNow);
  30.  
  31.         // Проверяваме дали е число и ако е, го задаваме като стойност на AgeNow//
  32.         if (!isNumber)
  33.         {
  34.             Console.WriteLine("Хайде да не се бъзикаме от самото начало? Годините се въвеждат с числа!");
  35.             goto AskAgeAgain; // Връщаме потребителя в началото докато не въведе число //
  36.         }
  37.  
  38.  
  39.         else  // Ако всичко е ок, продължаваме напред. :) //
  40.         {
  41.  
  42.         if (AgeNow <= 0 && AgeNow >= -40)  // Проверяваме дали не е въведено отрицателно число в границата до -40 //
  43.             {
  44.              Console.WriteLine("Вероятно още сте в студентските гащи на баща си. Вижте си ЕГН-то и въведете отново!");  // Ако се е объркал го подсещаме //
  45.              goto AskAgeAgain; // И го връщаме да пробва пак //
  46.             }
  47.  
  48.         else // Явно става все по-умен, нека върви напред! //
  49.         if (AgeNow <= 7 && AgeNow >= 1)   // Проверяваме дали не е прекалено малък за да може да пише (7 е примерна година) //
  50.             {
  51.              Console.WriteLine("Малкия, още не си се научил да четеш, а вече пишеш! Вашите ще ти се карат, кажи на кака ти да седне пред компютъра!");
  52.                     goto AskAgeAgain;
  53.             }
  54.         if (AgeNow >= 99 && AgeNow <= 100)   // Проверяваме дали не е столетник //
  55.             {
  56.              Console.WriteLine("Евала! На тези години, с тази пенсия и пред компютър? Страхотно! Сигурно ли е, че имате пулс?");
  57.              goto AskAgeAgain; // Връщаме го да си преброи годините пак //
  58.             }
  59.          else
  60.          if (AgeNow <= -41 || AgeNow >= 101)  // Проверяваме дали не е въведено прекалено голямо число (отрицателно или положително и е примерно) //
  61.             {
  62.              Console.WriteLine("Сигурни ли сте, че можете да броите до толкова? Ако цифрата е вярна, щяхте да сте в Гинес, а не пред компютъра!");  // Ако се е объркал го подсещаме //
  63.              goto AskAgeAgain; // И го връщаме да пробва пак //
  64.              }
  65.           else
  66.              {
  67.               AskBirthAgain:  // Тук ще го връщаме, когато натисне нещо различно от или N! //
  68.               Console.Write(" Имахте ли вече ЧРД тази година? Въведете Y за ДА  или N  за НЕ "); // Питаме дали вече е имал ЧРД за да изведем точни години по-късно //
  69.               BirthdayAlready = Console.ReadLine();    // Задаваме въведеното на BirthdayAlready //
  70.           if (BirthdayAlready == "Y") // Проверяваме дали е натиснал Y //
  71.              { HasOrNot = 0; goto WrongLimit; } // Ако го е направил, задаваме стойност 0 на HasOrNot, защото пресметнатите години ще са валидни за цялата търсена година //
  72.           if (BirthdayAlready == "N") // Проверяваме дали е натиснал N //
  73.              { HasOrNot = 1; goto WrongLimit; }      // Задаваме стойност  1 за да я ползваме като добавка при пресмятането след избраните години. Като добавим 1 ще покажм на колко ще е в края на търсената година, а не просто по същото време//
  74.           else
  75.  
  76.               Console.Write("Изрично упоменах Y или N! Я, да опитаме пак дали познаваш буквите!"); // Подсещаме го, че трябва да натисне Y или N //
  77.               goto AskBirthAgain; // И го връщаме обратно //
  78.               }
  79.               WrongLimit: // Тук ще го връщаме ако въведе некоректни стойности //
  80.               Console.Write("След колко години искате да пресметна възрастта Ви?"); // Очакваме избора на потребителя за колко време да пресметнем //
  81.               XYearsStr = Console.ReadLine(); // Задаваме на XYearsStr въведеното от него//
  82.               isNumber = int.TryParse(XYearsStr, out XYears); // Проверяваме дали е число и ако да - задаваме го на XYears //
  83.  
  84.            if (!isNumber)          // Тук правим проверка дали изобщо е въвел число//
  85.               {
  86.               Console.WriteLine("Май споменах число? Опитайте пак!");
  87.               goto WrongLimit; // Връщаме потребителя в началото докато не въведе число //
  88.               }
  89.            else
  90.  
  91.            if (XYears >= 100)         // Проверка дали не иска да живее прекалено дълго:) //
  92.               {
  93.                Console.WriteLine("Не че съм песимист ама след толкова години дали ще си пишем отново за да видим дали съм сметнал вярно? Хайде от мен да мине столетнико!");
  94.               }
  95.  
  96.            if (HasOrNot == 1)            // роверка дали ще има рожден ден в тази година след пресмятането или ще е минал! //
  97.               {
  98.                   AgeLater = AgeNow + XYears;   // Задаваме възраст по същото време след избраните години //
  99.                 Console.WriteLine("След " + XYears + " години по същото време ще сте на " + AgeLater + " години.");
  100.                 AgeLater = AgeNow + XYears + HasOrNot;     // Добавяме 1-ца за да му кажем на колко ще е в края на годината //
  101.                 Console.WriteLine("Все пак в края на годината ще сте на " + AgeLater + " години, така че не забравяйте да почерпите!");
  102.                 Console.WriteLine("Сега Ви благодаря, че ми загубихте времето с тази толкова важна за Вас информация. Хайде със здраве!");    // Вадим съобщение и го изпращаме по живо, по здраво //
  103.               }
  104.            else
  105.  
  106.            if (HasOrNot == 0)
  107.               {
  108.                   AgeLater = AgeNow + XYears;        // Задаваме възраст по същото време след избраните години. Няма да събираме с нищо,зщото по това време рождения му ден ще е минал //
  109.                Console.WriteLine("След " + XYears + " години по същото време ще сте на " + AgeLater + " години.");
  110.                Console.WriteLine("Сега Ви благодаря, че ми загубихте времето с тази толкова важна за Вас информация. Хайде със здраве!");
  111.                }
  112.         }
  113.     }
  114. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top