36 / 36 / 29
Регистрация: 12.10.2014
Сообщений: 351

Реализовать операторы сравнения (> и <) для класса

12.04.2015, 19:08. Показов 2304. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1. Все поля класса, на значения которых имеются ограничения, сделать скрытыми (объявленными как private).
2. Для доступа к каждому такому полю реализовать соответствующие методы — один для присваивания значения полю, другой — для получения значения. В методе присваивания необходимо выполнять проверку введённых значений на соответствие имеющимся ограничениям.
3. Добавить в класс конструктор по умолчанию, конструктор с параметрами и конструктор копирования.
4. Реализовать операторы сравнения (> и <) для класса.
5. В программе выполнить сортировку массива объектов.


Был класс:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Лаба5
{
    class Worker
    {
        public double personID;
        public string family;
        public string name;
        public string dolgnost;
        public string date;
 
        public Worker(double id, string f, string n, string d, string date)
        { personID = id; family = f; name = n; dolgnost = d; this.date = date; }
 
        public int CalculateSalary()
        {
            int salary = 3;
 
            switch (dolgnost)
            {
                case"Nachalinik": salary += 5; break;
                case"Podchinen": salary *= 6; break;
            }
 
            return salary;
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            Worker[] worker = new Worker[]
              {
                new Worker(1,"f","n","Nachalinik","date"),
                new Worker(2,"f","n","Podchinen","date")
              };
            Console.Write(worker[0].CalculateSalary());
        }
    }
}
В итоге, у меня получилось что-то вроде этого:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Лаба5
{
    class Worker
    {
        private uint personID;
        private string family;
        private string name;
        private string dolgnost;
        private string date;
 
        public void SetPersonId(uint id)
        {
            personID = id;
        }
        public uint GetPersonId()
        {
            return personID;
        }
 
        public void SetFamily(string f)
        {
            family = f;
        }
        public string GetFamily()
        {
            return family;
        }
 
        public void SetName(string n)
        {
            name = n;
        }
        public string GetName()
        {
            return name;
        }
        public void SetDolgnost(string d)
        {
            dolgnost = d;
        }
        public string GetDolgnost()
        {
            return dolgnost;
        }
        public void SetDate(string da)
        {
                date = da;
        }
        public string GetDate()
        {
            return date;
        }
 
        public Worker(uint id, string f, string n, string d, string da)
        { personID = id; family = f; name = n; dolgnost = d; date = da; }
 
        public int CalculateSalary()
        {
            int salary = 3;
 
            switch (dolgnost)
            {
                case "Nachalinik": salary += 5; break;
                case "Podchinen": salary *= 6; break;
            }
 
            return salary;
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            Worker[] worker = new Worker[]
              {
                new Worker(1,"f","n","Nachalinik","date"),
                new Worker(2,"f","n","Podchinen","date")
              };
            Console.Write(worker[0].CalculateSalary());
        }
    }
}
Вопросы:
1)не понимаю что тут проверять.Если пытаюсь приписать сравнение в дате(приёма на работу),то не выходит,ибо не по правилам это.
2)Куда и в какой класс пихать конструкторы?И можно ли в один класс их все поместить.
3)До сравнения класса я пока не дошел,да и сортировать пока не вижу,что.
Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.04.2015, 19:08
Ответы с готовыми решениями:

Определить арифметические операторы и операторы сравнения (если возможно)
Для прямоугольного параллелепипеда определить арифметические операторы и операторы сравнения (если возможно).

Реализовать метод CompareTo для сравнения строк
Задание такое: В класс Edition добавить реализацию интерфейсa System.IComparable для сравнения объектов Edition по полю с названием...

Операторы для класса Triangle
В класс Triangle добавить: a. Индексатор, позволяющий по индексу 0 обращаться к полю a, по индексу 1 – к полю b, по индексу 2 – к полю...

5
 Аватар для newyork7776
351 / 344 / 279
Регистрация: 21.05.2013
Сообщений: 1,312
12.04.2015, 19:15
letronas, напиши полное задание
0
36 / 36 / 29
Регистрация: 12.10.2014
Сообщений: 351
12.04.2015, 19:29  [ТС]
Задание,которое нужно выполнить
Изменить класс, разработанный в предыдущей лабораторной работе следующим образом:
1. Все поля класса, на значения которых имеются ограничения, сделать скрытыми (объявленными как private).
2. Для доступа к каждому такому полю реализовать соответствующие методы — один для присваивания значения полю, другой — для получения значения. В методе присваивания необходимо выполнять проверку введённых значений на соответствие имеющимся ограничениям.
3. Добавить в класс конструктор по умолчанию, конструктор с параметрами и конструктор копирования.
4. Реализовать операторы сравнения (> и <) для класса.
5. В программе выполнить сортировку массива объектов.

До этого,заданием было
Задание
1. Разработать класс на языке C# в соответствии с вариантом задания.
2. Написать программу, демонстрирующую работу указанных выше элементов класса. В программе должен быть создан массив объектов разработанного класса, реализован ввод и вывод объектов, содержащихся в массиве.

Вариант 1
Разработать класс Worker (сотрудник), содержащий следующие поля:
personID (табельный номер сотрудника),
family (фамилия сотрудника),
name (имя сотрудника),
dolgnost (должность),
date (дата приёма на работу);
методы:
CalculateSalary() — посчитать зарплату (зарплата зависит от должности).

Добавлено через 27 секунд
готово
0
 Аватар для newyork7776
351 / 344 / 279
Регистрация: 21.05.2013
Сообщений: 1,312
12.04.2015, 19:52
вот немного сделал
class Worker
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace letronas
{
    class Worker
    {
        private int personID;
        private string family;
        private string name;
        private string dolgnost;
        private string date;
        public Worker()
        { }
        public Worker(int id, string f, string n, string d, string date)
        {
            this.personID = id; 
            this.family = f;
            this.name = n;
            this.dolgnost = d;
            this.date = date;
        }
        public Worker(Worker w)
        {
            this.personID = w.PersonID;
            this.family = w.Family;
            this.name = w.Name;
            this.dolgnost = w.Dolgnost;
            this.date = w.Date;
        }
 
        public int PersonID
        {
            get { return this.personID;}
            set {this.personID = value;}
        }
        public string Family
        {
            get { return this.family; }
            set { this.family = value; }
        }
        public string Name
        {
            get { return this.name; }
            set { this.name = value; }
        }
        public string Dolgnost
        {
            get { return this.dolgnost; }
            set { this.dolgnost = value; }
        }
        public string Date
        {
            get { return this.date; }
            set { this.date = value; }
        }
 
 
 
    }
}

class ListWorker
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace letronas
{
    class ListWorker
    {
        public List<Worker> listworker = new List<Worker>();
 
        public string CompareWorkerID(Worker w1,Worker w2)
        {
            if (w1.PersonID > w1.PersonID) 
            {
                return (w1.Name + " > " + w2.Name);
            }
            else
            {
               if (w1.PersonID < w1.PersonID) 
                    {
                        return (w1.Name + " < " + w2.Name);
                    }
               else
                   {
                       return (w1.Name + " = " + w2.Name);
                   }
            }
        }
        public void SortListWorker()
        {
            //здесь сортировка списка сотрудников
        }
        public IEnumerator<Worker> GetEnumerator()
        {
            foreach (Worker o in listworker)
                yield return o;
        }
    }
}

class Program
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace letronas
{
    class Program
    {
        
        static void Main(string[] args)
        {
            ListWorker wlist = new ListWorker();
            Worker w;
            w = new Worker(1, "Family1", "Name1", "Nachalinik","data1");
                wlist.listworker.Add(w);
            w = new Worker(2, "Family2", "Name2", "Nachalinik", "data2");
                wlist.listworker.Add(w);
            w = new Worker(wlist.listworker.Last());
            w.PersonID++;
                wlist.listworker.Add(w);
 
           Console.WriteLine("List");
           foreach (Worker q in wlist.listworker)
               Console.WriteLine(q.PersonID +  " / " + q.Name + " / " + q.Family);
 
           Console.ReadLine();
        }
    }
}
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10421 / 5151 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
12.04.2015, 19:58
Цитата Сообщение от letronas Посмотреть сообщение
не понимаю что тут проверять
Имя может быть пустым или null ? Нет.
Фамилия может быть пустой? Нет.
Фамилия или имя могут содержать пробелы? Нет.
и т.д.
Цитата Сообщение от letronas Посмотреть сообщение
C#
1
2
3
4
5
public double personID;
     public string family;
     public string name;
     public string dolgnost;
     public string date;
Id типа double?
date типа string?
0
36 / 36 / 29
Регистрация: 12.10.2014
Сообщений: 351
12.04.2015, 20:38  [ТС]
Во второй части я исправился на unit
А вот дату не знаю какой поставить.

Добавлено через 2 минуты
C#
1
2
3
4
[quote="newyork7776;7470833"]public string Date
* * * * {
* * * * * * get { return this.date; }
* * * * * * set { this.date = value; }[/quote]
Не знаком с this :/ Я весьма не долго изучаю этот язык и не знаю,что делает эта команда.С get set знаком поверхностно и знаю,что она упрощает запись.

Добавлено через 34 минуты
Можно,пожалуйста,ссылку на толковый учебник ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.04.2015, 20:38
Помогаю со студенческими работами здесь

Реализовать операторы сравнения двух экземпляров класса (==, !==)
Приведите пример такой перегрузки, пожалуйста

Для класса Vector перегрузить операторы присваивания, сравнения, ввода и вывода
срочно помогите написать программу, желательно с комментариями если можно)) Для класса Vector перегрузить операторы присваивания, ...

Определить подпрограммы - операторы сравнения eq?, Less?, И т.п. или операторы == *! = * <*>, * <= *> =
Определить подпрограммы - операторы сравнения eq?, Less?, И т.п. или операторы == *! = * &lt;*&gt;, * &lt;= *&gt; =, Которые возвращают...

Дописать класс, добавить несократимую дробь и операторы сравнения для неё
К этой программе надо добавить несократимую дробь и все условия больше, меньше, равно, неравно, больше либо равно, меньше либо равно ...

Перегрузка операторов сравнения для класса Rational
Прохожу курс вот условие Еще одна важная группа операторов, которые полезно реализовать для класса рациональных чисел — это операторы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
Система статов в Unity
GameUnited 20.04.2025
Статы — фундаментальный элемент игрового дизайна, который определяет характеристики персонажей, предметов и других объектов в игровом мире. Будь то показатель силы в RPG, скорость передвижения в. . .
Статические свойства и методы в TypeScript
run.dev 20.04.2025
TypeScript прочно занял своё место в системе современной веб-разработки. Этот строго типизированный язык программирования не просто расширяет возможности JavaScript — он делает разработку более. . .
Batch Transform и Batch Gizmo Drawing API в Unity
GameUnited 20.04.2025
В мире разработки игр и приложений на Unity производительность всегда была критическим фактором успеха. Создатели игр постоянно балансируют между визуальной привлекательностью и плавностью работы. . .
Звук в Unity: Рандомизация с Audio Random Container
GameUnited 20.04.2025
В современных играх звуковое оформление часто становится элементом, который либо полностью погружает игрока в виртуальный мир, либо разрушает атмосферу за считанные минуты. Представьте: вы исследуете. . .
Максимальная производительность C#: Советы, тестирование и заключение
stackOverflow 20.04.2025
Погружение в мир микрооптимизаций C# открывает перед разработчиком целый арсенал мощных техник. Но как определить, где и когда их применять? Ответ начинается с точных измерений и профилирования. . . .
Максимальная производительность C#: Предсказание ветвлений
stackOverflow 20.04.2025
Третий ключевой аспект низкоуровневой оптимизации — предсказание ветвлений. Эта тема менее известна среди разработчиков, но её влияние на производительность может быть колоссальным. Чтобы понять. . .
Максимальная производительность C#: Векторизация (SIMD)
stackOverflow 20.04.2025
Помимо работы с кэшем, другим ключевым аспектом низкоуровневой оптимизации является векторизация вычислений. SIMD (Single Instruction, Multiple Data) позволяет обрабатывать несколько элементов данных. . .
Максимальная производительность C#: Процессорный кэш
stackOverflow 20.04.2025
Знакомство с внутренним устройством процессорного кэша — ключевой шаг в написании по-настоящему быстрого кода на C#. Этот слой архитектуры компьютера часто ускользает от внимания разработчиков, но. . .
Максимальная производительность C#: Введение в микрооптимизации
stackOverflow 20.04.2025
В мире разработки на C# многие привыкли полагаться на . NET Runtime, который "магическим образом" сам оптимизирует код. И часто это работает - современные JIT-компиляторы творят чудеса. Но когда речь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru