Actualizado el 15 de Junio del 2021 (Publicado el 19 de Diciembre del 2018)
1.985 visualizaciones desde el 19 de Diciembre del 2018
560,8 KB
8 paginas
Creado hace 11a (04/09/2013)
Fundamentos de la programación
8A
Grado en Ingeniería Informática
Grado en Ingeniería del Software
Grado en Ingeniería de Computadores
Facultad de Informática
Luis Hernández Yáñez
Universidad Complutense
#include <iostream>
#include <string>
using namespace std;
const int NCLI = 100;
const int NPROD = 200;
const int NVENTAS = 3000;
typedef struct {
int id_cli;
string nif;
string nombre;
string telefono;
} tCliente;
typedef struct {
tCliente clientes[NCLI];
int cont;
} tListaClientes;
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
typedef struct {
int id_prod;
string codigo;
ventas.cpp
ventas.cpp
string nombre;
double precio;
int unidades;
} tProducto;
typedef struct {
tProducto productos[NPROD];
int cont;
} tListaProductos;
typedef struct {
int id;
int id_prod;
int id_cli;
int unidades;
} tVenta;
typedef struct {
tVenta ventas[NVENTAS];
int cont;
} tListaVentas;
...
Fundamentos de la programación: Ejemplo de modularización
Página 833
tCliente nuevoCliente();
bool valida(tCliente cliente); // Función interna
bool operator<(tCliente opIzq, tCliente opDer); // Por NIF
void mostrar(tCliente cliente);
void inicializar(tListaClientes &lista);
void cargar(tListaClientes &lista);
void insertar(tListaClientes &lista, tCliente cliente, bool &ok);
void buscar(const tListaClientes &lista, string nif, tCliente &cliente, bool &ok);
void eliminar(tListaClientes &lista, string nif, bool &ok);
void mostrar(const tListaClientes &lista);
tProducto nuevoProducto();
bool valida(tProducto producto); // Función interna
bool operator<(tProducto opIzq, tProducto opDer); // Por código
void mostrar(tProducto producto);
void inicializar(tListaProductos &lista);
void cargar(tListaProductos &lista);
void insertar(tListaProductos &lista, tProducto producto, bool &ok);
void buscar(const tListaProductos &lista, string codigo, tProducto &producto,
bool &ok);
void eliminar(tListaProductos &lista, string codigo, bool &ok);
...
Fundamentos de la programación: Ejemplo de modularización
Página 834
void mostrar(const tListaProductos &lista);
tVenta nuevaVenta(int id_prod, int id_cli, int unidades);
bool valida(tVenta venta); // Función interna
void mostrar(tVenta venta, const tListaClientes &clientes,
const tListaProductos &productos);
void inicializar(tListaVentas &lista);
void cargar(tListaVentas &lista);
void insertar(tListaVentas &lista, tVenta venta, bool &ok);
void buscar(const tListaVentas &lista, int id, tVenta &venta, bool &ok);
void eliminar(tListaVentas &lista, int id, bool &ok);
void ventasPorClientes(const tListaVentas &lista);
void ventasPorProductos(const tListaVentas &lista);
double totalVentas(const tListaVentas &ventas, string nif,
const tListaClientes &clientes,
const tListaProductos &productos);
void stock(const tListaVentas &ventas, const tListaClientes &clientes,
const tListaProductos &productos);
int menu();
int main() {
...
Fundamentos de la programación: Ejemplo de modularización
Página 835
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
#include <iostream>
#include <string>
using namespace std;
const int NCLI = 100;
const int NPROD = 200;
const int NVENTAS = 3000;
typedef struct {
int id_cli;
string nif;
string nombre;
string telefono;
} tCliente;
typedef struct {
tCliente clientes[NCLI];
int cont;
} tListaClientes;
typedef struct {
int id_prod;
string codigo;
Cliente
Lista de clientes
Producto
tProducto productos[NPROD];
int cont;
} tListaProductos;
Lista de productos
Venta
Lista de ventas
string nombre;
double precio;
int unidades;
} tProducto;
typedef struct {
typedef struct {
int id;
int id_prod;
int id_cli;
int unidades;
} tVenta;
typedef struct {
tVenta ventas[NVENTAS];
int cont;
} tListaVentas;
...
Fundamentos de la programación: Ejemplo de modularización
Página 836
Cliente
Lista de clientes
tCliente nuevoCliente();
bool valida(tCliente cliente); // Función interna
bool operator<(tCliente opIzq, tCliente opDer); // Por NIF
void mostrar(tCliente cliente);
void inicializar(tListaClientes &lista);
void cargar(tListaClientes &lista);
void insertar(tListaClientes &lista, tCliente cliente, bool &ok);
void buscar(const tListaClientes &lista, string nif, tCliente &cliente,
bool &ok);
void eliminar(tListaClientes &lista, string nif, bool &ok);
void mostrar(const tListaClientes &lista);
tProducto nuevoProducto();
bool valida(tProducto producto); // Función interna
bool operator<(tProducto opIzq, tProducto opDer); // Por código
void mostrar(tProducto producto);
...
Producto
Fundamentos de la programación: Ejemplo de modularización
Página 837
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
Lista de productos
void inicializar(tListaProductos &lista);
void cargar(tListaProductos &lista);
void insertar(tListaProductos &lista, tProducto producto, bool &ok);
void buscar(const tListaProductos &lista, string codigo, tProducto &producto,
bool &ok);
void eliminar(tListaProductos &lista, string codigo, bool &ok);
void mostrar(const tListaProductos &lista);
tVenta nuevaVenta(int id_prod, int id_cli, int unidades);
bool valida(tVenta venta); // Función interna
void mostrar(tVenta venta, const tListaClientes &clientes,
Venta
const tListaProductos &productos);
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
...
Fundamentos de la programación: Ejemplo de modularización
Página 838
Lista de ventas
void inicializar(tListaVentas &lista);
void cargar(tListaVentas &lista);
void insertar(tListaVentas &lista, tVenta venta, bool &ok);
void buscar(const tListaVentas &lista, int id, tVenta &venta, bool &ok);
void eliminar(tListaVentas &lista, int id, bool &ok);
void ventasPorClientes(const tListaVentas &lista);
void ventasPorProductos(const tListaVentas &lista);
double totalVentas(const tListaVentas &ventas, string nif,
const tListaClientes &clientes,
const tListaProductos &productos);
void stock(const tListaVentas &ventas, const tListaClientes &clientes,
const tListaProductos &productos);
int menu();
int main() {
...
Fundamentos de la programación: Ejemplo de modularización
Página 839
Cliente: cliente.hy cliente.cpp
Lista de clientes: listaclientes.hy listaclientes.cpp
Producto: producto.hy producto.cpp
Lista de productos: listaproductos.hy listaproductos.cpp
Venta: venta.hy venta.cpp
Lista de ventas: listaventas.hy listaventas.cpp
Programa principal: main.cpp
Distribución del código en los módulos:
Declaraciones de tipos y datos en el archivo de cabecera (.h)
Prototipos en el archivo de cabecera (.h) (excepto los de los
subprogramas privados –internos–, que irán en el .cpp)
Implementación de los subprogramas en el .cpp
Fundamentos de la programación: Ejemplo de modularización
Página 840
Ventas
main.cpp
venta.h
venta.cpp
Venta
Lista de productos
listaproductos.h
listaproductos.cpp
Cliente
cliente.h
cliente.cpp
listaclientes.h
listaclientes.cpp
Lista de clientes
Producto
producto.h
producto.cpp
Lista de ventas
listaventas.h
listaventas.cpp
Fundamentos de la programación: Ejemplo de modularización
Página 841
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
Inclusiones (además de otras bibliotecas del sistema)
typedef struct {
int id_cli;
string nif;
string nombre;
string telefono;
} tCliente;
const int NCLI = 100;
cliente.h
string
typedef struct {
tCliente clientes[NCLI];
int cont;
} tListaClientes;
listaclientes.h
cliente.h
string
void buscar(const tListaClientes &lista, string nif, tCliente
&cliente, bool &ok);
Fundamentos de la programación: Ejemplo de modularización
Página 842
producto.h
string
typedef struct {
int id_prod;
string codigo;
string nombre;
double precio;
int unidades;
} tProducto;
const int NPROD = 200;
typedef struct {
tProducto productos[NPROD];
int cont;
} tListaProductos;
listaproductos.h
producto.h
string
void buscar(const tListaProductos &lista, string codigo, tProducto
&producto, bool &ok);
Fundamentos de la programación: Ejemplo de modularización
Página 843
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
typedef struct {
int id;
int id_prod;
int id_cli;
int unidades;
} tVenta;
venta.h
listaclientes.h
listaproductos.h
void mostrar(tVenta venta, const tListaClientes &clientes,
const tListaProductos &productos);
const int NVENTAS = 3000;
typedef struct {
tVenta ventas[NVENTAS];
int cont;
} tListaVentas;
listaventas.h
venta.h
listaclientes.h
listaproductos.h
double totalVentas(const tListaVentas &ventas, string nif,
const tListaClientes &clientes,
const tListaProductos &productos);
Fundamentos de la programación: Ejemplo de modularización
Página 844
#ifndef cliente_h
#define cliente_h
#include <string>
using namespace std;
typedef struct {
int id_cli;
string nif;
string nombre;
string telefono;
} tCliente;
tCliente nuevoCliente();
bool operator<(tCliente opIzq, tCliente opDer); // Por NIF
void mostrar(tCliente cliente);
#endif
Fundamentos de la programación: Ejemplo de modularización
Página 845
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
Licencia CC (Creative Commons)
Este tipo de licencias ofrecen algunos derechos a terceras personas
bajo ciertas condiciones.
Este documento tiene establecidas las siguientes:
Reconocimiento (Attribution):
En cualquier explotación de la obra autorizada por la licencia
hará falta reconocer la autoría.
No comercial (Non commercial):
La explotación de la obra queda limitada a usos no comerciales.
Compartir igual (Share alike):
La explotación autorizada incluye la creación de obras derivadas
siempre que mantengan la misma licencia al ser divulgadas.
Pulsa en la imagen de arriba a la derecha para saber más.
Fundamentos de la programación: Ejemplo de modularización
Página 846
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
Comentarios de: 8A Ejemplo de modularización - Fundamentos de la programación (0)
No hay comentarios