Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- namespace KD1
- {
- class Program
- {
- static void Main(string[] args)
- {
- const string duomenuFailas1 = @"..\..\Duomenys1.txt";
- const string duomenuFailas2 = @"..\..\Duomenys2.txt";
- const string rezultatuFailas = @"..\..\Rezultatai.txt";
- Fakultetas fak1 = NuskaitytiDuomenis(duomenuFailas1);
- Fakultetas fak2 = NuskaitytiDuomenis(duomenuFailas2);
- Fakultetas fak1_filter = ArMaziauUz(fak1, 6);
- Fakultetas fak2_filter = ArMaziauUz(fak2, 7);
- fak1_filter.Rikiavimas();
- fak2_filter.Rikiavimas();
- SpausdintiRezultatus(rezultatuFailas, fak1, fak2, fak1_filter, fak2_filter, KurDaugiau(fak1_filter, fak2_filter));
- }
- private static Fakultetas NuskaitytiDuomenis(string failas)
- {
- string[] eilutes = File.ReadAllLines(@failas, Encoding.UTF8);
- string[] eilute;
- Fakultetas fak = new Fakultetas(eilutes[0]);
- for (int i = 1; i < eilutes.Count(); i++)
- {
- eilute = eilutes[i].Split(' ');
- int pazymiuSkaicius = eilute.Count() - 3;
- int[] pazymiai = new int[pazymiuSkaicius];
- for (int p = 0; p < pazymiuSkaicius; p++)
- {
- pazymiai[p] = int.Parse(eilute[p + 3]);
- }
- Studentas stud = new Studentas(eilute[0], eilute[1], eilute[2], pazymiai, pazymiuSkaicius);
- fak.PridetiStudenta(stud);
- }
- return fak;
- }
- private static Fakultetas ArMaziauUz(Fakultetas fak, int uz_kiek)
- {
- Fakultetas fakultetas = new Fakultetas(fak.GautiPavadinima());
- for (int i = 0; i < fak.StudentuSkaicius; i++)
- {
- int[] pazymiai = fak.GautiStudenta(i).GautiPazymius();
- for (int j = 0; j < pazymiai.Count(); j++)
- {
- if(pazymiai[j] < uz_kiek)
- {
- fakultetas.PridetiStudenta(fak.GautiStudenta(i));
- break;
- }
- }
- }
- return fakultetas;
- }
- private static void SpausdintiRezultatus(string failas, Fakultetas fak1, Fakultetas fak2, Fakultetas afak1, Fakultetas afak2, string ats)
- {
- using (StreamWriter writer = new StreamWriter(@failas, false, Encoding.UTF8))
- {
- writer.WriteLine("Pradiniai");
- SpausdintiFakulteta(writer, fak1);
- SpausdintiFakulteta(writer, fak2);
- writer.WriteLine("Rezultatai");
- writer.WriteLine("{0}", ats);
- SpausdintiFakulteta(writer, afak1);
- SpausdintiFakulteta(writer, afak2);
- }
- }
- private static void SpausdintiFakulteta(StreamWriter writer, Fakultetas fak)
- {
- writer.WriteLine("----------------------------------------");
- writer.WriteLine("{0}", fak.GautiPavadinima());
- writer.WriteLine("----------------------------------------");
- for (int i = 0; i < fak.StudentuSkaicius; i++)
- {
- writer.WriteLine("{0}", fak.GautiStudenta(i).ToString());
- writer.WriteLine("----------------------------------------");
- }
- writer.WriteLine();
- }
- private static string KurDaugiau(Fakultetas fak1, Fakultetas fak2)
- {
- string ats;
- if(fak1 != fak2)
- {
- if(fak1 > fak2)
- {
- ats = fak1.GautiPavadinima() + " daugiau";
- }
- else
- {
- ats = fak2.GautiPavadinima() + " daugiau";
- }
- }
- else
- {
- ats = "Lygiai";
- }
- return ats;
- }
- }
- class Fakultetas
- {
- const int daugiausiaStudentu = 256;
- string Pavadinimas { get; set; }
- private Studentas[] Studentai { get; set; }
- public int StudentuSkaicius { get; private set; }
- public Fakultetas()
- {
- }
- public Fakultetas(string pav)
- {
- Pavadinimas = pav;
- Studentai = new Studentas[daugiausiaStudentu];
- StudentuSkaicius = 0;
- }
- public void PridetiStudenta(Studentas stud)
- {
- if(stud.GautiPazymiuVidurki() > 0)
- {
- Studentai[StudentuSkaicius] = stud;
- }
- else
- {
- Studentai[StudentuSkaicius] = stud;
- stud.Rekursija();
- }
- StudentuSkaicius++;
- }
- public Studentas GautiStudenta(int indeksas)
- {
- return Studentai[indeksas];
- }
- public string GautiPavadinima()
- {
- return Pavadinimas;
- }
- public void Rikiavimas()
- {
- // pagal abecele
- for (int i = 0; i < StudentuSkaicius - 1; i++)
- {
- for (int j = i + 1; j < StudentuSkaicius; j++)
- {
- if(Studentai[j].PilnasVardas().CompareTo(Studentai[i].PilnasVardas()) == 1)
- {
- Studentas laik = Studentai[j];
- Studentai[j] = Studentai[i];
- Studentai[i] = laik;
- }
- }
- }
- // pagal vidurki
- for (int i = 0; i < StudentuSkaicius - 1; i++)
- {
- for (int j = i + 1; j < StudentuSkaicius; j++)
- {
- if (Studentai[j].GautiPazymiuVidurki() > Studentai[i].GautiPazymiuVidurki())
- {
- Studentas laik = Studentai[j];
- Studentai[j] = Studentai[i];
- Studentai[i] = laik;
- }
- }
- }
- }
- public override bool Equals(object obj)
- {
- return this.Equals(obj as Fakultetas);
- }
- public bool Equals(Fakultetas fak)
- {
- if (Object.ReferenceEquals(fak, null))
- return false;
- if (this.GetType() != fak.GetType())
- return false;
- return (Pavadinimas == fak.Pavadinimas);
- }
- public override int GetHashCode()
- {
- return Pavadinimas.GetHashCode();
- }
- public static bool operator >(Fakultetas lhs, Fakultetas rhs)
- {
- if(lhs != null && rhs != null)
- {
- if (lhs.StudentuSkaicius > rhs.StudentuSkaicius)
- return true;
- else
- return false;
- }
- else
- {
- if (lhs == null && rhs == null)
- return false;
- else
- {
- if (lhs != null && rhs == null)
- return true;
- else
- return false;
- }
- }
- }
- public static bool operator <(Fakultetas lhs, Fakultetas rhs)
- {
- if (lhs != null && rhs != null)
- {
- if (lhs.StudentuSkaicius < rhs.StudentuSkaicius)
- return true;
- else
- return false;
- }
- else
- {
- if (lhs == null && rhs == null)
- return false;
- else
- {
- if (lhs != null && rhs == null)
- return false;
- else
- return true;
- }
- }
- }
- public static bool operator ==(Fakultetas lhs, Fakultetas rhs)
- {
- if(Object.ReferenceEquals(lhs, null))
- {
- if(Object.ReferenceEquals(rhs, null))
- {
- return true;
- }
- return false;
- }
- return lhs.Equals(rhs);
- }
- public static bool operator !=(Fakultetas lhs, Fakultetas rhs)
- {
- return !(lhs == rhs);
- }
- }
- class Studentas
- {
- string Pavarde { get; set; }
- string Vardas { get; set; }
- string Grupe { get; set; }
- int[] Pazymiai { get; set; }
- double PazymiuVidurkis { get; set; }
- int PazymiuKiekis { get; set; }
- public Studentas()
- {
- }
- public Studentas(string pav, string vard, string gr, int[] pazymiai, int pazsk)
- {
- Pavarde = pav;
- Vardas = vard;
- Grupe = gr;
- Pazymiai = pazymiai;
- PazymiuKiekis = pazsk;
- }
- public void Rekursija(int skaicius = 0)
- {
- if(Pazymiai.Count() > skaicius)
- {
- PazymiuVidurkis += Pazymiai[skaicius];
- Rekursija(skaicius + 1);
- }
- else
- {
- PazymiuVidurkis /= Pazymiai.Count();
- }
- }
- public string PilnasVardas()
- {
- return Pavarde + " " + Vardas;
- }
- public string GautiGrupe()
- {
- return Grupe;
- }
- public double GautiPazymiuVidurki()
- {
- return PazymiuVidurkis;
- }
- public int[] GautiPazymius()
- {
- return Pazymiai;
- }
- public override string ToString()
- {
- return String.Format("| {0, -20} | {1, -5} | {2:0.00} |", PilnasVardas(), Grupe, PazymiuVidurkis);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement