Professional Documents
Culture Documents
C#
MOSTENIRE. POLIMORFISM
1. S se realizeze o aplicaie pentru gestiunea angajailor, clientilor si furnizorilor unei companii (continuare laborator 3)
detalii_companie = "Compania cu numele-" + companie.Denumire + " are adresa-" + companie.Adresa + " si telefonul-" + companie.Telefon; return detalii_companie; } #endregion #region interfata clasa public void TrimiteEmail (Companie companie) { Console.WriteLine("Nu se poate transmite mesaj catre compania-" + companie.Denumire + ". A fost transmis un mesaj postal la adresa: " + companie.Adresa); } public virtual int GenereazaRaport (Companie companie) { Console.WriteLine("A fost generat raportul pentru compania: " + companie.Denumire + " ......"); Console.WriteLine("Caracteristicile companiei " + companie.Denumire + " sunt: Telefonul este:" + companie.Telefon + " " + "Adresa Companiei este: " + companie.Adresa); return 1; } #endregion }
} public string AdresaWeb { get { return _adresaWeb; } set { _adresaWeb = value; } } public string AdresaEmail { get { return _adresaEmail; } set { _adresaEmail = value; } } #region interfata_clasei public void TrimiteEmail(Client client) { Console.WriteLine("A fost transmis cu succes mesajul catre clientul-" + client.Denumire + " la adresa: " + client.AdresaEmail); } public override int GenereazaRaport(Companie companie) { Client client = companie as Client; Console.WriteLine("A fost generat raportul pentru clientul: " + companie.Denumire + " ......"); Console.WriteLine("Caracteristicile clientului-" + client.Denumire + " sunt: Adresa web este:" + client.AdresaWeb + " " + "Adresa Email este: " + client.AdresaEmail + " iar observatiile asupra lui: " + client.Observatii); return 1; } #endregion }
public string DataInfiintare { get { return _datainfiintare; } set { _datainfiintare = value; } } public string AdresaWeb { get { return _adresaWeb; } set { _adresaWeb = value; } } public string AdresaEmail { get { return _adresaEmail; } set { _adresaEmail = value; } } #region interfata clasei public void TrimiteEmail(Furnizor furnizor) { Console.WriteLine("A fost transmis cu succes mesajul catre furnizorul-" + furnizor.Denumire + " la adresa: " + furnizor.AdresaEmail); } public string DetaliiFurnizor(Furnizor furnizor) { string detaliiFurnizor = furnizor.Formateaza_Detalii_Companie(furnizor); return detaliiFurnizor; } //functie test transmitere prin referinta public void modFurnizor(Furnizor furnizor) { furnizor.DataInfiintare = ""; furnizor.AdresaEmail = ""; furnizor.AdresaWeb = ""; } //functie test transmitere prin valoare public void modValoare(int x) { x = 8; } public override int GenereazaRaport(Companie companie) { Furnizor furnizor = companie as Furnizor; Console.WriteLine("A fost generat raportul pentru furnizorul: " + companie.Denumire + " ......"); Console.WriteLine("Caracteristicile furnizorului " + furnizor.Denumire + " sunt: Adresa web este:" + furnizor.AdresaWeb + " " + "Adresa Email este: " + furnizor.AdresaEmail + " Data infiintarii este: " + furnizor.DataInfiintare); return 1;
} #endregion }
Client client1 = new Client("Client fara probleme", "www.pancronex.ro", "panc@pancronex.ro", "Pancronex", "124389", "Strada Floreasca, Nr. 12, Bucuresti"); Client client2 = new Client("Probleme la achitarea facturilor", "www.adian.ro", "adi@adian.ro", "Adian SRL", "986543", "Strada Mantulesti, Nr. 7, Timisoara"); List<Companie> listaCompanii = new List<Companie>(); listaCompanii.Add(companie1); listaCompanii.Add(companie2); listaCompanii.Add(furnizor1); listaCompanii.Add(furnizor2); listaCompanii.Add(client1); listaCompanii.Add(client2); foreach (Companie comp in listaCompanii) { comp.GenereazaRaport(comp); } #endregion #region apelare metoda clasa derivata, fara folosirea polimorfismului Console.WriteLine("******************ALTERNATIVA LA POLIMORFISM! *********************************"); Console.WriteLine("**************** ALTERNATIVA LA POLIMORFISM! *********************************"); foreach (Companie companie in listaCompanii) { switch (companie.GetType().ToString()) { case "Gestiune.Clase.Companie": companie.TrimiteEmail(companie); break; case "Gestiune.Clase.Client": Client client = companie as Client; client.TrimiteEmail(client); break; case "Gestiune.Clase.Furnizor": Furnizor furnizor = companie as Furnizor; furnizor.TrimiteEmail(furnizor); break; default: break; } } #endregion
TEMA: Sa se realizeze un program, conform specificatiilor prezentate in cartea Beginning C sharp 2008, scrisa de Jack Purdum, pagina 445-463