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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2012, 14:13   #1
Alt_Shift
Пользователь
 
Аватар для Alt_Shift
 
Регистрация: 11.11.2010
Сообщений: 74
По умолчанию

Код:
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include<stdio.h>
#include<windows.h>
using namespace std;
struct  date
{
	int day;
	char month [10];
	int  year;
};
class Student
{
    private:
	char *fam;
	char *name;
	int contact;
	date br;
	public:
	Student()
	{
		fam=new char[20];
		name=new char[20];
	    date br1={1,"Января",1980};
		contact=0;
	}
	
void Info ()
{
	cout<<"Введите фамилию:\n";
	cin>>fam;
	cout<<"Введите имя:\n";
	cin>>name;
	cout<<"Введите дату в формате 00 (ENTER)/месяц(ENTER)/0000:\n";
	cin>>br.day;
	cin>>br.month;
	cin>>br.year;
	cout<<"Введите номер телефона:\n";
	cin>>contact;
}

void show ()
{
	cout<<"фамилия:\t"<<fam<<endl;
	cout<<"имя:\t\t"<<name<<endl;
	cout<<"дата рождения:\t"<<br.day<<"/"<<br.month<<"/"<<br.year<<endl;
	cout<<"телефон:\t"<<contact<<endl;
}
~Student()
	{
		delete[]fam;
		delete[]name;
	}
};
class Group: public Student
{
private:
 char* Name;
 char* Specializ;
 Student st[30];
public:
 Group()
	{
       
		Name=new char[25];
		Specializ=new char[25];
	}
 

  void Info_gr ()
{
	cout<<"Введите имя группы:\n";
	cin>>Name;
	cout<<"Введите специальность:\n";
	cin>>Specializ;
}

void Show_gr ()
{
	cout<<"имя группы::\t"<<Name<<endl;
	cout<<"специальность:\t"<<Specializ<<endl;
}
~Group()
	{
		delete[]Name;
		delete[]Specializ;
	}
};

void main()
{
	setlocale(LC_ALL, "Russian");
	SetConsoleCP (1251);
    SetConsoleOutputCP (1251);
	int kol;
	Group *gr=new Group[10];
	int n=0;
	
	
   do
   {
	cout<<" 1-создать список студентов \n 2-показать список \n 3-добавить студента \n 0-выход\n";
	cin>>n;
	switch(n)
	{
	case 1:
	cout<<"Введите количество студентов в группе:\n";
	       cin>>kol;

			for(int i=0;i<kol;i++)
				{
				 gr[i].Info();
				gr[i].Info_gr ();
				}
			
			break;

	case 2:
		for(int i=0;i<kol;i++)
		{
		cout<<"Студент N"<<i+1<<"\n";
		gr[i].show();
	    gr[i].Show_gr();
		}
		break;
	case 3:
		int dob;
		cout<<"Введите количество студентов которое необходимо добавить "<<endl;
		cin>>dob;
		for (int i=kol;i<kol+dob;i++)
		{  
			    gr[i].Info();
				gr[i].Info_gr ();
		}

	}
	}
	while(n!=0);
}

Проблема в том, что как бы все работает и объекты добавляются, но при показе показываются только объекты , которые были создана изначально, добавленных объектов нет.

............

немного исправил для читабельности, проблема в case 3, есть подозрение , что должен создаваться временный массив

Последний раз редактировалось Stilet; 28.05.2012 в 17:25.
Alt_Shift вне форума Ответить с цитированием
Старый 28.05.2012, 17:27   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я так понимаю класс vector использовать нельзя?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.05.2012, 17:32   #3
Alt_Shift
Пользователь
 
Аватар для Alt_Shift
 
Регистрация: 11.11.2010
Сообщений: 74
По умолчанию

ага, типа как бы не проходили еще
Alt_Shift вне форума Ответить с цитированием
Старый 28.05.2012, 17:41   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тогда, боюсь, все это придется переписывать.
Использовать именно списки а не массив, заранее заданный.
http://www.programmersforum.ru/showt...279#post713279
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.05.2012, 18:06   #5
Alt_Shift
Пользователь
 
Аватар для Alt_Shift
 
Регистрация: 11.11.2010
Сообщений: 74
По умолчанию

но списки тоже как бы не проходили. вот у меня вертится в мозгу что то вроде
Код:
int TEMP;
        Group *temp=new Group[10];
        kol=kol+1;
        for (int i=0;i<kol;i++)
		{
        temp[i]=gr[i];
         TEMP=i;
        }
        delete[] gr;
        Group *gr=new Group[10];
        temp[TEMP+1].Info();
        temp[TEMP+1].Info_gr();
        for(int i=0;i<kol;i++)
         gr[i]=temp[i];
        delete[] temp;
но тогда после добавления выбивает окно с ошибкой

Последний раз редактировалось Alt_Shift; 28.05.2012 в 18:16.
Alt_Shift вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JavaScript проблема с добавлением элементов в массив Jevgenia Помощь студентам 0 12.10.2011 23:09
Проблема с добавлением стиля Tradua JavaScript, Ajax 1 21.07.2011 02:38
Проблема с добавлением ILOR БД в Delphi 11 21.05.2009 18:35
Проблема с добавлением столбца Аццкий прогер БД в Delphi 3 27.02.2009 08:45
Проблема с добавлением в БД VenMaster БД в Delphi 8 03.06.2008 21:02