Dev - C++ - parcial

 
Vista:

parcial

Publicado por jhonatan (1 intervención) el 12/05/2023 02:59:01
#include <iostream>
#include <iomanip>

using namespace std;

int main() {

// Declaración de variables
int opcion, ingreso_stock, cantidad_platos, cantidad_clientes = 0, cantidad_femenina = 0, cantidad_masculina = 0, cantidad_plato1 = 0, cantidad_plato2 = 0, cantidad_plato3 = 0, cantidad_plato4 = 0, cantidad_platos_restantes;
char genero;
double precio, monto_bruto, igv, descuento, monto_descuento, monto_total, importe_neto, total_ventas = 0, total_ventas_plato2 = 0;
bool salir = false;

// Ingreso de stock de platos
cout << "Ingrese el stock de platos: ";
cin >> ingreso_stock;

// Menú principal
while (!salir) {
cout << endl;
cout << "Restaurante 'La tia veneno'" << endl;
cout << "---------------------------" << endl;
cout << "1. Registrar venta" << endl;
cout << "2. Reporte de ventas" << endl;
cout << "3. Salir" << endl;
cout << "Ingrese una opcion: ";
cin >> opcion;

switch (opcion) {
case 1: // Registrar venta

// Ingreso de datos
cout << endl;
cout << "Ingrese la cantidad de platos vendidos: ";
cin >> cantidad_platos;

while (cantidad_platos <= 0) { // Validación de cantidad de platos
cout << "La cantidad de platos debe ser mayor a cero. Ingrese de nuevo: ";
cin >> cantidad_platos;
}

cout << "Ingrese el precio por plato: ";
cin >> precio;

while (precio <= 0) { // Validación de precio
cout << "El precio debe ser mayor a cero. Ingrese de nuevo: ";
cin >> precio;
}

cout << "Ingrese el genero del cliente (M o F): ";
cin >> genero;

while (genero != 'M' && genero != 'm' && genero != 'F' && genero != 'f') { // Validación de género
cout << "Genero invalido. Ingrese de nuevo (M o F): ";
cin >> genero;
}

// Cálculo de descuento
if (cantidad_platos >= 1 && cantidad_platos <= 4) {
descuento = 0.0;
} else if (cantidad_platos >= 5 && cantidad_platos <= 8) {
descuento = 0.05;
} else if (cantidad_platos >= 9 && cantidad_platos <= 13) {
descuento = 0.07;
} else if (cantidad_platos >= 14 && cantidad_platos <= 17) {
descuento = 0.10;
} else if (cantidad_platos >= 18) {
descuento = 0.12;
}

// Cálculo de montos
monto_bruto = cantidad_platos * precio;
igv = monto_bruto * 0.18;
monto_descuento = monto_bruto * descuento;
importe_neto = monto_bruto - monto_descuento;

// Cálculo de total de
// Ingreso de stock
cout << "Ingrese el stock del plato 1: ";
cin >> stock_plato1;
cout << "Ingrese el stock del plato 2: ";
cin >> stock_plato2;
cout << "Ingrese el stock del plato 3: ";
cin >> stock_plato3;
cout << "Ingrese el sto0ck del plato 4: ";
cin >> stock_plato4;

do {
// Mostrar menu de opciones
cout << "\nMENU DE OPCIONES" << endl;
cout << "1. Registrar venta" << endl;
cout << "2. Reporte de ventas" << endl;
cout << "3. Salir" << endl;
cout << "Ingrese una opcion: ";
cin >> opcion;

switch(opcion) {
case 1:
// Ingreso de datos de venta
cout << "\nIngrese la cantidad de platos: ";
cin >> cantidad_platos;
while(cantidad_platos <= 0) {
cout << "Cantidad invalida, ingrese nuevamente: ";
cin >> cantidad_platos;
}

cout << "Ingrese el genero del cliente (F/M): ";
cin >> genero_cliente;
while(genero_cliente != 'F' && genero_cliente != 'f' && genero_cliente != 'M' && genero_cliente != 'm') {
cout << "Genero invalido, ingrese nuevamente (F/M): ";
cin >> genero_cliente;
}

// Calcular descuento segun la cantidad de platos
if(cantidad_platos >= 1 && cantidad_platos <= 4) {
descuento = 0;
} else if(cantidad_platos >= 5 && cantidad_platos <= 8) {
descuento = 5;
} else if(cantidad_platos >= 9 && cantidad_platos <= 13) {
descuento = 7;
} else if(cantidad_platos >= 14 && cantidad_platos <= 17) {
descuento = 10;
} else {
descuento = 12;
}

// Calcular montos de venta
float monto_bruto = 0.0, igv = 0.0, monto_descuento = 0.0, monto_total = 0.0;
switch(genero_cliente) {
case 'F':
case 'f':
monto_bruto = cantidad_pl
// Acumular los totales de ventas por tipo de plato
switch (plato) {
case 1:
totalPlato1 += montoTotal;
cantPlato1 += cantidadPlatos;
break;
case 2:
totalPlato2 += montoTotal;
cantPlato2 += cantidadPlatos;
break;
case 3:
totalPlato3 += montoTotal;
cantPlato3 += cantidadPlatos;
break;
case 4:
totalPlato4 += montoTotal;
cantPlato4 += cantidadPlatos;
break;
}

// Preguntar si se desea registrar otra venta
cout << "\nDesea registrar otra venta? (S/N): ";
cin >> opcion;
opcion = toupper(opcion);
} while (opcion == 'S');

// Opción 2: Reporte de ventas
} else if (opcion == 2) {
// Mostrar los resultados
cout << "\n*** REPORTE DE VENTAS ***\n\n";

// Cantidad total de clientes atendidos
cout << "Cantidad total de clientes atendidos: " << cantClientes << endl;

// Cantidad total de clientes atendidos, género femenino
cout << "Cantidad total de clientes atendidos, género femenino: " << cantFemenino << endl;

// Cantidad total de clientes atendidos, género masculino
cout << "Cantidad total de clientes atendidos, género masculino: " << cantMasculino << endl;

// Cantidad de platos (Plato 1)
cout << "Cantidad de platos (Plato 1): " << cantPlato1 << endl;

// Cantidad de platos (Plato 3)
cout << "Cantidad de platos (Plato 3): " << cantPlato3 << endl;

// Total acumulado de las ventas
cout << "Total acumulado de las ventas: " << totalVentas << endl;

// Total acumulado de las ventas para el plato 2
cout << "Total acumulado de las ventas para el plato 2: " << totalPlato2 << endl;

// Total acumulado de las ventas para el plato 4
cout << "Total acumulado de las ventas para el plato 4: " << totalPlato4 << endl;

// Cantidad de platos restantes por tipo de plato
cout << "Cantidad de platos restantes por tipo de plato:\n";
cout << "Plato 1: " << stockPlato1 - cantPlato1 << endl;
cout << "Plato 2: " << stockPlato2 - cantPlato2 << endl;
cout << "Plato 3: " << stockPlato3 - cantPlato3 << endl;
cout << "Plato 4: " << stockPlato4 - cantPlato4 << endl;

// Esperar a que el usuario presione una tecla para continuar
cout << "\nPresione una tecla para continuar...";
getch();
}

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