Наименование класса: decstr. Данный класс является производным классом класса String

Министерство образования и науки Российской Федерации

Федеральное государственное автономное образовательное учреждение высшего образования

САНКТ-ПЕТЕРБУРГСКИЙ НАЦИОНАЛЬНЫЙ

ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ

ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ

 

 

Кафедра проектирования и безопасности информационных технологий

 

Языки программирования

 

Курсовая работа

 

Работу выполнил:

Санкт-Петербург 2019

Морозов Р.М. N3149

 

Преподаватель:

                                                                                                       Безруков В.А.


 

Оглавление

Техническое задание. 4

1. Класс Строка. 7

1.1  Базовый класс Строка. 7

1.2  Строка идентификатор. 7

1.3  Десятичная строка. 7

Наименование класса: decstr. Данный класс является производным классом класса String. 7

Заключение. 8

Цель курсовой работы достигнута. Были созданы тестируемые классы: базовый класс Строка, Строка-идентификатор, Десятичная строка. Тестируемые классы работают корректно. 8

Список использованных источников. 9

2 Приложение. 10

2.1  Файл decstr.h. 10

2.2  Файл decstr.cpp. 10

2.3  Файл IdentStr.h. 18

2.4  Файл IdentStr.cpp. 19

2.5  Файл Stroka.h. 22

2.6  Stroka.cpp. 22

2.7  Файл main.cpp. 23

2.8  asm.asm.. 24

 

 

 


Введение

Целью данной работы является создание класса «строка» и производных классов от него, а также разработка интерфейса для ввода начальных значений, отображения результатов и тестирования методов собственного класса.

Для достижения поставленной цели была осуществлена разработка классов: базовая строка, строка идентификатор, десятичная строка согласно техническому заданию.


 


Техническое задание

Описать базовый класс строка

Обязательные члены класса:

1) указатель на char - хранит адрес динамически выделенной памяти     для размещения символов строки;

2) значение типа int - хранит длину строки в байтах.

Обязательные методы должны выполнять следующие действия:

1) конструктор без параметров;

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

3) конструктор, принимающий в качестве параметра символ (char);

4) конструктор копирования;

5) деструктор.

6) очистка строки (сделать строку пустой);

Производный от Строка класс Строка-идентификатор.

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

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

1) Конструктор без параметров;

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

3) Конструктор копирования;

4) Деструктор.

5) Перевод всех символов строки(кроме цифр) в верхний регистр.

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

1) присваивание (=);

2) оператор == -проверка на равенство;

3) индексное выражение [];

Производный от Строка класс Десятичная строка.

Строки данного класса могут содержать только символы десятичных цифр и символы – и +, задающие знак числа. Символы – или + могут находиться только в первой позиции числа, причем символ + может отсутствовать, в этом случае число считается положительным. Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, Десятичная строка принимает нулевое значение. Содержимое данных строк рассматривается как десятичное число.

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

1) конструктор без параметров;

2) конструктор, принимающий в качестве параметра Си-строку  

      (заканчивается нулевым байтом);     

3) конструктор копирования;

4) деструктор;

определяющий, можно ли представить данное число в формате char;

                

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

1) присваивание (=);

2) сложение -  – арифметическая разность строк;

3) операция == – проверка на равенство;

 

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

 

Задание:

Разработать иерархию классов по следующей схеме:

 

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

Написать тестовую программу, которая:

1) динамически выделяет массив указателей на базовый класс (4-6 шт.);

2) в режиме диалога заполняет этот массив указателями на производные классы, при этом экземпляры производных классов создаются динамически с заданием начальных значений;

3) для созданных экземпляров производных классов выполняется проверка всех разработанных методов (в соответствии с вариантом задания), с выводом исходных данных и результатов на дисплей.

Режим диалога обеспечивается с помощью иерархического меню.

Основные пункты:

1. «Инициализация».

Подпункты:

1.1. "Число элементов" - задает число элементов в массиве указателей на базовый класс. Запрещается после задания числа элементов пользоваться этим пунктом меню.

1.2. "Начальное значение" - с помощью этого пункта меню можно задать номер элемента, его тип и начальное значение.

 

Задавать начальные значения и работать с другими пунктами меню запрещается до тех пор, пока не будет задано число элементов. Допускается задать новое начальное значение несколько раз.

2. «Тестирование»

В качестве подпунктов указываются типы строк из варианта задания и

обязательные для всех подпункты "строка" и "задание операнда", например:

2.1. «Строка»;

2.2. «Строка-идентификатор»;

2.3. «Десятичная строка»;

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

3.  «Выход»

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



Класс Строка

1.1 Базовый класс Строка

Название класса: Stroka. Является базовым классов для классов десятичная строка и строка идентификатор.

Данные-члены класса, объявленные как protected:

1) char *str - указатель на массив символов;

2) int len – переменная, хранящая длину строки.

Метода классы строка:

1) string() – конструктор без параметров, создает строку нулевой длины;

2) Stroka(const char *) - конструктор, в качестве параметра принимающий Си-строку.;

3) Stroka(const char) – конструктор, принимающий в качестве параметра один символ.;

4) Stroka(const Stroka &) – конструктор копирования;

5) ~Stroka() – деструктор;

6) void clear(); – функция, очищающая строку;

7) char *text() – функция, возвращающая Си-строку

8) void friend report(char *) – дружественная функция выводит сообщения о работе конструкторов/деструкторов на консоль, а так же сообщения о работе конструкторов в правое диалоговое окно.

 

1.2 Строка идентификатор

Название класса: IdentStr. Данный класс является производным классом класса String.

Методы класса IdentStr:

1) IdentStr() – конструктор;

2) IdentStr(const char *) – конструктор, принимающий в качестве параметра си-строку.

3) IdentStr(const IdentStr &) – конструктор копирования;

4) ~IdentStr() – деструктор;

5) IdentStr operator =(const IdentStr &) – переопределенная операция присваивания типа «объект»= «объект»;

6)  IdentStr operator =(const char *) – переопределенная операция присваивания типа «объект» = «си-строка»;

7) IdentStr operator ==(const IdentStr &) – переопределенная операция проверки на равенство;

8) сhar operator [](int) – переопределенная операция индекса.

1.3 Десятичная строка

Наименование класса: decstr. Данный класс является производным классом класса String.

  Метода данного класса:

1) Decstr () – конструктор;

2) Decstr (const char *) – конструктор, принимающий в качестве параметра Си-строку;

3) Decstr (const Decstr &) – конструктор копирования;

4) ~ Decstr () – деструктор;

5) Decstr operator =(const Decstr &) – переопределенная операция присваивания типа «объект» = «объект»;

6) Decstr operator =(const char *) – переопределенная операция присваивания типа «объект» = «си-строка»;

7) Decstr operator −(Decstr &) – переопределенная операция разности (арифметическая разность строк);

8) int operator ==(Decstr &) – проверка равенства строк;

9) void ChangeChar() – проверка на представлении данного числа в char

 

Заключение

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: