Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.75/40: Рейтинг темы: голосов - 40, средняя оценка - 4.75
3 / 3 / 0
Регистрация: 18.01.2016
Сообщений: 198

Класс "Студент" и работа с конструкторами

26.11.2016, 16:18. Показов 8500. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
создал 3 класса в первых 2-х классах все понятно и все прекрасно работает
нужна помощь с 3 классом студен
на плюсах раньше та же проблема с конструкторами была
си-шарп только начали изучать классы и работу над ними
подскажите что не так в моими конструкторами ниже полный код
того что я уже написал

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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
//1. Реализовать класс Student, который содержит поля для хранения фамилии, имени, 
//отчества, даты рождения, домашнего адреса, телефонного номера. Также за каждым 
//студентом закреплены 3 массива оценок – зачёты, курсовые работы, экзамены. Обязательные 
//методы: 2-3 версии конструктора с параметрами, геттеры и сеттеры для всех полей, показ всех данных о студенте.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Classes
{
    class Date
    {
        private int day;
        private int month;
        private int year;
        public Date() : this(0, 0, 0)
        {
        }
        public Date(int day, int month, int year)
        {
            int leapYear = year % 4;
            if (day < 1 || day > 31)
            {
                Console.WriteLine("некорректная дата");
            }
            if (month < 1 || month > 12)
            {
                Console.WriteLine("некорректний месяц");
            }
            if (month == 2 && day > 29 - leapYear)
            {
                Console.WriteLine("некорректний дата месяца №2");
            }
            if (day > 30 + month % 2)
            {
                Console.WriteLine("некоректная дата високосный год");
            }
            SetDay(day);
            SetMonth(month);
            SetYear(year);
        }
        public void SetDay(int day)
        {
            this.day = day;
        }
       public void SetMonth(int month)
        {
            this.month = month;
        }
        public void SetYear(int year)
        {
            this.year = year;
        }
        public int GetDay()
        {
            return day;
        }
        public int GetMonth()
        {
            return month;
        }
        public int GetYear()
        {
            return year;
        }
    }
    class PHONE
    {
        private int mob;
        private int home;
        private int work;
        public PHONE() : this(0, 0, 0)
        {
        }
        public PHONE(int mob, int home, int work)
        {
            SetMob(mob);
            SetHome(home);
            SetWork(work);
        }
        public void SetMob(int mob)
        {
            this.mob = mob;
        }
        public void SetHome(int home)
        {
            this.home = home;
        }
        public void SetWork(int work)
        {
            this.work = work;
        }
        public int GetMob()
        {
            return mob;
        }
        public int GetHome()
        {
            return home;
        }
        public int GetWork()
        {
            return work;
        }
    }
    class Student
    {
        private string surname;
        private string name;
        private string patronymic;
        private Date birthday;
        private string adress;
        private PHONE phone;
 
        public void SetSurname(string surname)
        {
            this.surname = surname;
        }
        public void SetName(string name)
        {
            this.name = name;
        }
        public void SetPatronymic(string patronymic)
        {
            this.patronymic = patronymic;
        }
        public void SetBirthday(int day, int month, int year)
        {
            birthday.SetDay(day);
            birthday.SetMonth(month);
            birthday.SetYear(year);
        }
        public void SetAdress(string adress)
        {
            this.adress = adress;
        }
        public void SetPhone(int mob, int home, int work)
        {
            phone.SetMob(mob);
            phone.SetWork(work);
            phone.SetHome(home);
        }
        public string GetSurname()
        {
            return surname;
        }
        public string GetName()
        {
            return name;
        }
        public string GetPatronymic()
        {
            return patronymic;
        }
        public Date GetBirthday()
        {
            return birthday;
        }
        public string GetAdress()
        {
            return adress;
        }
        public PHONE GetPhone()
        {
            return phone;
        }
        //конструктор по умолчанию
        public Student() : this("", "", "",  , "", )
        {
        }
        //2 - 3 версии конструктора с параметрами
        public Student(string SN, string _Name, string _Patronymic, Date _Birthday, string _Adress)
        {
        }
        public Student(string SN, string _Name, string _Patronymic)
        {
        }
        //главный конструктор 
        public Student(string SN, string _Name, string _Patronymic, Date birthday, string _Adress, PHONE _Phone)
        {
        }
    }
    class Program
    {
        static void Main()
        {
            Date p = new Date(29, 2, 2316);
            Console.WriteLine("{0}.{1}.{2}", p.GetDay(), p.GetMonth(), p.GetYear());
            PHONE r = new PHONE(111111, 2222222, 33333333);
            Console.WriteLine("{0}\n{1}\n{2}", r.GetMob(), r.GetHome(), r.GetWork());
            Student s = new Student("Рубик", "Иван", "Петрович", (11, 12, 1887), "Посмитного 33", (23121, 431344, 42323));
            Console.WriteLine("{0}\n{1}\n{2}", s.GetMob(), s.GetHome(), s.GetWork());
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.11.2016, 16:18
Ответы с готовыми решениями:

Создать класс Студент и класс наследник Студент-контрактник
Задание: 1 Разработать программу (С++) решения следующей задачи. Проверить результат на контрольном примере: создать структуру ...

Реализовать интерфейс Абитуриент, абстрактный класс Студент, подкласс Студент-заочник. JAVA
Реализовать интерфейс Абитуриент, абстрактный класс Студент, подкласс Студент-заочник. JAVA. Помогите пожалуйста

Класс с конструкторами
Напишите класс Vector2D (вектор на плоскости). В классе необходимо предусмотреть: Два публичных дробных поля (double) vX и vY -...

30
3 / 3 / 0
Регистрация: 18.01.2016
Сообщений: 198
26.11.2016, 22:24  [ТС]
Студворк — интернет-сервис помощи студентам
не судите слишком строго я с нуля писал это все сегодня за пару часов
учусь только раз в неделю и по классам 1 пара была остальное
изучаю сам по примерам и урокам которым дают на занятиях
на счет массивов я уверен что есть косяки буду исправлять
это хорошо что есть такие сайты и такие люди как вы что хоть в чем то помогают
таким как я )) на счет массивов я изначально думал глобальным методом а не классом
сделать как вы на это смотрите?
0
 Аватар для EveKS
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
26.11.2016, 22:43
Zigoga, Здесь, самое простое, 3 класса:
Телефонные номера, студент, оценки.

Насчет Date, есть DateTime, создавать отдельный класс ради дня рождения, думаю не стоит.
А то, в таком темпе, можно и класс под адрес выделить, что, тоже, вполне -- возможно =)

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

Не по теме:

PS, адрес на класс вполне разумно разложить, проще выводить будет.

0
3 / 3 / 0
Регистрация: 18.01.2016
Сообщений: 198
27.11.2016, 19:59  [ТС]
вот переделал полностью код по вашим корректировкам
что скажите теперь

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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
//1. Реализовать класс Student, который содержит поля для хранения фамилии, имени, 
//отчества, даты рождения, домашнего адреса, телефонного номера. Также за каждым 
//студентом закреплены 3 массива оценок – зачёты, курсовые работы, экзамены. Обязательные 
//методы: 2-3 версии конструктора с параметрами, геттеры и сеттеры для всех полей, показ всех данных о студенте.
 
 
 
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Classes
{
     
    class PHONE
    {
        private string number;
        private string numberTipe;
        
        public PHONE() 
        {
        }
 
        public PHONE(string number, string numberTipe)
        {
            SetNumber(number);
            SetNumberTipe(numberTipe);
        }
 
        public void SetNumber(string number)
        {
            this.number = number;
        }
        public void SetNumberTipe(string numberTipe)
        {
            this.numberTipe = numberTipe;
        }
 
        
 
        public string GetNumber()
        {
            return number;
        }
        public string GetNumberTipe()
        {
            return numberTipe;
        }
       
    }
 
 
    class Student
    {
        private string surname;
        private string name;
        private string patronymic;
        private DateTime birthday;
        private string adress;
        private PHONE phone;
 
        private Array mass;
 
        public void SetSurname(string surname)
        {
            this.surname = surname;
        }
        public void SetName(string name)
        {
            this.name = name;
        }
        public void SetPatronymic(string patronymic)
        {
            this.patronymic = patronymic;
        }
         
        public void SetAdress(string adress)
        {
            this.adress = adress;
        }
        public void SetPhone(string namber, string numberTipe)
        {
            phone.SetNumber(namber);
            phone.SetNumberTipe(numberTipe);
        }
        public string GetSurname()
        {
            return surname;
        }
        public string GetName()
        {
            return name;
        }
        public string GetPatronymic()
        {
            return patronymic;
        }
         
        public string GetAdress()
        {
            return adress;
        }
        public PHONE GetPhone()
        {
            return phone;
        }
        //конструктор по умолчанию
        public Student()
        {
        }
        //2 - 3 версии конструктора с параметрами
 
        public Student(string SN, string Name, string Patronymic, DateTime Birthday, string Adress)
        {
        }
        public Student(string SN, string Name, string Patronymic)
        {
        }
 
        //главный конструктор 
        public Student(string SN, string Name, string Patronymic, DateTime Birthday, string Adress, PHONE Phone)
        {
 
            surname = SN;
            name = Name;
            patronymic = Patronymic;
            birthday = Birthday;
            adress = Adress;
            phone = Phone;
        }
        public void About()
        {
            Console.WriteLine("фамилия: {0}", surname);
            Console.WriteLine("имья: {0}", name);
            Console.WriteLine("отчество: {0}", patronymic);
            Console.WriteLine("дата рождения: {0}", birthday);
            Console.WriteLine("домашный адресс: ул. {0}", adress);
            Console.WriteLine("телефонные номера:");
            Console.WriteLine("{0} номер: {1}", phone.GetNumber(), phone.GetNumberTipe());
            Console.WriteLine("\tМАССИВЫ ОЦЕНОК\n");
            Console.WriteLine(mass = new Array());
            Console.WriteLine(); 
        }
 
 
    }
 
    class Array
    {
        private int[] Elements1;
        private int[] Elements2;
        private int[] Elements3;
 
        private int size1;
        private int size2;
        private int size3;
 
         
        public Array()
        {
            Print();
        }
         
        public void Print()
        {
            Console.WriteLine("сколько у Вас зачетов");
            size1 = Convert.ToInt32(Console.ReadLine());
            Elements1 = new int[size1];
            for (int i = 0; i < size1; i++)
            {
                Elements1[i] = Convert.ToInt32(Console.ReadLine());
            }
            for (int i = 0; i < size1; i++)
            {
                Console.Write(" {0}", Elements1[i]);
            }
            Console.WriteLine(" - оценки за зачёты");
 
 
 
            Console.WriteLine("сколько у Вас курсовых работ");
            size2 = Convert.ToInt32(Console.ReadLine());
            Elements2 = new int[size2];
            for (int i = 0; i < size2; i++)
            {
                Elements2[i] = Convert.ToInt32(Console.ReadLine());
            }
            for (int i = 0; i < size2; i++)
            {
                Console.Write(" {0}", Elements2[i]);
            }
            Console.WriteLine(" - оценки за курсовые работы");
 
 
 
            Console.WriteLine("сколько у Вас экзаменов");
            size3 = Convert.ToInt32(Console.ReadLine());
            Elements3 = new int[size3];
            for (int i = 0; i < size3; i++)
            {
                Elements3[i] = Convert.ToInt32(Console.ReadLine());
            }
            for (int i = 0; i < size3; i++)
            {
                Console.Write(" {0}", Elements3[i]);
            }
            Console.WriteLine(" - оценки за экзамены");
            Console.WriteLine();
        }
 
    }
 
    class Program
    {
        static void Main()
        {
 
            Student s = new Student("Рубик", "Иван", "Петрович", new DateTime(2002, 12, 2), 
                "Посмитного 33", new PHONE("Моб.", "+380 98 42 32 111"));
            s.About();
 
 
            Student b = new Student("Романов", "Жора", "Валентинович", new DateTime(2012, 7, 12), 
                "Поскотного 1", new PHONE("Дом.", "984 23 21"));
            b.About();
 
        }
    }
}
0
 Аватар для i try to learn
4 / 4 / 10
Регистрация: 01.03.2016
Сообщений: 49
27.11.2016, 20:11
Почитай, для начала, про свойства...
MSDN
0
3 / 3 / 0
Регистрация: 18.01.2016
Сообщений: 198
27.11.2016, 20:27  [ТС]
i try to learn, я так понимаю что нужно при вызове даты
применять get или set а не на прямую вызывать обьект

Добавлено через 2 минуты
то есть мне стоило вызвать дату таким образом
Code
1
Console.WriteLine("дата рождения: {0}", birthday.GetDateTimeFormats());
0
 Аватар для i try to learn
4 / 4 / 10
Регистрация: 01.03.2016
Сообщений: 49
27.11.2016, 20:45
не нужно писать отдельные методы в классах, как это делаешь ты.
для этого в с# присутствует следующее:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Student
{
    public Student(string name)
    {
        this.name = name;
    }
    private string name;
    public string Name
    {
        get
        {
            return name;
        }
        set
        { 
            // возможны проверки значений if(...)
            name = value;
        }
    }
}
Потом в коде ты можешь их использовать следующим способом:
C#
1
2
3
4
Student kolya = new Student("Kolya");
Console.WriteLine(kolya.Name);
// установка
kolya.Name = "Valera";
0
3 / 3 / 0
Регистрация: 18.01.2016
Сообщений: 198
27.11.2016, 21:33  [ТС]
i try to learn, круто, это я запомню)))
и вправду очень упрощается код
нууу я так пишу из-за с++, а книгу по с# нет особо времени
читать но вижу что нужно уже начинать))
0
 Аватар для i try to learn
4 / 4 / 10
Регистрация: 01.03.2016
Сообщений: 49
27.11.2016, 21:58
Следующее, что могу тебе посоветовать, - это избавиться от использования консоли в классах.
Я не говорю, что это жизненноопасно но меня лично учили так не делать, ибо без использования класса Console внутри твоих классов код становится универсальнее.
Если пользователь пытается установить недопустимое значение для твоего поля через свойство, будет целесообразно бросать Exception, а уже в Main перехватывать их и выводить соответствуещее сообщение.
Вот конкретный пример с использованием предыдущего:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Student
{
    public Student(string name)
    {
        this.name = name;
    }
    private string name;
    public string Name
    {
        get
        {
            return name;
        }
        set
        { 
            if (value.IndexOf('#') != -1) // запретим использовать символ # в имени
                    throw new Exception("Имя не может содержать символ #");
            name = value;
        }
    }
}
А теперь попробуем присвоить имя, которое включает в себя символ #. У нас вылетит Exception и мы перехватим его с помощью блока catch.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
Student kolya = new Student("Kolya");
Console.WriteLine(kolya.Name);
try
{
kolya.Name = "Valer#a";
}
catch(Exception) // при ошибке
{
Console.WriteLine("Имя не может содержать символ #.");
// код если имя не соответствует... здесь что угодно
}
Console.WriteLine(kolya.Name);
Console.ReadKey();
Надеюсь, понятно, что при вылете ошибки строка
C#
1
name = value;
не будет выполнена.
0
3 / 3 / 0
Регистрация: 18.01.2016
Сообщений: 198
27.11.2016, 22:17  [ТС]
от вроде все как вы описали исправил
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
//1. Реализовать класс Student, который содержит поля для хранения фамилии, имени, 
//отчества, даты рождения, домашнего адреса, телефонного номера. Также за каждым 
//студентом закреплены 3 массива оценок – зачёты, курсовые работы, экзамены. Обязательные 
//методы: 2-3 версии конструктора с параметрами, геттеры и сеттеры для всех полей, показ всех данных о студенте.
 
 
 
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Classes
{
     
    class PHONE
    {
        private string number;
        private string numberTipe;
        
        public PHONE() 
        {
        }
 
        public PHONE(string number, string numberTipe)
        {
            this.number = number;
            this.numberTipe = numberTipe;
        }
 
        
 
        public string Number
        {
            get
            {
                return number;
            }
            set
            {
                number = value;
            }
        }
        public string NumberTipe
        {
            get
            {
                return numberTipe;
            }
            set
            {
                numberTipe = value;
            }
        }
        
    }
 
 
    class Student
    {
        private string surname;
        private string name;
        private string patronymic;
        private DateTime birthday;
        private string adress;
        private PHONE phone;
 
        private Array mass;
        public string Surname
        {
            get
            {
                return surname;
            }
            set
            {
                // возможны проверки значений if(...)
                surname = value;
            }
        }
        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }
        public string Patronymic
        {
            get
            {
                return patronymic;
            }
            set
            {
                patronymic = value;
            }
        }
        public string Adress
        {
            get
            {
                return adress;
            }
            set
            {
                adress = value;
            }
        }
    
        //конструктор по умолчанию
        public Student()
        {
        }
        //2 - 3 версии конструктора с параметрами
 
        public Student(string SN, string Name, string Patronymic, DateTime Birthday, string Adress)
        {
        }
        public Student(string SN, string Name, string Patronymic)
        {
        }
 
        //главный конструктор 
        public Student(string surname, string name, string patronymic, DateTime birthday, string adress, PHONE phone)
        {
 
            this.surname = surname;
            this.name = name;
            this.patronymic = patronymic;
            this.birthday = birthday;
            this.adress = adress;
            this.phone = phone;
           
        }
        public void About()
        {
            Console.WriteLine("фамилия: {0}", surname);
            Console.WriteLine("имья: {0}", name);
            Console.WriteLine("отчество: {0}", patronymic);
            Console.WriteLine("дата рождения: {0}", birthday.GetDateTimeFormats());
            Console.WriteLine("домашный адресс: ул. {0}", adress);
            Console.WriteLine("{0} номер: {1}", phone.Number, phone.NumberTipe);
            Console.WriteLine("\tМАССИВЫ ОЦЕНОК\n");
            mass = new Array();
            Console.WriteLine(); 
        }
 
 
    }
 
    class Array
    {
        private int[] Elements1;
        private int[] Elements2;
        private int[] Elements3;
 
        private int size1;
        private int size2;
        private int size3;
 
         
        public Array()
        {
            Print();
        }
         
        public void Print()
        {
            Console.WriteLine("сколько у Вас зачетов");
            size1 = Convert.ToInt32(Console.ReadLine());
            Elements1 = new int[size1];
            for (int i = 0; i < size1; i++)
            {
                Elements1[i] = Convert.ToInt32(Console.ReadLine());
            }
            
 
 
 
            Console.WriteLine("сколько у Вас курсовых работ");
            size2 = Convert.ToInt32(Console.ReadLine());
            Elements2 = new int[size2];
            for (int i = 0; i < size2; i++)
            {
                Elements2[i] = Convert.ToInt32(Console.ReadLine());
            }
            
 
            Console.WriteLine("сколько у Вас экзаменов");
            size3 = Convert.ToInt32(Console.ReadLine());
            Elements3 = new int[size3];
            for (int i = 0; i < size3; i++)
            {
                Elements3[i] = Convert.ToInt32(Console.ReadLine());
            }
 
 
 
            for (int i = 0; i < size1; i++)
            {
                Console.Write(" {0}", Elements1[i]);
            }
            Console.WriteLine(" - оценки за зачёты");
            for (int i = 0; i < size2; i++)
            {
                Console.Write(" {0}", Elements2[i]);
            }
            Console.WriteLine(" - оценки за курсовые работы");
            for (int i = 0; i < size3; i++)
            {
                Console.Write(" {0}", Elements3[i]);
            }
            Console.WriteLine(" - оценки за экзамены");
            Console.WriteLine();
        }
 
    }
 
    class Program
    {
        static void Main()
        {
 
            Student s = new Student("Рубик", "Иван", "Петрович", new DateTime(2012, 1, 2), 
                "Посмитного 33", new PHONE("Моб.", "+380 98 42 32 111"));
            s.About();
 
 
            Student b = new Student("Романов", "Жора", "Валентинович", new DateTime(2012, 7, 12), 
                "Поскотного 1", new PHONE("Дом.", "984 23 21"));
            b.About();
 
        }
    }
}
Добавлено через 6 минут
на счет исключений у нас задача не стоит пока делаю так как у меня написано
а на счет того как отлавливать ошибки я с вами полностью согласен нам даже препод так
говорил дай у себя в коде я с клавиатуры как пользователь данные не ввожу
это только основа (начало) чего то большего еще дойдем и к этому но все ровно
спасибо за такую хорошую подсказку)
0
 Аватар для i try to learn
4 / 4 / 10
Регистрация: 01.03.2016
Сообщений: 49
27.11.2016, 22:43
По поводу твоего кода: стало уже получше, но, всё-равно, до идеала далековато.
В первом классе у тебя всё достаточно неплохо, только вот название желательно дать с большой буквы. Далее расстроила пустота в конструкторе по умолчанию.
Еще, для саморазвития, можешь почитать про переопределение методов ToString() and Equals(), а так же, в будущем, тебя ждет перегрузка операторов сравнения.
Третий класс - просто не могу смотреть на него.
Ты говоришь, что писал до этого на плюсах и, судя по всему, использовал ООП. Так вот, у меня к тебе вопрос: как оценка может что-то делать? Как у нее может быть метод Print()?
Когда используешь ООП - проводи аналогию с реальностью: оценка не может показывать себя, студент может показать свои оценки, например, методом ShowGrades(..а тут паараметр, какие именно..).
0
3 / 3 / 0
Регистрация: 18.01.2016
Сообщений: 198
27.11.2016, 23:01  [ТС]
на плюсах отдельно класс под массив оценок мы не делали там просто был метод который создавал
массив и потом его чистил все остальное описывалось в мейне
а тут с отдельным классом я столкнулся впервые

Добавлено через 1 минуту
могу как пример скинуть код если хотите

Добавлено через 1 минуту
ах да тут в коде я так понимаю нужно все в коструктор впихивать ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.11.2016, 23:01

Класс «матрица» с конструкторами
Помогите разобраться с конструкторами! Приведите пример любой программы в которой есть класс «матрица» и два конструктора: к примеру...

Создать класс с конструкторами
1. Определить пользовательский класс в соответствии с вариантом задания ( #pragma once #include &lt;math.h&gt; class manychlen { ...

Класс "Студент": Если студент имеет средний балл выше 7, то родителям готовится благодарственное письмо
Написать программу, в которой родительский класс содержит информацию о студенте: фамилию, имя, отчество, номер мобильного телефона....

Класс вектор с конструкторами и операциями
День добрый! Очень прошу помочь хотя бы понять задание и что мне требуется сделать (с++ не изучал, спонтанно дали задание по нему чтобы...

создать класс с методами, конструкторами и т.д
помогите решить задачу с объяснением что где делается...СРОЧНО!!! http://s43.***********/i101/1304/01/07a703c5ef35t.jpgДобавлено через 9...


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru