2 / 2 / 0
Регистрация: 17.11.2011
Сообщений: 107
1

Создайте класс семейства People (люди)

17.11.2011, 16:20. Показов 4767. Ответов 14
Метки нет (Все метки)

Это все одно задание. Я понимаю, что оно простое, но сообразить, как его делать, я не могу!



№ 1 Создайте класс семейства People (люди), который представляет собой семейство класса Person. Доступ к элементам семейства должен быть организован через строковый индексатор, являющийся именем лица, которое идентично свойству Person,Name.
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
public class Person 
{ 
    private string name;
    private int age;
    public string Name
      {
        get
        {
            return name;
        }
        set
        {
            name=vaue;
        }
    public int Age
      {
        get
        {
            return age;
        }
        set
        {
            age-value;
        }
      }
}
№ 2. Расширьте класс Person, перегрузив операторы >, <, >=, <= так, чтобы они выполняли сравнение свойств Age экземпляров класса Person.
№ 3. Добавьте в класс People метод GetOldest(), который будет возвращать массив объектов Person, с наибольшим значением свойства Age (этот массив состоит из одного и более объектов, поскольку значение этого свойства может оказаться одинаковым у нескольких элементов). Для этого воспользуйтесь перегруженными операторами.
№ 4. Реализуйте в классе People интерфейс IСloneable, который бы обеспечивал выполнение глубокого копирования.

 Комментарий модератора 
Создавайте темы с осмысленными и понятными названиями - это серьезно повышает шансы, что на ваш вопрос ответят.

 Комментарий модератора 
Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.

 Комментарий модератора 
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2011, 16:20
Ответы с готовыми решениями:

Создайте класс RightTriangle и Создайте производный класс Rectangle
Создайте класс RightTriangle (Прямоугольный треугольник), задаваемый катетами и опишите механизм...

Класс People и два класса-наследника Working и Client: Поиск по части слова
Здравствуйте. Имеется базовый класс People и два класса-наследника Working и Client. Далее создал...

Создайте класс Parallelogram. Этот класс хранит декартовы координаты четырех углов параллелограмма
Создайте класс Parallelogram.Этот класс хранит декартовы координаты четырех углов параллелограмма....

Создайте класс, описывающий и реализующий класс-наследник класса "прямоугольник"
создайте класс описывающий и реализующий класс-наследник класса object геометрическую фигуру ...

14
Эксперт .NET
16929 / 12506 / 3286
Регистрация: 17.09.2011
Сообщений: 20,743
17.11.2011, 21:24 2
Цитата Сообщение от Алешка Посмотреть сообщение
№ 1 Создайте класс семейства People (люди), который представляет собой семейство класса Person. Доступ к элементам семейства должен быть организован через строковый индексатор, являющийся именем лица, которое идентично свойству Person,Name.
C#
1
2
3
4
5
6
7
8
9
10
11
12
public class People
{
    private List<Person> people = new List<Person>();
 
    public Person this[string name]
    {
        get
        {
            return people.FirstOrDefault(person => person.Name == name);
        }
    }
}
Цитата Сообщение от Алешка Посмотреть сообщение
№ 2. Расширьте класс Person, перегрузив операторы >, <, >=, <= так, чтобы они выполняли сравнение свойств Age экземпляров класса Person.
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
public class Person
{
    private string name;
    private int age;
    public string Name
    {
        get
        {
            return name;
        }
        set
        {
            name = value;
        }
    }
    public int Age
    {
        get
        {
            return age;
        }
        set
        {
            age = value;
        }
    }
 
    public static bool operator <(Person first, Person second)
    {
        return first.Age < second.Age;
    }
    public static bool operator >(Person first, Person second)
    {
        return first.Age > second.Age;
    }
    public static bool operator <=(Person first, Person second)
    {
        return first.Age <= second.Age;
    }
    public static bool operator >=(Person first, Person second)
    {
        return first.Age <= second.Age;
    }
}
Цитата Сообщение от Алешка Посмотреть сообщение
№ 3. Добавьте в класс People метод GetOldest(), который будет возвращать массив объектов Person, с наибольшим значением свойства Age
C#
1
2
3
4
public Person[] GetOldest()
{
    return people.Where(person => person.Age == people.Max(p => p.Age)).ToArray();
}
Цитата Сообщение от Алешка Посмотреть сообщение
№ 4. Реализуйте в классе People интерфейс IСloneable, который бы обеспечивал выполнение глубокого копирования.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class People : ICloneable
{
    public object Clone()
    {
        People clones = new People();
        foreach (var person in this.people) {
            var clone = new Person();
            clone.Name = person.Name;
            clone.Age = person.Age;
            clones.people.Add(clone);
        }
        return clones;
    }
}
За вами остается сложить все это вместе.
1
2 / 2 / 0
Регистрация: 17.11.2011
Сообщений: 107
17.11.2011, 22:30  [ТС] 3
Спасибо ограмнейшее!!!!!
Только я не могу понять, что тут надо вставлять в Main(

Добавлено через 19 минут
Что эта программа вобще должна выполнять? Тут открывается консоль и сразу закрывается
0
21 / 21 / 3
Регистрация: 11.01.2011
Сообщений: 72
17.11.2011, 23:01 4
Цитата Сообщение от Алешка Посмотреть сообщение
Тут открывается консоль и сразу закрывается
C#
1
Console.ReadKey();
или
C#
1
Console.ReadLine();
1
2 / 2 / 0
Регистрация: 17.11.2011
Сообщений: 107
17.11.2011, 23:07  [ТС] 5
Был очень глупый вопрос) Спасибо)

Но все равно вводишь в консоле что-нибудь и она сразу закрывается

Добавлено через 1 минуту
Вобще не понимаю сути этой программы
0
21 / 21 / 3
Регистрация: 11.01.2011
Сообщений: 72
18.11.2011, 00:36 6
Цитата Сообщение от Алешка Посмотреть сообщение
Но все равно вводишь в консоле что-нибудь и она сразу закрывается
Сбросте ваш код
0
2 / 2 / 0
Регистрация: 17.11.2011
Сообщений: 107
18.11.2011, 07:08  [ТС] 7
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace _2_b
{
    public class People : ICloneable
{
        public object Clone()
        {
            People clones = new People();
            foreach (var person in this.people)
            {
                var clone = new Person();
                clone.Name = person.Name;
                clone.Age = person.Age;
                clones.people.Add(clone);
            }
            return clones;
        }
        private List<Person> people = new List<Person>();
 
        public Person this[string name]
        {
                get
                {
                        return people.FirstOrDefault(person => person.Name == name);
                }
        }
        public class Person
        {
            private string name;
            private int age;
            public string Name
            {
                get
                {
                    return name;
                }
                set
                {
                    name = value;
                }
            }
            public int Age
            {
                get
                {
                    return age;
                }
                set
                {
                    age = value;
                }
            }
 
            public static bool operator <(Person first, Person second)
            {
                return first.Age < second.Age;
            }
            public static bool operator >(Person first, Person second)
            {
                return first.Age > second.Age;
            }
            public static bool operator <=(Person first, Person second)
            {
                return first.Age <= second.Age;
            }
            public static bool operator >=(Person first, Person second)
            {
                return first.Age <= second.Age;
            }
        }
 
            public Person[] GetOldest()
{
        return people.Where(person => person.Age == people.Max(p => p.Age)).ToArray();
}
        static void Main(string[] args)
        {
            Console.ReadLine();
            Console.ReadKey();
        }
    }
}
0
Банальное исключение
127 / 95 / 12
Регистрация: 31.03.2010
Сообщений: 314
Записей в блоге: 1
18.11.2011, 07:21 8
C#
1
2
3
4
5
static void Main(string[] args)
{
    Console.ReadLine();
    Console.ReadKey();
}
А что она должна собственно выполнять, при таком то Main'e?
0
2 / 2 / 0
Регистрация: 17.11.2011
Сообщений: 107
18.11.2011, 07:53  [ТС] 9
Вот я и не знаю, что надо писать в Main

Добавлено через 2 минуты
Если несложно, можете написать, что там должно быть, а то я совсем плохо в этом соображаю.
0
34 / 34 / 3
Регистрация: 12.10.2011
Сообщений: 175
18.11.2011, 08:18 10
Это ж Карли Ватсон - С#. Одно из упражнений для самостоятельного...от до чего дошли уже...
0
2 / 2 / 0
Регистрация: 17.11.2011
Сообщений: 107
18.11.2011, 09:49  [ТС] 11
Я читал Ватсона, но там пример про Animal. Я совсем в программировании не понимаю, так что ничего разобрать там не могу(
0
34 / 34 / 3
Регистрация: 12.10.2011
Сообщений: 175
18.11.2011, 10:47 12
у тебя задание - создать класс и снабдить его всякой чепухой, это тебе подсказали...кто сказал, что вообще должна хоть какая-то прога выполняться?)
0
2 / 2 / 0
Регистрация: 17.11.2011
Сообщений: 107
18.11.2011, 16:17  [ТС] 13
На преподаватель не говорит, что должно быть в консоле. Говорит только, что там должно быть что-то, а что это, нам надо самим разбираться.
0
34 / 34 / 3
Регистрация: 12.10.2011
Сообщений: 175
18.11.2011, 22:29 14
ну вот и разбирайся) тебе уже и блюдо приготовили и на тарелочке поднесли, осталось проглотить
0
2 / 2 / 0
Регистрация: 17.11.2011
Сообщений: 107
18.11.2011, 22:40  [ТС] 15
всего-то сутки с этой программой и уже почти разобрался)))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2011, 22:40
Помогаю со студенческими работами здесь

Создайте класс DocumentWorker
Здравствуйте. Помогите пожалуйста написать программу. Очень нужно. Дали задание, а время на...

Создайте класс Student
Создайте класс Student, описывающий студента. Поля класса – фамилия, имя и отчество студента, пол,...

Создать абстрактный класс - млекопитающие. Определить производные классы - животные и люди
Создать абстрактный класс - млекопитающие. Определить производные классы - животные и люди. У...

Создайте класс с именем train
Здравствуйте помогите пожалуйста написать программу. Я только начал изучать ООП и задали, на мой...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru