|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.04.2010, 19:23 | #1 |
Пользователь
Регистрация: 15.04.2010
Сообщений: 29
|
Объектно-ориентированное программирование. Списки
Плиз кому не лень, дайте совет как лучше сделать:
Нужно описать список способный хранить информацию о студентах,книгах,кинофильмах. |
20.04.2010, 20:16 | #2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Код:
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
20.04.2010, 22:10 | #3 |
Пользователь
Регистрация: 15.04.2010
Сообщений: 29
|
Спасибо. Только просьба, если несложно можно поподробнее про stuct Node!!!
|
20.04.2010, 22:45 | #4 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Стандартная организация простейшего списка - тип "узел", который содержит в себе, во-первых, собственно данные, во-вторых, указатель на следующий элемент того же типа "узел". Если указатель равен нулю - то этот узел - конечный. Где-то имеется указатель на первый узел, с него в общем-то и начинается список, а продолжается по цепочке - от одного узла к следующему и так далее.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
20.04.2010, 22:49 | #5 |
Пользователь
Регистрация: 15.04.2010
Сообщений: 29
|
Ещё раз спасибо, вроде что-то понял. Дальше может сам как.
|
27.04.2010, 00:58 | #6 |
Пользователь
Регистрация: 15.04.2010
Сообщений: 29
|
Плз помогите, в общем есть код программы, который создаёт список студентов, возник вопрос как в него добавить ещё два списка, то есть ещё два класса (как я понимаю) и в конечном итоге должно получиться, то что получиться(читаем выше)!!!! За ранее большое спасибо.
#include <stdio.h> #include <conio.h> #include <stdafx.h> #include <iostream> using namespace std; class student { public: char Name[128]; student* pNext; }; student* pHead = 0; void add(student* pNDS) { pNDS->pNext = pHead; pHead = pNDS; } student* getData() { char nameBuffer[128]; cout << "\nVvodim im9:"; cin >> nameBuffer; if ((stricmp(nameBuffer, "exit") == 0))// если "exit" - выход { return 0; } student* pNDS = new student; strncpy(pNDS->Name, nameBuffer, 128); pNDS->Name[127] = '\0'; pNDS->pNext = 0; return pNDS; } int main(int nNumberofArgs, char* pszArgs[]) { cout << "Read names of students\n" << "Enter 'exit' for first name to exit\n"; // создание объекта student student* pNDS; while (pNDS = getData()) { // добавление в конец списка add(pNDS); } cout << "Dannie:\n"; pNDS = pHead; while(pNDS) { cout << pNDS->Name << "\n"; pNDS = pNDS->pNext; } system("PAUSE"); return 0; } |
27.04.2010, 09:58 | #7 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Код:
Во-первых, обычно узел списка представляет собой нечто вроде вот этого (как я писал выше): Код:
По таким вот канонам получается, что у вас имеется список строк (кстати, фиксированной длины, что тоже не есть очень хорошо для строк вообще). А если информация о студенте содержит: имя, фамилию, курс, группу, номер комнаты в общаге, любимые предметы, возраст? Список студентов необходимо реализовать через два класса: один - непосредственно тип "студент", другой - тип узла списка, содержащий в себе указатель на член типа "студент": Код:
Что же касается добавления еще двух классов, то если в списке одновременно могут быть студенты, книги и фильмы (что было бы довольно странно), то необходимо все их наследовать от одного общего предка и в списке хранить указатель на элемент типа этого предка, как я писал выше. Это если вы уже проходили наследование и полиморфизм. Если нет - то можно просто сделать три различных списка, различающиеся только типом хранимых данных.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
27.04.2010, 18:55 | #8 |
Пользователь
Регистрация: 15.04.2010
Сообщений: 29
|
Большое спасибо, есть над чем подумать.
|
27.04.2010, 19:21 | #9 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
Вам нужно реализовать список или создать класс с использованием списков ?
И да, если уже писать список, то на шаблонах. PS: std::list Последний раз редактировалось ozo; 27.04.2010 в 19:45. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Объектно-ориентированное программирование | 4ika | Помощь студентам | 2 | 04.04.2010 20:27 |
Объектно -ориентированное программирование | Asira | Помощь студентам | 3 | 05.03.2010 17:52 |
Объектно-ориентированное программирование на паскале | Ake | Помощь студентам | 3 | 11.06.2009 02:44 |
Объектно-ориентированное программирование | dzhI | Помощь студентам | 8 | 19.03.2009 13:38 |
Объектно-ориентированное программирование (Паскаль) | Ake | Помощь студентам | 1 | 22.02.2009 20:14 |