Red de conocimiento informático - Conocimiento informático - Diseño de sistema de cursos optativos para estudiantes

Diseño de sistema de cursos optativos para estudiantes

#includelt;stdio.hgt;

#includelt;stdlib.hgt;

#includelt;string.hgt;

#includelt;malloc.hgt;

typedef struct issues

{

int num;

char na[10]

char profesor[ 20];

char wtime[10];

char ttime[10];

int puntuación

estructura sujetos *siguiente; ;

}SUB;

SUB *create_form()

{

SUB *cabeza, *cola, *p;

p>

int num, puntuación;

char na[10], profesor[20], wtime[10], ttime[10];

head=tail=NULL ;

printf("Ingrese la información del curso seleccionado, terminando en 6 cero:\n");

printf("Código del curso nombre de la clase clase del profesor semana número clase tiempo Créditos/n");

scanf("d10s14s10s8s6d",amp;num,amp;na,amp;teacher,amp;wtime,amp;time,amp;ttime,amp;score );

p>

mientras( num!=0)

{

p=(SUB*)malloc(sizeof(SUB));

p- gt; num;

strcpy(p-gt; na, na);

strcpy(p-gt; profesor, profesor

);

strcpy(p -gt; hora, hora);

strcpy(p-gt; hora, hora

puntuación=puntuación

if( cabeza==NULL)

cabeza=p;

else

tail-gt; p> tail=p;

scanf("dssssssd",amp;num,amp;na,amp;teacher,amp;wtime,amp;ttime,amp.score);

}

tail-gt; next=NULL;

return head;

}

void savefile(SUB*head)

{

SUB *p;

ARCHIVO * fp;

fp=fopen("subjects.txt", "w") ;

fprintf(fp, "Bienvenido a la Universidad de Ciencia y Tecnología de Donghua Año académico 2008-2009 Optativa C

ourses System (4-13)\n");

fprintf(fp, "Código del curso Nombre del curso Instructor Semana de clases Tiempo de clases créditos\n");

for( p=cabeza; p; p-gt; siguiente)

fprintf(fp, "6d10s14s10s8s6d", p-gt; num, p-gt; na, p-gt; profesor, p-gt; wtime , p-gt; ttime, p-gt; puntuación);

fclose(fp);

}

void prin(SUB *head)

{

SUB *p;

if (head==NULL)

{

printf("No registro de cursos electivos! \n");

return;

}

printf("Bienvenido al sistema de cursos electivos de la Universidad de Ciencia y Tecnología de Donghua para el año académico 2008-2009 (4-13)\n");

printf("Código del curso Nombre del curso Profesorado Profesores Semana de clase Hora de clase Créditos\n");

for( p=cabeza; p; p-gt; siguiente)

printf("6d10s16s12s12sd", p-gt; num, p-gt; na, p-gt; profesor, p -gt;wtime,p-gt;ttime,p-gt;score);

}

SUB *inset(SUB *cabeza)

{

SUB *ptr, *ptr2, *subj;

char ch, ch1;

printf("si se procede o no con la inserción del curso, si necesitas insertar, presiona Intro para construirlo, si no, ¡presiona la barra espaciadora para finalizar! \n");

ch=getchar();

while(ch!=' '){

subj=(SUB*)malloc(sizeof (SUB));

ptr=subj;

printf("Ingrese la información del curso a insertar:\n"); " , subj-gt; num, subj-gt; na, subj-gt; profesor, subj-gt; wtime, subj-gt; ttime, subj-gt; puntuación);

if( head= = NULL){

cabeza=ptr;

cabeza-gt; siguiente=NULL

}

else{

for(ptr2=head;ptr2;ptr2=ptr2-gt;siguiente)

if(ptr2-gt;next==NULL){

ptr2-gt; siguiente=subj;

subj-gt; siguiente=NULL

romper

}

ch= 'a';

}

printf( "Para continuar, presione enter build, para finalizar presione espacio:\n"); ();

ch=getchar();

}

devolver cabeza;

}

SUB *del(SUB *cabeza)

{

SUB*p1, *p2

char ch,

int num; ;

printf("Ya sea para proceder o no con la eliminación del curso, para hacerlo presione enter, para no hacerlo presione espacio:\n");

ch=getchar() ;

while(ch!=' ')

{

printf("Ingrese el código del curso que desea eliminar:\n");

scanf("d",amp;num);

if(head-gt;num==num){

p2=head;

cabeza= cabeza-gt; siguiente;

gratis(p2

}

if(cabeza==NULL)

return NULL;

p1=cabeza;

p2=cabeza-gt;

while( p2!=NULL){

if(p2-gt; num==num){

p1-gt; siguiente=p2-gt;

gratis(p2);

}

else

p1=p2;

p2=p1- gt;

}

printf("Para continuar con la eliminación presione enter, para finalizar presione espacio:\n");

ch1=getchar()

ch=getchar(); >

}

return head;

}

typedef struct Student

{

int número ;

int clases;

char nombre chino[16];

título char [5][12];

estructura estudiante * otro;

}STU;

void scanf_form(SUB *

head)

{

int i, recuento, número, clases;

char ch, título[3][12], nombre chino[16];

scanf("dd16s",amp;número,amp;clases,amp;nombre chino);

for(i=0;ilt;5;i)

{

scanf ("s", amp; título[i]);

recuento

if(count==3)

{

ch=getchar();

if(ch!=' ')

{título[3][12]='0 ';

título[4][12]='0';

i=5

ch='a'; /p>

}

si(count==4)

{

ch=getchar();

si (ch!=' ')

{título[4][12]='0'

i=5

ch='a'; ;

}

}

for(i=0;ilt;5;i)

{

if(strcmp(title[i][12],head- gt;na)!=0 amp;title[i][12]!= '0')

{ printf(" El curso el nombre que ingresó es incorrecto, ingréselo desde nuevo: \n");

scanf_form();

}

}

}

}

}

STU *study_form(SUB*head)

{

STU * mano, *alto, *q;

int i;

char ch,

mano=alto=NULL; printf("Ingresa tus datos personales y el nombre de la clase que estás tomando, terminado en 4 ceros:\n");

printf("Nota: Cada estudiante toma al menos 3 cursos, presiona ingrese para continuar si es mayor que 3, termine con un espacio:\n");

scanf_form();

while(number! =0)

{

q=(STU*)malloc(sizeof(STU));

q-gt; número=número

q-gt; clases=clases;

strcpy(p-gt; nombre chino, nombre chino

for(i=0; ilt; 5; i )<

/p>

strcpy(p-gt; título[i], título[i][12]);

if(hand=NULL)

hand=q;

else

tall-gt; otro=q;

tall=q

scanf_form(); p> for(i=0;ilt;5;i)

{

if(strcmp(title[i][12],head-gt;na)!=0amp ;amp; titli[i][12]!= '0')

{ printf("El nombre del curso que ingresó es incorrecto, ingréselo desde nuevo:\n");

scanf_form();

}

}

}

tall-gt; otro=NULL;

devolver mano;

}

}

anular archivos guardados (STU*mano)

{

STU *q;

ARCHIVO *fq;

fq=fopen("studennt.txt", "w"); Tabla de información de selección de estudiantes:\n");

for(q=hand; q; q=q-gt; other)

fprintf(fq, "16d10d16s16s16s16s16s16s", q- gt; número, q-gt; clases, q-gt; nombre chino, q-gt; título [0], q-gt; 3], q-gt; título[4]);

fclose(fq);

}

void prins(STU*mano)

{

STU *q;

if(head==NULL)

{

printf("Hay ¡no hay registro de la información de selección de cursos de los estudiantes! \n");

return;

}

printf("Lista de información de selección de cursos de los estudiantes:\n" );

printf("Número de estudiante Nombre de clase Nombre de clase:\n");

for(q=hand;q;q-gt;número)

printf("16d10d16s16s16s16s16s16s", q-gt; número, q-gt; clases, q-gt; nombre chino, q-gt; título [0], q-gt; título [1], q-gt; título [2], q-gt; título [3], q-gt; título [4]);

}

STU *inserts(SUB*cabeza, STU *mano)

{

UTE *prt, *prt2, *stuj

;

int i;

char ch, ch1;

printf("Si se debe continuar con la inserción de información de selección de cursos del estudiante; si es necesario, presione enter build, para finalizar por favor presione 0:\n");

ch=getchar();

while(ch!=' ')

{

stuj=(STU*) malloc(sizeof(STU));

prt=stuj;

printf("Ingrese información sobre la selección de cursos del estudiante que se insertará: \n");

scanf_form();

if(hand==NULL)

{hand=prt;

mano -gt; otro=NULL;

}

más

{for(prt2=mano; prt2; prt2=prt2-gt; otro)

if(prt2-gt; otro==NULL)

{ prt2-gt; otro=stuj;

stuj-gt; otro=NULL;

break;

}

ch='a';

}

printf("Para continuar insertando presione enter para construir, para finalizar presione espacio:\n");

ch1=getchar();

ch=getchar();

}

devolver mano

}

STU *dells(STU *mano)

{

STU *q1, *q2 ;

char ch, ch1;

int number;

printf("Si se debe proceder con la eliminación de la información de selección de cursos del estudiante, para eliminar, presione ingrese build, para no continuar, presione espacio:\n");

ch=getchar();

while(ch! =' ')

{

printf("Ingrese el número de la escuela que desea eliminar:\n");

scanf("d", amp; número);

if (mano-gt; número==número)

{

q2=mano;

mano=mano -gt;

if (mano=NULL)

return NULL

q1=mano

q2=ha;

nd-gt; otro;

while(q2)

{if(q2-gt;número==número)

{q1- gt;other=q2-gt;other;

gratis(q2);

}

else

q1=q2;

q2=q1-gt; other;

}

printf("Para continuar con la eliminación presione enter build, para finalizar presione espacio:\n");

ch1=getchar();

ch1=getchar();

}

devolver mano

}

búsqueda nula (STU*mano)

{

int a, número

int t=1; >

char type[10], ch, ch1;

STU *prt;

printf("Si se debe ingresar la búsqueda.

Presione la tecla Enter para ingresar, termine con espacio: "/n");

ch=getchar();

while(ch!=' ')

{

printf("Ingrese el número del estudiante a consultar:\n");

for(prt=hand; prt; prt=prt-gt; other )

{

if(número=prt-gt; número)

{printf("16d10d16s16s16s16s16s16s16s16s", prt-gt; número, prt-gt; clases, prt-gt; nombre chino, prt-gt; título[0], prt-gt; título[2], prt-gt; 4] );

t=0;

}

if(t!=0)

printf("¡No encontrado!\n") ;

t=1;

}

printf("Para continuar buscando presione enter, para finalizar presione espacio:\n");

ch1=getchar();

ch=getchar();

}

}

}

void main()

{

SUB *head=create_form();

savefile(head

prin); (cabeza );

cabeza= inset(cabeza);

cabeza= del(cabeza);

STU *mano=study_form(cabeza); p>

savefiles(mano);

prins(mano);

mano=intserts(cabeza, mano);

mano=dells(mano);

buscar(mano);

}