class Program
{
#region Metode
public static int VsotaDenarja(List<Denarnica> denarnica)
{
int vsota = 0;
int evri = 0;
int centi = 0;
foreach (Denarnica d in denarnica)
{
evri += d.StEvrov;
centi += d.StCentov;
}
vsota += evri * 100 + centi;
return vsota;
}
public static void PretopiCente(string imeDatoteke)
{
List<Denarnica> denarnica = Denarnica.PreberiZdatoteke(imeDatoteke);
if (File.Exists(imeDatoteke))
{
File.Delete(imeDatoteke);
}
foreach (Denarnica d in denarnica)
{
if (d.StCentov > 99)
{
d.StEvrov += d.StCentov / 100;
d.StCentov = d.StCentov % 100;
d.DodajNaDatoteko(imeDatoteke);
}
else
d.DodajNaDatoteko(imeDatoteke);
}
}
public static List<string> Sladoled(string imeDatoteke, int eur, int cent)
{
List<string> sez = new List<string>();
int cena=eur*100 + cent;
List<Denarnica> denar = Denarnica.PreberiZdatoteke(imeDatoteke);
PretopiCente(imeDatoteke);
if (File.Exists(imeDatoteke))
{
File.Delete(imeDatoteke);
}
foreach (Denarnica d in denar)
{
int vsota = d.StEvrov * 100 + d.StCentov;
if (vsota >= cena)
{
sez.Add(d.ImeLastnika);
d.Placaj(eur, cent);
d.DodajNaDatoteko(imeDatoteke);
}
}
return sez;
}
public static void Izbriši(string imeDatoteke, int x, int y)
//x in y sta izražena v centih
{
List<Denarnica> denar = Denarnica.PreberiZdatoteke(imeDatoteke);
PretopiCente(imeDatoteke);
if (File.Exists(imeDatoteke))
{
File.Delete(imeDatoteke);
}
foreach (Denarnica d in denar)
{
int vsota = d.StEvrov * 100 + d.StCentov;
if (x > vsota || y < vsota)
{
d.DodajNaDatoteko(imeDatoteke);
}
}
}
public static void EnaDenarnica(string imeDatoteke)
{
List<Denarnica> denar = Denarnica.PreberiZdatoteke(imeDatoteke);
if (File.Exists(imeDatoteke))
{
File.Delete(imeDatoteke);
}
for (int i = 0; i < denar.Count; i++)
{
for (int j=i+1; j<denar.Count; j++)
{
if (denar[i].ImeLastnika == denar[j].ImeLastnika)
{
denar[i].Zasluzi(denar[j].StEvrov, denar[j].StCentov);
denar[j].Placaj(denar[j].StEvrov, denar[j].StCentov);
}
}
if (denar[i].StEvrov * 100 + denar[i].StCentov > 0)
{
denar[i].DodajNaDatoteko(imeDatoteke);
}
}
}
#endregion
static void Main(string[] args)
{
string dat = "denarnice.txt";
//če že ostaja jo izbrišemo
if (File.Exists(dat))
{
File.Delete(dat);
}
//na datoteko zapišemo ducat objektov
string[] imena = { "Petra", "Miran","Eva", "Petra", "Urša","Manca","Željko","Natalija","Gregor","Matija","Erika","Andrej","Lojze","Janja","Marko"};
Random gen = new Random();//generator nakljucnih stevil
for (int i = 0; i < imena.Length; i++)//naredimo 12 novih denarnic
{
string niz="";
int evri = gen.Next(1, 100);//nakljucno število med 1 in 100
int centi = gen.Next(1, 1000);//nakljucno število med 1 in 1000
string lastnik = imena[i];//ime lastnika denarnice
niz += lastnik + ";" + evri + ";" + centi;
Denarnica d = new Denarnica(niz);//nova denarnica
d.DodajNaDatoteko(dat);//denarnico dodamo na datoteko
}
Console.WriteLine("Uporaba metode izpis datoteke:");
Denarnica.IzpisiDatoteko(dat);
Console.WriteLine();
Console.ReadKey();
Console.WriteLine("Uporaba metode preberi z datoteke in izpis seznama:");
//preberemo vse podatke iz datoteke v seznam
List<Denarnica> sez = Denarnica.PreberiZdatoteke(dat);
//tabelo pregledno izpišemo
for (int i = 0; i < sez.Count; i++)
{
Console.WriteLine(sez[i]);
}
// izračunamo, koliko denarja imajo skupaj osebe v seznamu:
int vsota = VsotaDenarja(sez);
int c = vsota % 100;
int e = vsota / 100;
Console.ReadKey();
Console.WriteLine("Vsota denarja je " + e + " evrov in " + c + "centov\n");
// cela skupina pretopi cente v evre:
Console.ReadKey();
PretopiCente(dat);
Console.WriteLine("Pretopi cente:");
List<Denarnica> sezp = Denarnica.PreberiZdatoteke(dat);
for (int i = 0; i < sezp.Count; i++)
{
Console.WriteLine(sezp[i]);
}
Console.ReadKey();
//imena vseh tistih oseb, ki si lahko privoščijo nakup banjice sladoleda, ki stane 4€ 45 centov.
Console.WriteLine("\nSladoled si lahko privoščijo:");
List<string> slad = Sladoled(dat, 4, 45);
foreach (string ime in slad)
{
Console.WriteLine(ime);
}
Console.WriteLine("\nKupimo sladoled za 4,45:");
List<Denarnica> sezs = Denarnica.PreberiZdatoteke(dat);
for (int i = 0; i < sezs.Count; i++)
{
Console.WriteLine(sezs[i]);
}
Console.WriteLine();
Console.ReadKey();
//izbrišemo vse denarnice, kjer je vsaj x in največ y denarja
Console.WriteLine("\nIzbrišemo iz datoteke vse denarnice, ki imajo vsaj 3400 in največ 5700 centov: ");
Izbriši(dat, 3400, 5700);
Console.WriteLine();
List<Denarnica> sezn = Denarnica.PreberiZdatoteke(dat);
for (int i = 0; i < sezn.Count; i++)
{
Console.WriteLine(sezn[i]);
}
Console.WriteLine();
Console.ReadKey();
//združimo denarnice istega lastnika:
Console.WriteLine("Združimo denarnice istega lastnika:");
EnaDenarnica(dat);
List<Denarnica> sez2 = Denarnica.PreberiZdatoteke(dat);
Console.WriteLine();
for (int i = 0; i < sez2.Count; i++)
{
Console.WriteLine(sez2[i]);
}
Console.WriteLine();
Console.ReadKey();
Console.WriteLine("Na koncu imamo tako datoteko:");
//preberemo vse podatke iz datoteke v seznam
List<Denarnica> sez3 = Denarnica.PreberiZdatoteke(dat);
if (File.Exists(dat))
{
File.Delete(dat);
}
//na isto datoteko ponovno zapišemo vse objekte
foreach (Denarnica d in sez3)
{
d.DodajNaDatoteko(dat);
}
//tabelo pregledno izpišemo
for (int i = 0; i < sez3.Count; i++)
{
Console.WriteLine(sez3[i]);
}
Console.ReadKey();
}