Red de conocimiento del abogados - Ley de patentes - Diseño e implementación de la estructura de datos del sistema de gestión de dormitorios de estudiantes.

Diseño e implementación de la estructura de datos del sistema de gestión de dormitorios de estudiantes.

La gestión de dormitorios no es divertida, simplemente es engorrosa. Hay muchas cosas que deben perfeccionarse y, por lo general, requiere una plataforma interactiva, con muchas opciones y muchos errores. La resolución de problemas es un proyecto bastante grande. Lo que escribí no tiene demasiadas funciones de solución de problemas, porque es simplemente molesto, solo algunos si más para hacer juicios. Debido a que es molesto y confuso, no creo que sea interesante, así que no lo escribí en detalle. pero lo escribió toscamente varios. La consulta también solo escribe la consulta por número de estudiante y utiliza la mitad de la búsqueda. La clasificación rápida se usa para ordenar, porque el consumo de tiempo es relativamente pequeño. Bueno, eso está incluido en la síntesis de clasificación anterior, así que uso la clasificación rápida en esa para escribir esto. Es muy simple, simplemente cópielo y cámbielo. estructura., completa! Jaja, el programa es el siguiente: en el archivo de encabezado: struct Student

{

char name[10];

int num;

int dormin;

};cpp file://dormitorymanagement.cpp: define el punto de entrada de la aplicación de consola.

//

/////////////////////////////////// // ///////////////////////////////////////

/* 8. Software de consulta de gestión de dormitorios (**)

Tarea: escribir un software de consulta de gestión de dormitorios para administradores de dormitorios. Requisitos de programación:

(1) Utilice métodos de trabajo interactivos

.

(2) Se puede agregar, eliminar y modificar información

(3) Crear archivos de datos y los archivos de datos se pueden ordenar por palabras clave (nombre, número de estudiante, número de habitación) (selección, clasificación rápida, clasificación en montón, etc.) Elija cualquiera)

(4) Consulta: a. Consulta por nombre; b. Consulta por número de estudiante; (5) Imprima el resultado de cualquier consulta (se puede operar de forma continua)

*/

///////////////////// ///////// ////////////////////////////////////////// /

#include " stdafx.h"

#includelt;fstreamgt;

#includelt;stdlib.hgt;

#includelt ;iostreamgt;

usando el espacio de nombres std;

#define max 10

int _tmain(int argc, _TCHAR* argv[])

{void input(estudiante *, int); void display(estudiante *, int); void add(estudiante *, int &, lt; void qsort(estudiante *, int void); (estudiante *, char *, int &); cambio vacío (estudiante *, char *, lt; brgt; búsqueda nula (estudiante *, int, lt); int stunum, elija; lt; brgt; ifstream infile ("stunum.txt");lt;brgt;if(!infile) coutlt;lt;"¡La información no ha sido creada en el archivo!"lt;lt;endl; lt;brgt;else infilegt;gt;stunum;lt;brgt; infile.close();lt;/pgt;lt;pgt;char nombre[10];lt;brgt;coutlt;lt;"***** *************** ************************************* *"lt;lt;endl;lt;brgt;coutlt;lt;endllt;lt ;endl;lt;brgt;coutlt;lt;" ¡Bienvenido al sistema de gestión de dormitorios de estudiantes! ! "lt;lt;endl;lt;brgt;coutlt;lt;endllt;lt;endl;lt;brgt;coutlt;lt;"********************* ****************************************"lt;lt;endl;lt;brgt ; while(1){lt; brgt;coutlt;lt;"1. Ingrese la información del dormitorio de estudiantes"lt;l

t;endl;lt;brgt;coutlt;lt;"2. Mostrar la información ingresada"lt;lt;endl;lt;brgt;coutlt;lt;"3. Modificación de información"lt;lt;endl;lt;brgt; coutlt;lt;"4. Consulta de información"lt;lt;endl;lt;brgt;coutlt;lt;"5. Clasificación de información"lt;lt;endl;lt;brgt;coutlt;lt;"6. Salir del sistema " lt; lt; endl; lt; brgt; coutlt; lt; "Por favor ingrese las tareas que deben realizarse:"; lt; brgt; cingt; gt; elija; lt; brgt; estudiante *S; S=estudiante nuevo [max]; lt; brgt; switch(choose){lt; brgt; case 1: {coutlt; "Ingresar datos hará que se pierdan los datos originales. )"lt; lt; endl; lt; brgt ;bool yn=0;char temp;lt;brgt;cingt;gt;temp;lt;brgt;if(temp=='y') yn=1;lt;brgt ;if(yn){coutlt;lt;" Ingrese el número de estudiantes: "lt; brgt; cingt; lt; brgt; stunum lt; txt"); lt; brgt; outfilelt; lt; stunum;lt;brgt;outfile.close();break;}}

caso 2: display(S, stunum);break;

caso 3:

{int cchoose; coutlt; "1. Modificar información"lt; brgt; lt; endl; coutlt; lt; "3. Eliminar mensaje "lt;lt;endl;coutlt;lt;" Ingrese la tarea a realizar: "lt;lt;endl;lt;brgt;gt;cchoose; lt;brgt; switch(cchoose)lt;brgt; { caso 1: {coutlt;lt;"Ingrese el nombre de la persona para modificar la información"lt;lt;endl;cingt;gt;name;change(S, nombre, stunum); break;}

caso 2: {int ad; coutlt; lt; "Ingrese el número de personas para agregar:"; gt; ad); break; }

caso 3: {coutlt; lt;" Ingrese el nombre de la persona que eliminó la información"lt;lt;endl;cingt;gt;name;del(S, name,stunum);break;}

break;}break;}

caso 4: {coutlt;lt;"Ingrese el número de estudiante:";lt;brgt; cchoose;cingt;gt;cchoose;search(S, 0, stunum, cchoose);lt; brgt; break;}

caso 5: {ifstream infile("stuinfor.txt", ios::in ); lt; traer;

int i=0;ilt;stunum;i )lt;brgt; infilegt;gt;S[i].namegt;gt;S[i].numgt;gt;S[i].dormin;lt;brgt; S, 0, stunum-1); lt; brgt; archivo de salida ("sorted_infor.txt"); lt; nombrelt;lt;' 'lt;lt;S[i].numlt;lt;' 'lt;lt;S[i].dorminlt;lt;endl;lt;brgt; coutlt;lt;S[i].namelt ;lt;' 'lt;lt;S[i].numlt;lt;' 'lt;lt;S[i].dorminlt;lt;endl;}

outfile.close();infile .close(); break;}

caso 6: coutlt;lt;"¡Gracias por usar!"lt;lt;endl;exit(1);}

}

ofstream outfile("stunum.txt");

outfilelt;lt;stunum;

outfile.close();

retorno 0;

}

entrada nula(estudiante *stu, int todo)

{ofstream outfile("stuinfor.txt");lt;brgt;for (int i=0;ilt;all;i )lt;brgt;{coutlt;lt;"Ingrese el nombre del "lt;lt;i 1lt;lt;" número de estudiante, número de dormitorio: "lt;gt; ;stu[i].namegt;gt;stu[i].numgt;gt;stu[i].dormin;lt;brgt;outfilelt;lt;stu[i].namelt;lt;" "lt;lt ;stu [i].numlt;lt;" "lt;lt;stu[i].dorminlt;lt;endl;lt;brgt;}

outfile.close();

}

void display(estudiante *stu, int all)

{

ifstream infile("stuinfor.txt", ios::in

if(!infile) cerrlt;lt;"¡Error al abrir el archivo! "lt;lt;endl;

else{

for(int i=0;ilt;all;i)

{coutlt;lt;"Entrada Los nombres y números de dormitorios de los estudiantes "lt;lt;i 1lt;lt;" son: "lt;lt;brgt; infilegt;gt;stu[i].namegt;gt;stu[i].numgt; gt; stu[i].dormin;lt;brgt; coutlt;lt;stu[i].namelt;lt;" "lt;lt;stu[i].numlt;lt;" "lt;lt;stu[i]. dorminlt;lt;endl;

lt; brgt; }

infile.close(); }

}

void add(estudiante *stu, int amp; todo, int add)

{

ofstream outfile("stuinfor.txt",ios::app);

for(int i=0;ilt;add;i)

{

coutlt;lt;"Por favor, introduzca el nombre del número de estudiante "lt;lt;all i 1lt;lt;" y el número de dormitorio:";

cingt;gt;stu[all i].namegt;gt;stu[all i].numgt;gt;stu[all i].dormin;

outfilelt;lt;stu[all i] .namelt;lt;" "lt;lt;stu[all i].numlt;lt;" "lt;lt;stu[all i].dorminlt;lt;endl;

}

all =add;

outfile.close();

}

//Clasificación rápida

int particion( estudiante *a, int bajo, int alto)

{

estudiante tem; int piv=a[bajo].num;

mientras(alto; bajo). )

{

while(highgt;lowamp;amp;a[high].numgt;=piv) high--;

tem=a[high ]; a[high]=a[low]; a[low]=tem;

while(highgt;lowamp;amp;a[low].numlt;=piv) low;

tem=a[alto]; a[alto]=a[bajo]; a[bajo]=tem;

}

regresar bajo

}

void qsort(estudiante *a, int bajo, int alto)

{int pivotloc;lt;brgt;if(lowlt;high)lt;brgt;{lt ;brgt; pivotloc=partición(a, baja, alta);lt; brgt; qsort(a, baja, pivotloc-1);lt; brgt; qsort(a, pivotloc 1, alta); p>

}

void del(estudiante *stu, char *nombre, int amp; num)

{int char check; ifstream infile( "stuinfor.txt");lt;brgt; for(int i=0;ilt;num;i) lt;brgt; {lt;brgt;infilegt;gt;stu[i].namegt;gt;stu[i] .numgt;gt;stu[i].dormin;lt;brgt; if(strcmp(nombre,stu[i].nombre)==0) delper

=i;}

coutlt;lt;"La información que desea eliminar es la siguiente:"lt;lt;endl;

coutlt;lt;stu[delper].namelt ;lt; ""lt;lt;stu[delper].numlt;lt;" "lt;lt;stu[delper].dorminlt;lt;endl;

coutlt;lt;"¿Estás seguro? ¿Quieres eliminarlo? (s/n)"lt;lt;endl;

cingt;gt;check;

ofstream outfile("stuinfor.txt");

if (check=='y'||'Y')

{

for(int i=delper;ilt;num;i) stu[i ]=stu[i 1 ];

num--;

for(int i=0; ilt; num; i ) outfilelt; lt; " "lt; lt;stu[i].numlt;lt;" "lt;lt;stu[i].dorminlt;lt;endl;

coutlt;lt;"El mensaje ha sido eliminado!"lt;lt;endl ;}

infile.close();

outfile.close();

}

cambio nulo(estudiante *stu, char *nombre, int num)

{int cambio; nam[10]; int cn, cd lt; "stuinfor.txt"); lt ;brgt; para(int i=0; ilt; num; i ) lt; brgt; infilegt; .numgt; gt; stu[i ].dormin;lt;brgt; if(strcmp(nombre,stu[i].nombre)==0) change=i;lt;brgt }

coutlt; ;lt;"Lo que deseas modificar La información es la siguiente: "lt;lt;endl;

coutlt;lt;stu[cambiar].namelt;lt;" "lt;lt;stu[ change].numlt;lt;" "lt;lt ;stu[change].dorminlt;lt;endl;

coutlt;lt;"¿Estás seguro de que quieres modificarlo? (s/n)"lt;lt;endl;

cingt;gt;check;

ofstream outfile("stuinfor.txt");

if (check=='y'||'Y')

{

coutlt;lt;"Ingrese su nombre, número de estudiante y número de dormitorio en secuencia"lt;lt; endl;

p>

cingt;gt;namgt;gt;cngt;gt;cd;

strcpy(stu[cambio].nombre, nam);stu[cambio].num =c

n;stu[cambio].dormin=cd;

for(int i=0;ilt;num;i)

outfilelt;lt;stu[i].namelt;lt ;" "lt;lt;stu[i].numlt;lt;" "lt;lt;stu[i].dorminlt;lt;endl;

coutlt;lt;"La información ha sido modificada !" lt; lt; endl; }

infile.close();

outfile.close(); } void search(estudiante *stu, int bajo, int alto, int check)

{int mid=(bajo alto)/2;lt;brgt;ifstream infile("sorted_infor.txt");lt;brgt;if(!infile) cerrlt;lt;"Apertura de archivo falló! "lt;lt;endl;lt;brgt;else lt;brgt;{for(int i=0;ilt;high;i) infilegt;gt;stu[i].namegt;gt;stu[i]. numgt; gt;stu[i].dormin;lt;brgt; while(stu[mid].num!=checkamp;amp;highgt;=low) {mid=(bajo alto)/2;if(stu[mid] .numgt ;check) high=mid-1;lt;brgt;else low=mid 1;}//Búsqueda media

}

if(stu[mid].num= =check )

{coutlt;lt;"La información que desea consultar es la siguiente: "lt;lt;endl;lt;brgt;coutlt;lt;stu[mid].namelt;lt; " "lt;lt ;stu[mid].numlt;lt;" "lt;lt;stu[mid].dorminlt;lt;endl;}

else coutlt;lt;"La información que estás buscando no se puede encontrar "lt;lt;endl;

}