21 / 10 / 5
Регистрация: 07.01.2013
Сообщений: 222
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Описать класс "Студент" с полями фамилия, имя, отчество, группа, дата рождения21.04.2014, 11:54. Показов 24054. Ответов 20
Метки нет (Все метки)
Помогите, что-то я уже совсем завалился с этой задачей.
Задание: Придумать класс описывающий студента и предусмотреть в нем следующие моменты: фамилия, имя, отчество, группа, дата рождения. А также добавить методы по работе с перечисленными данными: вывести список всех студентов, добавить нового студента, найти студента, удалить студента. Вся информация должна сохраняться в текстовом файле. Вот мои потуги: Структура описывающая студента: Кликните здесь для просмотра всего текста
Класс Меню: Кликните здесь для просмотра всего текста
Управляющий класс: Кликните здесь для просмотра всего текста
ну и класс Program: Кликните здесь для просмотра всего текста
Добавлено через 3 минуты Ошибки, с которыми я столкнулся: Во время добавления нового студента, в фаил дублируется первое добавление, дальше все нормально. Проблемы с удалением студента.
0
|
21.04.2014, 11:54 | |
Ответы с готовыми решениями:
20
Класс студент с полями: год рождения, имя, фамилия, отчество, адрес и телефон. Создать базовый класс: Person: Фамилия, Имя, Отчество, Дата рождения, Адрес Написать программу имеющую 2 кнопки (ввод и вывод), и 5 texBox (Фамилия, Имя, Отчество, дата рождения, телефон) Создать класс Группа и описать ее свойства: Фамилия, имя, дата рождения Из строки фамилия имя отчество дата рождения в виде день. месяц. год получить: фамилия имя отчество возраст |
21.04.2014, 12:09 | 2 |
Про удаление Вам, кажется в соседней теме сказали, проще будет перезаписать файл весь.
Также Вы открываете файл на добавление (FileMode.Append), а потом по новой проходите по всем студентам, конечно там дублироваться будет...
0
|
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
|
|
21.04.2014, 12:47 | 3 |
У вас в задании создать класс а не структуру
0
|
21 / 10 / 5
Регистрация: 07.01.2013
Сообщений: 222
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
24.04.2014, 18:00 [ТС] | 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
После пару бессонных ночей, вот, все переделал.
Но есть ошибки, а именно IndexOutOfRangeException. И никак не могу найти, где именно мой партак (( Помогите. вот все коды:
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Помогите, пожалуйста.
0
|
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
|
|
24.04.2014, 18:27 | 5 |
ну там же указывается, в какой именно строке была ошибка)
0
|
21 / 10 / 5
Регистрация: 07.01.2013
Сообщений: 222
|
||||||
24.04.2014, 18:33 [ТС] | 6 | |||||
Да указывается, строка 80, класс Driver (
Я уже столько сижу над этой работой, что у меня уже наверно замылился глаз, и не вижу очевидных вещей. Так что если поможете от меня огромное человеческое спасибо )
0
|
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
|
||||||
24.04.2014, 18:44 | 7 | |||||
Аццкий Прогер, отэто ты наворотил
Аццкий Прогер, смотри
потом обращаешся к 6 элементу массива. значит его нет. проверь свои разделители . и вобще с разделителями так не делается
1
|
21 / 10 / 5
Регистрация: 07.01.2013
Сообщений: 222
|
||||||
24.04.2014, 19:13 [ТС] | 8 | |||||
Спасибо, сейчас будем дальше копаться ))
Добавлено через 28 минут Странно, с разделителями вроде все как нормально. Вот код, где они добавляются:
0
|
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
|
|
25.04.2014, 11:53 | 9 |
блин, по ощущениям как-то громоздко и как-то не так
а вообще, поставь точку останова выше места падения и глянь, сколько элементов в массиве words. если количество элементов меньше 7 - посмотри содержимое строки line, пройдись пошагово по методу добавления строк в lines, разберись, как она формируется и почему так. как-то так в общих чертах з.ы. судя по всему, не срабатывает условие if (!arrStudents[i].EmptyRate()), вследствие чего количество элементов в массиве words будет 6. а words[6] - это седьмой элемент массива
1
|
21 / 10 / 5
Регистрация: 07.01.2013
Сообщений: 222
|
|
26.04.2014, 12:49 [ТС] | 10 |
Прошелся отладчиком. Вот что показывает: скриншоты ниже.
Как видно поле programming получает значение, а вот поле administration уходит в нулл, почему, не могу понять. Уже перепробовал все что мог, ничего не помогает, крыша уже едет Выручайте, завтра нужно уже сдавать
0
|
21 / 10 / 5
Регистрация: 07.01.2013
Сообщений: 222
|
|||||||||||
26.04.2014, 13:04 [ТС] | 11 | ||||||||||
Если не ошибаюсь, то ошибка происходит по причине того, что в строке
0
|
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
|
|
26.04.2014, 13:54 | 12 |
Аццкий Прогер, кидай весь проект в архиве.
1
|
21 / 10 / 5
Регистрация: 07.01.2013
Сообщений: 222
|
|
26.04.2014, 14:11 [ТС] | 13 |
0
|
48 / 48 / 11
Регистрация: 13.08.2012
Сообщений: 97
|
|
26.04.2014, 14:52 | 14 |
В массиве у тебя шесть итемов, а ты обращаешься к седьмому
0
|
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
|
|
26.04.2014, 14:55 | 15 |
Аццкий Прогер, у вас в файле нету 6 параметра, ну то есть он есть, но в программе это будет 5 так как нумерацию с нуля.
Добавлено через 53 секунды Ниже по коду вы кстати еще и к 7 обратитесь, чего то же нету в файле.
0
|
21 / 10 / 5
Регистрация: 07.01.2013
Сообщений: 222
|
|
26.04.2014, 14:55 [ТС] | 16 |
А как исправить?
были бы и другие, но я так понимаю, что сплит не срабатывает?
0
|
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
|
|
26.04.2014, 14:56 | 17 |
Аццкий Прогер, добавить в файл еще 2 параметра через ;. Но все это зависит от того, что вы хотели сделать. Код сами этот писали? Или взяли где то?
0
|
21 / 10 / 5
Регистрация: 07.01.2013
Сообщений: 222
|
|
26.04.2014, 15:05 [ТС] | 18 |
я просто не могу понять почему не срабатывает сплит в этой строке: programming = words[5].Split(',');
тогда в 5 элементе был бы 0, в 6 - 0 и в 7 тоже 0, а не три 0 в 5. писал сам. а адаптеры по подсказкам знакомого, но видимо не все правильно понял.
0
|
48 / 48 / 11
Регистрация: 13.08.2012
Сообщений: 97
|
|||||||||||
26.04.2014, 15:13 | 19 | ||||||||||
В этой строке все нормально
1
|
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
|
|
26.04.2014, 15:26 | 20 |
Вот смотрите, у вас есть строка: "Иванов;Иван;Иванович;20-12-1986;a12;0,0,0;" вы ее разбиваете по ';' и результат пишите в words, получается в words у вас находятся такие строки:
[0] = Иванов [1] = Иван [2] = Иванович [3] 20-12-1986 [4] = a12 [5] 0,0,0 Того имеем 6 элементов, далее вы пишите words[6] а его уже не существует, так как все что вам нужно находится на позиции [5], вам нужно еще раз поделить строку: [5].Split(',') И тогда вы получите следующие строки: [5,0] = 0 [5,1] = 0 [5,2] = 0 Я так и предполагаю это и будут programming, design, administrator Добавлено через 1 минуту То есть писать вам надо так: words[5].Split(',')[0] - programming words[5].Split(',')[1] - administration words[5].Split(',')[2] - design
1
|
26.04.2014, 15:26 | |