La quesería

Vamos a hacer nuestro primer programa completo. Todo programa sirve para resolver un problema, por tanto para hacer un programa lo primero que necesitaremos será la descripción del problema.

Esquema gráfico del ciclo de vida típico de un sistema informático

Descripción del problema

Una pequeña empresa quesera de Villanueva de la serena desea informatizar  el stock diario de sus tortas de la serena, es decir, quiere saber el número las tortas de la serena que tiene disponibles para su venta.

Sistema anterior

Normalmente. cuando se quiere informatizar un proceso, se dispone de algún método anterior que resolvía este problema. Es obligatorio estudiar el sistema anterior, aunque este parezca sencillo y primitivo.

Para nuestra empresa quesera disponemos de este sistema anterior.

  • Los queseros (productores directos del queso) por cada queso producido marcan (con el ID_Queso) una casilla de la ficha: Producidos.
  • Los técnicos de calidad eliminan seleccionan sólo los quesos aptos para la venta, insertándolos en la ficha: Aptos casilla de la ficha: Producidos.
  • Los vendedores mantienen una ficha de vendidos, donde almacenan aquellos quesos que han sido vendidos.
  • Un administrativo recoge las tres fichas y genera un el stock.

Análisis

En esta fase, nos encargaremos de identificar los siguientes puntos:

  • Entidades externas, ¿Quién envía datos?, ¿Quién recibe datos?
  • Procesos, actividades que se hacen con los datos de entrada para generar los datos de salida.
  • Estructuras de datos.

Para la quesería podemos identificar las siguientes entidades externas:

  • Queseros
  • Técnicos
  • Vendedores
  • Administrativo

Para la quesería podemos identificar los siguientes procesos:

  • Marcar producidos
  • Marcas aptos
  • Marcar vendidos
  • Generar Stock

Para la quesería podemos identificar las siguientes estructuras de datos:

  • Ficha producidos
  • Ficha aptos
  • Ficha vendidos

Diseño

Un diagrama de flujo de datos (DFD por sus siglas en español e inglés) es una representación gráfica del “flujo” de datos a través de un sistema de información. Un diagrama de flujo de datos también se puede utilizar para la visualización de procesamiento de datos (diseño estructurado). Es una práctica común para undiseñador dibujar un contexto a nivel de DFD que primero muestra la interacción entre el sistema y las entidades externas. Este contexto a nivel de DFD se “explotó” para mostrar más detalles del sistema que se está modelando.

  • Nivel 0: Diagrama de contexto.
  • Nivel 1: Diagrama de nivel superior.
  • Nivel 2: Diagrama de detalle o expansión.

Antes de hacer el diseño, veamos las distintas figuras que podemos utilizar:

Almacenes

Entidades externas

Flujos de datos

Diseño de la quesería

Descargar (PDF, 32KB)

Estructuras de datos

De momento nuestras estructuras de datos van a ser muy sencillas, usaremos dimensiones (vectores), si no se nos especifica tamaño las pondremos de 50.

Una posible solución para la quesería

Proceso Queseria
//Estructuras de datos
Dimension producidos[50];
Dimension aptos[50];
Dimension vendidos[50];
//Variables de trabajo
valor<-0;
i<-1;
j<-1;
z<-1;
no_disponible<-0;
i_producidos<-1;        //Aquí llevo la las posiciones de uso de la lista
i_aptos<-1;
i_vendidos<-1;
//Iniciar los tableros
Para i<-1 hasta 50 Hacer
producidos[i]<-“vacio”;
aptos[i]<-“vacio”;
vendidos[i]<-“vacio”;
FinPara
//Aquí empieza todo
Mientras valor<5  Hacer
//Busco el último elemento introducido, de esa forma llevo un indice donde se para cada lista donde está el último elemento usado
Mientras producidos[i_producidos]<>”vacio” y i_producidos<51 Hacer
i_producidos<-i_producidos+1;
Si i_producidos=51 Entonces
Escribir “Se ha llenado el vector”;
FinSi
FinMientras
Mientras aptos[i_aptos]<>”vacio” y i_aptos<51 Hacer
i_aptos<-i_aptos+1;
Si i_aptos=51 Entonces
Escribir “Se ha llenado el vector”;
FinSi
FinMientras
Mientras vendidos[i_vendidos]<>”vacio” y i_vendidos<51 Hacer
i_vendidos<-i_vendidos+1;
Si i_vendidos=51 Entonces
Escribir “Se ha llenado el vector”;
FinSi
FinMientras
//Menú del programa
Escribir “Seleccione una opcion:”;
Escribir “1. Añadir queso producido”;
Escribir “2. Añadir queso apto”;
Escribir “3. Añadir queso vendido”;
Escribir “4. Generar Stock”;
Escribir “5. Salir”;
Leer valor;
//Interpretación de las órdenes
Segun valor Hacer
1:
Escribir “Meta el nombre del queso producido”                                          //Opciónes del programa
Leer producidos[i_producidos];
2:
Si i_producidos>1 Entonces
Escribir “Diga que queso producido es apto”
Para j<-1 hasta i_producidos-1 Hacer
Escribir producidos[j];
FinPara
Leer aptos[i_aptos];
Sino
Escribir “Todavía no existe producción;”
Finsi
3:
Si i_aptos>1 Entonces
Escribir “Diga que queso apto se ha vendido”
Para j<-1 hasta i_aptos-1 Hacer
Escribir aptos[j];
FinPara
Leer vendidos[i_vendidos];
Sino
Escribir “No tenemos quesos aptos”;
FinSi
4:
Escribir “Tenemos estos quesos disponibles:”;
Para j<-1 hasta i_aptos-1 Hacer
Para z<-1 hasta i_vendidos-1 Hacer
Si vendidos[z]=aptos[j] Entonces                              //Todo queso apto que no ha sido vendido esta diponible
no_disponible<-1;
FinSi
FinPara
Si no_disponible=0 Entonces
Escribir aptos[j];
Finsi
no_disponible<-0;
FinPara
5:
Escribir “Hasta otra:)”
De Otro Modo:
Escribir “Valor no correcto”;
FinSegun
FinMientras
FinProceso

Ejercicios

  1. Copia el programa en Pseint y hazlo funcionar, pruebalo introduciendo estos datos.
    1. Los productores entran 7 quesos.
    2. Los técnicos sólo dan el visto bueno a 3 quesos.
    3. Los productores producen otros 6 quesos.
    4. Ahora los técnicos dan el visto bueno a todos.
    5. Un vendedor vende 5 quesos.
    6. El administrador consulta el stock, que ve:
    7. Los técnicos dan por bueno otro queso
    8. El administrador consulta el stock, que ve:
  2. Modifica el método que muestra el stock para que también nos diga la cuenta de los quesos que quedan.
  3. Añade una opción para borrar todas las listas.
  4. Añade opciones separadas para borrar las listas de forma independiente.
  5. Amplia la opción que muestra el Stock para que nos enseñe el contenido de todas las listas.
  6. Impide que las listas puedan tener quesos duplicados.
  7. Vamos a ampliar el programa para que el técnico  pueda poner precio a cada queso. De tal forma que en el Stock podamos ver el dinero recaudado.
  8. Vamos a ampliar el programa para que el vendedor  pueda poner el nombre del cliente al que ha vendido. De tal forma que en el Stock podamos ver el nombre del cliente.
  9. Ahora vamos a permitir que los técnicos puedan replantearse la calidad de un queso, para ello implementa un método que  borre un queso de la lista de aptos.
  10. Como quedaría el DFD trás los ejercicios 7, 8 y 9.

Deja un comentario

Disculpa, debes iniciar sesión para escribir un comentario.