Diseño de sistema de cursos optativos para estudiantes
#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>
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) p>
{
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);
}