• No se han encontrado resultados

REGISTROS EN C++: DEFINICIÓN

N/A
N/A
Protected

Academic year: 2022

Share "REGISTROS EN C++: DEFINICIÓN"

Copied!
10
0
0

Texto completo

(1)

REGISTROS EN C++: DEFINICIÓN

struct typeFecha {

int dia,mes,anyo;

}; ➔ Tipo de datos typeFecha

struct typeProducto { int idProducto;

int precioProducto;

int unidadesProducto;

typeFecha entradaProducto;

string descripcionProducto;

};

➔ Tipo de datos typeProducto

struct typeAlmacen {

typeProducto listaProductos[N];

int cantidadProductos;

};

➔ Tipo de datos typeAlmacen

typeAlmacen trastero; ➔ Declaración de la variable trastero

 ESTADO DEL ALMACÉN tras la inicialización:

cantidadProductos = 4 listaProductos

0 1 2 3 4

idProducto 13234 58741 98761 98762

precioProducto 235 32 999 90

unidadesProducto 23 0 12 120

entradaProducto dia mes anyo dia mes anyo dia mes anyo dia mes anyo 16 6 2015 2 5 2017 24 10 2015 4 8 2016

CLASES PARTICULARES, TUTORÍAS TÉCNICAS ONLINE LLAMA O ENVÍA WHATSAPP: 689 45 44 70

- - -

ONLINE PRIVATE LESSONS FOR SCIENCE STUDENTS

CALL OR WHATSAPP:689 45 44 70

(2)

REGISTROS EN C++: FICHEROS

13234 235 23 16 6 2015 Paquetes 500 58741 32 0 2 5 2017 Portaminas

void leerFicheroAlmacen(string nombreFichero, typeAlmacen &almacen ) { int contador=0;

ifstream ficheroEntrada;

ficheroEntrada.open(nombreFichero.c_str());

if (ficheroEntrada.is_open()) { typeProducto producto ;

ficheroEntrada >> producto.idProducto;

while (!ficheroEntrada.eof()) {

ficheroEntrada >> producto.precioProducto;

ficheroEntrada >> producto.unidadesProducto;

ficheroEntrada >> producto.entradaProducto .dia;

ficheroEntrada >> producto.entradaProducto.mes;

ficheroEntrada >> producto.entradaProducto.anyo;

getline(ficheroEntrada,producto.descripcionProducto);

almacen.listaProductos[contador]=producto;

contador=contador+1;

ficheroEntrada >> producto.idProducto;

}

almacen.cantidadProductos=contador;

ficheroEntrada.close();

}

else cout << "Fichero no encontrado o falta de permisos ";

}

CLASES PARTICULARES, TUTORÍAS TÉCNICAS ONLINE LLAMA O ENVÍA WHATSAPP: 689 45 44 70

- - -

ONLINE PRIVATE LESSONS FOR SCIENCE STUDENTS CALL OR WHATSAPP:689 45 44 70

www.cartagena99.com no se hace responsable de la información contenida en el presente documento en virtud al

(3)

REGISTROS EN C++: FICHEROS

void escribirFicheroAlmacen( typeAlmacen almacen ,string nombreFichero) { ofstream ficheroSalida;

ficheroSalida.open(nombreFichero.c_str());

for (int contador=0;contador<almacen.cantidadProductos;contador++) { typeProducto producto =almacen.listaProductos[contador];

ficheroSalida << producto.idProducto << " ";

ficheroSalida << producto.precioProducto << " ";

ficheroSalida << producto.unidadesProducto << " ";

ficheroSalida << producto.entradaProducto .dia << " ";

ficheroSalida << producto.entradaProducto.mes << " ";

ficheroSalida << producto.entradaProducto.anyo << " ";

ficheroSalida << producto.descripcionProducto << endl;

}

ficheroSalida.close();

}

CLASES PARTICULARES, TUTORÍAS TÉCNICAS ONLINE LLAMA O ENVÍA WHATSAPP: 689 45 44 70

- - -

ONLINE PRIVATE LESSONS FOR SCIENCE STUDENTS

CALL OR WHATSAPP:689 45 44 70

(4)

REGISTROS EN C++: BÚSQUEDA NO ORDENADA

int buscarProducto( typeAlmacen almacen , typeProducto producto ) { bool encontrado=false;

int posicion=0;

while (posicion<almacen.cantidadProductos && !encontrado) {

typeProducto productoAlmacen=almacen.listaProductos[posicion];

if ( productoAlmacen.idProducto!=producto.idProducto ) posicion=posicion+1;

else

encontrado=true;

}

if (!encontrado) posicion=-1;

return posicion;

}

almacen

cantidadProductos = 4 listaProductos

0 1 2 3 4

posicion

idProducto 13234 58741 98761 98762

precioProducto 235 32 999 90

unidadesProducto 23 0 12 120

entradaProducto dia mes anyo dia mes anyo dia mes anyo dia mes anyo 16 6 2015 2 5 2017 24 10 2015 4 8 2016 descripcionProducto Folios 500 Portaminas Bolígrafos Lapiceros

producto

idProducto 58741 precioProducto - unidadesProducto -

entradaProducto dia mes anyo - - - descripcionProducto -

CLASES PARTICULARES, TUTORÍAS TÉCNICAS ONLINE LLAMA O ENVÍA WHATSAPP: 689 45 44 70

- - -

ONLINE PRIVATE LESSONS FOR SCIENCE STUDENTS CALL OR WHATSAPP:689 45 44 70

www.cartagena99.com no se hace responsable de la información contenida en el presente documento en virtud al

(5)

REGISTROS EN C++: INSERCIÓN SIN DESPLAZAMIENTO (I)

bool insertarProducto( typeAlmacen &almacen , typeProducto producto ) { bool modificacion=false;

int posicion=buscarProducto(almacen,producto);

if (posicion!=-1) {

almacen.listaProductos[posicion].unidadesProducto+=

producto.unidadesProducto;

modificacion=true; } else {

bool hueco=almacen.cantidadProductos<N;

if (hueco) {

almacen.listaProductos[almacen.cantidadProductos]=producto;

almacen.cantidadProductos+=1;

modificacion=true; } } return modificacion;

}

almacen

cantidadProductos = 4 listaProductos

0 1 2 3 4

posicion

idProducto 13234 58741 98761 98762

precioProducto 235 32 999 90

unidadesProducto 23 0 → 12 12 120

entradaProducto dia mes anyo dia mes anyo dia mes anyo dia mes anyo 16 6 2015 2 5 2017 24 10 2015 4 8 2016

producto

idProducto 58741 precioProducto - unidadesProducto 12

entradaProducto dia mes anyo - - - descripcionProducto -

CLASES PARTICULARES, TUTORÍAS TÉCNICAS ONLINE LLAMA O ENVÍA WHATSAPP: 689 45 44 70

- - -

ONLINE PRIVATE LESSONS FOR SCIENCE STUDENTS

CALL OR WHATSAPP:689 45 44 70

(6)

REGISTROS EN C++: INSERCIÓN SIN DESPLAZAMIENTO (II)

bool insertarProducto( typeAlmacen &almacen , typeProducto producto ) { bool modificacion=false;

int posicion=buscarProducto(almacen,producto);

if (posicion!=-1) {

almacen.listaProductos[posicion].unidadesProducto+=

producto.unidadesProducto;

modificacion=true; } else {

bool hueco=almacen.cantidadProductos<N ; if (hueco) {

almacen.listaProductos[almacen.cantidadProductos]=producto;

almacen.cantidadProductos+=1;

modificacion=true; } } return modificacion;

}

almacen

cantidadProductos = 4 listaProductos

0 1 2 3 4

idProducto 13234 58741 98761 98762

precioProducto 235 32 999 90

unidadesProducto 23 0 12 120

entradaProducto dia mes anyo dia mes anyo dia mes anyo dia mes anyo 16 6 2015 2 5 2017 24 10 2015 4 8 2016 descripcionProducto Folios 500 Portaminas Bolígrafos Lapiceros

producto

idProducto 58700 precioProducto 200 unidadesProducto 12

entradaProducto dia mes anyo 28 04 2020 descripcionProducto Cuadernos

CLASES PARTICULARES, TUTORÍAS TÉCNICAS ONLINE LLAMA O ENVÍA WHATSAPP: 689 45 44 70

- - -

ONLINE PRIVATE LESSONS FOR SCIENCE STUDENTS CALL OR WHATSAPP:689 45 44 70

www.cartagena99.com no se hace responsable de la información contenida en el presente documento en virtud al

(7)

REGISTROS EN C++

almacen

cantidadProductos = 5 listaProductos

0 1 2 3 4

idProducto 13234 58741 98761 98762 58700

precioProducto 235 32 999 90 200

unidadesProducto 23 0 12 120 12

entradaProducto dia mes anyo dia mes anyo dia mes anyo dia mes anyo dia mes anyo 16 6 2015 2 5 2017 24 10 2015 4 8 2016 28 04 2020 descripcionProducto Folios 500 Portaminas Bolígrafos Lapiceros Cuadernos

int main() {

typeAlmacen trastero;

leerFicheroAlmacen("almacen.txt",trastero);

typeProducto objeto;

objeto.idProducto=58700;

objeto.precioProducto=200;

objeto.unidadesProducto=12;

objeto.entradaProducto.dia=28;

objeto.entradaProducto.mes=04;

objeto.entradaProducto.anyo=2020;

objeto.descripcionProducto="Cuadernos";

int posicion=buscarProducto(trastero,objeto);

bool actualizacion=insertarProducto(trastero,objeto);

if (actualizacion)

cout << "ALMACÉN ACTUALIZADO" << endl;

else

cout << "ALMACÉN NO ACTUALIZADO" << endl;

CLASES PARTICULARES, TUTORÍAS TÉCNICAS ONLINE LLAMA O ENVÍA WHATSAPP: 689 45 44 70

- - -

ONLINE PRIVATE LESSONS FOR SCIENCE STUDENTS

CALL OR WHATSAPP:689 45 44 70

(8)

REGISTROS EN C++: ELIMINACIÓN SIN DESPLAZAMIENTO

bool eliminarProducto( typeAlmacen &almacen ,

int idProducto , int unidadesProducto ) { bool modificacion=false; typeProducto producto;

producto.idProducto=idProducto; producto.unidadesProducto=unidadesProducto;

int posicion=buscarProducto(almacen,producto);

if (posicion!=-1) {

int unidadesAntes=almacen.listaProductos[posicion].unidadesProducto;

if (unidadesAntes>0) {

int unidadesDespues=unidadesAntes-unidadesProducto;

if (unidadesDespues<0) unidadesDespues=0;

almacen.listaProductos[posicion].unidadesProducto=unidadesDespues;

modificacion=true; } }

return modificacion;

}

almacen

cantidadProductos = 4 listaProductos

0 1 2 3 4

posicion

idProducto 13234 58741 98761 98762

precioProducto 235 32 999 90

unidadesProducto 23

0,30,10 → 0,10,0

12 120

entradaProducto dia mes anyo dia mes anyo dia mes anyo dia mes anyo 16 6 2015 2 5 2017 24 10 2015 4 8 2016 descripcionProducto Folios 500 Portaminas Bolígrafos Lapiceros

producto

idProducto 58741 precioProducto - unidadesProducto 20

entradaProducto dia mes anyo - - - descripcionProducto -

CLASES PARTICULARES, TUTORÍAS TÉCNICAS ONLINE LLAMA O ENVÍA WHATSAPP: 689 45 44 70

- - -

ONLINE PRIVATE LESSONS FOR SCIENCE STUDENTS CALL OR WHATSAPP:689 45 44 70

www.cartagena99.com no se hace responsable de la información contenida en el presente documento en virtud al

(9)

REGISTROS EN C++: CONSULTA

float costeMedioAlmacen( typeAlmacen almacen ) { int unidadesTotal=0;

int precioTotal=0;

for (int posicion=0;posicion<almacen.cantidadProductos;posicion=posicion+1) { typeProducto productoAlmacen=almacen.listaProductos[posicion];

unidadesTotal+=productoAlmacen.unidadesProducto;

precioTotal+=productoAlmacen.precioProducto*

productoAlmacen.unidadesProducto;

}

if (unidadesTotal==0) return 0;

else

return precioTotal/(float)unidadesTotal;

}

almacen

cantidadProductos = 5 listaProductos

0 1 2 3 4

posicion

idProducto 13234 58741 98761 98762 58700

precioProducto 235 32 999 90 200

unidadesProducto 23 0 12 120 12

entradaProducto dia mes anyo dia mes anyo dia mes anyo dia mes anyo dia mes anyo 16 6 2015 2 5 2017 24 10 2015 4 8 2016 28 04 2020 descripcionProducto Folios 500 Portaminas Bolígrafos Lapiceros Cuadernos

unidadesTotal 0 23 0 12 120 12 CLASES PARTICULARES, TUTORÍAS TÉCNICAS ONLINE LLAMA O ENVÍA WHATSAPP: 689 45 44 70

- - -

ONLINE PRIVATE LESSONS FOR SCIENCE STUDENTS

CALL OR WHATSAPP:689 45 44 70

(10)

REGISTROS EN C++: ASPECTOS PENDIENTES 1. BÚSQUEDA ORDENADA.

2. INSERCIÓN CON DESPLAZAMIENTO.

3. ELIMINACIÓN CON DESPLAZAMIENTO.

CLASES PARTICULARES, TUTORÍAS TÉCNICAS ONLINE LLAMA O ENVÍA WHATSAPP: 689 45 44 70

- - -

ONLINE PRIVATE LESSONS FOR SCIENCE STUDENTS CALL OR WHATSAPP:689 45 44 70

www.cartagena99.com no se hace responsable de la información contenida en el presente documento en virtud al

Referencias

Documento similar

Creer en el Evangelio es vivir la alegría de la acción del Padre que nos ama y nos llama, del Hijo que nos envía y nos guía y, del Espíritu Santo que nos mueve y nos conmueve para

El contratista deberá relevar las instalaciones eléctricas existentes y en base a ello deberá ejecutar el proyecto ejecutivo para la completa y correcta alimentación

Con una media de asistencia de 650 personas, la primera Jor- En 2020 se puso además en marcha la primera colaboración con nada del Día Europeo para el Uso Prudente de

Se abonará a los precios indicados en el Cuadro de Precios nº 1, según materiales, diámetros y presiones, y comprenden el suministro, transporte, maquinaria y mano de obra

Para la comisión de los análisis de metales en muestras ambientales, biológicas y de alimentos dispone de un equipo de Absorción Atómica (AA) adquirido en 2007 y

Las backups que hace WhatsApp tienen como finalidad aceptar que tengamos la posibilidad recobrar las diálogos suponiendo que borremos la aplicación por error o por si se daña

Reitor, profesor Senén Barro Ameneiro, acompañado do presidente do Consello Social da USC don Manuel Puga Pereira; o vicedecano da Facultade de Medicina don Joaquín

Artículo 13. Las solicitudes de reconocimiento presentadas, en las que se aleguen créditos obtenidos en títulos universitarios oficiales de Graduado, para la convalidación