2 сем 1 курс С++ / ЛР 4 / 0501_Конунников_ЛР№4
.docxМинистерство науки и высшего образования
Российской Федерации
Федеральная государственная автономная образовательное учреждение высшего образования “Санкт-Петербургский государственный электротехнический университет “ЛЭТИ им В.И.Ульянова (Ленина)”
(СПбГЭТУ)
Факультет информационно-измерительных и биотехнических систем
Кафедра:
Отчет: По лабораторной работе №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;
}
Заданные параметры и вывод программы:
Вывод правильный.
Вывод: Программа успешно реализована.