Está en la página 1de 13

UNIVERSIDAD CONTINENTAL

FACULTAD DE INGENIERÍA

MODALIDAD SEMIPRESENCIAL

CURSO:
FUNDAMENTOS DE PROGRAMACIÓN

TEMA: PRODUCTO ACADÉMICO N° 02

DOCENTE:
LOAIZA VALDEIGLESIAS, JUAN CARLOS

ALUMNOS:
AQUIMA TAIPE ,ALEX ROMERO 100%
GOMEZ BARREDA, CARLOS ENRIQUE 100%
PANIAGUA SIVA, MARILYN CHRISS ISABEL. 100%
RIQUELME JACOBO, CHRISTIAN MILTHON R. 100%
YUPANQUI QUISPE,ROBERTO CARLOS. 100%

NRC:19147
Producto Académico N° 02
1. Elaborar el programa para: Usar MENÚ, Validar con DO – WHILE y Contador-Acumulador en:

1.1 La empresa Ssonny tiene una tienda en Cusco con tres productos:
Productos: TV: stock – 200 unid. y precio – 3500 soles, Celulares: stock -1500 unid. y precio -2500
soles y Equipos: stock -150 unid. y precio-1600 soles.
Descuento: TV: 10%, Celulares: 20% y Equipos: 15%

Se pide:
- Ingresar el nombre del producto (Ejemplo: TV, Equipos y Celulares )
- Ingresar la cantidad del pedido
- Calcular el monto bruto (cantidad*precio)
- Calcular el descuento (monto bruto * descuento)
- Calcular el monto a pagar (monto bruto – descuento)
- Actualizar el stock de los productos vendidos con la nueva cantidad.
- Al Ingresar un pedido de un producto para un cliente, si no se cuenta con la cantidad solicitada, se puede
dejar de atender o se puede atender solo una parte (la indicada por el cliente) o se puede atender todo
siempre y cuando se actualice el stock.

Reportar:
a. La cantidad de pedidos que se vendio el producto TV
b. La cantidad de clientes atendidos (solo si se completó todo el pedido).
c. La cantidad de descuentos otorgados en Celulares
d. El total de unidades vendido de cada producto.
e. El stock de unidades que queda de cada producto.
f. El monto total vendido de cada producto.

#include <iostream>
#include <iomanip>
#include <conio.h>

using namespace std;

const int STOCK_TV = 200;


const int STOCK_CELULARES = 1500;
const int STOCK_EQUIPOS = 150;

const float PRECIO_TV = 3500.0;


const float PRECIO_CELULARES = 2500.0;
const float PRECIO_EQUIPOS = 1600.0;

const float DESCUENTO_TV = 0.10;


const float DESCUENTO_CELULARES = 0.20;
const float DESCUENTO_EQUIPOS = 0.15;

int main() {
int pedidosTV = 0, clientesAtendidos = 0;
float descuentosCelulares = 0.0;
int vendidosTV = 0, vendidosCelulares = 0, vendidosEquipos = 0;
int stockTV = STOCK_TV, stockCelulares = STOCK_CELULARES, stockEquipos =
STOCK_EQUIPOS;

char opcion;

do {
cout << "=== Bienvenido a Ssonny de Cusco ===" << endl;
cout << "1. Realizar un pedido" << endl;
cout << "2. Generar reporte" << endl;
cout << "3. Salir" << endl;
cout << "Ingrese su opcion: ";
cin >> opcion;

switch (opcion) {
case '1': {
char producto;
int cantidad;

cout << "=== REALIZAR UN PEDIDO ===" << endl;


cout << "a. TV\nb. Celulares\nc. Equipos\nIngrese el producto (a,
b, c): ";
cin >> producto;

cout << "Ingrese la cantidad de unidades que desea comprar: ";


cin >> cantidad;

float montoBruto, descuento, montoTotal;

switch (producto) {
case 'a':
if (cantidad <= stockTV) {
montoBruto = cantidad * PRECIO_TV;
descuento = montoBruto * DESCUENTO_TV;
montoTotal = montoBruto - descuento;

vendidosTV += cantidad;
pedidosTV++;
stockTV -= cantidad;

cout << "Pedido de TV completado. Presione ENTER para


continuar..." << endl;
_getch();
} else {
cout << "No hay suficiente stock de TV. No se pudo
completar el pedido. Presione ENTER para continuar..." << endl;
_getch();
}
break;
case 'b':
if (cantidad <= stockCelulares) {
montoBruto = cantidad * PRECIO_CELULARES;
descuento = montoBruto * DESCUENTO_CELULARES;
montoTotal = montoBruto - descuento;

vendidosCelulares += cantidad;
clientesAtendidos++;
stockCelulares -= cantidad;
descuentosCelulares += descuento;

cout << "Pedido de Celulares completado. Presione


ENTER para continuar..." << endl;
_getch();
} else {
cout << "No hay suficiente stock de Celulares. No se
pudo completar el pedido. Presione ENTER para continuar..." << endl;
_getch();
}
break;
case 'c':
if (cantidad <= stockEquipos) {
montoBruto = cantidad * PRECIO_EQUIPOS;
descuento = montoBruto * DESCUENTO_EQUIPOS;
montoTotal = montoBruto - descuento;

vendidosEquipos += cantidad;
clientesAtendidos++;
stockEquipos -= cantidad;

cout << "Pedido de Equipos completado. Presione ENTER


para continuar..." << endl;
_getch();
} else {
cout << "No hay suficiente stock de Equipos. No se
pudo completar el pedido. Presione ENTER para continuar..." << endl;
_getch();
}
break;
default:
cout << "Opcion invalida. Presione ENTER para
continuar..." << endl;
_getch();
break;
}
break;
}
case '2':
cout << "=== REPORTE ===" << endl;
cout << "a. Cantidad de pedidos que se vendio el producto TV: " <<
pedidosTV << endl;
cout << "b. Cantidad de clientes atendidos (solo si se completo
todo el pedido): " << clientesAtendidos << endl;
cout << "c. Cantidad de descuentos otorgados en Celulares: " <<
descuentosCelulares << " soles" << endl;
cout << "d. Total de unidades vendidas de cada producto:" << endl;
cout << " - TV: " << vendidosTV << " unidades" << endl;
cout << " - Celulares: " << vendidosCelulares << " unidades" <<
endl;
cout << " - Equipos: " << vendidosEquipos << " unidades" <<
endl;
cout << "e. Stock de unidades que queda de cada producto:" <<
endl;
cout << " - TV: " << stockTV << " unidades" << endl;
cout << " - Celulares: " << stockCelulares << " unidades" <<
endl;
cout << " - Equipos: " << stockEquipos << " unidades" << endl;
cout << "f. Monto total vendido de cada producto:" << endl;
cout << " - TV: " << vendidosTV * PRECIO_TV << " soles" << endl;
cout << " - Celulares: " << vendidosCelulares * PRECIO_CELULARES
<< " soles" << endl;
cout << " - Equipos: " << vendidosEquipos * PRECIO_EQUIPOS << "
soles" << endl;
cout << "Presione ENTER para continuar...";
_getch();
break;
case '3':
cout << "Saliendo del programa..." << endl;
break;
default:
cout << "Opcion invalida. Presione ENTER para continuar..." <<
endl;
_getch();
break;
}

} while (opcion != '3');

return 0;
}
● REPORTE :

● Falta de stock :
1.2 Se Ingresan los siguientes datos de personas de una comunidad: genero (M o F), Talla de polo (S-Pequeño,
M-Medio, L-Largo, XL-Extra Largo), Usa Lentes (S: Si, N: No), Celular (S:Si, N:No), Edad y que
reporte:

a. El número de mujeres con talla M y hombres con talla XL


b. El número de mujeres que si usan lentes
c. El número de hombres con celulares.
d. El número de mujeres sin celulares.
e. El número total de personas que utilizan celulares y lentes.
f. La edad promedio de las mujeres que usan lentes.
g. La edad promedio de los hombres con celulares.

#include <iostream>
#include <cmath>
#include <conio.h>

using namespace std;

int main() {
char opcion;
int mujeresTallaM = 0, hombresTallaXL = 0;
int mujeresConLentes = 0, hombresConCelular = 0;
int mujeresSinCelular = 0, personasConCelularesYLentes = 0;
int totalEdadMujeresLentes = 0, totalEdadHombresCelular = 0;
int contadorMujeresLentes = 0, contadorHombresCelular = 0;

do {
cout << "=== MENU ===" << endl;
cout << "1. Ingresar datos de persona" << endl;
cout << "2. Generar reporte" << endl;
cout << "3. Salir" << endl;
cout << "Ingrese su opcion: ";
cin >> opcion;

switch (opcion) {
case '1': {
char genero, talla, usaLentes, tieneCelular;
int edad;

cout << "=== INGRESAR DATOS ===" << endl;


cout << "Ingrese el genero (M/F): ";
cin >> genero;
genero = toupper(genero);

cout << "Ingrese la talla de polo (S/M/L/XL): ";


cin >> talla;
talla = toupper(talla);

cout << "øUsa lentes? (S/N): ";


cin >> usaLentes;
usaLentes = toupper(usaLentes);

cout << "øTiene celular? (S/N): ";


cin >> tieneCelular;
tieneCelular = toupper(tieneCelular);

cout << "Ingrese la edad: ";


cin >> edad;

if (genero == 'M' && talla == 'X') {


hombresTallaXL++;
} else if (genero == 'F' && talla == 'M') {
mujeresTallaM++;
}

if (genero == 'F' && usaLentes == 'S') {


mujeresConLentes++;
totalEdadMujeresLentes += edad;
contadorMujeresLentes++;
}

if (genero == 'M' && tieneCelular == 'S') {


hombresConCelular++;
totalEdadHombresCelular += edad;
contadorHombresCelular++;
}

if (genero == 'F' && tieneCelular == 'N') {


mujeresSinCelular++;
}

if (tieneCelular == 'S' && usaLentes == 'S') {


personasConCelularesYLentes++;
}

cout << "Datos ingresados correctamente." << endl;


break;
}
case '2':
cout << "=== REPORTE ===" << endl;
cout << "a. Numero de mujeres con talla M: " << mujeresTallaM <<
endl;
cout << " Numero de hombres con talla XL: " << hombresTallaXL <<
endl;
cout << "b. Numero de mujeres que usan lentes: " <<
mujeresConLentes << endl;
cout << "c. Numero de hombres con celulares: " << hombresConCelular
<< endl;
cout << "d. Numero de mujeres sin celulares: " << mujeresSinCelular
<< endl;
cout << "e. Numero total de personas que utilizan celulares y
lentes: " << personasConCelularesYLentes << endl;

if (contadorMujeresLentes > 0) {
float promedioEdadMujeresLentes =
static_cast<float>(totalEdadMujeresLentes) / contadorMujeresLentes;
cout << "f. Edad promedio de las mujeres que usan lentes: " <<
promedioEdadMujeresLentes << " anos" << endl;
} else {
cout << "f. No hay mujeres que usen lentes para calcular el
promedio de edad." << endl;
}

if (contadorHombresCelular > 0) {
float promedioEdadHombresCelular =
static_cast<float>(totalEdadHombresCelular) / contadorHombresCelular;
cout << "g. Edad promedio de los hombres con celulares: " <<
promedioEdadHombresCelular << " anos" << endl;
} else {
cout << "g. No hay hombres con celulares para calcular el
promedio de edad." << endl;
}
break;
case '3':
cout << "Saliendo del programa..." << endl;
break;
default:
cout << "Opcion invalida." << endl;
break;
}

} while (opcion != '3');

return 0;
}
● Reporte :
REFERENCIAS
● Ingenio Empresa (s.f.). Cómo hacer un diagrama de flujo PASO a PASO. Recuperado
de Ingenio Empresa.

● Diagramas de Flujo (s.f.). Estructuras del Diagrama de Flujo. Recuperado de Diagramas de


Flujo.

● Joyanes Aguilar, Luis. Fundamentos de Programación. 4ta. ed. España: McGraw-Hill; 2008.
P 84-90

También podría gustarte