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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2010, 21:59   #1
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
Сообщение Вывод данных.класс.(С++)

(у каждого name несколько values)
При выводе на экран, если не совподает размер( переменная vc -ввожу после каждого имени;т.е. указываю кол-во значений у человека) ,данные или обрезаются, или недостаток заполняется "левым" номером(и), типа -3424242.
Что в моем выводе не так?
Код:
class bank
{   
private:
	char *bank_name;
	char **name;
	int **value;
	int **salary;
public:
	bank(){}
	void add(int );
	void show(int );
};
void bank::add(int n)
{
    bank_name=new char[33];
    cout<<"input bank_name\n"<<endl;
	cin>>bank_name;

	char str[55];
	name=new char *[n];
	value=new int *[n];
	salary=new int *[n];
for(int i=0;i<n;i++)
{
	system("cls");
	cout<<i<<":iput name:\n"<<endl;
	cin>>str;
	name[i]=new char[strlen(str)+1];
	strcpy(name[i],str);

	cout<<"input amount of values:";
cin>>vc;
value[i]=new int[vc];
salary[i]=new int[vc];
for(int j=0;j<vc;j++)
{
	cout<<"values:"<<j<<endl;
cin>>value[i][j];
cout<<"salary:"<<endl;
cin>>salary[i][j];
}
}
system("cls");
}
void bank::show(int n)
{
	cout<<bank_name<<endl;
	for(int i=0;i<n;i++)
	{
	cout<<name[i]<<"\n";
	for(int j=0;j<vc;j++)
	{
   cout<<value[i][j]<<" "<<salary[i][j]<<endl;
	}
	}
}
void main()
{
	char **name='\0',*bank_name='\0';int *value=0;
	int n;
	bank object;
	cout<<" size (n):"<<endl;
	cin>>n;
	bank obj;
	obj.add(n);
	obj.show(n);
	system("PAUSE");
	delete []name;
	delete []bank_name;
	delete []value;
}
zhenya.ya вне форума Ответить с цитированием
Старый 26.09.2010, 23:44   #2
savva
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 225
По умолчанию

cin>>vc;
value[i]=new int[vc];
salary[i]=new int[vc];

for(int j=0;j<vc;j++)
{
cout<<"values:"<<j<<endl;
cin>>value[i][j];
cout<<"salary:"<<endl;
cin>>salary[i][j];
}
что-то тут явно не так.выделил чёрным где мне кажется кроется косяк.

ты инициализировал одномерный массив new int[vc] а потом забивал в двумерный массив [i][j] учитывая что цикл у тебя задан через j int j=0;j<vc;j++
За помощь: Нажмите на весы слева от сообщения!
savva вне форума Ответить с цитированием
Старый 27.09.2010, 01:26   #3
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
По умолчанию

Хм.. я думаю может с циклами или с переменными n и vc я что-то нетак наделал. А на счет памяти, хм, я думаю у меня выделяется таким образом под двумерный.
Код:
value=new int *[n];
...
for(int i=0;i<n;i++)
value[i]=new int[vc];
Код:
salary=new int *[n];
...
for(int j=0;j<vc;j++)
salary[i]=new int[vc];
zhenya.ya вне форума Ответить с цитированием
Старый 27.09.2010, 01:42   #4
savva
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 225
По умолчанию

а ты какое n вводишь?

попробуй вводить большое n и маленькое,по-моему у тебя на маленьком должно лагать.потому что у тебя от n много чего зависит в т.ч. размер имени и т.д. .проверь.
За помощь: Нажмите на весы слева от сообщения!
savva вне форума Ответить с цитированием
Старый 27.09.2010, 02:03   #5
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
По умолчанию

при маленьком значении - норм.,а т.е. зависит от ввода vc. При большом, от пяти и больше - разбивает на n-частей(т.е. если ввести 5-10 он все равно выведет 5-10 человек только с одним значением)
zhenya.ya вне форума Ответить с цитированием
Старый 27.09.2010, 02:17   #6
savva
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 225
По умолчанию

не знаю я в коде не вижу ошибки.попробуй в дебаггере пройтись по проге.предварительно найдя заведомо плохие значения(из-за которых появляется гадость) и прогони.
За помощь: Нажмите на весы слева от сообщения!
savva вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
класс. ввод данных zhenya.ya Общие вопросы C/C++ 0 25.09.2010 14:56
Импорт данных в класс в Action Script 2.0 -NAU- PHP 0 23.06.2010 22:19
Перенос данных из класса в класс zexak Общие вопросы по Java, Java SE, Kotlin 2 27.02.2010 20:03
Вывод данных Vitaliy3009 Общие вопросы Delphi 3 10.10.2009 16:15
Класс матрица, вывод результатов на экран Student_911 Помощь студентам 0 03.10.2009 20:55