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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2012, 23:46   #1
niixon
Пользователь
 
Регистрация: 03.08.2012
Сообщений: 23
По умолчанию Создать динамически n объектов класса!

Задача:
Создайте класс, который поддерживает каталог библиотечных карточек. Этот класс должен хранить заглавие книги имя автора и выданное на руки число экземпляров книги. Заглавие и имя автора храните в виде строки символов, а количество экземпляров в виде целого числа. Включите в класс открытую функцию для запоминания информации о книгах, а также открытую функцию, которая выводит информацию на экран.

Вот код: я немного запутался с выводом переменных из моих объектов[n]. Помогиет разобраться. Правильно ли осуществляю ввод данных? Или переменная просто перезаписывается n раз?

Код:
#include <iostream.h>

class book
{
	private:
	char name_book[20];
	char name_avtor[20];
	int number;
public:

	void add(int &n)
	{
		for (int i=0;i<n;i++)
		{
			cout<<"Please enter the book name "<<(i+1)<<": ";
				cin >> name_book; 
			cout<<"Please enter the author's name "<< (i+1)<<": ";  
                cin>>name_avtor; cout<<endl;
		}
	}
	void vivod() const
	{
			cout << name_book << " " << name_avtor << endl;
	}
};


void main()
{
	cout<<"Skolko y vas knig: ";
	int n;
		cin>>n;
	
 book *a=new book[n];
			
	(*a).add(n);

		for (int i=0; i<n; i++)
			(*a[i]).vivod();

		delete [] a;

}
niixon вне форума Ответить с цитированием
Старый 04.08.2012, 00:04   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

ага 12345667564643
_Bers вне форума Ответить с цитированием
Старый 04.08.2012, 00:33   #3
niixon
Пользователь
 
Регистрация: 03.08.2012
Сообщений: 23
По умолчанию

ага 12345667564643


что это
niixon вне форума Ответить с цитированием
Старый 04.08.2012, 01:29   #4
Nicolas_C++
 
Регистрация: 03.08.2012
Сообщений: 4
По умолчанию

1. Слишком маленький массив для имен. 40-60 будет норм.
2. Сколько в библиотеке книг? ща сбегаю все посчитаю. так что массив должен расширяться.
3. cin не подходит, т.к. обробатывает ввод до первого пробела. gets( ) подойдет.
Цитата:
for (int i=0; i<n; i++)
(a[i]).vivod();

Последний раз редактировалось Nicolas_C++; 04.08.2012 в 01:31. Причина: неверный указатель
Nicolas_C++ вне форума Ответить с цитированием
Старый 04.08.2012, 10:46   #5
niixon
Пользователь
 
Регистрация: 03.08.2012
Сообщений: 23
По умолчанию

Цитата:
(a[i]).vivod();
Спасибо, это убрало ошибку. Но код все равно не работает. Выводит оно именно массив классов. А вот запись происходит постоянно в одну и ту же переменную... мой объект a[i] надо как-то передать в функцию чтобы работать с ним?
niixon вне форума Ответить с цитированием
Старый 04.08.2012, 10:54   #6
niixon
Пользователь
 
Регистрация: 03.08.2012
Сообщений: 23
По умолчанию

Я разобрался. Вот полностью рабочий код.

Код:
#include <iostream.h>

class book
{
	private:
	char name_book[20];
	char name_avtor[20];
	int number;
public:

	void add(int &n, int &i)
	{ 
			cout<<"Please enter the book name "<<(i+1)<<": ";
				cin >> name_book; 
			cout<<"Please enter the author's name "<< (i+1)<<": ";  
                cin>> name_avtor; cout<<endl;
	}
	void vivod() const
	{
			cout << name_book << " " << name_avtor << endl;
	}
};


void main()
{
	cout<<"Skolko y vas knig: ";
	int n;
		cin>>n;
	
 book *a=new book[n];
	
 for (int i=0; i<n; i++)
	(a[i]).add(n,i);

 for (i=0; i<n; i++)
    (a[i]).vivod();

		delete [] a;

}
niixon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перетаскивание динамически созданных объектов kaizer131 Общие вопросы Delphi 13 15.06.2011 07:59
Сохранение динамически созданных объектов Marsel737 Общие вопросы Delphi 25 15.12.2009 14:24
Свойства динамически созданных объектов. Dorithur Общие вопросы Delphi 4 12.12.2009 15:35
Помогите! Вообще не понимаю....Создать несколько объектов a, b и с разработанного класса irass Общие вопросы C/C++ 1 03.11.2009 18:39
Обработка событий динамически созданных объектов в С++ Builder Shafty Помощь студентам 1 26.02.2009 16:11