using System.Collections.Generic;
abstract class ITDarbuotojas
protected string pavarde;
protected string aprasymas;
public string GautiVardas()
public string GautiPavarde()
public string GautiAprasymas()
public abstract void ApieDarbuotoja();
void perziuretiDarbuotojus(List<ITDarbuotojas> darbuotojai);
class Vadovas : ITDarbuotojas, IVadovauti
public Vadovas(string vardas, string pavarde, string aprasymas)
this.aprasymas = aprasymas;
public void perziuretiDarbuotojus(List<ITDarbuotojas> darbuotojai)
Console.WriteLine("********Darbuotoju Sarasas********");
foreach (ITDarbuotojas darbuotojas in darbuotojai)
Console.WriteLine("-----DARBUOTOJAS--------");
Console.WriteLine(darbuotojas.GautiVardas() + " " + darbuotojas.GautiPavarde());
Console.WriteLine(darbuotojas.GautiAprasymas());
public override void ApieDarbuotoja()
Console.WriteLine("//*************Darbuotojas***************\\");
Console.WriteLine("Vadovas");
Console.WriteLine(vardas + " " + pavarde);
Console.WriteLine("Vadovo aprasymas: " + aprasymas);
Console.WriteLine("//________________________________________\\");
class Testuotojas : ITDarbuotojas
private int atlikoTestu = 0;
public Testuotojas(string vardas, string pavarde, string aprasymas)
this.aprasymas = aprasymas;
public void Testuoti(Programa programa)
Console.WriteLine("Programa " + programa.GautiPavadinimas() + " buvo istestuota!");
public void Testuoti(List<Programa> programos)
foreach (Programa p in programos)
Console.WriteLine("Programa " + p.GautiPavadinimas() + " buvo istestuota!");
public override void ApieDarbuotoja()
Console.WriteLine("//*************Darbuotojas***************\\");
Console.WriteLine("Testuotojas");
Console.WriteLine("Vardas: " + vardas + " Pavarde:" + pavarde);
Console.WriteLine("Atliko testu: " + atlikoTestu.ToString());
Console.WriteLine("Testuotojo aprasymas: " + aprasymas);
Console.WriteLine("//________________________________________\\");
private string pavadinimas;
public Programa(string pavadinimas)
this.pavadinimas = pavadinimas;
public string GautiPavadinimas()
abstract class Programuotojas : ITDarbuotojas
protected string programavimoKalba;
public virtual Programa Kurti()
string pavadinimas = Console.ReadLine();
Programa sukurtaPrograma = new Programa(pavadinimas);
Console.WriteLine("Programuotojas sukure programa - " + pavadinimas);
class BackEndProgramuotojas : Programuotojas
public BackEndProgramuotojas(string vardas, string pavarde, string aprasymas, string programavimoKalba)
this.aprasymas = aprasymas;
this.programavimoKalba = programavimoKalba;
public override void ApieDarbuotoja()
Console.WriteLine("//*************Darbuotojas***************\\");
Console.WriteLine("Back - End programuotojas");
Console.WriteLine("Vardas: " + vardas + " Pavarde:" + pavarde);
Console.WriteLine("Programuotoja aprasymas: " + aprasymas);
Console.WriteLine("Programavimo kalba - " + programavimoKalba);
Console.WriteLine("//________________________________________\\");
public override Programa Kurti()
Console.WriteLine("Naujos programos pavadinimas?");
pavadinimas = Console.ReadLine();
Programa naujaPrograma = new Programa(pavadinimas);
Console.WriteLine("Back End programuotojas sukure:" + pavadinimas + " programa");
class FrontEndProgramuotojas : Programuotojas
public FrontEndProgramuotojas(string vardas, string pavarde, string aprasymas, string programavimoKalba)
this.aprasymas = aprasymas;
this.programavimoKalba = programavimoKalba;
public override void ApieDarbuotoja()
Console.WriteLine("//*************Darbuotojas***************\\");
Console.WriteLine("Front - End programuotojas");
Console.WriteLine("Vardas: " + vardas + " Pavarde:" + pavarde);
Console.WriteLine("Programuotoja aprasymas: " + aprasymas);
Console.WriteLine("Programavimo kalba - " + programavimoKalba);
Console.WriteLine("//________________________________________\\");
public override Programa Kurti()
Console.WriteLine("Naujos programos pavadinimas?");
pavadinimas = Console.ReadLine();
Programa naujaPrograma = new Programa(pavadinimas);
Console.WriteLine("Front End programuotojas sukure:" + pavadinimas + " programa");
public static void Main()
List<ITDarbuotojas> darbuotojai = new List<ITDarbuotojas>();
List<Programa> programos = new List<Programa>();
Vadovas vadovas = new Vadovas("Ramunas", "Rudokas", "Vadovas, krupstus, gerai ir ilgai dirbantis imoneje");
Testuotojas testuotojas = new Testuotojas("Gitanas", "Skvernerlis", "Naujokas, nesenai pradejas dirbti imoneje");
BackEndProgramuotojas backEndProgramuotojas = new BackEndProgramuotojas("Aurelijus", "Pauliukaitis", "Vyresnysis inzinierius", "C#");
FrontEndProgramuotojas frontEndProgramuotojas = new FrontEndProgramuotojas("Melana", "Trump", "Jaunoji Fron-End inziniere", "JavaScript/HTML/CSS");
darbuotojai.Add(vadovas);
darbuotojai.Add(testuotojas);
darbuotojai.Add(backEndProgramuotojas);
darbuotojai.Add(frontEndProgramuotojas);
bool PirminisCiklas = true;
bool AntrinisCiklas = false;
while(PirminisCiklas == true)
Console.WriteLine("Pirminis Meniu");
Console.WriteLine("1. Vadovas");
Console.WriteLine("2. Testuotojas");
Console.WriteLine("3. Back-End Programuotojas");
Console.WriteLine("4. Front-End Programuotojas");
Console.WriteLine("5. Nutraukti programa");
while(AntrinisCiklas == true)
Console.WriteLine("Vadovo funkcionalumas");
Console.WriteLine("1.Perziureti Darbuotojus");
Console.WriteLine("2.Informacija apie vadova");
Console.WriteLine("3.Grizti i darbuotoju pasirinkima");
vadovas.perziuretiDarbuotojus(darbuotojai);
vadovas.ApieDarbuotoja();
Console.WriteLine("Grizti i darbuotoju pasirinkima");
while (AntrinisCiklas == true)
Console.WriteLine("Testuotojo funkcionalumas");
Console.WriteLine("1.Perziureti Informacija");
Console.WriteLine("2.Testuoti programa");
Console.WriteLine("3.Testuoti programas");
Console.WriteLine("4.Grizti i darbuotoju pasirinkima");
testuotojas.ApieDarbuotoja();
Console.WriteLine("Imone neturi programu...");
Console.WriteLine("Issirinkite programa");
for(int i = 0; i< programos.Count; i++)
Console.WriteLine(i.ToString() + "." + programos[i].GautiPavadinimas());
int indexas = Convert.ToInt32(p3);
testuotojas.Testuoti(programos[indexas]);
Console.WriteLine("Imone neturi programu...");
Console.WriteLine("Pasirinkite norimas programas");
List<Programa> temp = new List<Programa>();
for(int i = 0; i< programos.Count; i++)
Console.WriteLine(i.ToString() + ". " + programos[i].GautiPavadinimas());
Console.WriteLine("prideti");
Console.WriteLine("praleisti");
testuotojas.Testuoti(temp);
Console.WriteLine("Grizti i darbuotoju pasirinkima");
while (AntrinisCiklas == true)
Console.WriteLine("Back-End Programuotojo funkcionalumas");
Console.WriteLine("1.Perziureti Informacija");
Console.WriteLine("2.Kurti programa");
Console.WriteLine("3.Grizti i darbuotoju pasirinkima");
backEndProgramuotojas.ApieDarbuotoja();
Programa programa = backEndProgramuotojas.Kurti();
Console.WriteLine("Grizti i darbuotoju pasirinkima");
while (AntrinisCiklas == true)
Console.WriteLine("Front-End Programuotojo funkcionalumas");
Console.WriteLine("1.Perziureti Informacija");
Console.WriteLine("2.Kurti programa");
Console.WriteLine("3.Grizti i darbuotoju pasirinkima");
frontEndProgramuotojas.ApieDarbuotoja();
Programa programa = frontEndProgramuotojas.Kurti();
Console.WriteLine("Grizti i darbuotoju pasirinkima");
Console.WriteLine("Programa sustabdyta!");
Console.WriteLine("Pasirinkote neagzistuojanti pasirinkima...");
Console.WriteLine("Bandykite dar karta...");