База данных "Студенты"

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

?ия библиотек необходимых для работы определенных функций.

#include - для работы с файлами, структурами и функциями.

#include - для функции strcmp().

#include - для функции очистки экрана. [4].

Определение глобальных объектов: структурного типа, указателей структуры, массив структур.

struct student

{name[20];inik[4];curs;fak[5];jobname[20];job[9];usp;student *prior;student *next;

}[100];int M=100;control

{nb;nf;student *bbeg;student *bend;student *fbeg;student *fend;

} ctrl;

Связь все элементов массива структур в список свободных элементов и установка начальных значений управляющих переменных.

int init(void)

{student *point=st;i;.nb=0;.nf=0;.bbeg=NULL;.bend=NULL;.fbeg=st;.fend=st;=st;("---------------------------");("|inicializacia massiva|");

printf("-----------------------------\n\n\n");(i=0;i<M-1;i++)

{(ctrl.nf!=0)

{-> prior=point-1;-> next=point+1;

}

{-> prior=NULL;-> next=point+1;

}++;.nf++;.fend++;

}.nf++;->prior=point-1;-> next=NULL;0;

}fr(struct student *ptr)

{(ctrl.nb==M)

{>prior=NULL;>next=NULL;.fbeg->prior=ptr;.fbeg=ptr;

}

prior=NULL;>next=ctrl.fbeg;.fbeg->prior=ptr;.fbeg=ptr;">{>prior=NULL;>next=ctrl.fbeg;.fbeg->prior=ptr;.fbeg=ptr;

}.nb--;.nf++;

return 0;

}

Возвращение свободного элемента в список свободных элементов.

int fr(struct student *ptr)

Выполняется действия по поиску нужного элемента в списке. Аргументом поиска элемента является фамилия студента. Для сравнения строк (фамилия, введенная терминала, и фамилия в структуре) используется стандартная библиотечная функция strcmp(), параметры которой являются указатели на сравниваемые строки.

struct student *find(char *nam)

{i;student *ptf;

ptf=ctrl.bbeg;(i=0;i<ctrl.nb;i++)

{((strcmp(nam,ptf->name))==0)ptf;=ptf->next;

}NULL;

}

Поиск нужного элемента в списке занятых элементов и удаление найденного элемента (возврат элемента в список свободных элементов).

int delet (void)

{nam[20];

int i;student *ptr;("--------------------------");("|Funkcia udalenia elementa|");("---------------------------\n");(ctrl.nb==0)

{("Spicok zaniatih elementov pust\n");-1;

}("Vvedite Familiu:\n");("%s",nam);((ptr=find(nam))==0)

{("Familia ne neidena\n");

return -1;

}(ptr==ctrl.bbeg)

{(ctrl.nb==1)

{.bend=NULL;(ptr);0;

}

{.bbeg=ptr->next;.bbeg->prior=NULL;(ptr);0;

}

}

{(ptr==ctrl.bend)

{>prior->next=NULL;.bend=ptr->prior;(ptr);0;

}

{>prior->next=ptr->next;>next->prior=ptr->prior;

fr(ptr);0;

}

}

}

Вставка нового элемента в список занятых элементов. Ввод сведений о новом студенте: фамилия, имя, отчество, курс, факультет, название специальности, код группы, успеваемость. Подключение элемента к списку занятых элементов.

int input(void)

{

struct student *ptr;

printf("-------------------------");("|funkcia vstavki elemntov |");("----------------------------\n\n");(ctrl.nf==0)

{("Svobodnih elementov net\n");

return -1;

name);("Vvediteiniciali:");("%s",ptr->inik);("Vveditecurs:");("%d",&ptr->curs);("Vveditefakultet:");("%s",ptr->fak);("Vveditenaimenovaniespecialnosti:");("%s",ptr->jobname);("Vveditecodgruppi:");("%s",ptr->job);("Vvediteuspevaemost:");("%d",&ptr->usp);(ctrl.nf==1)">} {= ctrl.fbeg;("Vvedite familiu:");(" %s",ptr->name);("Vvedite iniciali:");(" %s",ptr->inik);("Vvedite curs:");(" %d",&ptr->curs);("Vvedite fakultet:");(" %s",ptr->fak);("Vvedite naimenovanie specialnosti:");(" %s",ptr->jobname);("Vvedite cod gruppi:");(" %s",ptr->job);("Vvedite uspevaemost:");(" %d",&ptr->usp);(ctrl.nf==1)

next=NULL;>prior=ctrl.bend;.bend->next=ptr;.bend=ptr;.fend=NULL;">{.fbeg=NULL;>next=NULL;>prior=ctrl.bend;.bend->next=ptr;.bend=ptr;.fend=NULL;

}

next;>next=NULL;>prior=ctrl.bend;.bend->next=ptr;.bend=ptr;.fbeg->prior=NULL;">{(ctrl.nb==0).bbeg=ptr;.fbeg=ptr->next;>next=NULL;>prior=ctrl.bend;.bend->next=ptr;.bend=ptr;.fbeg->prior=NULL;

}.nb++;.nf--;0;

} }

Печать занятых элементов структуры.

int print(void)

{i;student *ptr;=ctrl.bbeg;(" DATEBASE \"STUDENT\"\n\n");(ctrl.nb==0)

{(" __________________\n");("|Baza dannih pusta|\n");(" ------------------\n\n\n");-1;

}("________________________________________________________________________________");("|NO| Familia | I.O |Kurs|Fakultet| Sprcialnost | Kod |Uspevaemost|");("| | | | | | | | |");("|--|-----------------|-----|----|--------|----------------|--------|-----------|");(i=0;i<ctrl.nb;i++)

{("|| s|",i+1,ptr->name);(" %4s|",ptr->inik);(" |",ptr->curs);(" %5s|",ptr->fak);(" s|",ptr->jobname);(" %7s|",ptr->job);(" |",ptr->usp);("|--|-----------------|-----|----|--------|----------------|--------|-----------|");=ptr->next;

}("\n Obshee chislo zapisei = %d\n",i);

return 0;

}

Запись в файл на диске всех элементов массива структур. Открытие файла для записи.

int save(void)

{i,k;student *ptr;*c;*pti;*fl;((fl=fopen("bdd.txt","w"))==NULL)

Загрузка из файла всего массива структур. Открытие файла для чтения.load(void)

{i;student *ptr;*pti;*c,d;*fl;((fl=fopen("bdd.txt","r"))==NULL)

Поиск студента по фамилии. Поиск нужного элемента в списке занятых элементов. Печать найденного элемента.

int postav (void)

{fam[20];i;

struct student *ptr;("----------------------------");("|Funkcia poiska studenta|");("---------------------------\n");(ctrl.nb==0)

{("Spicok zaniatih elementov pust\n");-1;

}("Vvedite Familiu:\n");("%s",fam);((ptr=find(fam))==0)

{("\nFamilia ne neidena\n");

return -1;

}(ptr==ctrl.bbeg)

{(ctrl.nb==1)

{(" Student naiden\n");("_____________________________________________________________________________\n");("| Familia | I.O |Kurs|Fakultet| Sprcialnost | Kod |Uspevaemost|\n");("| | | | | | | |\n");("|-----------------|-----|----|--------|----------------|--------|-----------|\n");("| s|",ptr->name);(" %4s|",ptr->inik);(" |",ptr->curs);(" %5s|",ptr->fak);(" s|",ptr->jobname);(" %7s|",ptr->job);(" |\n",ptr->usp);("|-----------------|-----|----|--------|----------------|--------|-----------|\n\n");

}

Механизм управления базой данных с помощью меню. Вывод меню на экран. Ввод и обработка номера работы программы.

void main(void)

{numb[10];();(1)

{("\t MENU \n");("\t______________________________________\n");("\t|1| Vvod svedenii o novom sotrudnike |\n");("\t|-|----------------------------------|\n");("\t|2| Udalenie svedenii o sotrudnike |\n");("\t|-|----------------------------------|\n");("\t|3| Pechat soderjimogo bazi dannih |\n");("\t|-|----------------------------------|\n");("\t|4| Sohranenie bazi dannih v fail |\n");("\t|-|----------------------------------|\n");("\t|5| Zagruzka bazi dannih iz faila |\n");

printf("\t|-|----------------------------------|\n");("\t|6| Inicializacia bazi dannih |\n");("\t|-|----------------------------------|\n");("\t|7| Poisk studenta |\n");("\t|-|------