You are on page 1of 5

2.

Definisati osnovnu klasu Artikal sa privatnim atributima:


nabavna cena,
nabavljena koliina
proizvoa-naziv proizvoaa
prodata koliina
i metod IzracunajProdajnuCenu sa argumentom prodata koliina koji e se definisati u
izvedenim klasama.
Definisati izvedene klase koja nasleuju klasu Artikal i u kojima se koristei definisan metod
Izraunaj!rodajnu"enu odreuje prodajna ena :
#. Secer - nabavna ena se uveava za 2$%.
2. Cokolada - nabavna ena se uvea za 2$% ukoliko je prodata koliina manja od #$$& u
suprotnom se uveava za '$%.
'. Kafa - nabavna ena se uveava za #(% ukoliko je prodata koliina manja od ($$& u
suprotnom se uveava za 2(%.
) glavnoj funkiji uneti za svaki artikal podatke o nabavnoj eni& koliini i proizvoau i koliko
je robe prodato. *drediti kolika je ukupna vrednost robe u magainu& ispisati podatke o
trenutnom stanju svakog artikla u magainu i kolika je dobit ostvarena.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Artikal
{
class Program
{
public class Artikal /!e"nici#a klase sa pri$atnim atributima/
{
pri$ate %ouble naba$na&cena; / !eklaraci#a realnog pri$atnog atributa /
pri$ate int kolicina;
pri$ate string na'i$&proi'$o%#aca;
pri$ate int pro%ata&kolicina;
// Po%ra'ume$ani konstruktor
public Artikal()
{
naba$na&cena * +.+;
kolicina * +;
na'i$&proi'$o%#aca * String.Copy(,,);
pro%ata&kolicina * +;
-
// konstruktor inici#ali'aci#e
public Artikal(%ouble nc. int kol. string na'i$. int p)
{
naba$na&cena * nc;
kolicina * kol;
na'i$&proi'$o%#aca * String.Copy(na'i$);
pro%ata&kolicina * p;
-
public %ouble GetSetCena/!e"nici#a s$o#st$a 'a pristup pri$atnom atributu/
{
get
{
return naba$na&cena;
-
set
{
naba$na&cena * $alue;
-
-
public int GetSet/olicina
{
get
{
return kolicina;
-
set
{
kolicina * $alue;
-
-
public string GetSetProi'$o%#ac
{
get
{
return na'i$&proi'$o%#aca;
-
set
{
na'i$&proi'$o%#aca * $alue;
-
-
public int GetSetPro%ata/olicina
{
get
{
return pro%ata&kolicina;
-
set
{
pro%ata&kolicina * $alue;
-
-
/ !e"nici#a $irtuelne 0unkci#e u ok$iru osno$ne klase/
public $irtual %ouble 1'racuna#Pro%a#nuCenu(%ouble GetSetPro%ata/olicina)
{
return +.+;
-
-
// 2o$e i'$e%ene klase. ko#e nasle%#u#u klasu Artikal
// 1'$e%ena klasa Secer
public class Secer 3 Artikal
{
/ !e"nici#a o$erri%e (re%e"nisane) 0unkci#e u ok$iru i'$e%ene klase/
public o$erri%e %ouble 1'racuna#Pro%a#nuCenu(%ouble GetSetPro%ata/olicina)
{
%ouble pro%a#naCena;
pro%a#naCena * base.GetSetCena 4 base.GetSetCena +.5;
return pro%a#naCena;
-
-
// 1'$e%ena klasa Cokola%a
public class Cokola%a 3 Artikal
{
public o$erri%e %ouble 1'racuna#Pro%a#nuCenu(%ouble GetSetPro%ata/olicina)
{
%ouble pro%a#naCena;
i0 (GetSetPro%ata/olicina 6 7++)
{
pro%a#naCena * base.GetSetCena 4 base.GetSetCena +.5;
-
else
{
pro%a#naCena * base.GetSetCena 4 base.GetSetCena +.8;
-
return pro%a#naCena;
-
-
// 1'$e%ena klasa /a0a
public class /a0a 3 Artikal
{
public o$erri%e %ouble 1'racuna#Pro%a#nuCenu(%ouble GetSetPro%ata/olicina)
{
%ouble pro%a#naCena;
i0 (GetSetPro%ata/olicina 6 9++)
{
pro%a#naCena * base.GetSetCena 4 base.GetSetCena +.79;
-
else
{
pro%a#naCena * base.GetSetCena 4 base.GetSetCena +.59;
-
return pro%a#naCena;
-
-
// :nos
static $oi% :nosPo%ataka(Artikal a)
{
Console.;riteLine(,2aba$na cena3 ,);
a.GetSetCena * %ouble.Parse(Console.<ea%Line());
Console.;riteLine(,/olicina3 ,);
a.GetSet/olicina * int.Parse(Console.<ea%Line());
Console.;riteLine(,Proi'$o%#ac3 ,);
a.GetSetProi'$o%#ac * Console.<ea%Line();
Console.;riteLine(,/olicina pro%ate robe3 ,);
a.GetSetPro%ata/olicina * int.Parse(Console.<ea%Line());
Console.;riteLine(,,);
-
// 1spis
static $oi% 1spisPo%ataka(Artikal a)
{
Console.;riteLine(,2aba$na cena3 {+3=5-,. a.GetSetCena);
Console.;riteLine(,Pro%a#na cena3 {+3=5-,.
a.1'racuna#Pro%a#nuCenu(a.GetSetPro%ata/olicina));
Console.;riteLine(,2aba$l#ena kolicina3 {+-,. a.GetSet/olicina);
Console.;riteLine(,Proi'$o%#ac3 {+-,. a.GetSetProi'$o%#ac);
Console.;riteLine(,/olicina pro%ate robe3 {+-,. a.GetSetPro%ata/olicina);
Console.;riteLine(,Trenutna kolicina robe3 {+-,. a.GetSet/olicina>
a.GetSetPro%ata/olicina);
-

static $oi% ?ain(string@A args)
{
int i * +;
%ouble ukupnaBre%nost. %obit;
ukupnaBre%nost * +.+;
%obit * +.+;
string@A s * { ,Secer,. ,Cokola%a,. ,/a0a, -;
Artikal@A a * neC Artikal@8A; // ni' o% n poka'i$aca na po%atke tipa Artikal
a@+A * neC Secer();
a@7A * neC Cokola%a();
a@5A * neC /a0a();
0oreacD (Artikal t in a)
{
Console.;riteLine(s@i44A);
// t * neC Artikal(); // po'i$ po%ra'ume$anog konstruktora
:nosPo%ataka(t);
//i'racuna$an#e ukupne pro%a#ne cene s$iD
%obit 4* (t.1'racuna#Pro%a#nuCenu(t.GetSetPro%ata/olicina) > t.GetSetCena)
t.GetSetPro%ata/olicina;
//i'racuna$an#e ukupne naba$ne cene s$iD artikala
ukupnaBre%nost 4* t.GetSetCenat.GetSet/olicina;
-
Console.;riteLine();
Console.;riteLine(,:kupna $re%nost robe u magacinu3 {+3=5-,. ukupnaBre%nost);
Console.;riteLine();
Console.;riteLine();
Console.;riteLine(,>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,);
Console.;riteLine(,Po%aci o trenutnom stan#u artikala3 ,);
i * +;
0oreacD (Artikal t in a)
{
Console.;riteLine(s@i44A);
1spisPo%ataka(t);
Console.;riteLine();
-
Console.;riteLine(,>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,);
Console.;riteLine();
Console.;riteLine();
// 1spis ost$arene %obiti

Console.;riteLine(,!obit3 {+3=5-,. %obit);
Console.<ea%Line();
-
-
-

You might also like