예제 #1
0
        /// <summary>
        /// Statyczna publiczna metoda SaveBipartitegraph do
        /// wywoływania z innych miejsc programu do zapisywania
        /// konkretnego grafu, pozwala wybrac użytkownikowi gdzie
        /// i pod jaką nazwą plik bedzie zapisany
        /// </summary>
        /// <param name="obj">obiekt klasy BipartiteGraph <see cref="BipartiteGraph"/></param>
        public static void SaveBipartitegraph(BipartiteGraph obj)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Filter = "graph files (*.graph)|*.graph";

            if (saveFileDialog.ShowDialog() == true)
            {
                Serialize(saveFileDialog.FileName, obj);
            }
        }
예제 #2
0
        /// <summary>
        /// Metoda Serialize zapisująca do konkretnego pliku graf
        /// </summary>
        /// <param name="path">ścieżka pliku</param>
        /// <param name="obj">obiekt BipartiteGraph<see cref="BipartiteGraph"/></param>
        private static void Serialize(string path, BipartiteGraph obj)
        {
            if (obj != null)
            {
                using (var fs = new FileStream(path, FileMode.Create))
                {
                    var bf = new BinaryFormatter();

                    bf.Serialize(fs, obj);
                }
            }
        }
예제 #3
0
        /// <summary>
        /// Statyczna metoda IsComplete sprawdzająca czy graf jest zupełny
        /// </summary>
        /// <param name="bipartiteGraph">Przyjmuje jako argument klasę grafu dwudzielnego <see cref="BipartiteGraph"/></param>
        /// <returns>zwraca wartość true false</returns>
        public static bool IsComplete(BipartiteGraph bipartiteGraph)
        {
            for (int i = 0; i < bipartiteGraph.Left.AllVertecs.Count; i++)
            {
                for (int j = 0; j < bipartiteGraph.Right.AllVertecs.Count; j++)
                {
                    if (!bipartiteGraph.Left.AllVertecs[i].connectedWith.Contains(bipartiteGraph.Right.AllVertecs[j]))
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
예제 #4
0
        /// <summary>
        /// Metoda Deserialize wczytująca z konkretnegej ścieżki plik i zwracająca go jako BipartiteGraph <see cref="BipartiteGraph"/>
        /// </summary>
        /// <param name="path">ścieżka do pliku</param>
        /// <returns>Zwraca klasę BipartiteGraph wczytaną z pliku <see cref="BipartiteGraph"/></returns>
        private static BipartiteGraph Deserialize(string path)
        {
            BipartiteGraph temp = default(BipartiteGraph);

            if (File.Exists(path))
            {
                using (var fs = new FileStream(path, FileMode.Open))
                {
                    if (fs.Length > 0)
                    {
                        var bf = new BinaryFormatter();

                        return((BipartiteGraph)bf.Deserialize(fs));
                    }
                }
            }

            return(temp);
        }