Dev - C++ - Codigo Para Granja de Cerdos

 
Vista:

Codigo Para Granja de Cerdos

Publicado por Oswaldo (1 intervención) el 09/07/2023 22:19:43
Alguien que pueda checar mi codigo, ya intente varias veces y cuando no me muestra un error me muestra otro, ya cheque mi configuracion del mi entorno de programacion y esta todo enlazado correctamente, si alguien me podria ayudar porfavor:

#include <SFML/Graphics.hpp>
#include <iostream>
#include <vector>
#include <chrono>
#include <ctime>

struct Cerda {
int numero;
std::chrono::system_clock::time_point fechaCarga;
std::chrono::system_clock::time_point fechaPartoEstimada;
};

std::chrono::system_clock::time_point calcularFechaPartoEstimada(const std::chrono::system_clock::time_point& fechaCarga) {
std::chrono::hours horasGestacion(24 * 114);
return fechaCarga + horasGestacion;
}

std::string obtenerFechaFormateada(const std::chrono::system_clock::time_point& fecha) {
std::time_t fechaConvertida = std::chrono::system_clock::to_time_t(fecha);
char fechaFormateada[100];
std::strftime(fechaFormateada, sizeof(fechaFormateada), "%d/%m/%Y", std::localtime(&fechaConvertida));
return fechaFormateada;
}

void agregarCerda(std::vector<Cerda>& cerdas) {
Cerda nuevaCerda;
std::cout << "\nIngrese el número de la cerda: ";
std::cin >> nuevaCerda.numero;
nuevaCerda.fechaCarga = std::chrono::system_clock::now();
nuevaCerda.fechaPartoEstimada = calcularFechaPartoEstimada(nuevaCerda.fechaCarga);
cerdas.push_back(nuevaCerda);
std::cout << "Cerda agregada exitosamente." << std::endl;
}

void mostrarCerdasEnGestacion(const std::vector<Cerda>& cerdas) {
std::cout << "\nCerdas en gestación:" << std::endl;
for (const auto& cerda : cerdas) {
if (std::chrono::system_clock::now() < cerda.fechaPartoEstimada) {
std::cout << "Cerda " << cerda.numero << " - Fecha estimada de parto: " << obtenerFechaFormateada(cerda.fechaPartoEstimada) << std::endl;
}
}
}

void mostrarCerdasPorCargar(const std::vector<Cerda>& cerdas) {
std::cout << "\nCerdas por cargar:" << std::endl;
for (const auto& cerda : cerdas) {
if (std::chrono::system_clock::now() < cerda.fechaCarga) {
std::cout << "Cerda " << cerda.numero << " - Fecha de carga: " << obtenerFechaFormateada(cerda.fechaCarga) << std::endl;
}
}
}

int main() {
std::vector<Cerda> cerdas;
int opcion;

sf::RenderWindow window(sf::VideoMode(400, 300), "Granja La Mina");

// Carga la fuente desde el archivo
sf::Font font;
if (!font.loadFromFile("arial.ttf")) {
// Si hay un problema al cargar la fuente, muestra un mensaje de error
return -1;
}

while (window.isOpen()) {
sf::Event event;
while (window.pollEvent(event)) {
if (event.type == sf::Event::Closed)
window.close();
}

std::cout << "\n-- Granja La Mina --" << std::endl;
std::cout << "1. Agregar nueva cerda" << std::endl;
std::cout << "2. Consultar cerdas en gestación" << std::endl;
std::cout << "3. Consultar cerdas por cargar" << std::endl;
std::cout << "4. Salir" << std::endl;
std::cout << "Seleccione una opción: ";
std::cin >> opcion;

switch (opcion) {
case 1:
agregarCerda(cerdas);
break;
case 2:
mostrarCerdasEnGestacion(cerdas);
break;
case 3:
mostrarCerdasPorCargar(cerdas);
break;
case 4:
std::cout << "Saliendo del programa..." << std::endl;
window.close();
break;
default:
std::cout << "Opción inválida. Intente nuevamente." << std::endl;
break;
}

window.clear(sf::Color::White);

// Dibujar texto en la ventana
sf::Text text("Granja La Mina", font, 20);
text.setPosition(10, 10);
window.draw(text);

window.display();
}

return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder