Перегрузить операторы > и <, считая что один сотрудник больше другого, если принят на работу раньше - C#
Формулировка задачи:
Разработать класс Worker (сотрудник), содержащий следующие поля:
personID (табельный номер сотрудника),
family (фамилия сотрудника),
date (дата приёма на работу);
методы:
GetStage() — получить стаж сотрудника.
Перегрузить операторы > и <, считая что один сотрудник больше другого, если принят на работу раньше. проверти код, что в нем не так, просто нам надо сделать с конструкторами
class Worker { public int persoID; public string family; public DateTime date; public Worker() { persoID=0; family=""; date=new DateTime (2012, 05, 20); } public int ID {set {persoID=value; } get {return persoID; }} public string family; set {family=value; } get {return family }} public DateTime date set {date=value; } get {return date; }} public Worker (Worker J) { personID=J.personID family=J.family date=J.date } public Worker(int persoID, string family, DateTime date) { this.persoID = persoID; this.family = family; this.date = date; } public void GetStage() { if (this.date < DateTime.Now) Console.WriteLine("Стаж работника {0} = {1} дней", family, (DateTime.Now - date).Days); else Console.WriteLine("Некоректная дата поступления работника"); } public static bool operator >(Worker w1, Worker w2) { if (w1.date < w2.date) return true; return false; } public static bool operator <(Worker w1, Worker w2) { if (w1.date > w2.date) return true; return false; } } } class Program { static void Main(string[] args) { Worker w1 = new Worker(1276, "Ivanov", new DateTime(2011, 11, 9)); w1.GetStage(); Worker w2 = new Worker(1256, "Petrov", new DateTime(2010, 11, 14)); w2.GetStage(); if (w1 > w2) Console.WriteLine("Сотрудник w1 принят раньше от w2"); else Console.WriteLine("Сотрудник w2 принят раньше от w1"); } }
Решение задачи: «Перегрузить операторы > и <, считая что один сотрудник больше другого, если принят на работу раньше»
textual
Листинг программы
using System; namespace ConsoleApplication1 { public class Worker { int personID; string family; DateTime date; public Worker() : this(0, string.Empty, new DateTime()) { } public Worker(int personID, string family, DateTime date) { this.personID = personID; this.family = family; this.date = date; } public Worker(Worker worker) : this(worker.ID, worker.Family, worker.Date) { } public int ID { set { personID = value; } get { return personID; } } public string Family { set { family = value; } get { return family; } } public DateTime Date { set { date = value; } get { return date; } } public int GetStage() { return (DateTime.Now - Date).Days; } public static bool operator >(Worker w1, Worker w2) { if (w1.date < w2.date) return true; return false; } public static bool operator <(Worker w1, Worker w2) { if (w1.date > w2.date) return true; return false; } } class Program { static void Main(string[] args) { Worker w1 = new Worker(1276, "Иванов", new DateTime(2011, 11, 9)); DisplayStageInfo(w1); Worker w2 = new Worker(1256, "Петров", new DateTime(2010, 11, 14)); DisplayStageInfo(w2); Console.ReadKey(); } private static void DisplayStageInfo(Worker worker) { if (worker.Date < DateTime.Now) Console.WriteLine("Стаж работника {0} = {1} дней", worker.Family, worker.GetStage()); else Console.WriteLine("Некоректная дата поступления работника"); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д