You are on page 1of 6

using System;

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace Rendezesek
{
class Iskola
{
private List<Tanulo> Tanulok;
public Iskola(string fajlNev)
{
this.Tanulok = new List<Tanulo>() ;
StreamReader sr;
try
{
sr = new StreamReader(fajlNev);

string sor = sr.ReadLine();

while(!sr.EndOfStream)
{
sor = sr.ReadLine();

string[] adatok = sor.Split(';');


Tanulo Tanulo = new Tanulo(adatok[0], adatok[1],
Convert.ToInt32(adatok[2]),
Convert.ToInt32(adatok[3]), adatok[4],
Convert.ToDouble(adatok[5].Replace('.',',')));
this.Tanulok.Add(Tanulo);

}
sr.Close();
}
catch(Exception e)
{
Console.WriteLine("Hiba a beolvasáskor",e);
}

}
public void atlagRendez()
{

for (int j = 0; j < Tanulok.Count - 1; j++)


{

for (int i = 1; i < Tanulok.Count; i++)


{

if (Tanulok[i].Atlag > Tanulok[i - 1].Atlag)


{
Tanulo t = Tanulok[i - 1];
Tanulok[i - 1] = Tanulok[i];
Tanulok[i] = t;
}
}
}
}
public void nevRendez()
{

for (int i = 0; i <Tanulok.Count-1; i++)


{
for (int j = Tanulok.Count;j> i+1; j--)
{
if (Tanulok[j - 2].Nev.CompareTo(Tanulok[j-1].Nev) ==-1)

{
Tanulo t = Tanulok[j-2];
Tanulok[j-2] = Tanulok[j-1];
Tanulok[j-1] = t;
}
}

}
}
public void OsztaylRendez()
{
int ind;
for (int i = 0; i < Tanulok.Count; i++)
{
ind = i;
for (int j = i+1; j < Tanulok.Count; j++)
{
if(Tanulok[j].Evfolyam<Tanulok[ind].Evfolyam)
{

ind = j;

}
if(i<ind)
{
Tanulo t = Tanulok[i];
Tanulok[i] = Tanulok[ind];
Tanulok[ind] = t;
}
}

}
for (int i = 0; i < Tanulok.Count; i++)
{
ind = i;

for (int j = i + 1; j < Tanulok.Count; j++)


{
if (Tanulok[j].Evfolyam==Tanulok[ind].Evfolyam)
{
if(Tanulok[j].Osztaly.CompareTo(Tanulok[ind].Osztaly)==-1)
{
ind = j;
}
}
if (i < ind)
{
Tanulo t = Tanulok[i];
Tanulok[i] = Tanulok[ind];
Tanulok[ind] = t;
}
}

}
public void NevHossz()
{
Tanulo x;
int j;
for (int i = 0; i <Tanulok.Count; i++)
{
j = i - 1;
x = Tanulok[i];
while(j>-1&&x.Nev.Length<Tanulok[j].Nev.Length)
{
Tanulok[j + 1] = Tanulok[j];
j--;
}
Tanulok[j + 1] = x;
}
}
/* Fejlesztés alatt:
* public void LogKer(string nev)
{
nevRendez();
int z;
int ind = 0;
int i = 0;
bool l = false;
while((i<Tanulok.Count)&&(!l))
{
ind = Tanulok.Count / 2;
z = Tanulok[i].Nev.CompareTo(nev);
switch (z)
{
case 1:
i = ind - 1;
break;
case 0:
l = true;
break;
case -1:
i = ind + 1;
break;
}
i++;
}
if(l==true)
{
Console.WriteLine("Van ilyen név");
}
else { Console.WriteLine("Nincs"); }
}*/

public void Menu()


{
Console.WriteLine("Petrik Lajos Szakközépiskola:\n"+
" Névsor rendezése tanulmányi átlag szerint növekvően -
1-es gomb\n"+
"Névsor rendezése név szerint csökkenően - 2-es
gomb\n"+
"Névsor rendezése évfolyam/osztály szerint
növekvően - 3-as gomb\n"+
"Névsor rendezése név hosszúság szerint - 4-es
gomb\n"+
"Keresés név szerint - 5-ös gomb\n"+
"Kilépés - 6-os gomb\n");

Console.Write("Kérjük adja meg a fet felsorolt opciók egyikének


számát(gombját): ");
bool l = false;
int gomb;
do
{
if (int.TryParse(Console.ReadLine(), out gomb))
{
l = (gomb ==1)||(gomb==2)||(gomb==3)||(gomb==4)||(gomb==5)||
(gomb==6);
if (!l)
{
Console.WriteLine("Nem megfelelő gomb számot adott meg,
kérjük csak a felsorolt lehetőségek" +
"közt lévő számokból válasszon!");
}
}
else
{
Console.WriteLine("Nem megfelelő gomb számot adott meg, kérjük
csak a felsorolt lehetőségek" +
"közt lévő számokból válasszon!");
}
} while (!l);
switch(gomb)
{
case 1: atlagRendez();
break;
case 2: nevRendez();
break;
case 3:OsztaylRendez();
break;
case 4:NevHossz();
break;
case 5:nevRendez(); Console.WriteLine("Fejlesztés alatt lévő opció,
következő beadásra ez is kész lesz" +
"de Krajnyák tanárúr azt mondta hogy mostanra még nem
kötelező :D\n");
break;
case 6: Environment.Exit(0);
break;
}
}
public void FajlbaIr()
{
atlagRendez();
using (StreamWriter ar = new StreamWriter("AtlagSzerint.txt"))
{
ar.WriteLine( String.Format("{0,-20}{1,10}{2,9}{3,9}{4,9}{5,7}",
"Név", "Nem", "SzulÉv", "Évfolyam", "Osztály", "Átlag\n"));
foreach (Tanulo T in Tanulok)
{
ar.WriteLine( T.ToString());

}
}
nevRendez();
using (StreamWriter ar = new StreamWriter("NevSzerint.txt"))
{
ar.WriteLine(String.Format("{0,-20}{1,10}{2,9}{3,9}{4,9}{5,7}",
"Név", "Nem", "SzulÉv", "Évfolyam", "Osztály", "Átlag\n"));
foreach (Tanulo T in Tanulok)
{
ar.WriteLine(T.ToString());

}
}
OsztaylRendez();
using (StreamWriter ar = new
StreamWriter("Osztaly_evfolyamSzerint.txt"))
{
ar.WriteLine(String.Format("{0,-20}{1,10}{2,9}{3,9}{4,9}{5,7}",
"Név", "Nem", "SzulÉv", "Évfolyam", "Osztály", "Átlag\n"));
foreach (Tanulo T in Tanulok)
{
ar.WriteLine(T.ToString());

}
}
NevHossz();
using (StreamWriter ar = new StreamWriter("NevHosszSzerint.txt"))
{
ar.WriteLine(String.Format("{0,-20}{1,10}{2,9}{3,9}{4,9}{5,7}",
"Név", "Nem", "SzulÉv", "Évfolyam", "Osztály", "Átlag\n"));
foreach (Tanulo T in Tanulok)
{
ar.WriteLine(T.ToString());

}
}

}
public override string ToString()
{

string s = String.Format("{0,-20}{1,10}{2,9}{3,9}{4,9}{5,7}",
"Név", "Nem", "SzulÉv", "Évfolyam", "Osztály", "Átlag\n");
foreach(Tanulo T in Tanulok)
{
s += T.ToString() + "\n";
}

return s;
}
}
}

You might also like