Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 24.08.2017
Сообщений: 4
1
.NET 4.x

Работа с классами

29.08.2017, 13:41. Показов 920. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добавьте два класса Person и Staff - (это сделал, работает).
Создайте два класса Teacher и Developer, производные от Staff. Для класса Teaсher добавьте поле subject, а для класса Developer - поле level, переопределите метод Print для обоих классов. - тут чтото неполучается...как сделать?

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Home_Work_7
{
    public  class Person
    {
        private string name;
        public Person(string name)
        { 
            this.name = name;
        }
        virtual public string Name 
        {
            get 
            { 
                return name; 
            }
        }
        virtual public void Print()
        {
            Console.WriteLine("Name: {0}", this.name);
        }
 
        public class Staff : Person
        {
            private int salary;
            public Staff(string name, int salary): base(name)
            { 
                this.salary = salary; 
            }
 
            override public string Name
            { 
                get 
                { 
                    return base.Name + "Staff"; 
                } 
            }
            override public void Print()
            {
                Console.WriteLine("Person {0} has salary: ${1}", Name, this.salary);
            }
 
 
            public class Teacher : Staff
            {
 
            }
 
            public class Developer : Staff
            {
 
            }
 
        }
       
    }
    public class Program
    {
        static void Main(string[] args)
        {
            List<Person> people = new List<Person>();
            people.Add(new Person("Yura"));
            people.Add(new Person.Staff("Ira ", 300));
            
            foreach (var p in people)
                p.Print();
            Console.ReadLine();
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2017, 13:41
Ответы с готовыми решениями:

Работа с классами
Помогите с 11 вариантом. Не могу разобраться как мне спектр определять?

Работа с классами
У меня такая проблема хочу создать компонент из одного класса и добавить его в форму другого...

Работа с классами
Доброго времени суток. Только начал изучать ООП, решил написать программу для ознакомления. Но не...

Работа с классами
Добрый день, нужна помощь. Есть код, который производит замену местами наибольшего слова с...

7
910 / 795 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
29.08.2017, 14:52 2
Так а что не получается? написать текст? Вы этого сделали в 2 других классах и ничего нового делать не нужно.
0
0 / 0 / 0
Регистрация: 24.08.2017
Сообщений: 4
29.08.2017, 16:02  [ТС] 3
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
Так а что не получается? написать текст? Вы этого сделали в 2 других классах и ничего нового делать не нужно.
Я тоже так думал, но оно не рабртает почемуто. оно пишет шибку на base(name)
0
910 / 795 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
29.08.2017, 16:20 4
что "оно"? по коду у Вас нет реализации вообще классов этих.
0
20 / 20 / 13
Регистрация: 29.08.2017
Сообщений: 89
29.08.2017, 22:09 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
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Home_Work_7
{
    class Person
    {
        public virtual string Name { get; }
 
        public Person(string name)
        {
            Name = name;
        }
 
        public virtual void Print()
        {
            Console.WriteLine("Name: {0}", Name);
        }
    }
 
    class Staff : Person
    {
        protected int Salary;
 
        public Staff(string name, int salary) : base(name)
        {
            Salary = salary;
        }
 
        public override string Name
        {
            get
            {
                return base.Name + " Staff";
            }
        }
 
        public override void Print()
        {
            Console.WriteLine("Person {0} has salary: ${1}", Name, Salary);
        }
    }
 
    class Teacher : Staff
    {
        private string Subject;
 
        public Teacher(string name, int salary, string subject) : base (name, salary)
        {
            Subject = subject;
        }
 
        public override string Name
        {
            get
            {
                return base.Name + " Teacher";
            }
        }
 
        public override void Print()
        {
            Console.WriteLine("Person {0} teaching: {1} and has salary: ${2}", Name, Subject, Salary);
        }
    }
 
    class Developer : Staff
    {
        private int Level;
 
        public Developer(string name, int salary, int level) : base(name, salary)
        {
            Level = level;
        }
 
        public override string Name
        {
            get
            {
                return base.Name + " Developer";
            }
        }
 
        public override void Print()
        {
            Console.WriteLine("Person {0} has level: {1} and salary: ${2}", Name, Level, Salary);
        }
    }
 
 
 
 
    public class Program
    {
        static void Main(string[] args)
        {
            List<Person> people = new List<Person>();
            people.Add(new Person("Yura"));
            people.Add(new Staff("Ira", 300));
 
            foreach (var p in people)
                p.Print();
            Console.ReadKey(true);
        }
    }
}
1
910 / 795 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
30.08.2017, 09:24 6
Приведённый выше код прекрасно отрабатывает, что не так?
0
0 / 0 / 0
Регистрация: 24.08.2017
Сообщений: 4
30.08.2017, 18:01  [ТС] 7
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
что "оно"? по коду у Вас нет реализации вообще классов этих.
Ок. Вот дали такую задачу. Написал код, запускается програ, но последний пункт просто не работает, незнаю почему...когда ввожу имя персоны, то ничего не происходит...где моя ошибка, что я неправильно сделал? Первий раз с классами работаю...

Добавьте два класса Person и Staff -
Создайте два класса Teacher и Developer, производные от Staff. Для класса Teaсher добавьте поле subject, а для класса Developer - поле level, переопределите метод Print для обоих классов.
В Main определите список типа Person и добавьте к нему объекты каждого типа. Вызовите для каждого элемента списка метод Print ()
Введите имя персоны и если такая персона есть в вашем списке, выведите о ней информацию.

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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Home_Work_7
{
    public class Person
    {
        private string name;
        public Person(string name)
        {
            this.name = name;
        }
        virtual public string Name
        {
            get
            {
                return name;
            }
        }
        virtual public void Print()
        {
            Console.WriteLine("Name: {0}", this.name);
        }
 
 
    }
 
    public class Staff : Person
    {
        private int salary;
        public Staff(string name, int salary)
            : base(name)
        {
            this.salary = salary;
        }
 
        override public string Name
        {
            get
            {
                return base.Name + "Staff";
            }
        }
        override public void Print()
        {
            Console.WriteLine("Person {0} has salary: ${1}", Name, this.salary);
        }
        
 
        public class Teacher : Staff
        {
            private string subject;
            public Teacher(string name, string subject, int salary)
                : base(name, salary)
            {
 
                this.subject = subject;
            }
            override public string Name
            {
                get
                {
                    return base.Name + "Teacher";
                }
            }
            override public void Print()
            {
                Console.WriteLine("Teacher - {0}, subject: {1} has salary: ${2}", Name, this.subject, salary);
            }
        }
 
        public class Developer : Staff
        {
            private string level;
            public Developer(string name, string level, int salary)
                : base(name, salary)
            {
 
                this.level = level;
            }
            override public string Name
            {
                get
                {
                    return base.Name + "Developer";
                }
            }
            override public void Print()
            {
                Console.WriteLine("Developer - {0}, level - {1} has salary: ${2} ", Name, this.level, salary);
            }
        }
    }
 
 
    public class Program
    {
        static void Main(string[] args)
        {
            List<Person> people = new List<Person>();
            people.Add(new Person("Yura "));
            people.Add(new Staff(" Ira ", 300));
            people.Add(new Staff.Teacher(" Jaroslav Garasym ", "C# ", 500));
            people.Add(new Staff.Developer(" Ivan ", " Profi ", 1000));
            foreach (var p in people)
            {
                p.Print();
            }
            Console.WriteLine("Enter name: ");
            string str = Console.ReadLine();
            foreach (var p in people)
            {
                if (p.Name == str)
                {
                   p.Print();
                }               
            }
            Console.ReadLine();
        }
    }
}
0
$ su
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
31.08.2017, 01:27 8
Иван92, а вы пробелы вводите как при инициализации? У меня работает.
0
31.08.2017, 01:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2017, 01:27
Помогаю со студенческими работами здесь

Работа с классами
Здравствуйте! Помогите пожалуйста с этим кодом: private void Form1_Load(object sender,...

Работа с классами
Доброго времени суток! Вопрос такого плана... дано задание сделать программу управления делами и...

Работа с классами
Нам задали по программированию задание (во вложении Лабораторная работа 1_2) Решение ЛР3 и ЛР4...

Работа с классами
Всем привет. Имееться код следующего вида: public class Server { public...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru