1. Universidad Nacional Experimental “Francisco de Miranda”
Área Ciencias de la Educación
Aprendizaje Dialógico Interactivo
Unidad Curricular: Computación II
Realizado por:
Omar Petit
C.I.: 17.178.365
Santa Ana de Coro, Mayo de 2013
2. Una librería estima los precios de sus N libros de
la siguiente forma: el precio básico del libro es
de 5000Bs más 300Bs por página. Sin embargo
si el número de páginas excede de 300, el precio
sufrirá un recargo adicional de 4000Bs. además
si el número de páginas excede de 550 el precio
se incrementará en otros 6000Bs más. Se tiene
un conjunto de registros cada uno de los cuales
contiene el código de un libro y el número de
páginas. Se requiere calcular e imprimir el
código y el precio de cada uno de los libros.
3. Np > 550 –
R= 6000
bs
Np > 300 –
R= 4000 bs
Pb=5000 bs
+ 300 bs pp
Imprimir el
código y precio
de cada libro
4. #include <iostream>
#include <stdlib.h>
using namespace std;
void validar (int *);
void registrar (int);
void listar ();
typedef int enteros;
struct {
char codigo[50];
int npaginas;
float precio;
}libros[1000];
Librería
Funciones
cambiamos a través del
typedef el tipo de dato int
por enteros.
Declaración de la variable
estructura
5. enteros n, *p;
int main (){
int opcion;
menu:
system("cls");
cout<<"Libreria UNEFM"<<endl;
cout<<"Menu de opciones : "<<endl;
cout<<"1. Ingresar Libros a la base de datos"<<endl;
cout<<"2. Imprimir listado"<<endl;
cout<<"3. Salir"<<endl;
cout<<"Opcion: ";
cin>>opcion;
Menu del programa
6. switch (opcion){
case 1:
system("cls");
cout<<" REGISTRAR LIBROS nn";
cout<<"Ingrese N libros: ";
cin>>n;
p=&n;
validar(p); // llamado a la funcion validar
registrar(n); // llamado a la funcion registrar
goto menu; // ir a menu:
break;
case 2:
listar(); // llamado a la funcion listar
system("pause");
goto menu; // ir a menu
break;
case 3:
exit (1); // exit, cuando posee el parametro "1" se sale del programa.
system("pause");
break;
default:
cout<<"Opcion incorrecta, vuelva a intentarlo"<<endl;
system("pause");
goto menu; // ir a menu
break;
}
system("pause");
return 0;
estructura Switch, esta permite crear el
menu, se crearon 4 casos, el primero
para ingresar los datos de los libros, la
segunda para listarlos, la tercera para
cerrar el programa y el cuarto como
opcion default en caso de que el usuario
introduzca un dato incorrecto.
7. void registrar(int n){
for(int i=0;i<n;i++)
{
libros[i].
cout<<"nLibro "<<i+1<<endl;
cout<<"Codigo del libro: ";
cin>>libros[i].codigo;
cout<<"Numero de paginas: ";
cin>>libros[i].npaginas;
cout<<"n";
}
}
Funcion registrar, esta funcion
usa un ciclo for para recorrer e
ir llenando los valores del
arreglo estructurado .
Aquí usamos arreglos
Atrás
8. void listar (){
system("cls");
cout<<"LISTAR LIBROS nn";
for(int i=0;i<n;i++)
{
cout<<"Libro"<<i+1<<endl;
cout<<"Codigo del libro: "<<libros[i].codigo<<endl;
if(libros[i].npaginas<=300)
{
libros[i].precio=5000+(libros[i].npaginas*300);
cout<<"Precio : "<<libros[i].precio<<"nn";
}
if (libros[i].npaginas>300 && libros[i].npaginas<550)
{
libros[i].precio=9000+(libros[i].npaginas*300);
cout<<"Precio : "<<libros[i].precio<<"nn";
}
if (libros[i].npaginas>550)
{
libros[i].precio=11000+(libros[i].npaginas*300);
cout<<"Precio : "<<libros[i].precio<<"nn";
}
}
}
Esta funcion al igual que la funcion
registrar, emplea un ciclo for, pero en
este caso para leer los datos guardados
en el arreglo estructurado, libro [i]. Se
crearon varias condiciones para validar el
numero de paginas de los libros y sus
precios.
Atrás
9. void validar ( int *p ){
if (*p<=0){
cout<<"Dato invalido"<<endl;
cout<<"Ingrese N libros:"<<endl;
cin>>n;
p=&n;
validar (p);
}
}
se hace uso de una función
recursiva a través del empleo de
punteros para validar que n
libros, no sea menor o igual a
cero. Se envía el valor de n a
través del puntero p, si este es
menor o igual a cero se vuelve a
solicitar el dato y se vuelve a
llamar la función dentro de ella
misma, esto permite crear una
especie de bucle, que no finaliza
hasta que se introduzca el dato
correcto.
Atrás