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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
superNOOB
3 / 3 / 0
Регистрация: 04.10.2013
Сообщений: 37
#1

Методы и классы - C++

15.04.2014, 19:49. Просмотров 561. Ответов 0
Метки нет (Все метки)

КОД В КОНЦЕ СООБЩЕНИЯ


Описать базовый класс СТРОКА.
Обязательные члены класса :
* указатель на char - хранит адрес динамически выделенной памяти
для размещения символов строки;
* значение тип int - хранит длину строки в байтах .

Обязательные методы должны выполнять следующие действия:
* конструктор без параметров;
Конструктор, принимающий в качестве параметра:
* Си-строку (заканчивается нулевым байтом);
* конструктор, принимающий в качестве параметра символ (char).
* конструктор копирования;
* деструктор.
* получение длины строки;

Производный от СТРОКА класс СТРОКА_ИДЕНТИФИКАТОР
Строки данного класса строятся по правилам записи идентификаторов
в СИ, и могут включать в себя только те символы, которые могут входить
в состав Си-идентификаторов. Если исходные данные противоречат правилам
записи идентификатора, то создается пустая СТРОКА_ИДЕНТИФИКАТОР.

Обязательные методы:
* конструктор без параметров;
* конструктор, принимающий в качестве параметра Си-строку
(заканчивается нулевым байтом);
* конструктор, принимающий в качестве параметра символ (char)
* конструктор копирования;
* деструктор.

* перевод всех символов строки (кроме цифр) в верхний регистр;

Переопределить ледющие опер ии:
* присваивание (=);
* оператор > - проверка на большее. Строка читается больше другой,
если один символ первой строки в i-й позиции
(i изменяется от 0 до n-1, где n - длина более
короткой строки) больше одного символа в той же позиции
во второй тройке, длины строки могут не совпадать.
* индексное выражение [];


Производный от СТРОКА класс КОМЛЕКСНОЕ_ЧИСЛО.
Строки данного класса состоят из двух полей, разделенных символом i.
Первое поле задает значение реальной части числа, а второе - мнимой.
Каждое из полей может содержать только символы десятичных
цифр и символы - и +, задающие знак числа. Символы - или + могут
находиться только в первой позиции числа, причем символ + может
отсутствовать, в этом случае число считается положительным. Если
в составе инициализирующей строки будут встречены любые символы,
отличные от допустимых, КОМЛЕКСНОЕ_ЧИСЛО принимает нулевое значение.
Примеры строк 33i12
-7i100
+5i-21

Обязательные методы:

* конструктор без параметров;
* конструктор, принимающий в качестве параметра
Си-строку (заканчивается нулевым байтом);
* конструктор копирования;
* деструктор;


Переопределить следующие операции :

* присваивание (=);
* умножение * - умножение чисел;
* операция == - проверка на равенство

Разработчик вправе вводить любое (с обоснованием необходимости)
число дополнительных членов и методов.

Задание:

Разработать иерархию классов по следующей схеме:
СТРОКА
|
V
--------------------------------------------
| |
СТРОКА_ИДЕНТИФИКАТОР БИТОВАЯ_СТРОКА
или
ДЕСЯТИЧНАЯ_СТРОКА
или
КОМПЛЕКСНОЕ_ЧИСЛО

с обязательной поддержкой заданных членов и методов.

Написать тестовую программу, которая:
* динамически выделяет массив указателей на базовый класс (4-6 шт.);
* в режиме диалога заполняет этот массив указателями на производные классы,
при этом экземпляры производных классов создаются динамически с заданием
начальных значений;
* для созданных экземпляров производных классов выполняется
проверка всех разработанных методов (в соответствии с вариантом задания),
с выводом исходных данных и результатов на дисплей.
* для конструкторов копирования каждого класса предусмотреть
диагностическую печать количества его ввызовов в заданное место дисплея,
(рекомендуется использовать статические члены класса).

Режим диалога обеспечивается с помощью иерархического меню.
Основные пункты:
1. "Инициализация".
Подпункты:
1.1 "Число элементов" - задает число элементов в массиве указателей
на базовый класс.
Запрещается после задания числа элементов пользоваться этим
пунктом меню.
1.2 "Начальное значение" - с помощью этого пункта меню можно
задать номер элемента, его тип и начальное значение.
Задавать начальные значения и работать с другими пунктами меню
запрещается до тех пор, пока не будет задано число элементов.
Допускается задать новое начальное значение несколько раз.

2. "Тестирование"
В качестве подпунктов указываются типы строк из варианта задания и
обязательные для всех подпункты "строка" и "задание операнда",
например:
2.1 "Строка"
2.2. "СТРОКА_ИДЕНТИФИКАТОР"
2.3. "КОМПЛЕКСНОЕ_ЧИСЛО"
2.4. "Задать операнд"

После выбора одного из этих пунктов меню предлагается выбрать один
методов из списка всех обязательных методов (кроме конструкторов
и деструкторов), связанных с выбранным подпунктом.
Результат выводится на экран.
3. "Выход".

Допускается одновременный вывод всех пунктов меню на экран.
Переход между пунктами меню осуществляется клавишами со стрелками.
Выбор пункта меню осуществляется нажатием клавиши Enter.

Значения экземпляров классов по мере их инициализации выводятся на
дисплей и остаются на все время выполнения программы.
После выбора операндов они подсвечиваются
цветом, отличным от остальных экземпляров.
------------------------------------------------------------------------------------------------------

Вот мой код:

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
class mystring    //Базовый класс строки
{
protected:
    char *p;
    int length;
public: 
    mystring();
    mystring(const char *s); 
    mystring(char c); 
    mystring(const mystring &str); 
    ~mystring(); 
    int get_length();
 
};
 
 
// Производный от строка класс строка идентификатор
class identification: public mystring
{
public:
    identification(); 
    identification(const char *s);
    identification(char c); 
    identification(const identification &str);
    ~identification(); 
    //int find_char(char c);    // Поиск первого вхождения символа в строку
    identification operator+(identification id);
    identification operator=(identification id);
    bool operator<(identification id);                // Переопределим оператор  <   - проверка на меньше. Строка считается меньше другой,
                                                    // если код символа первой строки в i-й позиции
                                                    // (i изменяется от 0 до n-1, где n - длина более
                                                    // короткой строки) меньше кода символа в той же позиции
                                                    // кода символа в той же позиции во второй строке,
                                                    // длины строк могут не совпадать.
};
// Производный от строка класс комплексное число (+-0-9i)
class complex: public mystring
{
public:
    complex(); 
    complex(const char *s);
    complex(const complex &str); 
    ~complex();
    complex operator*(complex com); 
    complex operator=(complex com); 
};
Помогите пожалуйста найти ошибки и недочёты и настроить перевод всех символов строки (кроме цифр) в верхний регистр
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2014, 19:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Методы и классы (C++):

Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы - C++
Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы Abiturient:...

классы/дочерние классы/методы - C++
помогите пожалуйста! надо что выводились только учебеники. чтоб былo через GetTip. h файл class Book { protected: char...

Методы и классы - C++
добрый день) код выдает ошибку &quot;E2089 Identifier 'proc' cannot have a type qualifier&quot;. не могу понять в чем проблема. int main() { ...

Классы. Объекты. Методы - C++
Доброго времени суток! Вот задачка. Я пока начинающий в этом деле, так что не очень понятно... Создать класс &quot;дата&quot;. Данные класса...

Классы и методы, перегрузка операторов == и != - C++
не могу разобраться с перегрузкой операторов == или != для 2 массивов типа char и int состоящих из 5 элементов. при составлении кода...

Классы, функции методы класса, наследование - C++
Задание: Объявите класс Tarray, создающий тип &quot;Массив&quot;. Определите элементы-данные класса: - Указатель на область памяти,в которой...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2014, 19:49
Привет! Вот еще темы с ответами:

Классы, конструкторы, деструкторы, методы классов - C++
Доброго времени суток , Господа программисты. :) Очень нужна Ваша помощь. Написал программу, но никак не получается сделать последний...

Классы С++ (как описать методы и свойства к массиву) - C++
Есть Класс Массив. помогите описать для него простой метод и свойство. Метод: Сумма или Среднее арифметическое элементов массива....

Задачка на классы (Создать методы, выполняющие поразрядные операции) - C++
Не смог сам разобраться.. Класс, хранящий 8 бит информации – байт флагов b1. Создать методы, выполняющие поразрядное отрицание &quot;~&quot;...

Классы и методы, error LNK2001: неразрешенный внешний символ - C++
пожалуста, посмотрите код, и скажите почему вылетает данная ошибка? // lab.k.kurs.cpp: определяет точку входа для консольного...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru