![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| ALI46 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
Разработайте класс, реализующий кольцевой односвязный список. Методы класса: добавление элемента в список, просмотр списка, удаление произвольного элемента из списка. Поля записей: участники, количество забегов, в которых они принимали участие, сумма сделанных на них ставок, количество побед.
я написал вот так:
Подскажите пожалуйста - как реализовать ввод/вывод списка в один и тот же бинарный файл, как сделать удаление произвольного элемента(у меня удаляет первый в списке) и как сделать данный список кольцевым односвязным(у меня линейный односвязный)? |
|||
|
||||
| Annihilator |
|
|||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: 1 Всего: 3 |
ты собираешься считывать и записывать в один файл? Может лучше 2 сделать - один для чтения другой для записис, чтобы путанницы не возникло
во-первых заведи счетчик номера элемента. Ты считываешь данные элемента, пихая указатель начала списка в функцию. Так вот как только считал этот элемент, а следовательно и его поля, рекурсивно пихни указатель на следующий элемент, содержащийся в поле только что прочтенного и делай это столько раз пока у тебя счетчик, который при каждом заходе в функцию будет инкрементироваться (не сам конечно, а пропиши это), не станет равен номеру элемента, который надо удалить у последнего элемента присвой указателю на следующий элемент адрес первого элемента -------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
|||
|
||||
| ALI46 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
мне в задании сказано что ввод/вывод должен осуществляться в один бинарный файл, как это сделать?
а в каком именно месте? Это сообщение отредактировал(а) ALI46 - 4.5.2008, 18:36 |
||||
|
|||||
| Annihilator |
|
|||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: 1 Всего: 3 |
в поле УКАЗАТЕЛЬ НА СЛЕДУЮЩИЙ ЭЛЕМЕНТ, там ведь связь как раз осуществляется между элементами с помощью этого поля! -------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
|||
|
||||
| ALI46 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
удаление произвольного элемента я так реализовал
но как ввести/вывести в один файл и сделать список кольцевым без зацикленного вывода не знаю... |
|||
|
||||
| Annihilator |
|
|||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: 1 Всего: 3 |
запомни где-нибудь адрес первого элемента. Далее бежишь по списку и как только у тебя rex->next будет равен адресу первого элемента, выводи rex и завершай вывод -------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
|||
|
||||
| ALI46 |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
в методе add я вместо
прописал
а в методе show вместо
написал
в итоге ничо не выводит |
||||||||
|
|||||||||
| ALI46 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
список так и остался линейным, ноя добавил чтение-запись в файл...
однако при запуске в список добавляется мусор если файл пуст, и если мы что нибудь у даляем из списка, то на файле это никак не отражается... в чём причина? и как можно исправить? |
|||
|
||||
| Lycifer |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 144 Регистрация: 4.11.2007 Репутация: нет Всего: нет |
На самом деле все просто:
Дело в том что в файле может быть просто '\n', ну или он действительно пуст(вообще я не проверял), делай проверку что есть что считывать.
Самый легкий способ перезаписать файл, то и есть полностью, ну или с помощью сикгнета удалять(я же не знаю как у тебя там хранятся данные) |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |