Selaa lähdekoodia

Урааа это конец 100 процентов

Александр Кайгородов 3 vuotta sitten
vanhempi
commit
f66fa2036f
1 muutettua tiedostoa jossa 66 lisäystä ja 43 poistoa
  1. 66 43
      kursach3/MainWindow.xaml.cs

+ 66 - 43
kursach3/MainWindow.xaml.cs

@@ -87,7 +87,7 @@ namespace kursach3
         {
             String s = Convert.ToString(lblFirst.Text);
             string[] arr = s.Split('.');
-            if (proverkaSimv8(Convert.ToString(lblFirst.Text)))
+            if (proverkaSimv4(Convert.ToString(lblFirst.Text)))
             {
 
                 char[] arr2 = arr[3].ToCharArray();
@@ -161,7 +161,7 @@ namespace kursach3
             int vosmerich;
             int b;
             int c;
-            if (proverkaSimv4(Convert.ToString(lblSecond.Text)))
+            if (proverkaSimv8(Convert.ToString(lblSecond.Text)))
             {
                 b = int.Parse(Convert.ToString(arr[2]));
                 c = int.Parse(Convert.ToString(arr[1]));
@@ -192,7 +192,7 @@ namespace kursach3
             string first;
             string second;
             string operation = Convert.ToString(lblAction.Text);
-            if (proverkaSimv8(Convert.ToString(lblSecond.Text)))
+            if (proverkaSimv108(Convert.ToString(lblFirst.Text), Convert.ToString(lblSecond.Text)))
             {
 
                 char[] arr2 = arr[3].ToCharArray();
@@ -240,12 +240,11 @@ namespace kursach3
         }
         private void btnAnswer8642_Click(object sender, RoutedEventArgs e)
         {
-            String s = Convert.ToString(lblSecond.Text);
-            string ss = Convert.ToString(lblFirst.Text);
-            string[] arr = s.Split('.');
-            string[] arr6 = ss.Split('.');
-            string first;
-            string second;
+            //Объявление переменных, массивов
+            String s;
+            string ss;
+            string[] arr;
+            string[] arr6;
             string answer;
             String sss;
             string[] arr7;
@@ -253,10 +252,16 @@ namespace kursach3
             int vosmerich;
             int b;
             int c;
-            string operation = Convert.ToString(lblAction.Text);
-            if (proverkaSimv8(Convert.ToString(lblSecond.Text)))
+            string operation;
+            if (proverkaSimv108(Convert.ToString(lblFirst.Text), Convert.ToString(lblSecond.Text)))//Проверка на символы
             {
+                s = Convert.ToString(lblSecond.Text);
+                ss = Convert.ToString(lblFirst.Text);
+                arr = s.Split('.');
+                arr6 = ss.Split('.');
+                operation = Convert.ToString(lblAction.Text);
 
+                //Перевод второго числа в десятичную систему 
                 char[] arr2 = arr[3].ToCharArray();
                 int res = 0;
                 for (int i = 0; i < arr2.Length; i++)
@@ -281,44 +286,50 @@ namespace kursach3
                 {
                     res4 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr5[i])) * Math.Pow(8, arr5.Length - i - 1));
                 }
-                second = string.Concat(res4, res3, res2, res);
-                first = string.Concat(arr6[0], arr6[1], arr6[2], arr6[3]);
-                answer = string.Concat(res4 + arr6[0], '.', res3 + arr6[1], '.', res2 + arr6[2], '.', res + arr6[3]);
+
+
                 switch (operation)
                 {
                     case "+":
-                        answer = string.Concat(res4 + Convert.ToInt32(arr6[0]), '.', res3 + Convert.ToInt32(arr6[1]), '.', res2 + Convert.ToInt32(arr6[2]), '.', res + Convert.ToInt32(arr6[3]));
+                        lblResult.Text = string.Concat(res4 + Convert.ToInt32(arr6[0]), '.', res3 + Convert.ToInt32(arr6[1]), '.', res2 + Convert.ToInt32(arr6[2]), '.', res + Convert.ToInt32(arr6[3]));
                         break;
                     case "-":
-                        answer = string.Concat(res4 - Convert.ToInt32(arr6[0]), '.', res3 - Convert.ToInt32(arr6[1]), '.', res2 - Convert.ToInt32(arr6[2]), '.', res - Convert.ToInt32(arr6[3]));
-
+                        lblResult.Text = string.Concat(res4 - Convert.ToInt32(arr6[0]), '.', res3 - Convert.ToInt32(arr6[1]), '.', res2 - Convert.ToInt32(arr6[2]), '.', res - Convert.ToInt32(arr6[3]));
                         break;
                     case "*":
-                        answer = string.Concat(res4 * Convert.ToInt32(arr6[0]), '.', res3 * Convert.ToInt32(arr6[1]), '.', res2 * Convert.ToInt32(arr6[2]), '.', res * Convert.ToInt32(arr6[3]));
+                        lblResult.Text = string.Concat(res4 * Convert.ToInt32(arr6[0]), '.', res3 * Convert.ToInt32(arr6[1]), '.', res2 * Convert.ToInt32(arr6[2]), '.', res * Convert.ToInt32(arr6[3]));
                         break;
 
                 }
-                sss = answer;
-                arr7 = sss.Split('.');
-                if (proverkaSimv4(Convert.ToString(answer)))
-                {
-                    b = int.Parse(Convert.ToString(arr7[2]));
-                    c = int.Parse(Convert.ToString(arr7[1]));
-                    string chetverich = "";
-                    do
-                    {
-                        chetverich = string.Concat(Convert.ToInt32(b % 4), chetverich);
-                        b /= 4;
-                    } while (b > 0);
-                    string shesterich = "";
-                    do
+
+                if(lblResult.Text.Length == 7)
+                {
+                    sss = lblResult.Text;
+                    arr7 = sss.Split('.');
+                    if (proverkaSimv4(Convert.ToString(sss)))
                     {
-                        shesterich = string.Concat(Convert.ToInt32(c % 6), shesterich);
-                        c /= 6;
-                    } while (c > 0);
-                    dvoich = int.Parse(Convert.ToString(arr7[3]));
-                    vosmerich = int.Parse(Convert.ToString(arr7[0]));
-                    lblResult.Text = string.Concat(Convert.ToString(vosmerich, 8), shesterich, chetverich, Convert.ToString(dvoich, 2));
+                        b = int.Parse(Convert.ToString(arr7[2]));
+                        c = int.Parse(Convert.ToString(arr7[1]));
+                        string chetverich = "";
+                        do
+                        {
+                            chetverich = string.Concat(Convert.ToInt32(b % 4), chetverich);
+                            b /= 4;
+                        } while (b > 0);
+                        string shesterich = "";
+                        do
+                        {
+                            shesterich = string.Concat(Convert.ToInt32(c % 6), shesterich);
+                            c /= 6;
+                        } while (c > 0);
+                        dvoich = int.Parse(Convert.ToString(arr7[3]));
+                        vosmerich = int.Parse(Convert.ToString(arr7[0]));
+                        lblResult.Text = string.Concat(Convert.ToString(vosmerich, 8), shesterich, chetverich, Convert.ToString(dvoich, 2));
+                    }
+                }
+                else
+                {
+                    MessageBox.Show("Число не 4-х значное. Перевод в систему невозможен");
                 }
             }
         }
@@ -332,7 +343,7 @@ namespace kursach3
                 MessageBox.Show("Неверный формат");
                 return false;
             }
-            else
+            else if(proverkasimv.Contains("1")|| proverkasimv.Contains("2")||proverkasimv.Contains("3")|| proverkasimv.Contains("4")|| proverkasimv.Contains("5")|| proverkasimv.Contains("6")|| proverkasimv.Contains("7")|| proverkasimv.Contains("8")|| proverkasimv.Contains("9")|| proverkasimv.Contains("0")|| proverkasimv.Contains("."))
             {
                 if (proverkasimv.Length == 7)
                 {
@@ -347,6 +358,10 @@ namespace kursach3
                     MessageBox.Show("Можно использовать только 4-х значные числа");
                 }
             }
+            else
+            {
+                MessageBox.Show("Неверный формат");
+            }
             return false;
 
             //11 13 21 1001
@@ -360,7 +375,7 @@ namespace kursach3
                 MessageBox.Show("Неверный формат");
                 return false;
             }
-            else
+            else if (proverkasimv.Contains("1") || proverkasimv.Contains("2") || proverkasimv.Contains("3") || proverkasimv.Contains("4") || proverkasimv.Contains("5") || proverkasimv.Contains("6") || proverkasimv.Contains("7") || proverkasimv.Contains("8") || proverkasimv.Contains("9") || proverkasimv.Contains("0") || proverkasimv.Contains("."))
             {
                 if (proverkasimv.Length <= 14 && proverkasimv.Length >= 7)
                 {
@@ -375,6 +390,10 @@ namespace kursach3
                     MessageBox.Show("Можно использовать только 4-х значные числа");
                 }
             }
+            else
+            {
+                MessageBox.Show("Неверный формат");
+            }
             return false;
         }
 
@@ -387,7 +406,7 @@ namespace kursach3
                 MessageBox.Show("Неверный формат");
                 return false;
             }
-            else
+            else if (proverkasimv.Contains("1") || proverkasimv.Contains("2") || proverkasimv.Contains("3") || proverkasimv.Contains("4") || proverkasimv.Contains("5") || proverkasimv.Contains("6") || proverkasimv.Contains("7") || proverkasimv.Contains("8") || proverkasimv.Contains("9") || proverkasimv.Contains("0") || proverkasimv.Contains("."))
             {
                 if (proverkasimv.Length <= 14 && proverkasimv.Length >= 7 && proverkasimv2.Length <=14 && proverkasimv2.Length >= 7 || proverkasimv.Length == 7 && proverkasimv2.Length == 7)
                 {
@@ -397,15 +416,19 @@ namespace kursach3
                 {
                     MessageBox.Show("Первое число не указано");
                 }
-                else if (lb_str.Contains(""))
+                else if (proverkasimv.Contains(""))
                 {
                     MessageBox.Show("Второе число не указано");
                 }
-                else if (lb_str.Length > 14 || lb_str.Length < 8)
+                else if (proverkasimv.Length > 14 || proverkasimv.Length < 6 && proverkasimv2.Length > 14 || proverkasimv2.Length < 6)
                 {
                     MessageBox.Show("Можно использовать только 4-х значные числа");
                 }
             }
+            else
+            {
+                MessageBox.Show("Неверный формат");
+            }
             return false;
         }