/// <summary> /// Geriausių žaidėjų atranka pagal pozicija /// </summary> /// <param name="K"> Krepšininkų duomenys </param> /// <param name="Poz"> Krepšininkų pagal pozicijas duomenys </param> /// <param name="pozz"> Pozicija skirta atrinkimui </param> static void Atrinkti(Komanda K, Komanda Poz, string pozz) { int k = -1; // Indeksas geriausio žaidėjo double max = 0; // Daugiausiai surinktų taskų per varžybas for (int i = 0; i < K.Imti(); i++) { if (pozz == K.Imti(i).ImtiPozicija()) { if (K.Imti(i).ImtiVid() > max) { max = K.Imti(i).ImtiVid(); k = i; } } } // Įdedamas žaidėjas į pozicijos kontruktorių if (k >= 0) { Poz.Deti(K.Imti(k)); } // Tikrinama ar yra žaidėjų turinčių tokį patį vidurkį for (int i = 0; i < K.Imti(); i++) { if (i != k && pozz == K.Imti(i).ImtiPozicija()) { if (K.Imti(i).ImtiVid() == max) { Poz.Deti(K.Imti(i)); } } } }
/// <summary> /// Duomenų nuskaitymo iš failo metodas /// </summary> /// <param name="K"> Krepšininkų duomenys </param> /// <param name="fv"> Duomenys </param> static void Skaityti(Komanda K, string fv) { int n = File.ReadAllLines(fv).Count(); using (StreamReader reader = new StreamReader(fv, Encoding.GetEncoding(1257))) { for (int i = 0; i < n; i++) { string line = reader.ReadLine(); string[] parts = line.Split(';'); string komanda = parts[0]; string pav = parts[1]; string var = parts[2]; int ugis = int.Parse(parts[3]); int metai = int.Parse(parts[4]); string poz = parts[5]; int suzaista = int.Parse(parts[6]); int taskai = int.Parse(parts[7]); Zaidejas Z = new Zaidejas(komanda, pav, var, poz, ugis, metai, suzaista, taskai); K.Deti(Z); } } }
/// <summary> /// Šalinami žaidėjai kurie dalyvavo tik vienose rungtynėse /// </summary> /// <param name="Poz">Krepšininkų pagal pozicijas duomenys</param> static void Salinti(Komanda Poz) { int k = Poz.Imti(); for (int i = 0; i < k; i++) { if (Poz.Imti(i).ImtiSk() <= 1) { Poz.Salinti(i); k--; i--; } } }
/// <summary> /// Kelių skirtingų komandų žaidėjai užima pirmasias vietas /// </summary> /// <param name="Poz"> Krepšininkų pagal pozicijas duomenys </param> /// <param name="k"> Komandų skaičius </param> /// <param name="komandos"> Naujas komandų masyvas </param> static void Nustatyti(Komanda Poz, ref int k, ref string[] komandos) { for (int i = 0; i < Poz.Imti(); i++) { if (i <= 3) { int a = TikrintiArYra(Poz.Imti(i).ImtiKom(), k, komandos); if (a > 0) { komandos[k] = Poz.Imti(i).ImtiKom(); k++; } } } }
/// <summary> /// Komandų pagal pozicijas išvedimas į failą /// </summary> /// <param name="fv"> Duomenų falias </param> /// <param name="Poz"> Krepšininkų pagal pozicijas duomenys </param> /// <param name="antraste"> Antraštė skirta pasakyti kokios pozicijos žaidėjas </param> static void Isvesti(string fv, Komanda Poz, string antraste) { string virsus = "-------------------------------------------------------------------------------\r\n" + "| Vardas | Pavarde | Ugis | Komanda | Vid.Pelnyti taskai|\r\n" + "-------------------------------------------------------------------------------"; using (StreamWriter fr = new StreamWriter(fv, true, Encoding.GetEncoding(1257))) { fr.WriteLine(antraste); fr.WriteLine(virsus); for (int i = 0; i < Poz.Imti(); i++) { fr.WriteLine(Poz.Imti(i).ToString()); } fr.WriteLine("-------------------------------------------------------------------------------"); } }
//----------------------------------------------------------------------------------- static void Main(string[] args) { Komanda K = new Komanda(); Komanda P = new Komanda(); // Puolejų konteineris Komanda G = new Komanda(); // Gynejų konteineris Komanda C = new Komanda(); // Centrų konteineris int k = 0; // Masyvas geriausių komandų string[] komandos = new string[Cn]; // Kreipinys į duomenų skaitymo metodą Skaityti(K, CFd); // Kreipiniai į atrinkimo metodus Atrinkti(K, P, "Puolejas"); Atrinkti(K, G, "Gynejas"); Atrinkti(K, C, "Centras"); // Kreipiniai į šalinimo metodus Salinti(P); Salinti(G); Salinti(C); // Nustatyti , kurių komandų žaidėjas užima pirmąsias tris vietas Nustatyti(P, ref k, ref komandos); Nustatyti(G, ref k, ref komandos); Nustatyti(C, ref k, ref komandos); // Išvesti duomenis į failą if (File.Exists(CFr)) { File.Delete(CFr); } Isvesti(CFr, K, "Krepšinio komandų žaidėjai"); Isvesti(CFr, P, "\nGERIAUSIUJU PUOLEJU SARASAS"); Isvesti(CFr, G, "\nGERIAUSIUJU GYNEJU SARASAS"); Isvesti(CFr, C, "\nGERIAUSIUJU CENTRU SARASAS"); Isvesti2(CFr, ref komandos, ref k); }