Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Часть 2. Работа с динамической строкой и перегрузка операций





Упражнение 4.

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

Конструктор для создания строк: String (...);

Деструктор: ~String();

Метод ввода исходной строки Set();

Метод печати: void Print(...);

Код методов - вне пространства определения класса. Программа иллюстрирует прямой и косвенный способы обращения к методам.

 

Варианты: Ввести строку символов S1, признак окончания ввода строки - нажатие

клавиши Enter. Программа должна содержать перегруженную операцию «=», использование которой скопирует S1 в S2 при следующих условиях:

5. Без всех A..Z 6. Без скобок всех видов.

Код программы:

#include <iostream>

#include <string.h>

#include <windows.h>

#include <conio.h>

using namespace std;

char bufRus[256];

 

char* Rus(const char* text) {

CharToOem(text, bufRus);

return bufRus; }

class String

{

public:

char *str;

String (char *s="\0") // Конструктор для создания строк:

{

str = new char[strlen(s)+1];

strcpy(str,s);

}

 

~String () //Деструктор

{

delete str;

}

//Метод ввода исходной строки

void Set ()

{

}

void Print ()

{ cout << str << endl;

}

friend String operator+(String, String);

};

 

String operator+(String s1, String s2)

{ char *s;

for (unsigned i = 0; i < strlen (s1.str); i ++)

//Условие работы программы.

 

while (s1.str[i] >= 65 && s1.str[i] <= 90 || s1.str[i] ==40 && s1.str[i] ==41 && s1.str[i] ==91 && s1.str[i] ==93 && s1.str[i] ==123 && s1.str[i] ==125)

for (unsigned j = i; j < strlen(s1.str); j ++)

s1.str[j] = s1.str[j+1];

 

 

for (i = 0; i < strlen (s2.str); i ++)

while (s2.str[i] >= 65 && s2.str[i] <= 90 || s2.str[i] ==40 && s2.str[i] ==41 && s2.str[i] ==91 && s2.str[i] ==93 && s2.str[i] ==123 && s2.str[i] ==125)

for (unsigned j = i; j < strlen(s2.str); j ++)

s2.str[j] = s2.str[j+1];

 

 

s = new char[strlen(s1.str)+strlen(s2.str)+1];

strcpy(s,s1.str);

strcat(s,s2.str);

 

String s3(s);

delete s;

return s3;

}

void main (void)

{ char tmp1 [255];

char tmp2 [255];

cout<<Rus("Введите 1 строку: ");

cin.getline(tmp1,255);

String s1 (tmp1);

 

cout<<Rus("Введите 2 строку: ");

cin.getline(tmp2,255);

String s2 (tmp2);

cout<<Rus("\nСтрока 2+1 без /A...Z/ и без скобок всех видов: ");

 

String s3 ("");

s3 = s2 + s1;

s3.Print();

getch();

}

Скриншот:

Вывод:
В ходе работы мы изучили способы работы с меню среде Microsoft Visual C++ 6.0. Научились работать с динамической строкой, познакомились с такой отличительной чертой ООП как перегрузка операций. Также выполнили 4 упражнения: в 1 упражнении мы модифицировали программу так, чтобы при выборе пункта меню File->Exit программа завершала работу.; во 2 упражнении мы модифицировалипрограмму так, чтобы при выборе пункта меню Help->About программа выводила стандартную диалоговую панель About.; в 3 упражнении мы расширили возможности программы Speed, включив новый пункт Say Hello в меню Help, чтобы при его выборе появлялась панель сообщения Hello!.; и в 4 упражнении мы создали программу для работы со строками.

 

 

Date: 2016-05-16; view: 742; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию