示例#1
0
        private void Load_Button_Click(object sender, RoutedEventArgs e)
        {
            start_Button.IsEnabled = true;
            save_Button.IsEnabled  = true;
            string exePath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

            using (StreamReader inputFile = new StreamReader(System.IO.Path.Combine(exePath, "plik1.txt")))
            {
                var lineA   = inputFile.ReadLine();
                var valuesA = lineA.Split(';');
                if (!Int32.TryParse(valuesA[0], out clientsCount))
                {
                    throw new Exception();
                }
                clientCount_textBox.Text = clientsCount.ToString();
                DrawX.SendData(mainGrid, clientsCount);
                if (!Int32.TryParse(valuesA[1], out minMass))
                {
                    throw new Exception();
                }
                min_textBox.Text = minMass.ToString();
                if (!Int32.TryParse(valuesA[2], out maxMass))
                {
                    throw new Exception();
                }
                max_textBox.Text = maxMass.ToString();

                clients       = new Point[clientsCount];
                clientsOrders = new int[clientsCount];

                int i = 0;
                while (!inputFile.EndOfStream)
                {
                    var line   = inputFile.ReadLine();
                    var values = line.Split(';');
                    Double.TryParse(values[0], out double value0);
                    Double.TryParse(values[1], out double value1);
                    clients[i] = new Point(value0, value1);
                    Int32.TryParse(values[2], out int value2);
                    clientsOrders[i] = value2;
                    i++;
                }
            }
            DrawX.RemoveClients();
            DrawX.RemoveLines();
            DrawX.DrawClients(clients);
            start_Button.IsEnabled = true;
            save_Button.IsEnabled  = true;
        }
示例#2
0
 private void UpdateParams()
 {
     clientCount_textBox.Dispatcher.Invoke(() => { if (!Int32.TryParse(clientCount_textBox.Text, out clientsCount))
                                                   {
                                                       throw new Exception();
                                                   }
                                           });
     avaMoves = ((clientsCount - 2) * (clientsCount - 3)) / 2;
     DrawX.SendData(mainGrid, clientsCount);
     cadenceMod_textBox.Dispatcher.Invoke(() => { if (!Int32.TryParse(cadenceMod_textBox.Text, out cadenceMod))
                                                  {
                                                      throw new Exception();
                                                  }
                                          });
     cadence = (int)(clientsCount * (cadenceMod / 100.0));
     percMaxTabu_textBox.Dispatcher.Invoke(() => { if (!Double.TryParse(percMaxTabu_textBox.Text, out percMaxTabu))
                                                   {
                                                       throw new Exception();
                                                   }
                                           });
     maxTabu = (int)((percMaxTabu * 0.01) * avaMoves);
     cap_textBox.Dispatcher.Invoke(() => { if (!Int32.TryParse(cap_textBox.Text, out capacity))
                                           {
                                               throw new Exception();
                                           }
                                   });
     min_textBox.Dispatcher.Invoke(() => { if (!Int32.TryParse(min_textBox.Text, out minMass))
                                           {
                                               throw new Exception();
                                           }
                                   });
     max_textBox.Dispatcher.Invoke(() => { if (!Int32.TryParse(max_textBox.Text, out maxMass))
                                           {
                                               throw new Exception();
                                           }
                                   });
     aspirationPlus_textBox.Dispatcher.Invoke(() => { if (!Int32.TryParse(aspirationPlus_textBox.Text, out aspirationPlus))
                                                      {
                                                          throw new Exception();
                                                      }
                                              });
     aspirationPlusPlus_textBox.Dispatcher.Invoke(() => { if (!Int32.TryParse(aspirationPlusPlus_textBox.Text, out aspirationPlusPlus))
                                                          {
                                                              throw new Exception();
                                                          }
                                                  });
 }
示例#3
0
        /*public static double[] percMaxTabu_T = { 0.1, 0.5, 1, 5, 10 };
         * public static int[] cadenceMod_T = { 1, 10, 25, 50, 100 };
         * public static int[] aspirationPlus_T = { 10, 50, 100, 500, 2000 };
         * public static int[] aspirationPlusPlus_T = { 3, 5, 10, 15, 25 };*/

        public MainWindow()
        {
            InitializeComponent();
            windowInited = true;
            DrawX.SendData(mainGrid, clientsCount);
            DrawX.DrawMainStation(main_station);
            string exePath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

            try
            {
                new StreamReader(System.IO.Path.Combine(exePath, "plik1.txt"));
            }
            catch (FileNotFoundException e)
            {
                load_Button.IsEnabled = false;
            }
        }
示例#4
0
        private void Load_Button2_Click(object sender, RoutedEventArgs e)
        {
            start_Button.IsEnabled = true;
            save_Button.IsEnabled  = true;

            OpenFileDialog okienko = new OpenFileDialog();

            okienko.ShowDialog();
            okienko.Filter = "|*.txt";
            string bufor = okienko.FileName;

            if (!bufor.Equals(""))
            {
                using (StreamReader inputFile = new StreamReader(@bufor))   // capacity->(linia_i=4,druga liczba), main baza - linia 9. koordynaty - druga i trzecia liczba
                {
                    int i = 0;
                    clientsCount = 0;
                    List <Point> clientsBuf       = new List <Point>();
                    List <int>   clientsOrdersBuf = new List <int>();
                    while (!inputFile.EndOfStream)
                    {
                        var lineA    = inputFile.ReadLine();
                        var liniaTab = lineA.Split(' ');
                        if (i == 4)
                        {
                            int ii = 0;
                            for (int j = 0; j < liniaTab.Length; j++)
                            {
                                if (Int32.TryParse(liniaTab[j], out capacity))
                                {
                                    ii++;
                                    if (ii == 2)
                                    {
                                        cap_textBox.Dispatcher.Invoke(() => { cap_textBox.Text = capacity.ToString(); });
                                        break;
                                    }
                                }
                            }
                        }
                        else if (i == 9)
                        {
                            int ii = 0, xbuf = -1, ybuf = -1;
                            for (int j = 0; j < liniaTab.Length; j++)
                            {
                                if (Int32.TryParse(liniaTab[j], out ybuf))
                                {
                                    ii++;
                                    if (ii == 2)
                                    {
                                        xbuf = ybuf;
                                    }
                                    else if (ii == 3)
                                    {
                                        main_station = new Point(10 * xbuf, 10 * ybuf);
                                        DrawX.DrawMainStation(main_station);
                                        break;
                                    }
                                }
                            }
                        }
                        else if (i > 9)
                        {
                            int ii = 0, xbuf = -1, ybuf = -1;
                            for (int j = 0; j < liniaTab.Length; j++)
                            {
                                if (Int32.TryParse(liniaTab[j], out ybuf))
                                {
                                    ii++;
                                    if (ii == 2)
                                    {
                                        xbuf = ybuf;
                                    }
                                    else if (ii == 3)
                                    {
                                        clientsBuf.Add(new Point(10 * xbuf, 10 * ybuf, i - 10));
                                    }
                                    else if (ii == 4)
                                    {
                                        clientsOrdersBuf.Add(ybuf);
                                        break;
                                    }
                                }
                            }
                        }
                        i++;
                    }
                    if (debug)
                    {
                        Console.WriteLine(capacity + ", " + main_station.x + ", " + main_station.y);
                    }
                    if (debug)
                    {
                        Console.WriteLine(i);
                    }
                    clientsCount = clientsBuf.Count;
                    DrawX.SendData(mainGrid, clientsCount);
                    clients       = new Point[clientsCount];
                    clientsOrders = new int[clientsCount];
                    for (int j = 0; j < clientsCount; j++)
                    {
                        if (debug)
                        {
                            Console.WriteLine(clientsBuf[j].x + ", " + clientsBuf[j].y + ", " + clientsOrdersBuf[j]);
                        }
                        clients[j]       = clientsBuf[j];
                        clientsOrders[j] = clientsOrdersBuf[j];
                    }
                    clientCount_textBox.Dispatcher.Invoke(() => { clientCount_textBox.Text = clientsCount.ToString(); });
                    DrawX.RemoveClients();
                    DrawX.DrawClients(clients);
                    start_Button.IsEnabled = true;
                }
            }
        }