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;
}
#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
0