Добавил:
надеюсь это добро кому-то поможет Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 сем лаба 1 Обращение к полям структуры. Массивы структур. Понятие класса и его реализация в языке С++..docx
Скачиваний:
1
Добавлен:
09.07.2025
Размер:
457.17 Кб
Скачать

Версия 2.2. Отличающаяся часть от версии 2.1

Сеттер и геттер для числового значения:

void SetKoll(ifstream& f, int s) {

f >> s; kolll = s;}

int GetKoll() {return kolll; }

Функции для версии 2.2

int ReadMark1(ifstream& f, ofstream& out)

{

setlocale(LC_ALL, "ru");

char s, MM;

int d;

SetMark(f, s);

MM = GetMark();

if (f.eof()) {cout << "Проблема, файл пуст!"; out << "Проблема, файл пуст!"; flag = 1;

}else

{

SetSymb(f, s);

symbol = GetSymb();

cout << "Символ, который ищется в строке: " << symbol << "\n";

out << "Символ, который ищется в строке: " << symbol << "\n";

if (f.eof()) {cout << "не достаточно данных для выполнения";

out << "не достаточно данных для выполнения";

flag = 1; return 0;

}

SetKoll(f, s);

LLL = GetKoll();

if (f.eof()) {cout << "не достаточно данных для выполнения";

out << "не достаточно данных для выполнения";

flag = 1; return 0; }

if ((LLL <= 0) && (LLL > N)) {

cout << "Символ не является числом, программа не выполняется дальше\n";

out << "Символ не является числом, программа не выполняется дальше\n";

flag = 1; return 0; }

cout << "Настоящее количество символов в строке " << LLL << "\n";

SetKol(f, s);

kol = GetKol();

if ((GetKol() > 0) && (GetKol() <= N)) {

cout << "Количество таких символов: " << kol << "\n";

out << "Количество таких символов: " << kol << "\n";

if (f.eof()) {

cout << "\nтекст состоит из пустой строки";

out << "\nтекст состоит из пустой строки";

flag = 1; return 0;}

else {int i = 0; f.unsetf(ios::skipws); cout << "\nстрока: ";

while (1) {f >> s; if (s == MM) break; if (f.eof()) break; A[i] = s;

cout << GetA(i); i++;t++;if (i > LLL) break;}}}

else {

cout << "Символ не является числом, он отрицателен или символов не хватает, программа не выполняется дальше\n";

out << "Символ не является числом, он отрицатален или символов не хватает, программа не выполняется дальше\n";

flag = 1; return 0; }}SetL(t);LL = GetL();}

void outMark(ofstream& out)

{int i = 0; setlocale(LC_ALL, "RUS");out << "\nСчитаная строка:";cout << "\nСчитаная строка:";

for (i = 0; i < LL; i++) {out << GetA(i); cout << GetA(i); }out << "\n";}

void ProcessMark(ofstream& out)

{if (flag == 0) {for (int i = 0; i < LL; i++) {

if (GetA(i) == symbol) count++;if ((count == kol)) break;

if ((GetA(i) == ' ') || (GetA(i) != symbol)) count = 0;}

if (count == kol) {cout << "\nкомбинация существует";}

else {cout << "\nкомбинации не существует";}}}

Результаты работы программы

Версия 1.1:

Версия 1.2:

Версия 2.1:

Версия 2.2:

Вывод

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