Red de conocimiento informático - Conocimiento del nombre de dominio - Buscamos urgentemente lenguaje C: Programación de sistema de selección de cursos para estudiantes (preferiblemente con diagrama de flujo)

Buscamos urgentemente lenguaje C: Programación de sistema de selección de cursos para estudiantes (preferiblemente con diagrama de flujo)

#includelt; stdio.hgt;

#includelt; stdlib.hgt;

int N1, N2, kk1, kk2,

struct couse * head1; ;

struct Student * head2;

struct couse //estructura de información del curso

{

int num1;

char nombre1[20];

int puntuación;

int nelepeo; // Número de personas registradas en el curso

int Melepeo; límite de personal

estructura curso * siguiente

};

estructura estudiante//estructura de información del estudiante

{

int num2;

char name2[20];

int nelenum[50]; // número de curso seleccionado

int nelen; Número

estructura estudiante * siguiente

};

void Ms()

{

for( kk1=0;kk1lt.1100;kk1 )

for(kk2=0;kk2lt;1200;kk2 )

for(kk3=0;kk3lt;1200;kk3 );

}

void keyboardc()//Ingresar las subfunciones del curso (desde el teclado)

{

struct couse *p1, *p2 ;

N1=0;

p1=p2=(struct couse*)malloc(sizeof(struct couse));

printf("Número de curso\ tNombre del curso\tCréditos\t Número de curso cap\n");

scanf("dsddd",amp;p1-gt;num1,p1-gt;name1,amp;p1-gt;score,amp ;p1-gt;Melepeo);

p1-gt;nelepeo=0;

head1=NULL;

while(p1-gt;num1! =0)

{

N1=N1 1;

si(N1==1)cabeza1=p1;

más p2 -gt; siguiente=p1;

p2=p1 ;

p1=(estructura curso * )malloc(sizeof(estructura curso)); "dsdd",amp;p1-gt;num1,p1-gt;nombre1,amp;p1-gt;score,amp.p1-gt;Melepeo);

p1-gt;nelepeo=0;

}

p2-gt; siguiente=NULL

<;

p>}

void filec()//grabar subfunciones del teclado (desde archivo)

{

FILE * fp;

char filepath[20];

struct couse *p1, *p2;

N1=0;

printf("Ingrese la ruta del archivo para leer: ") ;

getchar();

obtiene( ruta de archivo);

if((fp=fopen(ruta de archivo, "r"))==NULL)

{

printf("¡No se puede encontrar el archivo s!\n", ruta de archivo

exit(0); }

p1

p1=p2=(struct couse*)malloc(sizeof(struct couse));

fscanf(fp, "dsdddd", amp ;p1-gt;num1,p1-gt;nombre1,amp;p1-gt;puntuación,amp;p1-gt;nelepeo,amp;p1-gt;Melepeo);

head1=NULL;

while(!feof(fp))

{

N1=N1 1;

if(N1==1)head1= p1;

else p2-gt; next=p1;

p2=p1;

p1=(struct couse * )malloc(sizeof(struct couse) )

fscanf(fp,"dsdddd",amp;p1-gt;num1,p1-gt;name1,amp;p1-gt;score,amp;p1-gt;nlepeo,amp;p1 -gt; melepeo);

}

p2-gt; siguiente=NULL

}

void inputc()// Ingrese la función principal del curso

{

int i;

printf("/t\t ingrese la información del curso\n");

printf("/n1. Ingrese /n" desde el teclado);

printf("2. Ingrese /n" desde el archivo); al menú principal\n");

printf("Por favor seleccione (1~3):\n");

scanf("d",amp;i);

cambiar(i)

{

caso(1): tecladoc(); romper

caso(2): filec( ); romper;

case(3): romper;

}

}

void insertc(struct couse *incouse)/ /subfunción de gestión de cursos (agregar curso)

{

estructura couse *p0, *p1, *p2

p1=head1

p0=incouse;

p>

p>

if(head1 ==NULL)

{

head1=p0

p0-gt;

}

}

else

{

while((p0-gt;num1 gt; p1-gt;num1 ) amplificador; (p1-gt; siguiente!=NULL))

{

p2=p1; -gt;siguiente;

}

if(p0-gt;num1 lt;= p1-gt;num1)

{

if (cabeza1= =p1) cabeza1=p0;

else p2-gt; siguiente=p0

p0-gt; }

else

{

p1-gt; siguiente=p0

p0-gt; >

}

}

N1=N1 1;

}

void delc(int num1)//gestión del curso subfunción (eliminar cursos)

{

struct couse *p1, *p2

if(head1==NULL)

{

printf("\n no tiene cursos, ¡no se puede eliminar!\n");

ir al final

}

p1=cabeza1;

while(num1!=p1-gt; num1 amp; amp; p1-gt; next!=NULL)

{

p2=p1;

p1=p1-gt; siguiente

}

if(num1==p1-gt; num1)

{

if(p1==head1) head1=p1-gt;

else p2-gt; next=p1-gt; p> printf(" ¡Eliminó este curso numerado! \n");

N1=N1-1;

}

else printf("¡No hay cursos con ese número!\n");

p>

end:;

}

gestión de vacíosc()//función principal de gestión del curso

{

struct couse * incouse;

int i, num1;

printf("\t\t gestión del curso\n"); "1.Agregar curso \n");

printf("2. Eliminar curso

\n");

printf("3.Volver al menú principal \n");

printf("Seleccione (1~3):\n");

scanf ("d", amp; i);

switch(i)

{

case(1):

p>

{

incouse=(struct couse *)malloc(sizeof(struct couse));

printf("Número de curso\t nombre del curso \t créditos\t límite de personal del curso \n");

scanf("dsdd",amp;incouse-gt;num1,incouse-gt;name1,amp;incouse-gt;score,amp. incouse-gt;Melepeo );

incouse-gt; nelepeo=0;

insertc(incouse); }

case(2):

{

printf("Ingrese el número del curso que desea eliminar:\n");

scanf ("d", & num1

delc (num1

descanso

}

); case(3) :break;

}

}

void teclados()//ingrese la subfunción de información del estudiante (desde el teclado)

{

int i;

estructura estudiante *p1, *p2;

N2=0

p1=p2=( struct Student *) malloc(sizeof(struct Student));

printf("número de estudiante\t nombre de estudiante\n");

scanf("ds",amp;p1 -gt;num2 , p1-gt; nombre2);

p1-gt; nelen =0;

for(i=0; ilt; 20; i ) p1-gt; nelenum[i] =0;

head2=NULL;

while(p1-gt;num2! =0)

{

N2=N2 1;

si( N2==1)cabeza2=p1

más p2; -gt; siguiente=p1;

p2=p1;

p1=(estructura estudiante * )malloc(tamañode(estructura estudiante)); "ds", amplificador; p1-gt; num2, p1-gt; nombre2); ;i) p1-gt;nelenum[i]=0;

}

p2-gt; next= NULL;

}

void files()//entrada de subfunción de información del estudiante (desde archivo)

{

int i=0;

ARCHIVO * fp;

char filepath[20];

estructura estudiante *p1, *p2;

N2=0;

printf("Ingrese la ruta del archivo a leer:

getchar(); p> p>

gets(rutadelarchivo);

if((fp=fopen(rutadelarchivo, "r"))==NULL)

{

printf("¡El archivo no se encontró!\n", ruta del archivo

exit(0); /p >

p1=p2=(struct estudiante*)malloc(sizeof(struct estudiante));

fread(p1,sizeof(struct estudiante),1,fp);

cabeza2=NULL;

while(!feof(fp))

{

i=0

N2=; N2 1 ;

if(N2==1)head2=p1;

else p2- gt; next=p1;

p2=p1;

p1=(struct estudiante * )malloc(sizeof(struct estudiante));

fread(p1, sizeof(struct estudiante), 1, fp> }

p2-gt; next=NULL;

}

void inputs()//ingresa la función principal de información del estudiante

{

int i;

printf("/t\t ingresa la información del estudiante\n");

printf("/n1. Ingresa desde el teclado\n ") ;

printf("2. Ingresar desde archivo\n");

printf("3.Volver al menú principal\n");

printf ("Por favor seleccione (1~3):\n");

scanf("d",amp;i);

switch(i)

{

caso(1): teclados();

caso(2): archivos();

caso(3); ): descanso;

}

}

inserciones vacías (estructura estudiante * incouse) // gestión de información del estudiante subfu

nction (rellene la información del estudiante)

{

struct Student *p0, *p1, *p2

p1=head2

p0=incouse;

if(head2==NULL)

{

head2=p0;

p0-gt; =NULL;

}

más

{

mientras((p0-gt; num2 gt; p1-gt; num2 ) amp;amp; (p1-gt;siguiente!=NULL))

{

p2=p1;

p1=p1-gt;siguiente;

}

if(p0-gt;num2 lt;= p1-gt;num2)

{

if(head2== p1) cabeza2=p0;

más p2-gt; siguiente=p0;

p0-gt; siguiente=p1; p> else

{

p1-gt; siguiente=p0

{

p1-gt; /p>

p0-gt; siguiente=NULL

}

}

N2=N2

}

void dels(int num2)//Subfunción de gestión de información del estudiante (eliminar información del estudiante)

{

struct Student * p1, *p2;

p>

if(head2==NULL)

{

printf("\n no tiene información sobre este estudiante, ¡no puede eliminarla! \n");

ir al final;

}

p1=head2;

while(num2!=p1-gt; num2 amp; p1 -gt; siguiente! =NULL)

{

p2=p1;

p1=p1-gt;siguiente;

}

if(num2==p1-gt;num2)

{

if(p1==cabeza2) cabeza2=p1- gt;next;

p>

else p2-gt; next=p1-gt;

printf("¡La información sobre este estudiante ha sido eliminada! \n");

N2=N2-1;

}

else printf("¡No hay estudiantes con este número de estudiante!\n");

end:;

}

void managements()//función principal de gestión de información estudiantil

{

struct estudiante * incouse;

int i, num2;

printf("/t\t información del estudiante m

anagement\n");

printf("1.Agregar información del estudiante\n");

printf("2. Eliminar información del estudiante\n");

printf("3. Regresar al menú principal/n");

printf("Por favor elija (1~3):\n"); "d ", amp; i);

cambiar(i)

{

caso(1):

{

incouse=(struct Student *)malloc(sizeof(struct Student) );

incouse-gt;nelen=0;

incouse-gt;nelenum[0 ]= 0;

printf("Número de estudiante\t nombre de estudiante\n");

scanf("ds", amp; incouse-gt; num2, incouse-gt; nombre2) ;

inserts(incouse);

break;

}

caso(2):

{

printf("Ingrese el número del estudiante que desea eliminar:\n");

scanf("d", amp; num2); > dels (num2);

romper

}

caso(3): romper

}

}

}

void elect(struct Student * s)//elect class

{

struct couse * p;

p>

int num1, i;

printf("Ingrese el número de la clase a seleccionar:\n"); "d", amp;num1);

for(i=0;s- gt;nelenum[i]!=0;i);

s- gt;nelenum[ i]=num1 ;

(s- gt; nelen) ;

p=head1;

while(p- gt; num1! =num1) p=p- gt; next;

(p- gt; nelepeo)

}

void cheak()//selección de curso del estudiante subfunción (consultar cursos disponibles)

{

char e;

struct couse * c;

struct Student * s;

p>

int num2, i, j=0, t=0;

printf("Ingrese su número de estudiante: "); ("d", amp;núm

2);

s=head2;

while(s-gt;num2!=num2 amp;amp; s-gt;next!=NULL) s=s-gt; next;

if(s-gt;num2!=num2)

{

printf("Tu información no existe, por favor ve al menú principal e ingresa tu información! \n");

ir al final;

}

c=head1;

printf("Tu número de curso opcional:\n");

while(c!=NULL)

{

for(t=0, i=0; s- gt.nelenum[i]! =0; i )

{

if(c-gt;num1==s-gt;nelenum[i]) t=1;

}

if(t==0 amp; amp; (c-gt;nelenum!= c-gt;nelenum[i]))

{

printf("d\n", c-gt; num1

j

}

; c=c-gt; siguiente;

}

if(j==0)

{

printf("Tú' ¡He tomado todos los cursos y no puedo seleccionar más! \n");

ir al final;

}

printf("Seleccionando curso (y/ n)?:\n");

getchar();

e=getchar();

e=getchar();

i=0;

mientras(e=='y')

{

elegir(s); printf("Continuar con elect(s/n)?:\n");

getchar()

e=getchar();

end:;

}

void back(struct Student * p)//retirada de clase

{

struct couse * p1;

int num1, i, j;

printf("Ingrese el número del curso que desea abandonar:\n"); /p>

scanf("d",amp;num1);

p1=head1;

while(p1-gt;num1! =num1) p1=p1-gt;siguiente;

for(i=0;p-gt;nelenum[i]! =num1;i);

for(j= i;p-gt;nelenum[j]!=0;j) p-gt;nelenum[j]=p-gt;nele

num[j 1];

p-gt;nelenum[--j]=0;

(p1-gt;nelenum)--;

printf("¡Retirada exitosa de la clase!\n");

}

void hcheak()//subfunción de selección de estudiantes (consultar cursos seleccionados)

{

char c;

estructura couse * p0;

estructura estudiante * p;

int num2, i, f=0;

printf("Ingrese el número de estudiante:\n");

scanf("d", num2

p=head2;< /p); >

while(p-gt;num2!=num2 amp;amp; p!=NULL) p=p-gt;next;

if(p==NULL)

{

printf("Su información no existe, regrese al menú principal para ingresar su información:\n");

ir al final

}

printf("Número de curso seleccionado:\n");

if( p-gt;nelenum[0]==0)

{

printf("¡No has tomado ningún curso!\n");

ir al final

}

para (i=0;p-gt;nelenum[i]! =0;i)

{

printf("d\n", p-gt;nelenum[i]

p0=cabeza1;

mientras(p0-gt; num1!=p-gt; nelenum[i]) p0=p0-gt; siguiente;

f=f p0-gt; puntuación;

}

printf("Créditos totales: d\n",

printf( "¿Está el retiro (s/n) en progreso?");

getchar();

c=getchar()

while(c==); 'y')

{

back(p);

printf("¿Continuando con el abandono (s/n)?")

getchar();

c=getchar();

(p-gt; nelen)--; p> end:

}

void elective()//función principal electiva del estudiante

{

int

printf("1.Consultar cursos disponibles \n");

printf("2. Consultar cursos seleccionados \n");

f("3.volver al menú principal \n");

printf("Por favor ingrese (1~3):\n");

scanf("d", amplificador; i);

cambiar(i)

{

caso(1): trampa(); (2): hcheak(); romper;

case(3): romper

}

}

lista vacíac( )//Información del curso de salida

{

struct couse * p;

p=head1

printf("número de curso Curso Nombre Créditos Curso Número inscrito Límite de número de curso\n");

while(p!=NULL)

{

printf("-8d10s6d8d12d\n" ,p-gt;num1,p-gt;nombre1,p-gt;score,p-gt.nelepeo,p-gt;Melepeo);

p=p-gt;siguiente;

}

}

listas vacías()//generar información del estudiante

{

struct Student * p;

p=head2;

printf("Número de estudiante Nombre del estudiante Número de cursos tomados\n"); >

{

printf("-4d 10s 6d\n", p-gt; num2, p-gt; nombre2, p-gt; nelen

p); =p-gt;next;

}

}

void intoc()//almacenar información del curso

{

ARCHIVO * fp;

struct couse * p;

char filepath[30]

printf("Ingrese la ruta al archivo a la información del curso se guardará: ");

getchar();

gets(filepath);

if((fp=fopen(filepath, "w"))==NULL)

{

printf("\n ¡Error al guardar! ");

salir(0);

}

p=head1;

while(p!=NULL)

{

fprintf(fp, "d s d d d\n", p-gt; num1, p-gt; nombre1, p-gt.score, p-gt; nelepeo, p-gt ;Melepeo);

p=p-

gt; next;

}

fclose(fp);

printf("La información del curso se guarda en s!\n", ruta de archivo); /p>

}

void intos()//almacenar información del estudiante

{

ARCHIVO * fp;

estructura estudiante * p;

char filepath[30];

printf("Ingrese la ruta del archivo que se guardará:

<) p> getchar();

obtiene(ruta de archivo);

if((fp=fopen(ruta de archivo, "w"))==NULL)

{

printf("\ n ¡falló al guardar!")

exit(0);

}

p=head2;

while(p!=NULL)

{

fwrite(p, sizeof(struct Student), 1,

p=p-gt; next;

}

fclose(fp);

printf("Información del estudiante guardada en s!\n", ruta de archivo );

}

void into()//almacenar información

{

int i;

printf("1. Almacenar información del curso/n");

printf ("2. Almacenar información del estudiante/n"); /n" ");

printf("Por favor, ingrese (1~3)/n");

scanf("d", y

);

cambiar(i)

{

caso(1):intoc(); romper

caso(2):intos(); ;

p>

case(3): break

}

}

void store()//mensaje función principal

{

int i;

printf("/t\t system Ver y almacenar información\n");

printf( "1. Ver información del curso\n");

printf("2. Ver información del estudiante\n");

printf("3. Almacenar información\n");

printf("4.Volver al menú principal\n");

printf("Introduzca (1~4):\n"); > scanf("d ",amp;i

);

cambiar(i)

{

caso(1): listac();

caso(2) : listas(); romper;

caso(3): en(); romper

caso(4): romper

}

}

int main()//función principal

{

int i;

inicio:

printf("\n\t\t\t ¡Bienvenido al sistema de selección de cursos para estudiantes! printf("1.Entrada de información del curso\n");

printf("2.Curso gerencia\n");

printf("3.Ingreso de información del estudiante\n");

printf("4.Gestión de información del estudiante\n");

printf("5.Gestión de información del estudiante\n");

printf("6.Gestión de información del estudiante\n");

printf("7.Estudiante Gestión de la información\n");

printf("8.Gestión de la información del estudiante");

printf("5.Selección del estudiante");

printf ("6. Visualización y almacenamiento de información del sistema");

printf ("7.Salir del sistema\n");

printf("\nIngrese la opción de menú (1~). 7):\n");

scanf("d",amp;i);

if(ilt;1 || igt;7)

{

printf("Error de entrada, vuelva a escribir:\n");

ir a inicio

}

switch( i)

{

printf("Error de entrada, vuelva a escribir:\n");

geto start

}

cambiar(i)

{

caso(1):

{

sistema("cls"

inputc();

ir a inicio

romper

}

caso(2); ):

{

{

Esta es la primera vez que intento utilizar esta función.

p> sistema("cls");

gestiónc();

ir a inicio

romper

}

caso(3):

{

sistema("cls");

entradas(); inicio;

ruptura

}

caso(4):

{

sistema("cls ");

gestiones();

ir a inicio; <

romper;

}

caso (5):

{

sistema("cls");

electivo();

ir a inicio

descanso;

}

caso(6):

{

sistema("cls"); p>

tienda();

ir a inicio;

romper

}

caso(7):

p>

{

system("cls");

printf("¡Gracias por usar este sistema!\n\n¡Adiós! \n ");

}

}

}

return(0);

}