Menu
Coddy logo textTech

Riepilogo - Gerarchia dei dipendenti

Fa parte della sezione Programmazione orientata agli oggetti del percorso C# di Coddy. Lezione 24 di 70.

challenge icon

Sfida

Facile

Creiamo un sistema gerarchico di dipendenti che riunisce tutti i concetti di ereditarietà di questo capitolo. Creerai una struttura aziendale in cui diversi tipi di dipendenti condividono attributi comuni, ma calcolano i bonus in modo diverso.

Organizzerai il codice in quattro file:

  • Employee.cs: Definisci la classe base Employee nello spazio dei nomi Company. Ogni dipendente ha un Name (string) e uno Salary (decimal). Crea un costruttore che accetti entrambi i valori. Aggiungi un metodo virtual chiamato CalculateBonus() che restituisca per impostazione predefinita il 10% dello stipendio. Esegui l'override di ToString() affinché restituisca "{Name} - ${Salary}".
  • Manager.cs: Definisci una classe Manager nello spazio dei nomi Company che eredita da Employee. I manager hanno una proprietà aggiuntiva TeamSize (int). Il costruttore dovrebbe accettare nome, stipendio e dimensione del team, usando base per inizializzare la classe padre. Esegui l'override di CalculateBonus() affinché restituisca il 15% dello stipendio più $50 per ogni membro del team. Esegui l'override di ToString() affinché restituisca "{Name} - ${Salary} (Manager, Team: {TeamSize})".
  • Developer.cs: Definisci una classe Developer nello spazio dei nomi Company che eredita da Employee. Gli sviluppatori hanno una proprietà ProgrammingLanguage (string). Il costruttore accetta nome, stipendio e linguaggio di programmazione. Esegui l'override di CalculateBonus() affinché restituisca il 12% dello stipendio. Esegui l'override di ToString() affinché restituisca "{Name} - ${Salary} (Developer, {ProgrammingLanguage})".
  • Program.cs: Nel tuo file principale, crea un dipendente di ogni tipo usando i valori inseriti. Memorizza tutti e tre in un array di riferimenti a Employee per dimostrare il polimorfismo. Scorri l'array e stampa il risultato di ToString() di ogni dipendente, seguito dal relativo bonus.

Riceverai otto input:

  • Nome del dipendente base
  • Stipendio del dipendente base
  • Nome del manager
  • Stipendio del manager
  • Dimensione del team del manager
  • Nome dello sviluppatore
  • Stipendio dello sviluppatore
  • Linguaggio di programmazione dello sviluppatore

Stampa le informazioni e il bonus di ogni dipendente in questo formato:

{ToString result}
Bonus: ${CalculateBonus result}

Per esempio, se gli input sono John, 50000, Sarah, 80000, 5, Mike, 70000 e C#, l'output dovrebbe essere:

John - $50000
Bonus: $5000
Sarah - $80000 (Manager, Team: 5)
Bonus: $12250
Mike - $70000 (Developer, C#)
Bonus: $8400

Nota come ogni tipo di dipendente calcoli i bonus in modo diverso, eppure puoi elaborarli tutti tramite un unico array Employee. Questo è il potere di combinare l'ereditarietà con il polimorfismo!

Provalo tu

using System;
using Company;

class Program
{
    public static void Main(string[] args)
    {
        // Leggi i dati di input del dipendente di base
        string empName = Console.ReadLine();
        decimal empSalary = Convert.ToDecimal(Console.ReadLine());
        
        // Leggi i dati di input del manager
        string mgrName = Console.ReadLine();
        decimal mgrSalary = Convert.ToDecimal(Console.ReadLine());
        int teamSize = Convert.ToInt32(Console.ReadLine());
        
        // Leggi i dati di input dello sviluppatore
        string devName = Console.ReadLine();
        decimal devSalary = Convert.ToDecimal(Console.ReadLine());
        string progLang = Console.ReadLine();
        
        // TODO: Crea un Employee, un Manager e un Developer
        
        // TODO: Memorizza tutti e tre in un array di Employee per dimostrare il polimorfismo
        
        // TODO: Scorri l'array e stampa il risultato di ToString() e il bonus di ogni dipendente
        // Formato:
        // {ToString result}
        // Bonus: ${CalculateBonus result}
    }
}

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore C# online