2 сем 1 курс С++ / ЛР 4 / 0501_Конунников_ЛР№4
.pdfМинистерство науки и высшего образования
Российской Федерации
Федеральная государственная автономная образовательное учреждение высшего образования “Санкт-Петербургский государственный электротехнический университет “ЛЭТИ им В.И.Ульянова (Ленина)”
(СПбГЭТУ)
Факультет информационно-измерительных и биотехнических систем
Кафедра: Кафедра биотехнических систем
Отчет: По лабораторной работе №4. <<C++. Классы.>>
По дисциплине: Информационные технологии
Студент гр.0501 Конунников Г.А.
Преподаватель: Сулоева Е.С.
Санкт-Петербург
2021
Цель работы: знакомство с классами.
Индивидуальное задание. Вариант 22
Создать класс строка String. Максимальное число символов в строке –
79.
Предусмотреть:
·Конструктор для создания строк: String (…);
·Функцию-член ввода исходной строки: Set();
·Функцию-член печати: void print(…);
Код функций-членов – вне пространства определения класса. Ввести с клавиатуры строку символов S1. Признак окончания ввода строки - нажатие клавиши "Ввод". Программа должна содержать перегруженную операцию «=», использование которой скопирует S1 в S2.
Индивидуальная часть задания:
Длина L >5 и <30, изменить регистр символов (aBcDeF->AbCdEf)
Экспериментальные результаты.
Текст программы:
#include <cstdlib> #include <conio.h> #include <iostream> #include <string> #include <bits/stdc++.h> using namespace std;
#define MAX 79
class Stroka
{
private:
string s; int len;
public:
Stroka()
{
s = "adf gth 6";
cout<<"you create line:"<<endl; cout<<s<<endl;
cout<<"length of line:"<<endl; len = s.length(); cout<<len<<endl;
}
int Set();
void print(); const char* Run();
string operator = ( const string &str);
};
int Stroka::Set()
{
cout<<"line:"<<endl; getline(cin, s);
len = s.length(); if( len > MAX)
{
s.resize(MAX);
}
cout<<"new line:"<<endl; cout<<s<<endl;
cout<<"length of line:"<<endl; cout<<len<<endl;
}
void Stroka::print()
{
cout<<s<<endl;
}
string Stroka::operator = (const string &str)
{
int len2 = str.length(), i, n; if(len2 >= len)
n = len; else
n = len2;
for(i=0; i < n; i++)
{
s[i] = str[i];
}
s[n] = '\0';
}
const char* Stroka::Run()
{
if( len > 5 && len < 30)
{
for(int i=0; i < len; i++)
{
if(s[i] <= 'Z' && s[i] >= 'A')
{
s[i] += 32;
}
if(s[i] >= 'a' && s[i] <= 'z')
{
s[i] -= 32;
}
}
const char* p = s.c_str();
return p;
}
else
return "length >= 30 or <= 5";
}
int main()
{
Stroka S1;
S1.Set();
Stroka S2;
S2 = S1; cout<<S2.Run()<<endl;
cout<<"check function =:"<<endl; cout<<"S2"<<endl;
S2.print(); return 1;
}
Заданные параметры и вывод программы:
Вывод правильный.
Вывод: Программа успешно реализована.