Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача на C++

sdf fds Ученик (75), открыт 1 неделю назад
"Создать программу с меню, которое позволяет выводить картинки" нужен код-решение этой задачи. Заранее спасибо!
2 ответа
HAKER HAKER Ученик (104) 1 неделю назад
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include <algorithm>
#include <SFML/Graphics.hpp>

using namespace std;
using namespace sf;

// Функция для загрузки изображения
sf::Image loadImage(const string& filename) {
sf::Image image;
if (!image.loadFromFile(filename)) {
cerr << "Ошибка загрузки изображения: " << filename << endl;
exit(1);
}
return image;
}

// Функция для создания текстуры из изображения
sf::Texture createTexture(const sf::Image& image) {
sf::Texture texture;
if (!texture.loadFromImage(image)) {
cerr << "Ошибка создания текстуры." << endl;
exit(1);
}
return texture;
}

// Функция для создания спрайта из текстуры
sf::Sprite createSprite(const sf::Texture& texture) {
sf::Sprite sprite;
sprite.setTexture(texture);
return sprite;
}

int main() {
// Инициализация окна
RenderWindow window(VideoMode(800, 600), "Просмотр изображений");

// Список изображений
vector<string> images = {
"image1.png",
"image2.jpg",
"image3.bmp",
// Добавьте сюда свои пути к изображениям
};

// Цикл обработки событий
while (window.isOpen()) {
Event event;
while (window.pollEvent(event)) {
if (event.type == Event::Closed) {
window.close();
}
}

// Очистка окна
window.clear(Color::White);

// Меню
cout << "\nМеню:\n";
for (size_t i = 0; i < images.size(); ++i) {
cout << i + 1 << ". " << images[i] << endl;
}
cout << images.size() + 1 << ". Выход" << endl;

// Ввод выбора пользователя
int choice;
cout << "Введите номер изображения: ";
cin >> choice;

// Обработка выбора
if (choice >= 1 && choice <= images.size()) {
// Загрузка и отображение изображения
Image image = loadImage(images[choice - 1]);
Texture texture = createTexture(image);
Sprite sprite = createSprite(texture);

// Определение положения спрайта в центре окна
sprite.setPosition((window.getSize().x - sprite.getGlobalBounds().width) / 2,
(window.getSize().y - sprite.getGlobalBounds().height) / 2);

// Отрисовка спрайта
window.draw(sprite);
} else if (choice == images.size() + 1) {
window.close();
} else {
cout << "Неверный выбор." << endl;
}

// Отображение окна
window.display();
}

return 0;
}
Похожие вопросы