예제 #1
0
        static void Skaitymas(string duom, Figura[] figuros, Apskritimas[] apskritimai, out int n, out int na)
        {
            using (StreamReader reader = new StreamReader(duom))
            {
                string   eilute;
                string[] skaidymas;

                string name;
                int    iterator1 = 0;
                int    iterator2 = 0;

                while ((eilute = reader.ReadLine()) != null)
                {
                    skaidymas = eilute.Split(' ');
                    name      = skaidymas[0];
                    if (skaidymas.Count() > 4)
                    {
                        figuros[iterator1] = new Figura(name);
                        for (int i = 1; i < skaidymas.Length; i = i + 2)
                        {
                            Taskas k = new Taskas(double.Parse(skaidymas[i]), double.Parse(skaidymas[i + 1]));
                            figuros[iterator1].PridetiKampu(k);
                        }
                        iterator1++;
                    }
                    else
                    {
                        apskritimai[iterator2] = new Apskritimas(name, double.Parse(skaidymas[1]), double.Parse(skaidymas[2]), double.Parse(skaidymas[3]));
                        iterator2++;
                    }
                }
                n  = iterator1;
                na = iterator2;
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;
            const int    maxduom = 500;
            const string duom    = "...\\...\\DuomU2.txt";
            const string rez     = "...\\...\\rez.txt";

            if (File.Exists(rez))
            {
                File.Delete(rez);
            }

            const string meniu = "|-------------------------------------------------------------------------------------|\r\n" +
                                 "|          Meniu           |  Taškai  |             Veiksmas                          |\r\n" +
                                 "|-------------------------------------------------------------------------------------|\r\n" +
                                 "| KokiuIrKiek              |     4    | Rasti kokių ir kiek yra figūrų.               |\r\n" +
                                 "|-------------------------------------------------------------------------------------|\r\n" +
                                 "| MaxPerimetras            |     8    | Rasti didžiausią perimetrą turinčios          |\r\n" +
                                 "|                          |          | figūros vardą ir perimetrą.                   |\r\n" +
                                 "|-------------------------------------------------------------------------------------|\r\n" +
                                 "| MaxPlotas                |     8    | Rasti didžiausią plotą turinčios figūros      |\r\n" +
                                 "|                          |          | vardą ir plotą.                               |\r\n" +
                                 "|-------------------------------------------------------------------------------------|\r\n" +
                                 "| KiekStacTrikampiu        |    10    | Rasti stačiųjų trikampių, įbrėžtų į           |\r\n" +
                                 "|                          |          | apskritimus, kiekį (Tikslumas: 0.000001).     |\r\n" +
                                 "|-------------------------------------------------------------------------------------|\r\n" +
                                 "| KiekKvadratu             |    10    | Rasti kvadratų, apibrėžtų apie apskritimus,   |\r\n" +
                                 "|                          |          | kiekį (Tikslumas: 0.000001).                  |\r\n" +
                                 "|-------------------------------------------------------------------------------------|\r\n" +
                                 "| InfoFiguruGrupe          |    12    | Pateikti informaciją apie pageidaujamą        |\r\n" +
                                 "|                          |          | figūrų grupę atskirose eilutėse tokia seka:   |\r\n" +
                                 "|                          |          | (nurodoma grupės kampų skaičius,              |\r\n" +
                                 "|                          |          | pvz.: 5; apskritimams - 0 ):                  |\r\n" +
                                 "|                          |          | -> figūrų kiekis;                             |\r\n" +
                                 "|                          |          | -> kiek yra lygiakraščių figūrų               |\r\n" +
                                 "|                          |          |    (Tikslumas: 0.000001)                      |\r\n" +
                                 "|                          |          |    (apskritimams: figūrų kiekis);             |\r\n" +
                                 "|                          |          | -> bendras figūrų perimetras                  |\r\n" +
                                 "|                          |          |    (apskritimams: bendras apskritimų ilgis);  |\r\n" +
                                 "|                          |          | -> bendras figūrų plotas                      |\r\n" +
                                 "|                          |          |    (apskritimams: bendras apskritimų plotas). |\r\n" +
                                 "|-------------------------------------------------------------------------------------|";

            int n, na;

            Figura[]                 figuros     = new Figura[maxduom];
            Apskritimas[]            apskritimai = new Apskritimas[maxduom];
            Dictionary <string, int> kiekirkokiu = new Dictionary <string, int>();

            kiekirkokiu.Add("Trikampiu", 0);
            kiekirkokiu.Add("Keturkampiu", 0);
            kiekirkokiu.Add("Penkiakampiu", 0);
            kiekirkokiu.Add("Sesiakampiu", 0);
            kiekirkokiu.Add("Septynkampiu", 0);
            kiekirkokiu.Add("Astuonkampiu", 0);
            kiekirkokiu.Add("Devynkampiu", 0);
            kiekirkokiu.Add("Desimtkampiu", 0);
            kiekirkokiu.Add("Apskritimu", 0);


            Skaitymas(duom, figuros, apskritimai, out n, out na);
            Spausdinimas(rez, figuros, n, apskritimai, na, "Pradiniai duomenys: ");

            Console.WriteLine(meniu + "\n");
            Isvesti(rez, meniu + "\n");
            string x = "tuscias";

            while (x != "0")
            {
                Console.Write("Iveskite savo pasirinkima, arba 0, jei norite nutraukti: ");
                Isvesti(rez, "Iveskite savo pasirinkima, arba 0, jei norite nutraukti: ");
                x = Console.ReadLine();
                switch (x)
                {
                case "KokiuIrKiek":
                    Console.WriteLine();
                    Isvesti(rez, "");
                    Console.WriteLine("KokiuIrKiek");
                    Isvesti(rez, "KokiuIrKiek");
                    KiekIrKokiu(figuros, n, apskritimai, na, kiekirkokiu);
                    SpausdintiKiekIrKokiu(rez, kiekirkokiu);
                    Console.WriteLine();
                    Isvesti(rez, "");
                    break;

                case "MaxPerimetras":
                    Console.WriteLine();
                    Isvesti(rez, "");
                    Console.WriteLine("MaxPerimetras");
                    Isvesti(rez, "MaxPerimetras");
                    double maxF, maxA;
                    maxF = DidziausiasPerimetrasFiguros(figuros, n);
                    maxA = DidziausiasPerimetrasApskritimo(apskritimai, na);
                    if (maxF == maxA)
                    {
                        SpausdintiDidziausioPerimetroFiguras(rez, maxF, figuros, apskritimai, n, na, "Didžiausio perimetro figūros: ");
                    }
                    else if (maxF > maxA)
                    {
                        SpausdintiDidziausioPerimetroFiguras(rez, maxF, figuros, apskritimai, n, na, "Didžiausio perimetro figūros: ");
                    }
                    else if (maxA > maxF)
                    {
                        SpausdintiDidziausioPerimetroFiguras(rez, maxA, figuros, apskritimai, n, na, "Didžiausio perimetro figūros: ");
                    }
                    Console.WriteLine();
                    Isvesti(rez, "");
                    break;

                case "MaxPlotas":
                    Console.WriteLine();
                    Isvesti(rez, "");
                    Console.WriteLine("MaxPlotas");
                    Isvesti(rez, "MaxPlotas");
                    double maxFP, maxAP;
                    maxFP = DidziausiasPlotasFiguros(figuros, n);
                    maxAP = DidziausiasPlotasApskritimo(apskritimai, na);
                    if (maxFP == maxAP)
                    {
                        SpausdintiDidziausioPlotoFiguras(rez, maxFP, figuros, apskritimai, n, na, "Didžiausio ploto figūros: ");
                    }
                    else if (maxFP > maxAP)
                    {
                        SpausdintiDidziausioPlotoFiguras(rez, maxFP, figuros, apskritimai, n, na, "Didžiausio ploto figūros: ");
                    }
                    else if (maxAP > maxFP)
                    {
                        SpausdintiDidziausioPlotoFiguras(rez, maxAP, figuros, apskritimai, n, na, "Didžiausio ploto figūros: ");
                    }
                    Console.WriteLine();
                    Isvesti(rez, "");
                    break;

                case "KiekStacTrikampiu":
                    Console.WriteLine();
                    Isvesti(rez, "");
                    Console.WriteLine("KiekStacTrikampiu");
                    Isvesti(rez, "KiekStacTrikampiu");
                    int kiekis = 0;
                    kiekis = KiekIbreztuStaciujuTrikampiu(figuros, n, apskritimai, na);
                    if (kiekis > 0)
                    {
                        Console.WriteLine("Į apskritimus įbrėžtų stačiųjų trikampių kiekis yra: {0}", kiekis);
                        string z = String.Format("Į apskritimus įbrėžtų stačiųjų trikampių kiekis yra: {0}", kiekis);
                        Isvesti(rez, z);
                    }
                    else
                    {
                        Console.WriteLine("Į apskritimus įbrėžtų stačiųjų trikampių nėra");
                        Isvesti(rez, "Į apskritimus įbrėžtų stačiųjų trikampių nėra");
                    }
                    Console.WriteLine();
                    Isvesti(rez, "");
                    break;

                case "KiekKvadratu":
                    Console.WriteLine();
                    Isvesti(rez, "");
                    Console.WriteLine("KiekKvadratu");
                    Isvesti(rez, "KiekKvadratu");
                    int kiek = 0;
                    kiek = KiekIbreztuStaciujuTrikampiu(figuros, n, apskritimai, na);
                    if (kiek > 0)
                    {
                        Console.WriteLine("Apie apskritimus apibrėžtų kvadratų kiekis yra: {0}", kiek);
                        string c = String.Format("Apie apskritimus apibrėžtų kvadratų kiekis yra: {0}", kiek);
                        Isvesti(rez, c);
                    }
                    else
                    {
                        Console.WriteLine("Apie apskritimus apibrėžtų kvadratų nėra");
                        Isvesti(rez, "Apie apskritimus apibrėžtų kvadratų nėra");
                    }
                    Console.WriteLine();
                    Isvesti(rez, "");
                    break;

                case "InfoFiguruGrupe":
                    Console.WriteLine();
                    Isvesti(rez, "");
                    Console.WriteLine("InfoFiguruGrupe");
                    Isvesti(rez, "InfoFiguruGrupe");
                    Console.WriteLine("Įveskite savo pasirinkimą:");
                    Isvesti(rez, "Įveskite savo pasirinkimą:");
                    int kokiaFigura = int.Parse(Console.ReadLine());
                    Isvesti(rez, string.Format("{0}", kokiaFigura));
                    int    figuruKiekis, lygiakrasciuFiguruKiekis;
                    double bendrasFiguruPerimetras, bendrasFiguruPlotas;
                    if (kokiaFigura == 0)
                    {
                        InformacijaApieApskritimus(kokiaFigura, apskritimai, na, out figuruKiekis, out bendrasFiguruPerimetras, out bendrasFiguruPlotas);
                        if (figuruKiekis > 0)
                        {
                            string d = string.Format("Jūsų figūra turi 0 kampų \nTokių figūrų yra {0}; \nBendras jų plotas: {1,8:f}; \nBendras jų perimetras: {2,8:f}", figuruKiekis, bendrasFiguruPerimetras, bendrasFiguruPlotas);
                            Console.WriteLine(d);
                            Isvesti(rez, d);
                        }
                        else
                        {
                            Console.WriteLine("Tokiu figuru nera!");
                            Isvesti(rez, "Tokiu figuru nera!");
                        }
                    }
                    else if (kokiaFigura > 0 && kokiaFigura != 1 && kokiaFigura != 2)
                    {
                        InformacijaApieFiguras(kokiaFigura, figuros, n, out figuruKiekis, out lygiakrasciuFiguruKiekis, out bendrasFiguruPerimetras, out bendrasFiguruPlotas);
                        if (figuruKiekis > 0)
                        {
                            string d = string.Format("Jūsų figūra turi {0} kampus (-ų) \nTokių figūrų yra {1}; \nBendras jų plotas: {2,8:f}; \nBendras jų perimetras: {3,8:f}", kokiaFigura, figuruKiekis, bendrasFiguruPerimetras, bendrasFiguruPlotas);
                            Console.WriteLine(d);
                            Isvesti(rez, d);
                        }
                        else
                        {
                            Console.WriteLine("Tokiu figuru nera!");
                            Isvesti(rez, "Tokiu figuru nera!");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Netinkamas figuros pasirinkimas");
                        Isvesti(rez, "Netinkamas figuros pasirinkimas");
                    }
                    Console.WriteLine();
                    Isvesti(rez, "");
                    break;

                default:
                    if (x != "0")
                    {
                        Console.WriteLine();
                        Isvesti(rez, "");
                        Console.WriteLine(x);
                        Isvesti(rez, x);
                        Console.WriteLine("Netinkamas pasirinkimas");
                        Isvesti(rez, "Netinkamas pasirinkimas");
                        Console.WriteLine();
                        Isvesti(rez, "");
                    }
                    break;
                }
            }
            Console.WriteLine();
            Isvesti(rez, "");
            Console.WriteLine("0");
            Isvesti(rez, "0");
            Console.WriteLine("Programa baigė darbą!");
            Isvesti(rez, "Programa baigė darbą!");
            Console.WriteLine();
            Isvesti(rez, "");
        }