Sunteți pe pagina 1din 8

LABORATOR 3

C#
CLASE: MEMBRI, PROPRIETI, CONSTRUCTORI, INTERFA
1. S se realizeze o aplicaie pentru gestiunea angajailor 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;

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

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

detalii_complete = "Angajatul cu numele: " + nume + " " + prenume + ",nascut pe data: " + datanasterii + " si angajat incepand cu " + dataangajarii + " are salariul: " + salariu; return detalii_complete; } public string DetaliiCompleteAngajat(Angajat angajat) { string detalii_complete = string.Empty; detalii_complete = "Angajatul cu numele: " + angajat.Nume + " " + angajat.Prenume + ",nascut pe data: " + angajat.DataNasterii + " si angajat incepand cu " + angajat.DataAngajarii + " are salariul: " + angajat.Salariu; return detalii_complete; } #endregion } }

Pasul 2: Utilizarea structurii de clase n programul Principal


using using using using using using System; System.Collections.Generic; System.Linq; System.Text; Gestiune.Clase; System.Collections;

namespace Gestiune { class Program { static void Main(string[] args) { #region declaratii i iniializri ArrayList listaAngajati = new ArrayList(); Angajat[] listaAngajati_2 = new Angajat[10]; List<Angajat> listaAngajati_3 = new List<Angajat>(); //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();

int indexAngajatNorocos = 0; #endregion #region construire obiecte de tip angajat //construire obiect angajat1 prin constructor implicit //initalizare proprietati Angajat angajat1 = new Angajat(); angajat1.DataAngajarii = "15.01.1998"; angajat1.DataNasterii = "14.02.1976"; angajat1.Nume = "Mircea"; angajat1.Prenume = "Adrian"; //se va afisa faptul ca salariul trebuie sa fie mai mic de 10000 //este pastrata valoarea implicita 800 angajat1.Salariu = 10002;

//construire obiect angajat2,3,4 prin constructor parametrizat - sunt initializate toate campurile Angajat angajat2 = new Angajat("Cristina", "Mantu", 2500, "10.07.1970", "19.04.2004"); Angajat angajat3 = new Angajat("Teodor", "Cristian", 2700, "12.05.1974", "20.06.2002"); Angajat angajat4 = new Angajat("Matache", "Gavrila", 1700, "15.11.1979", "20.01.2002"); //construire obiect angajat2,3,4 prin constructor parametrizat - este initializat un singur camp Angajat angajat5 = new Angajat("Gavrila", "Marian"); #endregion #region afiare_date_angajai //afisare date angajat 1 Console.WriteLine("Numele angajatului 1 este: " + angajat1.Nume); Console.WriteLine(); Console.WriteLine("Prenumele angajatului 1 este: " + angajat1.Prenume); Console.WriteLine(); Console.WriteLine("Salariul angajatului 1 este: " + angajat1.Salariu); Console.WriteLine();

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

case 1: listaAngajati_2[i] break; case 2: listaAngajati_2[i] break; case 3: listaAngajati_2[i] break; case 4: listaAngajati_2[i] break; } }

= angajat2;

= angajat3;

= angajat4;

= angajat5;

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

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

S-ar putea să vă placă și