Está en la página 1de 19

1

UNIVERSIDAD DEL VALLE DE MEXICO

MATERIA

LÓGICA Y PROGRAMACIÓN ESTRUCTURADA

ACTIVIDAD

#6 PROYECTO INTEGRADOR ETAPA 2 (E1 + E2)

ALUMNO

MANUEL DE JESÚS MAYORGA GONZÁLEZ -08205921

27 de noviembre 2022 [MAGM]


2

ÍNDICE
DEFICIÓN DEL CATÁLOGO Y DISEÑO DE INTERFAZ – ETAPA 1 .................................................. 3
INTRODUCCIÓN ............................................................................................................................... 3
OBJETIVO ........................................................................................................................................ 3
DESARROLLO ................................................................................................................................... 3
PANTALLAS DE CÓDIGO Y FUNCIONAMIENTO......................................................................... 5
CONCLUSIÓN .......................................................................................................................... 7
DESARROLLO DE CÓDIGO PARA LA PROGRAMACIÓN ESTRUCTURADA – ETAPA 2 ................... 8
INTRODUCCIÓN ............................................................................................................................... 8
DESARROLLO ................................................................................................................................... 8
PROGRAMAR ................................................................................................................................... 8
PANTALLA DE CÓDIGO Y FUNCIONAMIENTO .........................................................................11
CONCLUSIÓN .........................................................................................................................19
REFERENCIAS .........................................................................................................................19

27 de noviembre 2022 [MAGM]


3

DEFICIÓN DEL CATÁLOGO Y DISEÑO DE INTERFAZ – ETAPA 1


INTRODUCCIÓN

Esta actividad consiste en aplicar los conocimientos adquiridos a lo largo del curso y
retomar lo aprendido en cada una de las actividades realizadas, lo que garantiza la
transversalidad de los contenidos revisados para fortalecer el desarrollo de
competencias y lograr el fin de formación planteado.

OBJETIVO

El objetivo del Proyecto integrador es aplicar las bases de la lógica computacional y


programación estructurada para la construcción de una aplicación de escritorio que
administre un catálogo que evidencie las operaciones de altas, bajas, modificaciones y
consultas.

DESARROLLO

Imagina que tienes que administrar un catálogo de diversos conceptos, un ejemplo de


las operaciones que se tienen que hacer adaptadas según el caso elegido son: alta a
estudiantes, baja a estudiantes, modificaciones de estudiantes y consulta de
estudiantes.

La operación de altas debe de permitir capturar los datos del estudiante y debe de
permitir guardar de forma temporal los datos capturados, la operación de bajas debe de
permitir eliminar del catálogo a un estudiante previamente capturado, la operación de
modificación debe permitir modificar/actualizar los datos de un estudiante previamente
capturado, y la operación de consulta debe de permitir consultar a los estudiantes
previamente capturados.

El catálogo parte del ejemplo de estudiantes, sin embargo, puede adaptarse a otro
concepto:

a) Catálogo de pacientes

b) Catálogo de autos

c) Catálogo de artículos, servicios...

27 de noviembre 2022 [MAGM]


4

DEFICIÓN DEL CATÁLOGO A ADMINISTRAR Y DISEÑO DE INTERFAZ

El catálogo que pretendo trabajar es el de un catálogo de pacientes en un hospital, el


cual tiene el siguiente diseño:

Menú de administración de pacientes


Opción 1. Registro de Pacientes
Opción 2. Ingreso de Pacientes
Opción 3. Acciones de Pacientes
Opción 4. Consulta de Pacientes
Opción 5. Terminar

Opción 1. Registro de Pacientes


Ingrese NSS
Ingrese Nombre del Paciente
Ingrese Apellido del Paciente
Ingrese Correo del paciente
Ingrese Contraseña
Ingrese Consultorio Asignado
Ingrese Diagnostico

Opción 2. Ingreso de Pacientes


Ingrese Correo del paciente
Ingrese Contraseña

Opción 3. Consulta de Paciente


Ingrese NSS – Muestra datos
Opción 1

Opción 4. Acciones del Paciente


Modificar – Datos Opción 1

Opción 4. Terminar
FIN

27 de noviembre 2022 [MAGM]


5

PANTALLAS DE CÓDIGO Y FUNCIONAMIENTO

27 de noviembre 2022 [MAGM]


6

27 de noviembre 2022 [MAGM]


7

CONCLUSIÓN
Para este caso de un Menú de Opciones en C++, se optó por el concepto del
condicional Switch, el cual es una estructura de control, que nos permitirá definir
múltiples casos u opciones que dada una variable dada por el usuario determinará que
acción tomar, o inclusive no realizar ninguna acción, en caso de que la respuesta del
usuario no se encuentre en la interfaz del programa.

Se utilizó también un boleano Bool que declara un tipo especial de variable, cuya
característica es que sólo puede tener dos valores, verdadero o falso (0 ó 1 ), y que en
este caso fue declarada como variable lógica que funge como opcional.

27 de noviembre 2022 [MAGM]


8

DESARROLLO DE CÓDIGO PARA LA PROGRAMACIÓN ESTRUCTURADA –


ETAPA 2

INTRODUCCIÓN

Definir la función alta que no devuelva ningún valor y que reciba como parámetro el
arreglo de estructuras en donde se va a guardar el registro capturado, así como el
índice que indique la posición del último elemento guardado, la función “altas”

DESARROLLO

Ingrese la matricula del estudiante: 012345


Ingrese el nombre: Juan
Ingrese al apellido paterno: Pérez
Ingrese el apellido materno: Pérez
Ingrese la carrera: Ingeniería en Sistemas
Ingrese el correo electrónico: juanperez@gmail.com
Ingrese el teléfono :01234567

PROGRAMAR

Ingrese la matricula del estudiante a eliminar: 012345

*Nota que hay dos casos, a) caso 1 el estudiante se encuentra, b) caso 2 el estudiante
no se encuentra

27 de noviembre 2022 [MAGM]


9

¿Estás seguro de que deseas eliminar al estudiante? 1. Para si / 2. Para no

En caso de que se confirme con 1 la eliminación debe de llevarse a cabo y debe ser
indicado con un mensaje que así lo indique y posteriormente se debe de regresar al
menú principal a como se muestra a continuación:

Ingrese su selección 1
Estudiante eliminado correctamente Menú principal

1. Alta de estudiantes
2. Baja de estudiantes
3. Modificaciones de estudiantes
4. Mostrar todos
5. Buscar estudiante
6. Salir

Ingrese su opción:

• En caso de que se confirme con 2 la eliminación debe de cancelarse, lo que


debe de indicarse con un mensaje y regresar al menú principal a como se
muestra a continuación:

Ingrese su selección 2

Eliminación cancelada.

Menú principal

1. Alta de estudiantes
2. Baja de estudiantes
3. Modificaciones de estudiantes 4. Mostrar todos
5. Buscar estudiante
6. Salir

Ingrese su opción:

27 de noviembre 2022 [MAGM]


10

Menú principal

1. Alta de estudiantes
2. Baja de estudiantes
3. Modificaciones de estudiantes
4. Mostrar todos
5. Buscar estudiante
6. Salir

Ingrese su opción:

• Es importante notar que en el caso de que se elimine un registro del catálogo,


que en este caso particular es un catálogo de estudiantes, se debe de hacer un
reacomodo del arreglo, note la siguiente situación:

11111 012345 22222 33333

0 1 2 3 0

• El estudiante con matrícula 012345 está en la posición 1 del arreglo, la


eliminación de dicho estudiante implica que el estudiante con matrícula 22222
debe de ocupar la posición 1 del arreglo, así como el estudiante con matrícula
33333 debe de ocupar la posición 2 y la posición 3 en este caso debe de quedar
vacía, como se muestra en la siguiente figura:

11111 22222 33333

0 1 2 3 4

• Darles funcionalidad a las opciones 1, 2 y 5 del menú: Menú principal

1. Alta de estudiantes
2. Baja de estudiantes
3. Modificaciones de estudiantes 4. Mostrar todos
5. Buscar estudiante
6. Salir

27 de noviembre 2022 [MAGM]


11

PANTALLA DE CÓDIGO Y FUNCIONAMIENTO

27 de noviembre 2022 [MAGM]


12

27 de noviembre 2022 [MAGM]


13

#include <iostream>

using namespace std;

void registerStudent(void);
void deleteStudent(void);
void modifyStudent(void);
void searchStudent(void);

int mop;

int main () {

cout << "Catálogo \n\n";

cout << "Bienvenido\n\n";

cout << "Elige la opoción deseada: \n\n 1. Alta de


estudiantes\n\n 2. Baja de estudiantes\n\n 3.Modificar\n\n 4. Consulta
\n\n 5. Salir \n\n >>";
cin>>mop;

switch (mop)
{
case 1:
registerStudent();
break;
case 2:
deleteStudent();
break;
case 3:
modifyStudent();
break;
case 4:
searchStudent();
break;
default:
exit;
break;

27 de noviembre 2022 [MAGM]


14

}
return 0;
}

void registerStudent (void ) {

string name, patern, matern, career, email;


char option;
int id_student, celphone;

system ("CLS");

cout <<"*****************************\n";
cout <<"\t\t Alta de Estudiante \t \n";
cout <<"*****************************\n";

cout <<"\n\n Ingresa Nombre(s): "; cin>>name;


cout <<"\n Ingresa Apellido Paterno: "; cin>>patern;
cout <<"\n Ingresa Apellido Materno: "; cin>>matern;
cout <<"\n Ingresa Carrera "; cin>>career;
cout <<"\n Ingresa el Número de Matrícula "; cin>>id_student;
cout <<"\n Ingresa el Correo Electrónico "; cin>>email;
cout <<"\n Ingresa Número de Teléfono "; cin>>celphone;

cout <<"\n\n ¿Desea Agregar otro Alumno? : Y/N \n>>";


cin>>option;

if (option == 'y' || option == 'Y') {


registerStudent();
}
else {
main();
}
}

27 de noviembre 2022 [MAGM]


15

void deleteStudent() {
if (cont!=0){
bool band=false;
int dato;
int id_student;

cout<<"Ingresa el nñumero de matricula a Eliminar: ";


cin>>dato;

for (int i=0; i<cont; i++){


if(dato == Student[i].id_student){
cout<<":::Datos a Eliminar:::"<<endl;
cout << "========================" << endl;
cout<<"Nomnbre del Estudiante: "<<Student[i].name<<endl;
cout<<"Matricula: "<<Student[i].id_student<<endl;
cout<<"Carrera: "<<Student[i].career<<endl;
cout<<"Correo Electrónico: "<<Student[i].email<<endl;
cout<<"Teléfono: "<<Student[i].celphone<<endl;
cout << "========================" << endl;
cout << "\n El Estudiante fue eliminado correctamente \n" <<
endl;
system ("pause");

band=true;

Student[i].id_student = 0;
Student[i].name = 0;
Student[i].career =0;
Student[i].email = 0;
Student[i].celphone = 0;

cont--;
}
}
if(band==false){
cout<<"\nEl Estudiante ingresado no existe\n"<<endl;
system("pause");
main();
exit;

27 de noviembre 2022 [MAGM]


16

}
}
else{
cout<<"\n No hay Estudiantes registrados\n"<<endl;
system ("pause");
main();
exit;
}
}

void modifyStudent() {
ifstream file;
string check = "DB_data.doc";

Student st1;
char option;

if ( checking (check) ) {
file.open ("DB_data.doc",ios.out);
if ( file.fail() ){
cout <<"Error, archivo no encontrado por favor intente
nuevamente";
exit (1);
}
do {
system ("CLS");

fflush(stdin);
cout <<"*****************************\n";
cout <<"\t\t Edición del Estudiante \t \n";
cout <<"*****************************\n";

cout <<"\n\n Ingresa Nombre(s): "; cin>>st1.name;


cout <<"\n Ingresa Apellido Paterno: "; cin>>st1.patern;
cout <<"\n Ingresa Apellido Materno: "; cin>>st1.matern;
cout <<"\n Ingresa Carrera "; cin>>st1.career;
cout <<"\n Ingresa el Número de Matrícula ";
cin>>st1.id_student;

27 de noviembre 2022 [MAGM]


17

cout <<"\n Ingresa el Correo Electrónico ";


cin>>st1.email;
cout <<"\n Ingresa Número de Teléfono ";
cin>>st1.celphone;

file<<st1.id_student<< "\n";
file<<st1.name<< " "<<st1.patern<< " "<<st1.matern<<
"\n";
file<<st1.career<< "\n";
file<<st1.email<< "\n";
file<<st1.celphone<< "\n";
file<<"********************************************\n";

cout <<"\n\n ¿Desea Agregar otro Alumno? : Y/N \n>>";


cin>>option;

} while (option == 'y' || option == 'Y');


file.close();
main();
}
else {
file.open ("DB_data.doc",ios.out);
fflush(stdin);
file <<"Data de Alumnos \n\n";

file.close();
registerStudent();
}
}
void searchStudent() {

ifstream Consult;
system ("CLS");
Consult.open ("DB_data.doc", ios::in);

Student st2;
string Search;

27 de noviembre 2022 [MAGM]


18

bool SearchDB = false;

cout <<"Ingrese el nuúmero de la matricula del alumno: ";


cin>>Search;

while (!Consult.eof() && !SearchDB) {

Consult>>st2.id_student;
Consult>>st2.name>>Consult>>st2.patern>>Consult>>st2.matern;
Consult>>st2.career;
Consult>>st2.email;
Consult>>st2.celphone;

if ( Consult>>st2.id_student == Search ) {

cout << "Número de Matrícula: "<< st2.id_student <<"


\n";
cout << "Nombre Completo: "<< st2.name <<" "<<
st2.patern <<" "<< st2.matern <<" \n";
cout << "Carrera: "<< st2.career <<" \n";
cout << "Correo: "<< st2.email <<" \n";
cout << "Teléfono: "<< st2.celphone <<endl;
}
}

SearchDB = true;
Consult.close():

if (!SearchDB) {

cout << "Alumno no registrado \n";


system("pause");
system("cls");
registerStudent();
}

27 de noviembre 2022 [MAGM]


19

CONCLUSIÓN

El arreglo es un tipo estructurado de dato, el cual es capaz de almacenar una colección


de datos del mismo tipo. Es la forma más simple de agrupar componentes de un mismo
tipo y asociarles un número de orden de cada componente llamado índice en este caso
asociamos los datos en el menú para que el usuario seleccione la opción deseada.

REFERENCIAS
• García-Bermejo Giner, J. R. (2008). Programación estructurada en C [Versión
electrónica]. Obtenido de Recuperado de https://elibro.net/es/ereader/uvm/53853
• Magic Markers (Productor). (21 de Julio de 2015). ¿Qué es un algoritmo?
Obtenido de Recuperado de https://www.youtube.com/watch?v=U3CGMyjzlvM
• Mancilla, A. G. (2014). Diseño y construcción de algoritmos [Versión electrónica].
Obtenido de https://elibro.net/es/ereader/uvm/69931
• Oviedo, E. (2015). Lógica de programación orientada a objetos. Obtenido de
Recuperado de https://elibro.net/es/ereader/uvm/70431
• Sánchez, J. (2020). Guía de uso de Online GDB, compilador y depurador en
línea. Obtenido de [Archivo PDF]
• S.A. (s.f.). Funciones en C [Archivo PDF]. Recuperado de
https://www.mheducation.es/bcv/guide/capitulo/8448148681.pdf

27 de noviembre 2022 [MAGM]

También podría gustarte