2. El Jefe de Departamento del PNF en Informática de la UPT
“Ludovico Silva” realizó un registro de datos de los
Proyectos Socio Tecnológicos inscritos en el Trayecto
2017-2 que está por finalizar.
A todo Proyecto se le asignó un Código, Título, Autor,
Tutor y Estatus. El código está formado por 5 caracteres
que identifican el año, trayecto y número de proyecto.
El estatus del Proyecto tiene 3 opciones: En Proceso,
Entregado y Presentado.
Se necesita buscar el estatus en que se encuentra un
código de Proyecto determinado.
Enunciado
3. Datos de Entrada
• Código
• Título
• Autor
• Tutor
• Estatus
Datos de Salida
• Estatus del código
buscado.
Condiciones o
Restricciones
• El código está
formado por 5
caracteres que
identifican el año,
trayecto y número
de proyecto.
• El estatus del
Proyecto tiene 3
opciones: En
Proceso,
Entregado y
Presentado.
1)Análisis del problema
4. 1)Análisis del problema
Requerimientos Funcionales:
El sistema deberá leer y almacenar los datos de los
proyectos ingresados por el usuario.
El código del proyecto está formado por 5 caracteres
que identifican el año, trayecto y número de proyecto.
El estatus del Proyecto tiene 3 opciones: En Proceso,
Entregado y Presentado.
El sistema deberá buscar el código de proyecto
indicado.
El sistema debe mostrar el Estatus del código de
proyecto solicitado.
5. 1)Análisis del problema
Requerimientos No Funcionales:
El sistema deberá:
Estar programado en lenguaje PHP.
Tener una interfaz gráfica sencilla, amigable y en
idioma español.
Ser multiplataforma.
Tener rápidez y rendimiento de respuesta.
Captar la información a ser ingresada al mismo desde
los dispositivos de entrada como el teclado o el mouse.
Hacer uso de dispositivos de salida como el monitor y
la impresora.
Estar disponible durante el horario laboral.
6. Proceso
1. Inicio
2. Definir Matriz de Proyectos
3. Leer cantidad de proyectos a procesar
4. Para cont=1 hasta cantidad de proyectos
5. Leer el código
6. Leer el Título
7. Leer el Autor
8. Leer el Estatus
9. Almacenar datos en la matriz
10. Fin del Para
11. Leer código del proyecto a buscar
12. Buscar en la matriz de Proyectos
13. Si código existe
14. Mostrar Estatus del Proyecto
15. Sino
16. Mostrar que el Código no existe
17. Fin
2)Diseño del Algoritmo
7. Algoritmo
Proceso Búsqueda
//Primero se crea la matriz de 3 x 5 y se define su tipo, así
como los dos índices para la fila y columna
Dimension M[3,5];
Definir M Como Caracter;
Definir I,J Como Entero;
Definir campo Como Caracter;
Definir s Como Logico;
s<-F;
// Leer valores, aqui se cargan los valores en cada celda
Para J<-1 Hasta 5 Hacer
Para I<-1 Hasta 3 Hacer
Si J=1 Entonces
campo='Código';
FinSi
Si J=2 Entonces
campo='Título';
FinSi
Si J=3 Entonces
campo='Autor';
FinSi
Si J=4 Entonces
campo=‘Tutor';
FinSi
Si J=5 Entonces
campo='Estatus';
FinSi
Escribir 'Ingrese Valor para Fila ',I,', ',campo,' ,',J,':';
Leer M[I,J];
FinPara
FinPara
Escribir 'Ingrese el código a buscar?: ';
Leer v;
Para I<-1 Hasta 3 Hacer
Para J<-1 Hasta 4 Hacer
Si v=M[I,J]
Escribir 'Estatus: ',M[I,4];
s<-Verdadero;
FinSi
FinPara
Escribir ' ';
FinPara
si s=Verdadero
Escribir 'Código Encontrado!';
Sino
Escribir 'Código No Encontrado!';
FinSi
FinProceso
9. ***PANTALLA PRINCIPAL**
<!-- proceso para llamar mis archivos necesarios que me van a
permitir conectarme con la bd y mi paginación de
resultados -->
<?php
include 'conexion/conexion.php';
include_once 'funciones/funcion_proyectos.php';
$crud = new crud($DB_con);
?>
<!-- proceo para llamar mis archivos necesarios que me van a
permitir conectarme con la bd y mi paginacion de
resultados -->
<!-- metodo para eliminar -->
<?php
if(isset($_GET['id_proyectos']))
{
$sql_delete = $DB_con->prepare('DELETE FROM proyectos
WHERE id_proyectos =:id_proyectos');
$sql_delete-
>bindParam(':id_proyectos',$_GET['id_proyectos']);
$sql_delete->execute();
$errMSG = "¡ Atención: El Registro a sido Eliminado
!";//muestro mensaje por pantalla
header("refresh:5;proyectos.php");//refrescamos
despues de eliminar
}
?>
<!-- fin metodo para eliminar -->
3) Programación Se incluye parte del código fuente en PHP
<!DOCTYPE html>
<html lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Sistema Administrativo Proyectos</title>
<!--Import Google Icon Font-->
<link
href="http://fonts.googleapis.com/icon?family=Material+Icons
" rel="stylesheet">
<!--Import materialize.css-->
<link type="text/css" rel="stylesheet"
href="css/materialize.min.css" media="screen,projection"/>
<!--Let browser know website is optimized for mobile-->
<meta name="viewport" content="width=device-width,
initial-scale=1.0"/>
</head>
<body class="blue lighten-5">
<br>
<br>
<br>
<section>
<div class="row">
<div class="container">
11. <div class="center-align">
<div class="pagination-wrap">
<?php $crud->paginglink($query,$records_per_page); ?>
</div>
</div>
<!-- muestro mis resultados y creo la paginacion de resultados -->
<!-- muestro el total de registros -->
<?php
$consulta = $DB_con->query("SELECT * FROM proyectos");
$consulta->execute();
$cuenta = $consulta->rowCount();
?>
<h6 class="right-align black-text"><?php print("Total Registros
Existentes: $cuentan"); ?></h6>
<!-- fin muestro el total de registros -->
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!--Import jQuery before materialize.js-->
<script type="text/javascript"
src="https://code.jquery.com/jquery-
2.1.1.min.js"></script>
<script type="text/javascript"
src="js/materialize.min.js"></script>
<!-- Scripts-->
<script>
$(document).ready(function() {
$(".button-collapse").sideNav();
$(".dropdown-button").dropdown();
});
</script>
</body>
</html>
***FUNCIONES DE BUSQUEDA***
<?php
class crud
{
private $db;
function __construct($DB_con)
{
$this->db = $DB_con;
}
/* paging */
public function dataview($query)
{
$stmt = $this->db->prepare($query);
$stmt->execute();
if($stmt->rowCount() > 0){
$i=1;
while($linea=$stmt-
>fetch(PDO::FETCH_ASSOC))
{
3) Programación Se incluye parte del código fuente en PHP
12. <div class="center-align">
<div class="pagination-wrap">
<?php $crud->paginglink($query,$records_per_page); ?>
</div>
</div>
<!-- muestro mis resultados y creo la paginacion de resultados
-->
<!-- muestro el total de registros -->
<?php
$consulta = $DB_con->query("SELECT * FROM proyectos");
$consulta->execute();
$cuenta = $consulta->rowCount();
?>
<h6 class="right-align black-text"><?php print("Total
Registros Existentes: $cuentan"); ?></h6>
<!-- fin muestro el total de registros -->
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!--Import jQuery before materialize.js-->
<script type="text/javascript"
src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script type="text/javascript"
src="js/materialize.min.js"></script>
<!-- Scripts-->
<script>
$(document).ready(function() {
$(".button-collapse").sideNav();
$(".dropdown-button").dropdown();
});
</script>
</body>
</html>
3) Programación Se incluye parte del código fuente en PHP
13. 4)Ejecución y Pruebas
Registra Datos del
Proyecto
Consulta por Código
Consulta por Estatus
Actualiza Datos del
Proyecto
Elimina Datos del
Proyecto
14. 4)Ejecución y Pruebas
Al seleccionar la opción Registros, se muestra la siguiente pantalla, donde el
usuario podrá ingresar los datos del Proyecto.
15. 4)Ejecución y Pruebas
Ingresar Código a
Consultar
Al presionar Consultar Registro, se muestra el siguiente reporte en PDF.
17. 4)Ejecución y Pruebas
Seleccione el Estatus a
Consultar
Se le incluyó una búsqueda adicional, de modo que el Jefe de Departamento
pueda buscar determinado estatus para la toma de decisiones. Por ejemplo:
buscar todos los proyectos que están en Estatus “Entregado” y asignarle jurados
y fecha de presentación.
Al presionar Consultar Registro, se muestra el siguiente reporte en PDF.