using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
class Racun
{
double stanje;
string stevilkaRacuna;
public Racun(string StevilkaRacuna, double Stanje)
{
//konstruktor
this.stanje = Stanje;
this.stevilkaRacuna=StevilkaRacuna;
}
public double Stanje()
{
return this.stanje;
}
public string StR()
{
return this.stevilkaRacuna;
}
public double Dvig(double znesek)
{
this.stanje -= znesek; //ko denar dvignemo z računa, se prejšnje stanje zmanjša za ta znesek
return this.stanje;
}
public double Polog(double znesek)
{
this.stanje += znesek; //ko denar položimo na račun, se prejšnje stanje poveča za vloženi znesek
return this.stanje;
}
public Racun(string niz)
{
string[] tab = niz.Split(';'); // v tabelo dodamo lastnosti objekta
this.stevilkaRacuna= tab[0];
this.stanje= double.Parse(tab[1]);
}
public override string ToString()
{
//izpis s podpičji
string niz = stevilkaRacuna + ";" + stanje.ToString();
return niz;
}
public void DodajNaDatoteko(string imeDatoteke)
{
StreamWriter f = File.AppendText(imeDatoteke); //odpremo za branje
f.WriteLine(this.ToString()); //prebeeremo
f.Close(); //zapremo
}
public static Racun[] PreberiZDatoteke(string imeDatoteke)
{
//če se omejimo na velikost tabele, moramo imeti pomožno tabelo (dovolj veliko)
//ali pa 2 prehoda skozi dat. v 1. preštejemo vrstice, 2. tvorimo ustrezno veliko tab in vpisujemo podatke
StreamReader f = File.OpenText(imeDatoteke);
int st = 0; //števec vrstic
while (!f.EndOfStream) //dokler ni konec datoteke
{
st++;
f.ReadLine(); //beremo vrstice
}
f.Close();
Racun [] tabela = new Racun[st];
f = File.OpenText(imeDatoteke);
st = -1; //zato, da začnemo v tabeli šteti od 0!
while (!f.EndOfStream)
{
st++;
tabela[st] = new Racun(f.ReadLine()); //v tab dodamo vrstico iz dat
}
f.Close();
return tabela;
}
}
class Oseba
{
string ime;
string priimek;
string naslov;
int starost;
string stRacuna;
long davcna;
public Oseba(string i, string p, string n,int s, string stR, long d)
{//konstruktor
this.ime = i;
this.priimek = p;
this.naslov = n;
this.starost = s;
this.stRacuna = stR;
this.davcna = d;
}
public string Ime()
{
return this.ime;
}
public string Priimek()
{
return this.priimek;
}
public string Naslov()
{
return this.naslov;
}
public int Starost()
{
return this.starost;
}
public string StR()
{
return this.stRacuna;
}
public long Davcna()
{
return this.davcna;
}
public Oseba(string niz)
{
string[] tab = niz.Split(';'); // v tabelo dodamo lastnosti objekta
this.ime = tab[0];
this.priimek = tab[1];
this.naslov = tab[2];
this.starost=int.Parse(tab[3]);
this.stRacuna = tab[4];
this.davcna = long.Parse(tab[5]);
}
public override string ToString()
{
//izpis s podpičji
string niz = (ime) + ";" + priimek + ";" + naslov + ";" + starost + ";" + stRacuna + ";" + davcna.ToString();
return niz;
}
public void DodajNaDatoteko(string imeDatoteke)
{
StreamWriter f = File.AppendText(imeDatoteke); //odpremo za branje
f.WriteLine(this.ToString()); //prebeeremo
f.Close(); //zapremo
}
public static Oseba[] PreberiZDatoteke(string imeDatoteke)
{
//če se omejimo na velikost tabele, moramo imeti pomožno tabelo (dovolj veliko)
//ali pa 2 prehoda skozi dat. v 1. preštejemo vrstice, 2. tvorimo ustrezno veliko tab in vpisujemo podatke
StreamReader f = File.OpenText(imeDatoteke);
int st = 0; //števec vrstic
while (!f.EndOfStream) //dokler ni konec datoteke
{
st++;
f.ReadLine(); //beremo vrstice
}
f.Close();
Oseba [] tabela = new Oseba [st];
f = File.OpenText(imeDatoteke);
st = -1; //zato, da začnemo v tabeli šteti od 0!
while (!f.EndOfStream)
{
st++;
tabela[st] = new Oseba(f.ReadLine()); //v tab dodamo vrstico iz dat
}
f.Close();
return tabela;
}
}
static void Main(string[] args)
{
Racun racun1 = new Racun("SI56 1234 5678 9112 431", 1000);
Racun racun2 = new Racun("SI56 1334 5678 9112 431", 2700);
Racun racun3 = new Racun("SI56 1234 5888 9112 431", -3000);
Racun racun4 = new Racun("SI56 1563 5338 9812 888", 1456.3);
Racun racun5 = new Racun("SI56 1563 5338 9812 801", 274.24);
Oseba os1 = new Oseba("Alisa", "Ibrahimovic", "Naslov 1", 21,"SI56 1234 5678 9112 431", 11234319);
Oseba os2 = new Oseba("Mitja", "Kunec", "Naslov 2",34, "SI56 1334 5678 9112 431", 34218983);
Oseba os3 = new Oseba("Cvetka", "Kunec", "Naslov 4", 42,"SI56 1234 5888 9112 431", 21218974);
Oseba os4 = new Oseba("Klara", "Samec", "Naslov 3", 19,"SI56 1563 5338 9812 888", 27988909);
Oseba os5 = new Oseba("Peter", "Kobal", "Naslov 3", 68,"SI56 1563 5338 9812 801", 27988909);
os1.DodajNaDatoteko("osebe.txt");
os2.DodajNaDatoteko("osebe.txt");
os3.DodajNaDatoteko("osebe.txt");
os4.DodajNaDatoteko("osebe.txt");
os5.DodajNaDatoteko("osebe.txt");
racun1.DodajNaDatoteko("racuni.txt");
racun2.DodajNaDatoteko("racuni.txt");
racun3.DodajNaDatoteko("racuni.txt");
racun4.DodajNaDatoteko("racuni.txt");
racun5.DodajNaDatoteko("racuni.txt");
Oseba[] osebe = Oseba.PreberiZDatoteke("osebe.txt");
Racun[] racun = Racun.PreberiZDatoteke("racuni.txt");
//osebe:
Console.WriteLine("Poglejmo si stanja v tabeli računi: ");
//kdo ima največ denarja
double najvecji = racun[0].Stanje(); //na začetku definiramo, da je prvo stanje največje
Console.WriteLine(najvecji);
string stevilkaracunaNajbogatejsega = racun[0].StR();
for (int i = 1; i < racun.Length; i++)
{
Console.WriteLine(racun[i].Stanje());
if (racun[i].Stanje() > najvecji)
{
najvecji = racun[i].Stanje();
stevilkaracunaNajbogatejsega = racun[i].StR();
}
}
string stevRa;
Console.WriteLine("Najbogatejši je ");
for (int j = 0; j < osebe.Length; j++)
{
stevRa = osebe[j].StR();
if (stevRa == stevilkaracunaNajbogatejsega)
{
Console.Write(osebe[j].Ime() + " ");
Console.WriteLine(osebe[j].Priimek() + ", ki ima " + najvecji + " eur.");
}
}
//koliko denarja imajo vsi skupaj
double vs = 0;
for (int k = 0; k < racun.Length; k++)
{
vs += racun[k].Stanje();
}
Console.WriteLine("Vsi skupaj imajo " + vs + " eur.");
Console.WriteLine();
//nakažimo vsakemu po 1500 eur
Console.WriteLine("Nakažimo vsakemu po 1500 eur. Nova stanja na računih ter naslovi oseb: ");
for (int z = 0; z < racun.Length; z++)
{
double s = racun[z].Stanje();
string naslov = osebe[z].Naslov();
s+= 1500;
Console.WriteLine("Znesek: " + s + " naslov: " + naslov );
}
Console.WriteLine();
//koliko denarja imajo skupaj osebe, stare med 19 in 40 let?
double vsotaa = 0.0;
int starostt;
double vmesnoStanje;
for (int u = 0; u < racun.Length; u++)
{
starostt = osebe[u].Starost();
vmesnoStanje = racun[u].Stanje();
if (starostt >= 19 && starostt <= 40)
{
vsotaa += vmesnoStanje;
}
}
Console.WriteLine("Osebe med 19 in 40 let imajo " + vsotaa + " eur");
//kdo je v minusu?
double st;
for (int l = 0; l < racun.Length; l++)
{
st = racun[l].Stanje();
if (st < 0)
{
string i = osebe[l].Ime();
string p = osebe[l].Priimek();
Console.WriteLine("V minusu je " + i + " " + p);
}
}
//dvignimo nekaj denarja s prvega računa (lastnik Alisa Ibrahimović):
Console.WriteLine("Alisa Ibrahimovic dvigne s svojega računa 200 eur.");
double znesek = racun1.Dvig(200);
Console.WriteLine("Po dvigu je novo stanje " + znesek + " eur.");
//položimo 950 eur na račun, katerega lastnik je Cvetka Kunec
double pol = racun3.Polog(950);
Console.WriteLine("In ko položimo 950 eur na Cvetkin račun, je novo stanje " + pol + " eur.");
Console.ReadLine();
}
}
}