You are on page 1of 8

LABORATOR 3

C#
CLASE: MEMBRI, PROPRIETĂŢI, CONSTRUCTORI, INTERFAŢĂ
1. Să se realizeze o aplicaţie pentru gestiunea angajaţilor dintr-o companie Pasul 1: Definirea structurii de clase: Clasa Angajat

using using using using

System; System.Collections.Generic; System.Linq; System.Text;

namespace Gestiune.Clase { class Angajat { #region campuri private private private private string string double string _nume = string.Empty; _prenume = string.Empty; _salariu = 0; _datanasterii = string.Empty;

_datanasterii = "01. } set { _nume = value.1990". } .Empty. } #endregion #region proprietati public string Nume { get { return _nume. _dataangajarii = "01. _prenume = prenume. string dataangajarii ) { _nume = nume. string prenume):this() { _nume = nume. string datanasterii.private string _dataangajarii = string. double salariu. _prenume = prenume. _datanasterii = datanasterii. } public Angajat(string nume. string prenume.01. } } public string Prenume { get { return _prenume. _salariu = salariu.01. #endregion #region constructori public Angajat() { _salariu = 800. } public Angajat(string nume.1990". _dataangajarii = dataangajarii.

} set { _datanasterii = value. } public void ScadeSalariu(int procent) { _salariu = _salariu . string prenume. } } #endregion #region interfata_clasei public void CresteSalariu(int procent) { _salariu = _salariu + (_salariu * procent/100). . } set { _dataangajarii = value. } set { if (value < 10000) { _salariu = value. } public string DetaliiCompleteAngajat(string nume.(_salariu * procent / 100). } } public double Salariu { get { return _salariu.Empty. } } } public string DataNasterii { get { return _datanasterii.set { _prenume = value. double salariu. } } public string DataAngajarii { get { return _dataangajarii. string dataangajarii) { string detalii_complete = string. string datanasterii. } else { Console.WriteLine("Salariul trebuie sa fie mai mic de 10000").

Clase.Text.nascut pe data: " + angajat. } #endregion } } Pasul 2: Utilizarea structurii de clase în programul Principal using using using using using using System. .Salariu.nascut pe data: " + datanasterii + " si angajat incepand cu " + dataangajarii + " are salariul: " + salariu. } public string DetaliiCompleteAngajat(Angajat angajat) { string detalii_complete = string. Angajat[] listaAngajati_2 = new Angajat[10]. Gestiune.Prenume + ". return detalii_complete. namespace Gestiune { class Program { static void Main(string[] args) { #region declaratii şi iniţializări ArrayList listaAngajati = new ArrayList(). System.DataAngajarii + " are salariul: " + angajat.Collections. System.detalii_complete = "Angajatul cu numele: " + nume + " " + prenume + ".Linq. //obiect de tip Random utilizat in determinarea unui index aleator cu valori intre 0 si numarul de angajati existent intr-o lista Random randomAngajat = new Random(). System.DataNasterii + " si angajat incepand cu " + angajat.Empty. detalii_complete = "Angajatul cu numele: " + angajat. return detalii_complete.Nume + " " + angajat. List<Angajat> listaAngajati_3 = new List<Angajat>().Generic.Collections. System.

angajat1. . "19.2002").WriteLine("Salariul angajatului 1 este: " + angajat1.WriteLine(). "Marian").Salariu = 10002.4 prin constructor parametrizat . "10. //se va afisa faptul ca salariul trebuie sa fie mai mic de 10000 //este pastrata valoarea implicita 800 angajat1. "20.04. Console.3.Prenume). 2500.4 prin constructor parametrizat . "12.1974". Console.WriteLine("Numele angajatului 1 este: " + angajat1. #endregion #region afişare_date_angajaţi //afisare date angajat 1 Console.3.DataNasterii = "14. Console.WriteLine(). Console.int indexAngajatNorocos = 0. "20. angajat1.WriteLine().1979". angajat1. 1700. "Gavrila".1998".2002").05.Salariu). Angajat angajat4 = new Angajat("Matache".este initializat un singur camp Angajat angajat5 = new Angajat("Gavrila". angajat1.1970".01.Nume = "Mircea".sunt initializate toate campurile Angajat angajat2 = new Angajat("Cristina". Angajat angajat3 = new Angajat("Teodor".11. 2700. //construire obiect angajat2.Nume). "15. //construire obiect angajat2. "Cristian". Console. #endregion #region construire obiecte de tip angajat //construire obiect angajat1 prin constructor implicit //initalizare proprietati Angajat angajat1 = new Angajat().07.01.2004"). "Mantu".Prenume = "Adrian".1976".02.DataAngajarii = "15.WriteLine("Prenumele angajatului 1 este: " + angajat1.06.

+ angajat1.Salariu).Add(angajat3). //afisare date angajat 1 prin apelul metodelor Console.Add(angajat5). Console. angajat1.WriteLine().Prenume.DetaliiCompleteAngajat(angajat1)).Salariu.DetaliiCompleteAngajat(angajat1. Console.Add(angajat2).WriteLine("Detaliile angajatului 1: " angajat1.Salariu).dimensiune fixa. listaAngajati.Salariu). poate stoca obiecte de acelasi tip for (int i=0.ScadeSalariu(10). Console.poate stoca orice tip listaAngajati.Salariu).WriteLine("Detaliile angajatului 1: " Console.WriteLine("Salariul angajatului 1 este inainte de scadere : " + angajat1. Console.DataAngajarii))..Nume. Console.Add(angajat1). Console.DataNasterii.WriteLine(). listaAngajati.DataNasterii). angajat1. i++) { switch (i) { case 0: listaAngajati_2[i] = angajat1.. angajat1. . #region contruire_lista_angajati // construirea unor liste cu angajati //utilizam un obiect de tip ArrayList: structura dinamica .WriteLine("Data Angajarii angajatului 1 este: " + angajat1.WriteLine().WriteLine("Salariul angajatului 1 este dupa crestere : " + angajat1.CresteSalariu(12). //utilizam un vector de angajati .Console. listaAngajati. i<=4. angajat1.WriteLine(). angajat1.WriteLine("Data Nasterii angajatului 1 este: " + angajat1. din interfata clasei Angajat + angajat1.WriteLine("Salariul angajatului 1 este inainte de crestere : " + angajat1.DataAngajarii).WriteLine("Salariul angajatului 1 este dupa scadere : " + angajat1. //scaderea salariului angajatului 1 Console. #endregion //cresterea salariului angajatului 1 Console.Add(angajat4). Console. break. listaAngajati.

case 2: listaAngajati_2[i] break. case 4: listaAngajati_2[i] break. case 3: listaAngajati_2[i] break.Add(angajat4). = angajat4.WriteLine(). i < listaAngajati.Add(angajat5).WriteLine("Detaliile angajatului: " + ang. listaAngajati_3. i++) { //Trebuie sa realizam conversia obiectului listaAngajati[i] in tipul Angajat Console. Console.Add(angajat2). #endregion #region afisare_detalii angajati //afisam detaliile angajatilor din ArrayList //utilizand foreach foreach (Angajat ang in listaAngajati) { Console.Count.DetaliiCompleteAngajat(ang)). . = angajat3.DetaliiCompleteAngajat((Angajat)listaAngajati[i])). = angajat5. } } = angajat2. obligativitate pe tip listaAngajati_3.Add(angajat3). } //utilizand for for (int i = 0.case 1: listaAngajati_2[i] break. listaAngajati_3.structura dinamica. listaAngajati_3. //utilizam un generic List<TIP> . listaAngajati_3.Add(angajat1).WriteLine("Detaliile angajatului " + (i+1) + " sunt: " + ((Angajat)listaAngajati[i]).

i <= 1. } #endregion #region premierea_unui_angajat_norocos indexAngajatNorocos = randomAngajat. listaAngajati_3[indexAngajatNorocos].DetaliiCompleteAngajat(listaAngajati_2[i])).Count).WriteLine().Count .WriteLine("Angajatul norocos este: " + listaAngajati_3[indexAngajatNorocos].2.CresteSalariu(8).WriteLine(). noul salariu fiind: " + listaAngajati_3[indexAngajatNorocos].Salariu). Console.ReadLine(). i < listaAngajati_3. } //afisam ultimii doi angajati din List<TIP> for (int i = listaAngajati_3.WriteLine("Detaliile angajatului " + (i+1) + " sunt: " + listaAngajati_2[i].DetaliiCompleteAngajat(listaAngajati_3[i])). } } } .Nume + " " + listaAngajati_3[indexAngajatNorocos].WriteLine().Count.Prenume + ". i++) { Console. } //afisam primii doi angajati din vector for (int i = 0.Console.Next(listaAngajati_3. Console. #endregion Console.WriteLine("Detaliile angajatului " + (i + 1) + " sunt: " + listaAngajati_3[i]. Console. i++) { Console.