/** Failo duomenis surašo į konteinerį. * @param fd -duomenų failo vardas * @param sodas -dvimatis konteineris */ static void Skaityti(string fd, Kompai sodas) { string line; using (StreamReader reader = new StreamReader(fd)) { line = reader.ReadLine(); string[] parts = line.Split(' '); sodas.nn = int.Parse(parts[0]); sodas.mm = int.Parse(parts[1]); for (int i = 0; i < sodas.nn; i++) { line = reader.ReadLine(); parts = line.Split(' '); for (int j = 0; j < sodas.mm * 2; j = j + 2) { string a1 = parts[j].Trim(); int a2 = int.Parse(parts[j + 1]); Studentas ob = new Studentas(a1, a2); Console.Write(ob.ToString()); sodas.Deti(i, j / 2, ob); } Console.WriteLine(); } } }
/** Faile fv spausdina studento stud darbo prie kompiuterio laikus. * @param fv rezultatų failo vardas * @param sodas dvimatis konteineris * @param stud studento objektas */ static void SpausdintiStudenta(string fv, Kompai sodas, Studentas stud) { Studentas st; bool yra = false; using (var fr = File.AppendText(fv)) { fr.WriteLine("Studentas {0}", stud.bilietas); for (int i = 0; i < sodas.nn; i++) { for (int j = 0; j < sodas.mm; j++) { st = sodas.Imti(i, j); if (st == stud) {//naudojamas uzklotas operatorius yra = true; fr.WriteLine("kompiuteriu nr. {0} uzsiemimo nr. {1} - {2} min.", i + 1, j + 1, st.trukme); } } } if (!yra) { fr.WriteLine("uzsiemimuose nedalyvavo!"); } } }
/**@param fv failo vardas * @param sodas dvimatis konteineris */ static void SpausdintiLaikus(string fv, Kompai sodas) { using (var fr = File.AppendText(fv)) { fr.WriteLine("\r\nKompiuteriu uzimtumo laikai pagal uzsiemimus:"); fr.WriteLine("----------------------------------------------------------"); for (int j = 0; j < sodas.mm; j++) { int suma = 0; for (int i = 0; i < sodas.nn; i++) { suma += sodas.Imti(i, j).trukme; } fr.Write("{0,7:d} |", suma); } fr.WriteLine("\r\n"); } }
/** Spausdina konteinerio duomenis faile lentele. * @param fv -rezultatų failo vardas * @param sodas -studentų konteineris * @param antraste -užrašas virš lentelės */ static void Spausdinti(string fv, Kompai sodas, string antraste) { string bruksnys = new string('-', 42); using (var fr = File.AppendText(fv)) { fr.WriteLine(antraste); fr.WriteLine(bruksnys); for (int i = 0; i < sodas.nn; i++) { for (int j = 0; j < sodas.mm; j++) { fr.Write("{0}", sodas.Imti(i, j).ToString()); } fr.WriteLine(); } fr.WriteLine(bruksnys); } }
/** Suskaičiuoja ir grąžiną daugiausiai kompiuterių laiko * reikalaujantį užsiėmimą. * @param sodas dvimatis konteineris */ static int MaxUzimtas(Kompai sodas) { int maxNr = -1; int maxLaik = 0; for (int j = 0; j < sodas.mm; j++) { int suma = 0; for (int i = 0; i < sodas.nn; i++) { suma += sodas.Imti(i, j).trukme; } if (suma > maxLaik) { maxNr = j + 1; maxLaik = suma; } } return(maxNr); }
/** Suskaičiuoja ir grąžiną neužimtų kompiuterių skaičių. * @param sodas dvimatis konteineris */ static int KiekNeuzimtu(Kompai sodas) { int kiek, kiekis = 0; for (int i = 0; i < sodas.nn; i++) { kiek = 0; for (int j = 0; j < sodas.mm; j++) { if (sodas.Imti(i, j).trukme == 0) { kiek++; } } if (kiek == sodas.mm) { kiekis++; } } return(kiekis); }
static void Main(string[] args) { const string CFd = "..\\..\\Duomenys.txt"; const string CFr = "..\\..\\Rezultatai.txt"; Kompai sodas = new Kompai(); Skaityti(CFd, sodas); if (File.Exists(CFr)) { File.Delete(CFr); } Spausdinti(CFr, sodas, "Pradiniai"); SpausdintiLaikus(CFr, sodas); using (var fr = File.AppendText(CFr)) { fr.WriteLine("----------------------------------------------------------"); fr.WriteLine("Daugiausiai uzimti kompiuteriai uzsiemime nr.: | {0}", MaxUzimtas(sodas)); fr.WriteLine("----------------------------------------------------------"); fr.WriteLine("Neuzimtu kompiuteriu skaicius: | {0}\r\n", KiekNeuzimtu(sodas)); fr.WriteLine("----------------------------------------------------------"); } SpausdintiStudenta(CFr, sodas, new Studentas("N12", 0)); }