6 / 6 / 1
Регистрация: 30.03.2012
Сообщений: 111
|
|||||||||||
1 | |||||||||||
абстрактный класс как реализовать данные, над которыми методы выполняют какие-либо действия02.09.2012, 21:50. Показов 5217. Ответов 38
Метки нет (Все метки)
Абстрактный класс как реализовать данные, над которыми методы выполняют какие-либо действия
Задание: форматированный ввод и вывод посредством С и С++ Сделать таблицу о сдаче Л/Р. Код:
Так вот, не могли бы Вы, уважаемые программисты, подробнее объяснить что значит данные, над которыми методы выполняют какие-либо действия, и что это может быть? Заранее огромное СПАСИБО!
0
|
02.09.2012, 21:50 | |
Ответы с готовыми решениями:
38
Tkinter. Как получить данные (поместить в какие-либо переменные) о том, какие данные находятся в виджетах Как реализовать абстрактный класс? Реализовать класс через методы интерфейса, данные хранить в коллекции Как реализовать данный абстрактный класс? |
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
02.09.2012, 21:57 | 2 |
Бред, класс называется абстрактным, если имеет хотя бы одну чисто виртуальную функцию, и никак от элемент-данных класса это не зависит.
0
|
6 / 6 / 1
Регистрация: 30.03.2012
Сообщений: 111
|
|
02.09.2012, 22:01 [ТС] | 3 |
Toshkarik,Что мне тогда делать если преподаватель отказывается принимать? можете посоветовать как можно сделать то что он имел ввиду?
0
|
Master of Orion
|
|
02.09.2012, 22:02 | 4 |
diga, в некоторых языках программирования абстрактными классами, как правильно, являются т.н. интерфейсы, которые вообще физически не могут иметь полей, попытка написать поле интерфейса приводит к ошибке компиляции.
0
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
02.09.2012, 22:05 | 5 |
Да можете ему любые цитаты из книг привести. Вот например из книги Дейтелов, Как программировать на С++:
0
|
6 / 6 / 1
Регистрация: 30.03.2012
Сообщений: 111
|
|
02.09.2012, 22:18 [ТС] | 6 |
Toshkarik, Да, Мне кажется что преподаватель будет настаивать на своем...
Добавлено через 4 минуты Toshkarik, может я задание как то не правильно понял? она дословно выглядит так: Написать программу, осуществляющую форматированный ввод и вывод данных в файл в табличном виде. Впрограмме должны присутствовать следующие конструкции: 1) Абстрактный класс таблицы произвольного вида; 2) Класс таблицы конкретного вида, определяемого индивидуальным заданием; 3) Перегруженные функции помещения в поток и чтения из потока отдельных строк таблицы; 4) 4 функции следующего назначения: 1. Первая функция осуществляетчтение данных таблицы, вводимых с клавиатуры и запись таблицы в файл средствами С++; 2. Вторая функция осущетсвляет чтение таблицы из файла и вывод результатов на экран средствами С++; 3. Третья функция аналогична первой, но реализована средствами С; 4. Четвѐртая функция аналогична второй, но реализована средствами С. Каждая отдельная таблица является объектом созданнрого класса. Таблица должна печататься в файле и на экране со всеми нобходимыми разделителями строк и столбцов. Имена файлов, в которые нужно записывать таблицу и из которых нужно еѐ считывать, вводятся пользователем с клавиатуры. Программа при загрузке выводит небольшое меню, состоящее из двух пунктов: 1) Запись новой таблицы в файл; 2) Чтение данных из существующего файла. Каждый из двух пунктов имеет два подпункта, которые называются: 1) Средствами Си; 2) Средствами Си++.
0
|
Master of Orion
|
|
02.09.2012, 22:19 | 7 |
diga, у нас преподаватель Математической Логики утверждал, что 0 - натуральное число... Чтож, я отучился семестр, сдал ему предмет и больше видится с ним не собираюсь .Если преподаватель настаивает (или даже намекает), делайте, как говорит, но останетесь вы при своем мнении или нет - ваше дело. Главное, сдать И быть в ладах с собой
Не по теме:
0
|
6 / 6 / 1
Регистрация: 30.03.2012
Сообщений: 111
|
|
02.09.2012, 22:27 [ТС] | 8 |
Psilon, я бы даже сделал бы как он говорит но я не могу понять что от меня именно требуется, что именно можно сделать? %)
Где учусь, отвечу в личику)
0
|
6 / 6 / 1
Регистрация: 30.03.2012
Сообщений: 111
|
|
02.09.2012, 23:43 [ТС] | 10 |
Psilon, я вот сижу по лекциям читаю написано, что если класс содержит хотя бы одну пустую виртуальную функцию то данный класс называется абстрактной.
не понимаю что не так...
0
|
6 / 6 / 1
Регистрация: 30.03.2012
Сообщений: 111
|
|
10.09.2012, 21:41 [ТС] | 12 |
возник вопрос: как в абстрактном классе реализовать функцию рисования таблицы произвольного вида а в классе наследнике задать конкретные значения? так же проблема в том что у меня не рисуется таблица(в файле) то есть он записывает только данные, а как сделать чтоб и таблицу рисовал?
ВОТ все эти ошибки препод подметил, да уж... сижу ломаю голову, посоветуй те как сделать? или покажи на примере, спасибо заранее всем)
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
10.09.2012, 22:11 | 13 |
diga, в абстрактном классе не нужно реализовывать метод рисования произвольной таблицы, на то класс и абстрактный. Этот метод в нём стоит сделать чистым виртуальным (т.е. предоставить интерфейс). А вот в конкретных наследниках этого абстрактного класса как раз и надо написать конкретную реализацию рисования, которая будет своей для каждого конкретного класса (т.е. реализовать интерфейс, предоставленный базовым классом).
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|||||||||||
11.09.2012, 07:36 | 14 | ||||||||||
Сделать можно следующее. Поля абстрактного класса сделать закрытыми, для доступа к ним реализовать по одному защищённому методу, через которые классы-наследники будут иметь доступ к этим полям. То есть:
Добавлено через 54 минуты
0
|
6 / 6 / 1
Регистрация: 30.03.2012
Сообщений: 111
|
|
11.09.2012, 09:08 [ТС] | 15 |
alsav22, не знаю, попробую сделать так, посмотрим что скажет.
silent_1991, а как понять вот эту часть задания? я думал что нужно реализовывать в абстрактном классе какую то таблицу(произвольную) или я не так понял?
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||||||
11.09.2012, 18:52 | 16 | |||||
diga, таблица произвольного вида - это абстракция, сродни транспортному средству. Если вам скажут "соберите мне, пожалуйста, транспортное средство", что вы будете делать? Транспортным средством может быть как автомобиль, так и самокат. Это я к тому, что невозможно собрать транспортное средство, как и реализовать таблицу произвольного вида. Зато любое транспортное средство (для простоты будем иметь ввиду наземное колёсное транспортное средство) умеет ехать, т.е. предоставляет некий интерфейс. А вот каждое конкретное транспортное средство едет уже по-своему. Тем более вам явно говорят - абстрактный класс. Экземпляров абстрактного класса создать нельзя. Поэтому абстрактный класс "таблица" долежн только предоставлять интерфейс "печатать", а вот каждая конкретная таблица уже знает, как себя печатать, т.е. реализует интерфейс. Так что структура программы в общем виде будет примерно такой:
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
11.09.2012, 20:04 | 17 |
По моему, в базовом классе должны быть поля, которые есть у всех таблиц, например, кол-во строк - столбцов. Оставить там только то, что может быть у всех таблиц, а поэтому убрать построение шапки, или сделать его под кол-во строк-столбцов таблицы, без записи каких-либо слов в шапку ( это уже зависит от конкретной таблицы). А то получается, что у вас абстрактная таблица - это таблица для результатов по лабораторным работам, а это уже конкретная таблица.
0
|
6 / 6 / 1
Регистрация: 30.03.2012
Сообщений: 111
|
|
12.09.2012, 09:28 [ТС] | 18 |
alsav22, как сделать чтоб таблица записывалась в файл? не можете привести пример? и как можно организовать функцию которая задает количество строк и столбцов ? СПАСИБО ЗАРАНЕЕ БОЛЬШОЕ! Выручишь...
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|||||||||||
12.09.2012, 12:11 | 19 | ||||||||||
Так же как на экран вывод, так же сделать вывод в файл. Вывод шапки сделать под ostream &out, тогда её можно будет в файл выводить:
Проблема в том, что у вас чтение из файла рассчитано на то, что там только данные. Значит нужно переписывать чтение из файла. Добавлено через 4 минуты Зачем для этого функция? Просто в абстрактном классе должны быть поля количества строк и столбцов. Функция нужна для того, чтобы по этим данным строить таблицу. Добавлено через 39 минут При выводе в файл почему-то не срабатывает форматирование. Вот это:
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||||
12.09.2012, 14:42 | 20 | |||||
Как вариант. Изменения только для С++. Выводит на экран таблицу нормально, но в самом файле таблица с искажениями. Наверное, связано с разницей форматирования в консоли и в файле. Точно не знаю, с таблицами дела не имел.
Код
0
|
12.09.2012, 14:42 | |
12.09.2012, 14:42 | |
Помогаю со студенческими работами здесь
20
Объясните как объявить абстрактный класс, и при этом не тащить виртуальные методы в производные классы Как получить какие-либо данные об устройстве? Абстрактный класс, виртуальные методы Виртуальный методы, абстрактный класс. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |