
Лабораторные работы / лабы ооп / ooп_5_отчёт вар 9
.docxФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
“ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ”
Кафедра “Информатика и вычислительная техника”
ОТЧЕТ
по лабораторной работе ООП №5
“ДРУЖЕСТВЕННЫЕ ФУНКЦИИ”
Выполнил:
Студент группы ИВТ-234 Кукушкина А.А.
_____________________________________________________
(дата, подпись)
Проверил:
ст. пр. доцент Дорошенко М.С.
_____________________________________________________
(дата, подпись)
Омск 2024
Лабораторная работа ООП №5
Тема: Дружественные функции
Вариант 9
Задание 1
Условие задачи:
Реализовать игру "угадай число" для чисел от 0 до 10. Суть игры заключается в том, что компьютер загадывает число, а пользователь или сам компьютер (на выбор из меню) угадывают это число, анализируя ответы ("больше" или "меньше").
Текст программы:
#include <iostream>
#include <cstdlib>
#include <conio.h>
using namespace std;
class GuessNumberGame
{
private:
int secretNumber;
public:
GuessNumberGame()
{
secretNumber = rand() % 11;
}
friend void guessNumberUser(GuessNumberGame game);
friend void guessNumberComputer(GuessNumberGame game);
};
void guessNumberUser(GuessNumberGame game)
{
int guess;
cout << "Введите предполагаемое число: ";
do
{
cin >> guess;
if (guess < game.secretNumber)
{
cout << "Загаданное число больше. Попробуйте еще раз: ";
}
else if (guess > game.secretNumber)
{
cout << "Загаданное число меньше. Попробуйте еще раз: ";
}
else
{
cout << "Поздравляем! Вы угадали число." << endl;
return;
}
} while (true);
}
void guessNumberComputer(GuessNumberGame game)
{
char response;
int guess = 5; // начинаем с середины диапазона
do
{
cout << "Компьютер думает, что загадано число: " << guess << endl;
cout << "Загаданное число больше (>), меньше (<) или равно (=) моему ответу? ";
cin >> response;
if (response == '>')
{
guess = (guess + 10) / 2; // увеличиваем предполагаемое число
}
else if (response == '<')
{
guess = guess / 2; // уменьшаем предполагаемое число
}
else if (response == '=')
{
cout << "Я победил!" << endl;
return;
}
else
{
cout << "Некорректный ввод. Попробуйте еще раз." << endl;
}
} while (true);
}
int main()
{
setlocale(LC_ALL, "ru");
char choice;
cout << "Кто будет угадывать число: компьютер (c) или пользователь (p)? ";
cin >> choice;
if (choice == 'c')
{
cout << "Загадайте число от 0 до 10, а компьютер попробует угадать." << endl;
_getch();
GuessNumberGame game;
guessNumberComputer(game);
}
else if (choice == 'p')
{
cout << "Компьютер загадал число от 0 до 10, а вы попробуйте угадать." << endl;
_getch();
GuessNumberGame game;
guessNumberUser(game);
}
else
{
cout << "Некорректный ввод. Попробуйте еще раз." << endl;
}
return 0;
}
Результаты выполнения программы, выводы:
Угадывает компьютер:
Угадывает пользователь: