Un examen anterior https://sites.google.com/site/programacionparaingeneria/es-progra-2013-1.pdf
Solucion
#include<iostream>
using namespace std;
float precioUnitario(int codProd){
// devuelve el precio del producto dado el codigo
float prec;
switch (codProd){
// 5 PUNTOS
case 1: prec=150;break;
case 2: prec=250;break;
case 3: prec=500;break;
case 4: prec=750;break;
default : prec=0;
}
return prec;
}
float obtenerDescuento(int codProd, int cant){
// devuelve el descuento de acuerdo al codigo y
// la contidad de product
float desc;
switch (codProd){
// 5 PUNTOS
case 1: if (cant>=50)
desc=0.20;
else if (cant>15)
desc=0.15;
else if (cant>=5)
desc=0.10;
else
desc=0;
break;
case 2: if (cant>=30)
desc=0.20;
else if (cant>15)
desc=0.15;
else if (cant>=10)
desc=0.10;
else
desc=0;
break;
case 3: if (cant>=50)
desc=0.20;
else if (cant>25)
desc=0.15;
else if (cant>=15)
desc=0.10;
else
desc=0;
break;
case 4: if (cant>=100)
desc=0.20;
else if (cant>70)
desc=0.15;
else if (cant>=35)
desc=0.10;
else
desc=0;
break;
default : desc=0;
}
return desc;
}
int validarCodigo(int codProd){
// si codigo esta entre 0 y 4 devuelve 1
// en caso contrario devuelve 0
// 5 PUNTOS
return (codProd>=0 & codProd<=4)?1:0;
}
void obtenerDatosProducto(int& codProd, int& cantProd){
//pide al usuario los datos del producto, los valida y almacena
int result;
// 5 PUNTOS
do {
cout<<"Ingrese codigo del producto: ";
cin>>codProd;
result=validarCodigo(codProd);
if (!result)
cout<<"Error: Intente de nuevo."<<endl;
} while (!result);
cout<<"Ingrese cantidad del producto: ";
cin>>cantProd;
}
int main(){
int codProd, cantProd;
float totalVentas,desc;
codProd=1;
totalVentas=0;
while(codProd){
obtenerDatosProducto( codProd, cantProd);
if (codProd>0){
desc=obtenerDescuento(codProd, cantProd);
totalVentas+=cantProd*precioUnitario(codProd)*(1-desc);
}
}
cout<<"Venta total: "<<totalVentas<<endl;
cin.get();cin.get();
}
martes, 31 de diciembre de 2013
lunes, 23 de diciembre de 2013
Notas finales del curso
Las practicas domiciliarias clonadas se califican con 00, el examen sustitutorio, los temas son diagramas de flujo, funciones, if, for, while, no entra clases.
Tarea academica = practica mas alta
PP = promedio de practicas
LAB=PP
PF=promedio final = 0.25*EP+0.25*EF+0.2*PP+0.2*LAB+0.1*TA
jueves, 12 de diciembre de 2013
Practica domicilaria
Completar la practica 3 con un ejemplo que use las clases VEHICULO y TALLER, es decir haga una funcion main, mande el codigo c++, junto con su codigo y nombre a lroca@untecs.edu.pe hasta el dia jueves 19.
UNIVERSIDAD NACIONAL TECNOLOGICA
DEL CONO SUR DE LIMA
PROGRAMACION PARA
INGENIERIA
PRACTICA 3
Prof Luis Roca 12/12/2013
Crear una clase TALLER que
1.
(2ptos) Contenga dos variables miembro privadas
de tipo entero llamadas max_vehiculos y num_vehiculos respectivamente.
2.
(2ptos) Contenga un puntero privado p_veh de
tipo VEHICULO.
3.
(2ptos) Tenga una funcion constructor con un
parametro de entrada de tipo entero llamado num que inicialize la variable max_vehiculos en num y la variable
num_vehiculos en cero, ademas le asigne
al puntero p_veh un arreglo de tipo VEHICULO de longitud max_vehiculos.
4.
(4ptos) Contenga una funcion publica de tipo
void llamada meter que tenga un parametro de tipo VEHICULO, tal funcion copia
los datos de parametro de entrada en la posicion num_vehiculos del arreglo
administrado por p_veh, y luego aumenta en 1 el valor de num_vehiculos, si
num_vehiculos es mayor o igual que max_vehiculo entonces la funcion no hace
nada.
5.
(2ptos) La clase VEHICULO debe tener variable
publicas color y marca de tipo cadena.
6.
(2ptos) La clase VEHICULO debe tener una funcion
publica void de nombre arrancar sin parametros que imprima el mensaje
“Vehiculo en movimiento”.
7.
(2ptos) La clase VEHICULO debe tener una funcion
publica void de nombre parar sin parametros que imprimir el mensaje “Vehiculo
detenido”.
8.
(2ptos) La clase VEHICULO debe tener una funcion
publica void de nombre estacionar sin parametros que imprima el mensaje
“Vehiculo estacionado”.
9.
(2ptos) La clase VEHICULO debe tener un
contructor sin parametros que imprima el mensaje “Vehiculo creado”.
jueves, 5 de diciembre de 2013
Tercera practica
El jueves 12 es la tercera practica calificada, temas: clases, herencia, constructores.
hora: 8am
material para estudio aqui: http://www.jlmarina.net/metodos2/ sesion 4, 17, 18 y 19
tb se les dejara una practica domiciliaria.
hora: 8am
material para estudio aqui: http://www.jlmarina.net/metodos2/ sesion 4, 17, 18 y 19
tb se les dejara una practica domiciliaria.
Proyecto geometria: archivo principal.cpp
#include<iostream>
#include"poligono.h"
using namespace geometria;
int main(){
POLIGONO* p = new RECTANGULO();
p->imprimir();
std::cout<<geometria::notable.area();
std::cin.get();
}
#include"poligono.h"
using namespace geometria;
int main(){
POLIGONO* p = new RECTANGULO();
p->imprimir();
std::cout<<geometria::notable.area();
std::cin.get();
}
Proyecto geometria archivo poligono.h
//archivo poligono.h
namespace geometria{
class POLIGONO{
int numlados;
public:
virtual float area(){
}
POLIGONO(int numlados=3){
this->numlados=numlados;
}
virtual void imprimir(){
std::cout<<"un poligono de "<<numlados
<<" lados."<<std::endl;
}
};
class RECTANGULO:public POLIGONO{
float ancho, alto;
public:
float area(){
return ancho*alto;
}
virtual void imprimir(){
std::cout<<"un rectangulo, ";
POLIGONO::imprimir();
}
RECTANGULO(float ancho=1,float alto=1){
POLIGONO(4);
this->ancho=ancho;
this->alto=alto;
}
};
class TRIANGULO:public POLIGONO{
float base, altura;
public:
float area(){
return base*altura;
}
virtual void imprimir(){
std::cout<<"un triangulo, ";
POLIGONO::imprimir();
}
TRIANGULO(float base=1,float altura=1){
POLIGONO(3);
this->base=base;
this->altura=altura;
}
};
TRIANGULO notable(4,3);
}
namespace geometria{
class POLIGONO{
int numlados;
public:
virtual float area(){
}
POLIGONO(int numlados=3){
this->numlados=numlados;
}
virtual void imprimir(){
std::cout<<"un poligono de "<<numlados
<<" lados."<<std::endl;
}
};
class RECTANGULO:public POLIGONO{
float ancho, alto;
public:
float area(){
return ancho*alto;
}
virtual void imprimir(){
std::cout<<"un rectangulo, ";
POLIGONO::imprimir();
}
RECTANGULO(float ancho=1,float alto=1){
POLIGONO(4);
this->ancho=ancho;
this->alto=alto;
}
};
class TRIANGULO:public POLIGONO{
float base, altura;
public:
float area(){
return base*altura;
}
virtual void imprimir(){
std::cout<<"un triangulo, ";
POLIGONO::imprimir();
}
TRIANGULO(float base=1,float altura=1){
POLIGONO(3);
this->base=base;
this->altura=altura;
}
};
TRIANGULO notable(4,3);
}
Suscribirse a:
Entradas (Atom)