Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
18 / 5 / 2
Регистрация: 24.10.2018
Сообщений: 132

Обработка исключительных ситуаций

03.02.2020, 11:19. Показов 1327. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Описать класс «студенческая группа». Предусмотреть возможность работы с переменным числом студентов, поиска студента по какому-либо признаку (например, по фамилии, имени, дате рождения), добавления и удаления записей, сорти¬ровки по разным полям, доступа к записи по номеру. Написать программу, демонстрирующую все разработанные элементы класса.

Выполнить задачу в соответствии с вариантом, используя стандартные классы исключений .NEТ и свои собственные классы исключений. Предусмотреть все возможные исключительные ситуации в программе.

Помогите пожалуйста решить,не справляюсь
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.02.2020, 11:19
Ответы с готовыми решениями:

Обработка исключительных ситуаций
Вычислить значение Y, используя операторы для обработки исключительных ситуаций. Проверка на неверный ввод данных, подкоренное выражение не...

Обработка исключительных ситуаций
Добрый день. Помоги разобраться с обработкой исключительных ситуаций. Вот я написал класс «TxtFile», который будет открывать какой-то...

Обработка исключительных ситуаций
Хочу сделать проверку на формат, в случае неверного формата вводимых данных - кидать исключение и давать новую попытку ввода. Проблема в...

8
880 / 559 / 291
Регистрация: 21.11.2012
Сообщений: 1,554
03.02.2020, 11:23
покажите что не получается или делать все за вас?
0
18 / 5 / 2
Регистрация: 24.10.2018
Сообщений: 132
03.02.2020, 11:27  [ТС]
hamin,
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
class Student
        {
            public string _fam;
            public string _name;
            public string _otch;
            public Student(string fam, string name, string otch)
            {
                _fam = fam;
                _name = name;
                _otch = otch;
            }
        }
 
        class StudentGroup
        {
            string group_name;
            List<Student> students;
 
            public StudentGroup(string groupName)
            {
                group_name = groupName;
                students = new List<Student>();
            }
 
            public void AddStudent(Student newStudent)
            {
                students.Add(newStudent);
            }
 
            
        }
        static void Main(string[] args)
        {
            StudentGroup group = new StudentGroup("32 программисты");
 
            Student st = new Student("Иванов", "Иван", "Иванович");
            group.AddStudent(st);
            Student st1 = new Student("Иванов", "Иван", "Иванович");
            group.AddStudent(st);
            Student st2 = new Student("Иванов", "Иван", "Иванович");
            group.AddStudent(st);
 
            
        }
    }
дальше не получается(Предусмотреть возможность работы с переменным числом студентов, поиска студента по какому-либо признаку (например, по фамилии, имени, дате рождения), добавления и удаления записей, сорти¬ровки по разным полям, доступа к записи по номеру.) + классы исключений и исключения.NET
0
880 / 559 / 291
Регистрация: 21.11.2012
Сообщений: 1,554
03.02.2020, 12:41
держи, на работе делать нечего..

Кликните здесь для просмотра всего текста
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
    public class Student
    {
        public string Firstname { get; set; }
        public string Lastname { get; set; }
        public DateTime Birthday { get; set; }
        public int Age { get { return (int)(DateTime.Now - Birthday).TotalDays / 365; } }
 
        public Student(string firstname, string lastname, DateTime birthday)
        {
            Firstname = firstname;
            Lastname = lastname;
            Birthday = birthday;
        }
 
        public override string ToString()
        {
            return $"{Firstname} {Lastname}, { Birthday.ToShortDateString()} ({Age})";
        }
    }
 
    public class StudentEnum : IEnumerator
    {
        public StudentEnum(List<Student> students)
        {
            this._students = students;
        }
 
        private List<Student> _students;
        private int _position = -1;
 
        object IEnumerator.Current
        {
            get
            {
                return Current;
            }
        }
 
        public Student Current 
        {
            get
            {
                try
                {
                    return _students[_position];
                }
                catch(IndexOutOfRangeException)
                {
                    throw new InvalidOperationException();
                }
            }
        }
 
        public bool MoveNext()
        {
            _position++;
            return (_position < _students.Count);
        }
 
        public void Reset()
        {
            _position = -1;
        }
    }
    
    public class StudentGroup : IEnumerable
    {
        private List<Student> students;
        public string Groupname { get; set; }
 
        public StudentGroup(string name)
        {
            students = new List<Student>();
            Groupname = name;
        }
 
        public void Add(Student newStundent)
        {
            students.Add(newStundent);
        }
 
        public void Remove(Student toRemove)
        {
            students.Remove(toRemove);
        }
 
        public void Sort<T>(Func<Student, T> keySelector, bool desc = false)
        {
            if (desc)
            {
                students = students.OrderByDescending(x => keySelector(x)).ToList();
            }
            else
            {
                students = students.OrderBy(x => keySelector(x)).ToList();
            }
        }
 
        public override string ToString()
        {
            return $"------------ {Groupname} ------------- \n\n{string.Join("\n", students.Select(x => x.ToString()).ToArray())}\n\n--------------------------------------";
        }
        
        public Student this[int index]
        {
            get { return students[index]; }
            set { students[index] = value; }
        }
 
        #region implement interface IEnumerable
        IEnumerator IEnumerable.GetEnumerator()
        {
            return (IEnumerator)GetEnumerator();
        }
 
        public StudentEnum GetEnumerator()
        {
            return new StudentEnum(students);
        }
        #endregion
    }


ну и тест работы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
            var gr = new StudentGroup("Cyberforum1")
            {
                new Student("Vasily", "Pupkin", new DateTime(1991, 01, 10)),
                new Student("Vladislav", "Ivanov", new DateTime(1992, 05, 25)),
                new Student("Alexandr", "Petrov", new DateTime(1990, 12, 31)),
                new Student("Ivan", "Sidorov", new DateTime(1993, 04, 01))
            };
 
            gr.Add(new Student("Alexander", "Pushkin", new DateTime(1799, 05, 26)));
 
            //IEnumerable
            foreach(var st in gr)
            {
                Console.WriteLine(st);
            }
 
            gr[1].Firstname = "Maxim";
            gr.Sort(x => x.Age, true);
 
            Console.WriteLine(gr);
            Console.ReadKey();
Добавлено через 8 минут
ах, да.. тыц1,тыц2,тыц3
0
18 / 5 / 2
Регистрация: 24.10.2018
Сообщений: 132
03.02.2020, 12:48  [ТС]
hamin, На Enumirator ругается что то/

Добавлено через 2 минуты
hamin,Это же должно иметь Вид?:
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication45
{    
    class Program
    {
        public class Student
        {
            public string Firstname { get; set; }
            public string Lastname { get; set; }
            public DateTime Birthday { get; set; }
            public int Age { get { return (int)(DateTime.Now - Birthday).TotalDays / 365; } }
 
            public Student(string firstname, string lastname, DateTime birthday)
            {
                Firstname = firstname;
                Lastname = lastname;
                Birthday = birthday;
            }
 
            public override string ToString()
            {
                return $"{Firstname} {Lastname}, { Birthday.ToShortDateString()} ({Age})";
            }
        }
 
        public class StudentEnum : IEnumerator
        {
            public StudentEnum(List<Student> students)
            {
                this._students = students;
            }
 
            private List<Student> _students;
            private int _position = -1;
 
            object IEnumerator.Current
            {
                get
                {
                    return Current;
                }
            }
 
            public Student Current
            {
                get
                {
                    try
                    {
                        return _students[_position];
                    }
                    catch (IndexOutOfRangeException)
                    {
                        throw new InvalidOperationException();
                    }
                }
            }
 
            public bool MoveNext()
            {
                _position++;
                return (_position < _students.Count);
            }
 
            public void Reset()
            {
                _position = -1;
            }
        }
 
        public class StudentGroup : IEnumerable
        {
            private List<Student> students;
            public string Groupname { get; set; }
 
            public StudentGroup(string name)
            {
                students = new List<Student>();
                Groupname = name;
            }
 
            public void Add(Student newStundent)
            {
                students.Add(newStundent);
            }
 
            public void Remove(Student toRemove)
            {
                students.Remove(toRemove);
            }
 
            public void Sort<T>(Func<Student, T> keySelector, bool desc = false)
            {
                if (desc)
                {
                    students = students.OrderByDescending(x => keySelector(x)).ToList();
                }
                else
                {
                    students = students.OrderBy(x => keySelector(x)).ToList();
                }
            }
 
            public override string ToString()
            {
                return $"------------ {Groupname} ------------- \n\n{string.Join("\n", students.Select(x => x.ToString()).ToArray())}\n\n--------------------------------------";
            }
 
            public Student this[int index]
            {
                get { return students[index]; }
                set { students[index] = value; }
            }
 
            #region implement interface IEnumerable
            IEnumerator IEnumerable.GetEnumerator()
            {
                return (IEnumerator)GetEnumerator();
            }
 
            public StudentEnum GetEnumerator()
            {
                return new StudentEnum(students);
            }
            #endregion
        }
        static void Main(string[] args)
        {
            var gr = new StudentGroup("Cyberforum1")
            {
                new Student("Vasily", "Pupkin", new DateTime(1991, 01, 10)),
                new Student("Vladislav", "Ivanov", new DateTime(1992, 05, 25)),
                new Student("Alexandr", "Petrov", new DateTime(1990, 12, 31)),
                new Student("Ivan", "Sidorov", new DateTime(1993, 04, 01))
            };
 
            gr.Add(new Student("Alexander", "Pushkin", new DateTime(1799, 05, 26)));
 
            //IEnumerable
            foreach (var st in gr)
            {
                Console.WriteLine(st);
            }
 
            gr[1].Firstname = "Maxim";
            gr.Sort(x => x.Age, true);
 
            Console.WriteLine(gr);
            Console.ReadKey();
 
        }
    }
}
0
880 / 559 / 291
Регистрация: 21.11.2012
Сообщений: 1,554
03.02.2020, 12:56
Цитата Сообщение от Angelosus Посмотреть сообщение
Это же должно иметь Вид?:
нет

Кликните здесь для просмотра всего текста
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
    public class Program
    {
        public static void Main(string[] args)
        {
            var gr = new StudentGroup("Cyberforum1")
            {
                new Student("Vasily", "Pupkin", new DateTime(1991, 01, 10)),
                new Student("Vladislav", "Ivanov", new DateTime(1992, 05, 25)),
                new Student("Alexandr", "Petrov", new DateTime(1990, 12, 31)),
                new Student("Ivan", "Sidorov", new DateTime(1993, 04, 01))
            };
 
            gr.Add(new Student("Alexander", "Pushkin", new DateTime(1799, 05, 26)));
 
            //IEnumerable
            foreach (var st in gr)
            {
                Console.WriteLine(st);
            }
 
            gr[1].Firstname = "Maxim";
            gr.Sort(x => x.Age, true);
 
            Console.WriteLine(gr);
            Console.ReadKey();
        }
    }
 
    public class Student
    {
        public string Firstname { get; set; }
        public string Lastname { get; set; }
        public DateTime Birthday { get; set; }
        public int Age { get { return (int)(DateTime.Now - Birthday).TotalDays / 365; } }
 
        public Student(string firstname, string lastname, DateTime birthday)
        {
            Firstname = firstname;
            Lastname = lastname;
            Birthday = birthday;
        }
 
        public override string ToString()
        {
            return $"{Firstname} {Lastname}, { Birthday.ToShortDateString()} ({Age})";
        }
    }
 
    public class StudentEnum : IEnumerator
    {
        public StudentEnum(List<Student> students)
        {
            this._students = students;
        }
 
        private List<Student> _students;
        private int _position = -1;
 
        object IEnumerator.Current
        {
            get
            {
                return Current;
            }
        }
 
        public Student Current
        {
            get
            {
                try
                {
                    return _students[_position];
                }
                catch (IndexOutOfRangeException)
                {
                    throw new InvalidOperationException();
                }
            }
        }
 
        public bool MoveNext()
        {
            _position++;
            return (_position < _students.Count);
        }
 
        public void Reset()
        {
            _position = -1;
        }
    }
 
    public class StudentGroup : IEnumerable
    {
        private List<Student> students;
        public string Groupname { get; set; }
 
        public StudentGroup(string name)
        {
            students = new List<Student>();
            Groupname = name;
        }
 
        public void Add(Student newStundent)
        {
            students.Add(newStundent);
        }
 
        public void Remove(Student toRemove)
        {
            students.Remove(toRemove);
        }
 
        public void Sort<T>(Func<Student, T> keySelector, bool desc = false)
        {
            if (desc)
            {
                students = students.OrderByDescending(x => keySelector(x)).ToList();
            }
            else
            {
                students = students.OrderBy(x => keySelector(x)).ToList();
            }
        }
 
        public override string ToString()
        {
            return $"------------ {Groupname} ------------- \n\n{string.Join("\n", students.Select(x => x.ToString()).ToArray())}\n\n--------------------------------------";
        }
 
        public Student this[int index]
        {
            get { return students[index]; }
            set { students[index] = value; }
        }
 
        #region implement interface IEnumerable
        IEnumerator IEnumerable.GetEnumerator()
        {
            return (IEnumerator)GetEnumerator();
        }
 
        public StudentEnum GetEnumerator()
        {
            return new StudentEnum(students);
        }
        #endregion
    }
0
18 / 5 / 2
Регистрация: 24.10.2018
Сообщений: 132
03.02.2020, 12:59  [ТС]
hamin, У меня по прежнему ошибка в IEnumirator
0
880 / 559 / 291
Регистрация: 21.11.2012
Сообщений: 1,554
03.02.2020, 13:01
Angelosus,

добавьте

C#
1
using System.Collections;
0
18 / 5 / 2
Регистрация: 24.10.2018
Сообщений: 132
03.02.2020, 13:02  [ТС]
hamin, Спасибо огромное
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.02.2020, 13:02
Помогаю со студенческими работами здесь

Обработка исключительных ситуаций
решить в консольном режиме: Вычислить значение Y, используя операторы для обработки исключительных ситуаций. Проверка на неверный ввод...

Обработка исключительных ситуаций
Помогите пожалуйста! задачка вроде бы не сложная по C#, но я на ней затормозила:( Нужно оптимизировать задачу, включив в нее обработку...

Обработка исключительных ситуаций
Реализовать обработку ошибок для лабораторной работы, при этом переопределив с помощью наследования событие: 1) StackOverflowException...

Маршрут(Обработка исключительных ситуаций)
Добрый день, помогите пожалуйста Через пробел вводятся пройденные расстояния. Вычислить все пройденное расстояние

Обработка исключительных ситуаций (overflow)
помогите. Опишите функцию умножения двух целых, обработайте ошибку переполнения сверху (overflow).


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru