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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2011, 08:40   #21
rustx88
Пользователь
 
Регистрация: 08.05.2011
Сообщений: 42
По умолчанию

Цитата:
Я так понимаю нужен динамический массив, но к сожалению не знаю как его сделать разнотипным.
вообще-то, такие задачи решаются при помощи структур (либо классов, хотя структура по сути и есть простейший класс)

Код:
struct _date {
  unsigned char
    day,
    month;
  unsigned
    year;
};

struct _student {
  char
    firstname [255],
    secondname [255],
    lastname [255];
  _date
    date;
};


_student
  * student = new _student [255];
вот это простейшая понятная реализация без всяких ивзращений типо char **
rustx88 вне форума Ответить с цитированием
Старый 12.05.2011, 08:53   #22
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Цитата:
Сообщение от rustx88 Посмотреть сообщение
вообще-то, такие задачи решаются при помощи структур (либо классов, хотя структура по сути и есть простейший класс)
Вообще-то, если бы вы удосужились почитать тему прежде чем лезть (всего лишь 3-е сообщение), то вы бы увидели, что http://programmersforum.ru/showpost....79&postcount=3
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Старый 12.05.2011, 10:05   #23
v0a
Новичок
Джуниор
 
Регистрация: 11.05.2011
Сообщений: 21
По умолчанию

Проблему решил подключая <string>, а не <cstring>. Но проблема появилась во время выхода из программы по значению 0. На дебаге при освобождении памяти (delete array, а при простом прогоне ошибка в 52 строке пишет мол BLOCK_VALID (if (num>n) в case 2), если строку delete array; удалить, работает как часики.

Ребят, а если усложнить эту программу и работать через текстовый файл, т.е. при добавлении данных о владельце квартиры №1, если в текстовом файле, поиском по строкам не найдена строка начинающаяся с N1 (причем тут надо я так понимаю исключить что это не N10,11,110 и т.д.), то она дописывается в конец этого файла, а если найдена, то отображает данные по владельцу и предлагает удалить или продолжить работу с программой... Загнул!?

Последний раз редактировалось v0a; 12.05.2011 в 10:53.
v0a вне форума Ответить с цитированием
Старый 12.05.2011, 11:21   #24
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от v0a Посмотреть сообщение
...На дебаге при освобождении памяти (delete array, а при простом прогоне ошибка в 52 строке пишет мол BLOCK_VALID (if (num>n) в case 2), если строку delete array; удалить, работает как часики.
Память, выделенную под одномерный динамический массив, освобождают вот так:
Код:
	delete []array;
Кроме того, в C/C++ - индексация с 0. То есть, вот здесь
Код:
				array[num] = data;
при num = n Вы бесстрашно записываете за пределы выделенной памяти. Напишите в вышеприведенном операторе, а также в
Код:
				cout << array[num];
num-1 вместо num.
Vago вне форума Ответить с цитированием
Старый 12.05.2011, 11:43   #25
v0a
Новичок
Джуниор
 
Регистрация: 11.05.2011
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Vago Посмотреть сообщение
Память, выделенную под одномерный динамический массив, освобождают вот так:
Код:
	delete []array;
Кроме того, в C/C++ - индексация с 0. То есть, вот здесь
Код:
				array[num] = data;
при num = n Вы бесстрашно записываете за пределы выделенной памяти. Напишите в вышеприведенном операторе, а также в
Код:
				cout << array[num];
num-1 вместо num.
Спасибо, всё это поменял, работает пока без ошибок.
v0a вне форума Ответить с цитированием
Старый 12.05.2011, 12:59   #26
v0a
Новичок
Джуниор
 
Регистрация: 11.05.2011
Сообщений: 21
По умолчанию

Цитата:
Сообщение от v0a Посмотреть сообщение
Ребят, а если усложнить эту программу и работать через текстовый файл, т.е. при добавлении данных о владельце квартиры №1, если в текстовом файле, поиском по строкам не найдена строка начинающаяся с N1 (причем тут надо я так понимаю исключить что это не N10,11,110 и т.д.), то она дописывается в конец этого файла, а если найдена, то отображает данные по владельцу и предлагает удалить или продолжить работу с программой... Загнул!?
Толкните в нужном направлении, что почитать, как реализовать такую задачу?
v0a вне форума Ответить с цитированием
Старый 13.05.2011, 08:50   #27
v0a
Новичок
Джуниор
 
Регистрация: 11.05.2011
Сообщений: 21
По умолчанию

Хелп ми плиз!!!
v0a вне форума Ответить с цитированием
Старый 13.05.2011, 09:40   #28
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от v0a Посмотреть сообщение
...если усложнить эту программу и работать через текстовый файл, т.е. при добавлении данных о владельце квартиры №1, если в текстовом файле, поиском по строкам не найдена строка начинающаяся с N1 (причем тут надо я так понимаю исключить что это не N10,11,110 и т.д.), то она дописывается в конец этого файла, а если найдена, то отображает данные по владельцу и предлагает удалить или продолжить работу с программой...
Для реализации этой функциональности текстовый файл Вам не нужен. И нетекстовый, в общем-то, - тоже. Всё это можно сделать в ОП, в рамках связанного списка указателей даже на [мало подходящие и неудобные для этой цели, но уже выбранные] текстовые строки. Если Вы, действительно, хотите повысить профессиональный уровень (хоть свой, хоть - "ребёнка" ), залатав (уж не обижайтесь пожалуйста) заметные дыры в элементарной подготовке, - разберитесь, как здесь уже несколько раз подсказывали, с C-шными структурами. Немеркнущая классика, глава 6.
Vago вне форума Ответить с цитированием
Старый 13.05.2011, 10:45   #29
v0a
Новичок
Джуниор
 
Регистрация: 11.05.2011
Сообщений: 21
По умолчанию

Никаких обид, я же прошу о помощи, свои знания или точнее их отсутствие я не оспариваю, но элементарно знаю алгоритмизацию и синтаксис пары-тройки несложных языков, а на с++ писал лабораторные работы по информатике последний раз лет 10-12 назад.
Но, судя по тому, что Вы сказали о реализации этого в ОП, то Вы не удосужились прочитать тему, есть заданные рамки, задача должна быть решена закреплением знаний по пройденному материалу, а это if, for, do, switch, динамические массивы и работа с текстовыми файлами. Плохо то, что нет конкретного задания, есть условность, а задачу придумай сам и реализуй. Вот и искал выхода. Если знаете к кому обратиться за решением, возможен вариант оплаты, то подскажите, просто сроки заканчиваются в понедельник. Спасибо.
v0a вне форума Ответить с цитированием
Старый 13.05.2011, 12:11   #30
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от v0a Посмотреть сообщение
...судя по тому, что Вы сказали о реализации этого в ОП, то Вы не удосужились прочитать тему, ...
Простите, что, по-Вашему, обозначает аббревиатура "ОП" (с одним "О")?
Vago вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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