Форум программистов, компьютерный форум CyberForum.ru

Массив указателей средствами ООП - C++

Восстановить пароль Регистрация
 
romanzmushko
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 18
19.04.2013, 13:04     Массив указателей средствами ООП #1
Два дня колупаюсь с программкой, старший курс дал программу, все рабочее, но в моей необходимо удалить 4й стоблец, содержащий атрибуты(конкурс, целевой прием, вне конкурса, без экзаменов).
Вот условие, все пункты выполнены
1 Использование объектно–ориентированного подхода при проектировании приложения обязательно.
2 Все поля классов, описывающих элементы множества данных, – private (за исключе-нием констант).
3 Поля 1–3 варианта задания включить в базовый класс. Разработать наследуемые классы согласно поля 4 варианта задания (см. пример ниже).
4 Классы для элементов множества данных должны содержать конструкторы следую-щих видов: а) конструктор без параметров, очищающий переменные объекта класса; б) конструктор, инициализирующий все переменные класса, значениями, заданными в качестве параметра; в) конструктор приведения из строки символов (поля класса, раз-деленные символом ";");
5 В наследуемых классах переопределить хотя бы один метод базового класса.
6 Интерфейс разработанных классов продемонстрировать в форме консольного приложения.
7 Выводить отчеты в виде таблицы (одна запись – одна строка таблицы).[/I]
На паскале такое смог бы сделать, но в си как то недается.
Может ли кто-нибудь посмотреть, и хотя бы подсказать, как исправить ситуацию, я так понял, тут все как то связано, и исправить не получается(((
Вложения
Тип файла: rar pack.rar (37.0 Кб, 5 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2013, 13:04     Массив указателей средствами ООП
Посмотрите здесь:

Массив из указателей на масив из указателей на массив из int) C++
Массив указателей C++
C++ Массив указателей
массив указателей C++
Массив указателей C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2639 / 1650 / 156
Регистрация: 13.01.2012
Сообщений: 6,213
19.04.2013, 13:42     Массив указателей средствами ООП #2
неясно что вам нужно. 4-й столбец откуда? из файлов? удалите. не хотите удалять - не считывайте (не ясно правда что будет при этом с той частью программы которая с этим столбцом кувыркается).
romanzmushko
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 18
19.04.2013, 13:55  [ТС]     Массив указателей средствами ООП #3
чтение идет из файла, и считываются слова до точки с запятой, вот по заданию 4е слово каждой строки убрать из задания, Я начинаю удалять строку, которая считывает эту самую последнюю строку, из процедуры добавления в массив, и тут начинается поргография, не выводит на экран записи
vxg
Модератор
 Аватар для vxg
2639 / 1650 / 156
Регистрация: 13.01.2012
Сообщений: 6,213
19.04.2013, 14:15     Массив указателей средствами ООП #4
а вы не удаляйте эту строку. читайте из файла и никуда не присваивайте.
romanzmushko
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 18
19.04.2013, 14:52  [ТС]     Массив указателей средствами ООП #5
я пытался так сделать, но у меня наверное лыжы не едут))
там наследуемые классы, 4 штуки, в каждом вывод на косноль, и в функции записи в массив используются они, тоесть, насколько понимаю идет запись в массив с дочерним классом, и вывод на экран так же с их использованием, вот я не знаю как обойти эти два места, хотя бы понять как считать в массив записей без дочерних классов

Добавлено через 24 минуты
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// Чтение из файла информацию в массив
void mass::vRead(void)
{
 char cFile[50];
 char str[100];
 FILE *f;
 
 cout << "Введите имя файла, откуда будет считана информация:";
 cin >> cFile;
 // открываем файл
 if ((f=fopen(cFile,"rb"))==NULL)
  {
   cout << "Невозможно открыть файл для чтения информации\n";
   cout << "Нажмите Enter";
   fflush(stdin);
   gets(cFile);
   return;
  }
 while (fgets(str,100,f)!=NULL)
   vAdd(str);    // добавляем в массив элемент
 fclose(f);
 cout << "Информация считана\n";
 cout << "Нажмите Enter";
 fflush(stdin);
 gets(cFile);
 return;
}
 
 
// Добавление элемента в базу данных
void mass::vAdd(char *str)
{
 char tmp[100];
 int i,g,tip,k;
 float sr,at;
 char fam[50];
 
 if (strlen(str)>0)   // Если есть строка
  {
   i=0;k=0;
   while (*(str+i)!=';'&&*(str+i)!='\0')
    fam[k++]=str[i++];
   fam[k]='\0';i++;
 
   k=0;
   while (*(str+i)!=';'&&*(str+i)!='\0')
    tmp[k++]=str[i++];
   tmp[k]='\0';i++;
   g=atoi(tmp);
 
   k=0;
   while (*(str+i)!=';'&&*(str+i)!='\0')
    tmp[k++]=str[i++];
   tmp[k]='\0';i++;
   sr=atof(tmp);
 
   k=0;
   while (*(str+i)!=';'&&*(str+i)!='\0')
    tmp[k++]=str[i++];
   tmp[k]='\0';i++;
   tip=atoi(tmp);
 
   k=0;
   while (*(str+i)!=';'&&*(str+i)!='\0'&&*(str+i)!='\r')
    tmp[k++]=str[i++];
   tmp[k]='\0';
 
   mas[n].type=tip;
 
   switch (tip)
    {
     case 1:mas[n].el=(class cel *) new cel(fam,g,sr,tmp);
        break;
     case 2:at=atof(tmp);
        mas[n].el=(class ob *) new ob(fam,g,sr,at);
        break;
     case 3:mas[n].el=(class vne *) new vne(fam,g,sr,tmp);
        break;
     case 4:at=atof(tmp);
        mas[n].el=(class bez *) new bez(fam,g,sr,at);
        break;
 
       }
    n++;
  }
}
вот в vAdd, если я закомментирую switch, то оно мне ругается на g и sr
vxg
Модератор
 Аватар для vxg
2639 / 1650 / 156
Регистрация: 13.01.2012
Сообщений: 6,213
19.04.2013, 15:45     Массив указателей средствами ООП #6
ну еще бы ругается вы ему тупо голову отрезаете

Добавлено через 52 секунды
что вы хотите от программы? человеческими словами.
romanzmushko
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 18
19.04.2013, 15:55  [ТС]     Массив указателей средствами ООП #7
вообщем, хочу удалить лишнее, тоесть что бы в массив, из массива, на экран и файл выводились только три слова из строки, вместо четырех как здесь, а лишнее не могу удалить
vxg
Модератор
 Аватар для vxg
2639 / 1650 / 156
Регистрация: 13.01.2012
Сообщений: 6,213
19.04.2013, 15:58     Массив указателей средствами ООП #8
если в массиве указатели на объекты классов содержащих 4 поля как вы себе представляете не выводить эти поля в массив? ну, не выводите (посылайте нули или что там в зависимости от типа поля). в функции печати обойдите место где печатается 4-е поле.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2013, 17:06     Массив указателей средствами ООП
Еще ссылки по теме:

Массив строк как массив указателей на массивы чаров C++
опп класс и массив (создать массив указателей по выборке животных, участвующих в забеге) C++
C++ Задачка. массив указателей на одномерный массив

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
romanzmushko
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 18
19.04.2013, 17:06  [ТС]     Массив указателей средствами ООП #9
спасибо, сейчас попробую)))
Yandex
Объявления
19.04.2013, 17:06     Массив указателей средствами ООП
Ответ Создать тему
Опции темы

Текущее время: 10:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru