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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2012, 02:49   #1
Artemonovich
Новичок
Джуниор
 
Регистрация: 14.11.2012
Сообщений: 2
По умолчанию C++ работа с конструкторами и деструкторами

Помогите сделать задачу с конструкторами, вот задача(работающая) без него, смысл задачи в том, что создается таблица(массив обьектов класса ) из фамилий веса и роста, и сортируется по третьему символу фамилии. То ли по незнанию, то ли по тупости не могу сделать с конструкторами деструкторами, программу разбил на функции прошу не критиковать, новичок в С\С++. Мне нужно, чтоб работала и с конструкторами, заранее благодарю , ну и вот
Код:
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
/* структура данных */ 
class data
{public:
//data (int g,  float w , char f){growth = g; weight = w; family = f;}
void input(data dt[5],int g, float w , char *f); 
void output(data dt[5],int g, float w , char *f);
void  shell(data dt[5],int g, float w , char *f);
//void output(data dt[5],int growth, float weight , char family);
        
//private:    
	char family [30];
    int growth;
	float weight; 







      }; // обьявлен масив стуктур
/*функция ввода и прототип функции  */ 
//void input(data dt[5]);
inline void data::input(data dt[5],int g, float w , char *f)
      {printf ("Write the family pupil\n \a");
      //ВВОД ФАМИЛИЙ 
      for (int i=0; i < 5 ; i++)
            {cin>>dt[i].family;
            printf ("\a");
            }
      // ВВОД РОСТА
      printf ("Write the growth pupil\n");
      for (int i=0; i < 5 ; i++)
            {cin>>dt[i].growth;
            printf ("\a");
            }
      //ВВОД ВЕСА 
      printf ("Write the weidth pupil\n");
      for (int i=0; i < 5 ; i++)
            {cin>>dt[i].weight;
            printf ("\a");
            }
      }     
/*функция вывода и прототип функции  */ 
//void output(data dt[5]);
inline  void data :: output(data dt[5],int g, float w , char *f)
      {printf ("family pupil\n \a");//вывод 
      for (int i=0; i < 5 ; i++)//фамилий
            {cout <<dt[i].family;
            printf ("\t");
            }
      printf ("growth pupil\n");
      for (int i=0; i < 5 ; i++)
            {cout<< dt[i].growth;//вывод значений роста
            printf ("\t");
            }    
      printf ("weidth pupil\n");
      for (int i=0; i < 5 ; i++)
            {cout<<dt[i].weight;// вывод значений веса 
            printf ("\t");
            }           
      /*for (int i=0; i < 5 ; i++)
            printf ("%-20s \n" ,dt[i].family);*/
      }
 
//void shell(data dt[5]);
/* Sort of the Shell. */
inline void data::shell (data dt[5],int g, float w , char *f)
{//int cout;
      /*switch (cout){
case 1:*/ int gap = 5; 
      data temp;
      for (int k=1; k<gap; k++) {
            for (int i=0; i<gap-1; i++) {   
                  if (dt[k].family[2] < dt[i].family[2]) { // сортируем по третьему символу строки
                        temp = dt[i];
                        dt[i] = dt[k];//сортировка
                        dt[k] = temp;//данных
                  }
            }
      }
}
int _tmain(int argc, _TCHAR* argv[])
      {data dt;data mc[5];
dt.input(mc,dt.growth,dt.weight,dt.family);//  ввод данных в масив структуры
      dt.shell(mc,dt.growth,dt.weight,dt.family);// сортировка данных
      dt.output(mc,dt.growth,dt.weight,dt.family);// вывод результатов
      }
From Stilet: Что код оформить читабельно религия не позволяет?

Последний раз редактировалось Stilet; 14.11.2012 в 13:09.
Artemonovich вне форума Ответить с цитированием
Старый 14.11.2012, 06:29   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Вы бы хоть в порядок код привели, прежде, чем сюда выкладывать. И кнопочка у нас имеется #.
А по-делу вот как:

Код:
/* структура данных */ 
class data
{
public:

 data();// Конструктор
 ~data();// Деструктор

 void input(data dt[5],int g, float w , char *f); 
 void output(data dt[5],int g, float w , char *f);
 void shell(data dt[5],int g, float w , char *f);

 private: 
 char family [30];
 int growth;
 float weight; 
};
Это файл объявления функций - h.
В файле реализации (cpp) прописываем следующее:

Код:
data::data()
{
  data(){Здесь прописываем то, что должно выполняться при открытии класса}
  ~data(){Здесь то, что при закрытии} 
}
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
с конструкторами гость* Помощь студентам 1 21.09.2012 04:04
[C++] Проблема с виртуальными деструкторами ordoss Помощь студентам 4 14.06.2010 17:17
Задача. Работа с псевдослучайными последовательностями (ПСП). Работа с цветом. 0101 Помощь студентам 3 17.12.2009 23:57
Работа с webbrowser - Фреймы, работа с конкретным феймом в фрейме NewDelphi Фриланс 2 08.10.2009 11:00