Advertisement
Guest User

Untitled

a guest
Feb 6th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.31 KB | None | 0 0
  1. using System;
  2.  
  3.  
  4.     class MetrixConverter2
  5.     {
  6.        
  7.         //Декларирах ги извън Main  за да имам достъп до тях навсякъде в класа.
  8.          private static double value;
  9.          private static string inpMetrics, outpMetrics;
  10.  
  11.         static void Main()
  12.         {
  13.             //Ако ги бях декларирал извън Main() като properites  на класа , методите по долу нямаше да е необходимо да приемат параметри(по-добро май).
  14.            
  15.            
  16.            
  17.  
  18.             //try-catch-finally конструкция за да обработи грешка при въвеждането.
  19.             try
  20.             {
  21.                 // Сложих всичко в try  за да хване всички грешки при въвеждането
  22.  
  23.                 value = double.Parse(Console.ReadLine());
  24.  
  25.                 inpMetrics = Console.ReadLine();
  26.                 value = ConvToMeters();
  27.  
  28.                 outpMetrics = Console.ReadLine();
  29.                 value = ConvToDest();
  30.  
  31.                 Console.WriteLine(value + " " + outpMetrics);
  32.             }
  33.             catch (FormatException)
  34.             {
  35.                 Console.WriteLine("invalid input!");
  36.  
  37.             }
  38.             catch (ApplicationException)
  39.             {
  40.                 Console.WriteLine("invalid input!");
  41.             }
  42.            
  43.          
  44.                
  45.            
  46.            
  47.         }
  48.  
  49.         private static double ConvToMeters()
  50.         {
  51.             // Обръща въведената value всичко в метри
  52.             switch (inpMetrics)
  53.             {
  54.                 case "mm":
  55.                     return value / 1000;
  56.                 case "cm":
  57.                     return value / 100;
  58.                 case "m":
  59.                     return value;
  60.                 case "mi":
  61.                     return value / 0.000621371192;
  62.                 case "in":
  63.                     return value / 39.3700787;
  64.                 case "km":
  65.                     return value / 0.001;
  66.                 case "ft":
  67.                     return value / 3.2808399;
  68.                 case "yd":
  69.                     return value / 1.0936133;
  70.  
  71.                 default:
  72.                     throw new ApplicationException();
  73.  
  74.             }
  75.         }
  76.         private static double ConvToDest()
  77.         {
  78.             // Превръща обработената value в зададената изходна единица.
  79.             switch (outpMetrics)
  80.             {
  81.                 case "mm":
  82.                     return value * 1000;
  83.                 case "cm":
  84.                     return value * 100;
  85.                 case "m":
  86.                     return value;
  87.                 case "mi":
  88.                     return value * 0.000621371192;
  89.                 case "in":
  90.                     return value * 39.3700787;
  91.                 case "km":
  92.                     return value* 0.001;
  93.                 case "ft":
  94.                     return value * 3.2808399;
  95.                 case "yd":
  96.                     return value * 1.0936133;
  97.  
  98.                 default:
  99.                     throw new ApplicationException();
  100.  
  101.  
  102.             }
  103.          
  104.  
  105.         }
  106.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement