Reševanje naloge se lotimo tako da deklariramo vse spremenljivke v katerih bomo hranili podatke. Nato pa sestavimo še get in set metode s pomočjo katerih dostopamo do spremenljivk.
public class Tekma
{
private string[] _imeEkipe=new string[2];//tabela imen ekip na košarkarski tekmi.
/// <summary>
/// Ime prve ekipe na košarkarski tekmi.
/// </summary
public string Ekipa1
{
get
{//vrnemo podatek
return _imeEkipe[0];
}
set
{// nastavimo vrednost spremenljivke
_imeEkipe[0]=value;
}
}
/// <summary>
/// Ime druge ekipe na košarkarski tekmi.
/// </summary
public string Ekipa2
{
get
{//vrnemo podatek
return _imeEkipe[1];
}
set
{// nastavimo vrednost spremenljivke
_imeEkipe[1]=value;
}
}
private int[] _statistikaEkipa1=new int[4];//statistika prve ekipe na košarkarski tekmi
/// <summary>
/// Doseženi prosti meti prve ekipe
/// </summary>
/// <exception cref="System.ArgumentException">Se sproži, če je število prostih metov negativno.</exception>
public int ProstiMet1
{
get
{
return _statistikaEkipa1[0];
}
set
{
if (value < 0)
{
throw new ArgumentException("Število prostih metov ne more biti negativno.");
}
else
{
_statistikaEkipa1[0] = value;
}
}
}
/// <summary>
/// Doseženi meti za dve točki prve ekipe
/// <exception cref="System.ArgumentException">Se sproži, če je število metov za dve točki negativno.</exception>
public int MetZaDve1
{
get
{
return _statistikaEkipa1[1];
}
set
{
if (value < 0)
{
throw new ArgumentException("Število metov za dve točke ne more biti negativno.");
}
else
{
_statistikaEkipa1[1] = value;
}
}
}
/// <summary>
/// Doseženi meti za tri točki prve ekipe
/// </summary>
/// <exception cref="System.ArgumentException">Se sproži, če je število metov za tri točki negativno.</exception>
public int MetZaTri1
{
get
{
return _statistikaEkipa1[2];
}
set
{
if (value < 0)
{
throw new ArgumentException("Število metov za tri točke ne more biti negativno.");
}
else
{
_statistikaEkipa1[2] = value;
}
}
}
/// <summary>
/// Narejeni prekrški
/// </summary>
/// <exception cref="System.ArgumentException">Se sproži, če je število prekrškov negativno.</exception>
public int Prekrski1
{
get
{
return _statistikaEkipa1[3];
}
set
{
if (value < 0)
{
throw new ArgumentException("Število prekrškov ne more biti negativno.");
}
else
{
_statistikaEkipa1[3] = value;
}
}
}
private int[] _statistikaEkipa2 = new int[4];//statistika prve ekipe na košarkarski tekmi
/// <summary>
/// Doseženi prosti meti druge ekipe
/// </summary>
/// <exception cref="System.ArgumentException">Se sproži, če je število prostih metov negativno.</exception>
public int ProstiMet2
{
get
{
return _statistikaEkipa2[0];
}
set
{
if (value < 0)
{
throw new ArgumentException("Število prostih metov ne more biti negativno.");
}
else
{
_statistikaEkipa2[0] = value;
}
}
}
/// <summary>
/// Doseženi meti za dve točki druge ekipe
/// </summary>
/// <exception cref="System.ArgumentException">Se sproži, če je število metov za dve točki negativno.</exception>
public int MetZaDve2
{
get
{
return _statistikaEkipa2[1];
}
set
{
if (value < 0)
{
throw new ArgumentException("Število metov za dve točke ne more biti negativno.");
}
else
{
_statistikaEkipa2[1] = value;
}
}
}
/// <summary>
/// Doseženi meti za tri točki druge ekipe
/// </summary>
/// <exception cref="System.ArgumentException">Se sproži, če je število metov za tri točki negativno.</exception>
public int MetZaTri2
{
get
{
return _statistikaEkipa2[2];
}
set
{
if (value < 0)
{
throw new ArgumentException("Število metov za tri točke ne more biti negativno.");
}
else
{
_statistikaEkipa2[2] = value;
}
}
}
/// <summary>
/// Narejeni prekrški
/// </summary
/// <exception cref="System.ArgumentException">Se sproži, če je število prekrškov negativno.</exception>
public int Prekrski2
{
get
{
return _statistikaEkipa2[3];
}
set
{
if (value < 0)
{
throw new ArgumentException("Število prekrškov ne more biti negativno.");
}
else
{
_statistikaEkipa2[3] = value;
}
}
}
Nato znotraj razreda ustvarimo konstruktorje. Naloga od nas zahteva, da najprej ustvarimo minimalni konstruktor, ki ne vsebuje nobenega parametra. Nato ustvarimo polni konstruktor, kateremu moramo podati vse podatke. Na koncu pa ustvarimo še konstruktor katerega parameter je niz. V tem nizu pa so podatki ločeni s podpičjem.
/// <summary>
/// Minimalni konstruktor
/// </summary>
public Tekma()
{
Ekipa1 = "";
Ekipa2 = "";
MetZaDve1 = MetZaDve2 = 0;
MetZaTri1 = MetZaTri2 = 0;
Prekrski1 = Prekrski2 = 0;
ProstiMet1 = ProstiMet2 = 0;
}
/// <summary>
/// Polni konstruktor
/// </summary>
/// <param name="ekipa1">Ime prve ekipe</param>
/// <param name="prekrsek1">Prekrški prve ekipe</param>
/// <param name="prostiMet1">Mrosti meti prve ekipe</param>
/// <param name="metZa21">Meti za dve točki prve točke</param>
/// <param name="metZa31">Meti za tri točke prve ekipe</param>
/// <param name="ekipa2">Ime druge ekipe</param>
/// <param name="prekrsek2">Prekrški druge ekipe</param>
/// <param name="prostiMet2">Mrosti meti druge ekipe</param>
/// <param name="metZa22">Meti za dve točki druge točke</param>
/// <param name="metZa32">Meti za tri točke druge ekipe</param>
/// <exception cref="System.ArgumentException"></exception>
/// <exception cref="System.Exception"></exception>
public Tekma(string ekipa1, int prekrsek1, int prostiMet1, int metZa21, int metZa31, string ekipa2, int prekrsek2, int prostiMet2, int metZa22, int metZa32)
:this()
{
Ekipa1 = ekipa1;//ker dostopamo preko lastnosti preverimo veljavnost vnesenega podatka.
Ekipa2 = ekipa2;//ker dostopamo preko lastnosti preverimo veljavnost vnesenega podatka.
Prekrski1 = prekrsek1;//ker dostopamo preko lastnosti preverimo veljavnost vnesenega podatka.
Prekrski2 = prekrsek2;//ker dostopamo preko lastnosti preverimo veljavnost vnesenega podatka.
ProstiMet1 = prostiMet1;//ker dostopamo preko lastnosti preverimo veljavnost vnesenega podatka.
ProstiMet2 = ProstiMet2;//ker dostopamo preko lastnosti preverimo veljavnost vnesenega podatka.
MetZaDve1 = metZa21;//ker dostopamo preko lastnosti preverimo veljavnost vnesenega podatka.
MetZaDve2 = metZa22;//ker dostopamo preko lastnosti preverimo veljavnost vnesenega podatka.
MetZaTri1 = metZa31;//ker dostopamo preko lastnosti preverimo veljavnost vnesenega podatka.
MetZaTri2 = MetZaTri2;//ker dostopamo preko lastnosti preverimo veljavnost vnesenega podatka.
}
/// <summary>
/// Konstruktor, ki tvori nov izlet s pomočjo niza,
ki je v obliki, kot ga vrne metoda ToString()
/// </summary>
/// <param name="niz">Polna statistika košarkarske tekme, podatki so ločeni s podpičji</param>
/// <exception cref="System.Exception">Se sproži, ko podatki niso pravilni.</exception>
public Tekma(string niz)
{
string[] nizTab = niz.Split(';');
//pogledamo ali imamo dovolj podatkov.
if (nizTab.Length < 10)
{
throw new Exception("Premajhno število podanih parametrov.");
}
else
{//podatke spremenimo tako, da so uporabni za naš razred.
Ekipa1 = nizTab[0];
int prekrsek1;
if (int.TryParse(nizTab[1], out prekrsek1))
{
Prekrski1 = prekrsek1;
}
else
{
throw new Exception("Podatek ni število.");
}
int prostiMet1;
if (int.TryParse(nizTab[2], out prostiMet1))
{
ProstiMet1 = prostiMet1;
}
else
{
throw new Exception("Podatek ni število.");
}
int metZa21;
if (int.TryParse(nizTab[3], out metZa21))
{
MetZaDve1 = metZa21;
}
else
{
throw new Exception("Podatek ni število.");
}
int metZa31;
if (int.TryParse(nizTab[4], out metZa31))
{
MetZaTri1 = metZa31;
}
else
{
throw new Exception("Podatek ni število.");
}
Ekipa2 = nizTab[5];
int prekrsek2;
if (int.TryParse(nizTab[6], out prekrsek2))
{
Prekrski2 = prekrsek2;
}
else
{
throw new Exception("Podatek ni število.");
}
int prostiMet2;
if (int.TryParse(nizTab[7], out prostiMet2))
{
ProstiMet2 = prostiMet2;
}
else
{
throw new Exception("Podatek ni število.");
}
int metZa22;
if (int.TryParse(nizTab[8], out metZa22))
{
MetZaDve2 = metZa22;
}
else
{
throw new Exception("Podatek ni število.");
}
int metZa32;
if (int.TryParse(nizTab[9], out metZa32))
{
MetZaTri2 = metZa32;
}
else
{
throw new Exception("Podatek ni število.");
}
}
}