Пример выполнения лабораторной работы
Постановка задачи
Создать класс, позволяющий работать со строкой символов. Набор данных, описывающий такой объект как символьная строка должен состоять:
собственно строка;
позиция на экране, начиная с которой будет выводиться строка;
видео атрибуты символов (цвета текста и фона).
Функции необходимые для работы со строкой:
ввод строки;
установка координат для дальнейшего вывода строки;
установка видео атрибутов символов;
вывод строки в указанное место.
Структурная схема класса(представить в виде UML)
Член-данные |
Класс String |
Член-функции |
Собственно строка: str Позиция выдачи строки на экран: x, y Цвет текста и фона: attr |
Ввод строки: SetStr() Установка координат выдачи строки на экран: SetCoord() Установка цветов текста и фона: SetAttr() Вывод строки на экран: PrintStr() |
Исходный текст программы
#include <conio.h>
#include <string.h>
class String {
char str[80]; // Член-данные класса имеют доступ private
int attr; // т.е., доступны только через член-функции
int col, row; // класса, которые объявлены общедоступными
public:
void SetAttr( int a ) {attr = a;}
void SetStr( char *s ) {strcpy(str, s );}
void SetCoord( int x, int y ) {row = y; col = x;}
void PrintStr( int = 0, int = 0 ); //Использованы аргументы по умолчанию
};
inline void String :: PrintStr( int x, int y )
{ textattr(attr);
gotoxy( x = = 0 ? col : x, y = = 0 ? row : y );
cputs(str ); }
// Демонстрационная программа
void main (void )
{ String Str, *sp = &Str;
Str.SetAttr( ( BLUE<<4) + YELLOW); //Пишем желтым по синему фону
Str.SetStr(“Hello, USER !!!”);
sp ->PrintStr (5,20); }
Результаты работы программы
(20 пустых строк)
(5 пробелов) Hello, USER!!!
Выводы
…………
