示例#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 Randomize_Button_Click(object sender, RoutedEventArgs e)
        {
            start_Button.IsEnabled = true;
            save_Button.IsEnabled  = true;
            UpdateParams();

            // *** losowanie pozycji klientów i rysowanie ich na mapie ***
            clients       = new Point[clientsCount];
            clientsOrders = new int[clientsCount];
            for (int i = 0; i < clientsCount; i++)
            {
                clients[i]       = new Point(rnd.Next(0, 1000), rnd.Next(0, 1000), i);
                clientsOrders[i] = rnd.Next(minMass, maxMass + 1);
            }
            DrawX.RemoveClients();
            DrawX.RemoveLines();
            DrawX.DrawClients(clients);
            start_Button.IsEnabled = true;
            save_Button.IsEnabled  = true;
        }
示例#3
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;
                }
            }
        }