Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2011, 11:57   #1
v0a
Новичок
Джуниор
 
Регистрация: 11.05.2011
Сообщений: 21
Восклицание C++ таблица

Нужно создать что-то вроде таблицы на С++ (консольное приложение Win32).
Например список студентов :

1 Имя Фамилия Отчество Дата рождения
2 Имя Фамилия Отчество Дата рождения
3 Имя Фамилия Отчество Дата рождения
. . .
n Имя Фамилия Отчество Дата рождения

Я так понимаю нужен динамический массив, но к сожалению не знаю как его сделать разнотипным. Натолкните что ли на мыслю.
v0a вне форума Ответить с цитированием
Старый 11.05.2011, 12:17   #2
WebbMan
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 168
По умолчанию

с классами можешь сделать.
WebbMan вне форума Ответить с цитированием
Старый 11.05.2011, 12:21   #3
v0a
Новичок
Джуниор
 
Регистрация: 11.05.2011
Сообщений: 21
По умолчанию

Классы еще не проходили, задание предложено выполнить используя ранее полученные знания, т.е. массивы и switch case (для поиска и заполнения в дальнейшем)
v0a вне форума Ответить с цитированием
Старый 11.05.2011, 12:31   #4
WebbMan
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 168
По умолчанию

количество n известно?
надо сначала ввести данные и потом осуществлять поиск?
WebbMan вне форума Ответить с цитированием
Старый 11.05.2011, 12:34   #5
v0a
Новичок
Джуниор
 
Регистрация: 11.05.2011
Сообщений: 21
По умолчанию

n будет задано пользователем в данном случае, т.к. оно конечно и является числом учеников в классе, вот только оно не постоянно, т.к. классы бывают разные.
v0a вне форума Ответить с цитированием
Старый 11.05.2011, 12:36   #6
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Есть варианты, можешь данные о студенте хранить в string (ну или массив char) , дата рождения и номер будут храниться в виде строки.
Или под каждый столбец можно организовать свой массив, то есть под первый и последний столбцы - массивы инт (зависит от того,как хочешь дату хранить), под остальные - массивы char-ов.
Если проходили структуры, все намного проще.
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Старый 11.05.2011, 12:53   #7
v0a
Новичок
Джуниор
 
Регистрация: 11.05.2011
Сообщений: 21
По умолчанию

Значит нужно создавать несколько массивов и хранить данные "вразброс"? А как тогда реализовать тот же поиск сразу в нескольких массивах?
v0a вне форума Ответить с цитированием
Старый 11.05.2011, 13:02   #8
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Цитата:
Сообщение от v0a Посмотреть сообщение
Значит нужно создавать несколько массивов и хранить данные "вразброс"? А как тогда реализовать тот же поиск сразу в нескольких массивах?
Придется в каждом массиве (кроме первого) хранить номер.
Проще уж все данные об одном студенте хранить в одном массиве char-ов.
Просто необходимо, чтобы заранее были известны размеры имени, фамилии, отчества и так далее, для поиска. Например, 1 Пупкин Вася Федорович 01.01.1990
Поиск по номеру будет осуществляться по первому элементу массива, поиск по фамилии - с 3 по 8 элемент (проверка на идентичность всех элементов) и так далее.

Вообще, это все так муторно. Неужели у вас такие строгие рамки ставит преподаватель, запрещая вам использовать то, что вы сами можете изучить (даже и обгоняя программу)?
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Старый 11.05.2011, 13:18   #9
v0a
Новичок
Джуниор
 
Регистрация: 11.05.2011
Сообщений: 21
По умолчанию

Это как бы закрепление материала, в этом вся и проблема.
Я сам на с++ писал очень-очень давно, это взялся ребенку помочь, а тут не всё так просто. Я бы эту задачу вообще не через с++ делал бы)

А если поставить задачу по другому, если это не список студентов, а список жильцов дома и поиск будет осуществляться по квартире, а не по Ф.И.О, т.е. остальные данные, кроме номера квартиры, будут только информативные и выводиться будут по номеру квартиры.
v0a вне форума Ответить с цитированием
Старый 11.05.2011, 14:38   #10
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Цитата:
Сообщение от v0a Посмотреть сообщение
Это как бы закрепление материала, в этом вся и проблема.
Я сам на с++ писал очень-очень давно, это взялся ребенку помочь, а тут не всё так просто. Я бы эту задачу вообще не через с++ делал бы)

А если поставить задачу по другому, если это не список студентов, а список жильцов дома и поиск будет осуществляться по квартире, а не по Ф.И.О, т.е. остальные данные, кроме номера квартиры, будут только информативные и выводиться будут по номеру квартиры.
Тогда char ** array; вам в помощь.
Код:
//выделение памяти под двумерный массив
char ** array; 
array = new char * [n]; //n- количество квартир
for (int i=0;i<n;i++)
 array[i] = new char [m]; //m- размер строки под фамилию, имя и 
т.д.
//освобождение памяти
for (int i=0;i<n;i++)
 delete[]array[i];
delete[]array;
//поиск
/*условие поиска: k=5*/
cout << array[k]; // выводит на экран всю строку с данными о жильце 5 квартиры
//запись
array[i] = /*строка с данными о жильце*/;
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таблица Artem8230 Microsoft Office Access 1 04.10.2010 04:44
таблица Cpluser HTML и CSS 1 09.02.2010 20:50
таблица artemavd Общие вопросы Delphi 3 23.07.2008 13:56
Таблица frutty Компоненты Delphi 1 07.04.2008 09:29