Está en la página 1de 37

Curso: Fundamentos de Programación

Producto Académico No 2

2023
Universidad Continental

Curso Fundamentos de Programación

Trabajo Académico N2

2
3
4
1

5
6
7
8
9
Código en c++

#include <iostream>

#include <string>

using namespace std;

void menu()

cout << " -----------------------------------" << endl;

cout << " REGISTRO DE CLIENTES " << endl;

cout << " MENU PRINCIPAL" << endl;

cout << " [1] REGISTRO " << endl;

cout << " [2] REPORTE " << endl;

10
cout << " [3] SALIR" << endl;

cout << " --------------------------------- \n" << endl;

double calcularMontoPago(int cantidadHijos, char tipoSocio, int cantidadCanchas)

double cuotaMensual = 0;

double pagoAniversario = 0;

double precioCancha = 0;

double pagoHijos = 0;

if (tipoSocio == 'A') {

cuotaMensual = 90.00;

pagoAniversario = 0.2;

precioCancha = 4.00;

else if (tipoSocio == 'R') {

cuotaMensual = 120.00;

pagoAniversario = 0.25;

precioCancha = 6.00;

else if (tipoSocio == 'N') {

cuotaMensual = 170.00;

pagoAniversario = 0.3;

precioCancha = 8.00;

else if (tipoSocio == 'V') {

cuotaMensual = 60.00;

pagoAniversario = 0;

precioCancha = 0;

if(cantidadHijos>=1 && cantidadHijos<=2){

pagoHijos = 30;

11
}

else if(cantidadHijos>=3 && cantidadHijos<=4){

pagoHijos = 50;

else if(cantidadHijos>=5 && cantidadHijos<=6){

pagoHijos = 70;

double montoPagar = cuotaMensual + pagoAniversario * cuotaMensual + cantidadCanchas *


precioCancha + pagoHijos;

return montoPagar;

int main(){

string nombreSocio = "";

int cantHijos3_4 = 0, cantDepositos = 0, cantVIP=0, cantRegular=0, cantNuevo=0,


cantVitalicio=0, cantRegistrosSinHijos = 0, cantVipMayores50 = 0;

double montoMensualAcumulado = 0;

double montoAcumuladoVipMayores50 = 0;

double montoAcumuladoSinHijos = 0;

int edadSocio = 0, cantHijosSocio = 0,cantCanchas = 0, stockCanchas = 20,


nuevoStockDisponible = 0, contador = 0;

char actualizarStock, formaPagoSocio, tipoSocio, aceptaCanchasRestantes, opcion;

bool disponibilidad = true;

bool haceReserva = false;

do{

menu();

// INGRESO DE UNA OPCION DEL MENU

cout << " - SELECCIONE UNA OPCION: ";

cin >> opcion;

if(opcion=='1'){

// INGRESE NOMBRE DEL SOCIO DEL COMPLEJO DEPORTIVO

12
cout << " - NOMBRE DE SOCIO: ";

cin.ignore();

getline(cin,nombreSocio);

cout << "\n ------------------------------------------------------------------" << endl;

cout << " ------------ REGISTRO DE CLIENTES EN COMPLEJO DEPORTIVO --------------" << endl;

cout << " TIPO DE SOCIO" << endl;

cout << " [A] VIP, [R] Regular, [N] Nuevo, [V] Vitalicio" << endl;

cout << " ----------------------------------------------------------------------\n" << endl;

// SELECCIONE TIPO DE SOCIO

cout << " - SELECCIONE TIPO DE SOCIO : ";

cin >> tipoSocio;

tipoSocio = (char) toupper(tipoSocio);

while(tipoSocio!= 'A' && tipoSocio!='R' && tipoSocio!='N' && tipoSocio!='V'){

cout << "Opcion de tipo de socio invalida, intentelo de nuevo: ";

cin >> tipoSocio;

tipoSocio = (char) toupper(tipoSocio);

// INGRESE EDAD DEL SOCIO

cout << " - INGRESE LA EDAD DEL SOCIO : ";

cin >> edadSocio;

while(edadSocio<18 || edadSocio>95){

if(edadSocio<18){

cout << "Edad fuera de rango, solo se ingresa mayores de 18 anios." << endl;

} else{

cout << "Edad fuera de rango, solo se ingresa personas menores a 95 anios." <<
endl;

cout << "Intentelo de nuevo: ";

cin >> edadSocio;

cout << " - INGRESE LA CANTIDAD DE HIJOS : ";

cin >> cantHijosSocio;

13
while(cantHijosSocio<0 || cantHijosSocio>8){

cout << "La cantidad de hijos no puede ser negativa o mayor a 8, intentelo de nuevo:
";

cin >> cantHijosSocio;

// TIPO DE FORMAS DE PAGOS QUE TIENEN LOS CLIENTES DEL COMPLEJO DEPORTIVO

cout << "\n ------------------------------------------------------------------" << endl;

cout << " ------------ REGISTRO DE CLIENTES EN COMPLEJO DEPORTIVO --------------" << endl;

cout << " FORMA DE PAGO" << endl;

cout << " [E] Efectivo, [T] Tarjeta, [D] Deposito" << endl;

cout << " ----------------------------------------------------------------------\n" << endl;

cout << " - SELECCIONE LA FORMA DE PAGO: ";

cin >> formaPagoSocio;

formaPagoSocio = (char) toupper(formaPagoSocio);

while(formaPagoSocio!='E' && formaPagoSocio!='T' && formaPagoSocio!='D'){

cout << "Entrada no valida, intentelo de nuevo: ";

cin >> formaPagoSocio;

formaPagoSocio = (char) toupper(formaPagoSocio);

if (disponibilidad)

// INGRESE LA CANRTIDAD DE CANCHAS QUE VA A UTILIZAR CADA SOCIO

cout << " - INDIQUE LA CANTIDAD DE CANCHAS QUE DESEA UTILIZAR: ";

cin >> cantCanchas;

while(cantCanchas<0 || cantCanchas>20){

cout << "La cantidad de canchas no puede ser negativa o mas de lo que hay
disponible en el complejo." << endl;

cout << "Hay " << stockCanchas << " disponibles."<< endl;

cout << "Intentelo de nuevo: ";

cin >> cantCanchas;

14
if (cantCanchas <= stockCanchas) {

stockCanchas -= cantCanchas;

haceReserva = true;

// ACTUALIZACION DEL STOCK DE LA CANCHA

else {

cout << "No hay esa cantidad de canchas disponibles, hay " << stockCanchas << "."
<< endl;

cout << "Desea actualizar el stock?([S] Si/[N] No): ";

cin >> actualizarStock;

actualizarStock = (char) toupper(actualizarStock);

while(actualizarStock!='S' && actualizarStock!='N'){

cout << "Opcion no valida, intente de nuevo." << endl;

cout << "Desea actualizar el stock?([S] Si/[N] No): ";

cin >> actualizarStock;

actualizarStock = (char) toupper(actualizarStock);

if(actualizarStock=='S'){

cout << "Ingrese el nuevo stock disponible: ";

cin >> nuevoStockDisponible;

while(nuevoStockDisponible<0 || (stockCanchas+nuevoStockDisponible)>20){

cout << "Cantidad invalida, el stock no puede ser negativo ni mayor a ." <<
endl;

cout << "Ingrese el nuevo stock disponible: ";

cin >> nuevoStockDisponible;

// Actualizamos el stock a partir del nuevo stock liberado

stockCanchas += nuevoStockDisponible;

cout << "Stock actualizado, hay " << stockCanchas << " disponibles." << endl <<
endl;

// Solicitamos nuevamente que ingrese la cantidad de canchas a utilizar

cout << "Ingrese la cantidad de canchas a utilizar al mes: ";

15
cin >> cantCanchas;

while(cantCanchas<0 || cantCanchas>stockCanchas){

cout << "La cantidad de canchas no puede ser negativa o mas de lo que hay
disponible en el complejo." << endl;

cout << "Hay " << stockCanchas << " canchas disponibles." << endl;

cout << "Intentelo de nuevo: ";

cin >> cantCanchas;

haceReserva = true;

// Actualizamos el stock

stockCanchas -= cantCanchas;

if(stockCanchas>0){

disponibilidad = true;

} else{

cout << "Acepta reservar las " << stockCanchas << " disponibles?([S] Si/[N] No): ";

cin >> aceptaCanchasRestantes;

aceptaCanchasRestantes = (char) toupper(aceptaCanchasRestantes);

while(aceptaCanchasRestantes!='S' && aceptaCanchasRestantes!='S'){

cout << "Opcion no valida, intente de nuevo." << endl;

cout << "Acepta reservar las " << stockCanchas << " disponibles?([S] Si/[N] No):
";

cin >> aceptaCanchasRestantes;

aceptaCanchasRestantes = (char) toupper(aceptaCanchasRestantes);

if(aceptaCanchasRestantes=='S'){

cantCanchas = stockCanchas;

stockCanchas -= cantCanchas;

haceReserva = true;

16
if(stockCanchas==0){

disponibilidad = false;

if(haceReserva){

double submontoPagar = calcularMontoPago(cantHijosSocio, tipoSocio,


cantCanchas);

double montoIgv = submontoPagar * 0.18;

double totalMes = submontoPagar + montoIgv;

montoMensualAcumulado += totalMes;

if (tipoSocio == 'A' && edadSocio > 50) {

montoAcumuladoVipMayores50 += totalMes;

cantVipMayores50++;

if (cantHijosSocio == 0) {

montoAcumuladoSinHijos += totalMes;

if (tipoSocio == 'V') {

cantVitalicio++;

if (formaPagoSocio == 'D') {

cantDepositos++;

if (cantHijosSocio >= 3 && cantHijosSocio <= 4) {

cantHijos3_4++;

cout << " \t\t\t --------------------------------- " << endl;

cout << " \t\t\t REPORTE " << endl;

cout << " \t\t\t----------------------------------- " << endl;

cout << " \t\t\tMONTO BRUTO: " << submontoPagar << endl;

cout << " \t\t\tIGV: " << montoIgv << endl;

cout << " \t\t\tMONTO TOTAL : " << totalMes << endl;

17
cout << " \t\t\t --------------------------------- " << endl;

else{

cout << "No se ingreso ninguna reserva." << endl;

else{

cout << "No hay canchas disponibles. Debe actualizar stock y generar otra solicitud de
ingreso." << endl;

cout << "Desea actualizar el stock?([S] Si/[N] No): ";

cin >> actualizarStock;

actualizarStock = (char) toupper(actualizarStock);

while(actualizarStock!='S' && actualizarStock!='N'){

cout << "Opcion no valida, intente de nuevo." << endl;

cout << "Desea actualizar el stock?([S] Si/[N] No): ";

cin >> actualizarStock;

actualizarStock = (char) toupper(actualizarStock);

if(actualizarStock=='S'){

cout << "Ingrese el nuevo stock disponible: ";

cin >> nuevoStockDisponible;

while((nuevoStockDisponible)<0 || (stockCanchas+nuevoStockDisponible)>20){

cout << "Cantidad invalida, el stock no puede ser negativo ni mayor a 20." <<
endl;

cout << "Ingrese el nuevo stock disponible: ";

cin >> nuevoStockDisponible;

// Actualizamos el stock a partir del nuevo stock liberado

stockCanchas += nuevoStockDisponible;

if(stockCanchas>0){

disponibilidad = true;

18
cout << "Stock actualizado, hay " << stockCanchas << " disponibles." << endl;

else if(opcion=='2')

cout << " \t\t\t --------------------------------- " << endl;

cout << " \t\t\t REPORTE " << endl;

cout << " \t\t\t----------------------------------- " << endl;

cout << "\n >>>>> Cantidad de socios Vitalicios: " << cantVitalicio << endl;

cout << " \t\t\t---------------------------------------------------------------------------------- " << endl;

cout << "\n >>>>> Cantidad de pagos en Depositos: " << cantDepositos << endl;

cout << " \t\t\t---------------------------------------------------------------------------------- " << endl;

cout << "\n >>>>> Cantidad de hijos de socios con rango entre 3-4: " << cantHijos3_4
<< endl;

cout << " \t\t\t---------------------------------------------------------------------------------- " << endl;

cout << "\n >>>>> Monto acumulado de ingresos al mes: " <<
montoMensualAcumulado << endl;

cout << " \t\t\t---------------------------------------------------------------------------------- " << endl;

cout << "\n >>>>> Monto acumulado de registros de socios sin hijos: " <<
montoAcumuladoSinHijos << endl;

cout << " \t\t\t---------------------------------------------------------------------------------- " << endl;

if (cantVipMayores50 > 0) {

double promedioVipMayores50 = montoAcumuladoVipMayores50 /


cantVipMayores50;

cout << "\n >>>>> Monto promedio de registros de socios Vip con edad mayor a 50:
" << promedioVipMayores50 << endl;

else if(opcion=='3'){

break;

else{

19
cout << "\nOpcion no valida, intente nuevamente." << endl;

cin.clear();

} while(true);

cout << " MUCHAS GRACIAS POR SU REGISTRO " << endl;

return 0;

20
21
22
23
24
2.-

25
26
27
28
Código en c++

#include <iostream>
#include <string>

using namespace std;

double calcularMontoTotal(char tipoCelular, int cantidad) {


double precio = 0;

if (tipoCelular == 'A') {
precio = 4500.00;
}
else if (tipoCelular == 'M') {
precio = 3500.00;
}
else if (tipoCelular == 'B') {
precio = 2500.00;
}

double montoTotal = cantidad * precio;


return montoTotal;
}

29
int main(){
// DATOS CLIENTE //
setlocale(LC_CTYPE,"Spanish");
string nombre = "";
string direccion = "";
char tipoCelular;
char tipoPago;
char tipoCliente;
int cantidad = 0;
char zona;

int cantBajaGama = 0;
int cantZonaB = 0;
int cantEfectivo = 0;
double montoAcumuladoTipoB = 0;
double montoPromedioTipoTZonaB = 0;
double montoAcumuladoVentas = 0;

int n;
cout << " ____________________________________________________________ \n";
cout << " \t\t REGISTRO DE VENTAS \n";
cout << " ____________________________________________________________ \n";
cout << "\t\t\t\t - Cantidad de clientes: ";
cin >> n;

for (int i = 1; i <= n; i++) {

cout << " \t\t\t_______________________ \n";


cout << "\t\t\t CLIENTE N° " << i<< " : " << endl;
cout << " \t\t\t_______________________ \n\n";

cin.ignore();
cout << "\t\t - Nombre de cliente : ";
getline(cin, nombre);

cout << "\t\t - Direccion del cliente: ";


getline(cin, direccion);

cout << " \t\t\t_______________________ \n";


cout << " \t\t\t TIPO DE CELULAR \n";
cout << " \t\t\t_______________________ \n";
cout << " \t\tA/Alta gama, M/Media gama, B/Baja gama \n";
cout << "\t\t - Ingrese el tipo de celular (A/Alta gama, M/Media gama, B/Baja gama): ";
cin >> tipoCelular;
tipoCelular = (char) toupper(tipoCelular);

30
while(tipoCelular!='A' && tipoCelular!='M' && tipoCelular!='B'){
cout << "Entrada no valida, intentelo de nuevo." << endl;
cout << "Ingrese el tipo de celular (A/Alta gama, M/Media gama, B/Baja gama): ";
cin >> tipoCelular;
tipoCelular = (char) toupper(tipoCelular);
}

cout << "\n \t\t\t_______________________ \n";


cout << " \t\t\t TIPO DE PAGO \n";
cout << " \t\t\t_______________________ \n";
cout << " \t\tE/Efectivo, C/Credito \n";
cout << "\t\t - Ingrese el tipo de pago : ";
cin >> tipoPago;
tipoPago = (char) toupper(tipoPago);
while(tipoPago!='E' && tipoPago!='C'){
cout << "Entrada no valida, intentelo de nuevo." << endl;

cout << "\n \t\t\t_______________________ \n";


cout << " \t\t\t TIPO DE CLIENTE \n";
cout << " \t\t\t_______________________ \n";
cout << " \t\tE/E/Empresa, T/Tienda, B/Bodega \n";
cout << "\t\t - Ingrese el tipo de cliente : ";
cin >> tipoPago;
tipoPago = (char) toupper(tipoPago);
}

cout << "\n \t\t\t_______________________ \n";


cout << " \t\t\t TIPO DE CLIENTE \n";
cout << " \t\t\t_______________________ \n";
cout << " \t\tE/E/Empresa, T/Tienda, B/Bodega \n";
cout << "\t\t - Ingrese el tipo de cliente : ";
cin >> tipoCliente;
tipoCliente = (char) toupper(tipoCliente);
while(tipoCliente!='E' && tipoCliente!='T' && tipoCliente!='B'){
cout << "Entrada no valida, intentelo de nuevo." << endl;
cout << "Ingrese el tipo de cliente (E/Empresa, T/Tienda, B/Bodega): ";
cin >> tipoCliente;
tipoCliente = (char) toupper(tipoCliente);
}

cout << "\t\t - Ingrese la cantidad de celulares a distribuir: ";


cin >> cantidad;
while(cantidad<0){
cout << "Entrada no validad, intentelo de nuevo." << endl;
cout << "Ingrese la cantidad de celulares a distribuir: ";
cin >> cantidad;
}

31
cout << "\n \t\t\t_______________________ \n";
cout << " \t\t\t TIPO DE CLIENTE \n";
cout << " \t\t\t_______________________ \n";
cout << " \t\t A/ZONA A , B/ZONA B , C/ZONA C , D/ZONA D \n";
cout << "\t\t - Ingrese la zona : ";
cin >> zona;
zona = (char) toupper(zona);
while(zona!='A' && zona!='B' && zona!='C' && zona!='D'){
cout << "Entrada no valida, intentelo de nuevo." << endl;
cout << "Ingrese la zona (A, B, C, D): ";
cin >> zona;
zona = (char) toupper(zona);
}
double montoTotal = calcularMontoTotal(tipoCelular, cantidad);
montoAcumuladoVentas += montoTotal;

if (tipoCelular == 'B') {
cantBajaGama++;
}

if (zona == 'B') {
cantZonaB++;
}

if (tipoPago == 'E') {
cantEfectivo++;
}

if (tipoCliente == 'B') {
montoAcumuladoTipoB += montoTotal;
}

if (tipoCliente == 'T' && zona == 'B') {


montoPromedioTipoTZonaB += montoTotal;
}
cout << endl;
cout << "\n \t\t\t\t\t_________________________________________ \n";
cout << " \t\t\t\t\t_________________________________________ \n";
cout << " \t\t\t\t\t MONTO TOTAL DEL CLIENTE N° "<< i << " : " << montoTotal << endl <<
endl;;
cout << " \t\t\t\t\t_________________________________________ \n";
cout << " \t\t\t\t\t_________________________________________ \n";
}

if (cantZonaB > 0) {
montoPromedioTipoTZonaB /= cantZonaB;
}

32
cout << "\n \t\t\t_______________________ \n";
cout << " \t\t\t R E P O R T E \n";
cout << " \t\t\t_______________________ \n";
cout << " >>> Cantidad de registros de tipo celular Baja gama: " << cantBajaGama << endl;
cout << " >>> Cantidad de clientes registrados en Zona B: " << cantZonaB << endl;
cout << " >>> Cantidad de registros de tipo de pago en Efectivo: " << cantEfectivo << endl;
cout << " >>> Monto acumulado de registros de tipo de cliente B: " <<
montoAcumuladoTipoB << endl;
cout << " >>> Monto promedio de registros de tipo de cliente T y Zona B: " <<
montoPromedioTipoTZonaB << endl;
cout << " >>> Monto acumulado de registro de ventas: " << montoAcumuladoVentas <<
endl;
cout << " ____________________________________________________________ \n";

return 0;
}

Ejecución

33
34
35
36
37

También podría gustarte