Разработка базы данных для расписания занятий

Контрольная работа - Компьютеры, программирование

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

МГТУ имени Баумана

 

 

 

 

 

 

 

 

 

 

 

 

 

Пояснительная записка по курсовому проекту на тему:

”Разработка базы данных для расписания занятий”

 

 

 

 

 

 

 

 

 

 

 

 

МОСКВА 2006

 

Содержание

 

1. Введение

  1. Постановка задачи
  2. Описание работы

2. Алгоритмы используемые в процессе выполнения проекта

  1. Приложение
  2. Литература

 

1. Введение

 

  1. Постановка задачи

 

Задачей данной курсовой работы является написание базы данных применимой для расписания занятий в университете.

Программа реализована на языках программирования “C++”.База данных содержит список предметов. С расписанием занятий ведётся такая основная работа как:

  1. ввод новой записи
  2. изменение базы данных
  3. просмотр базы данных
  4. поиск данных и т.д.

 

1.2 Описание работы

 

Реализация базы данных включает в себя следующие компоненты:

- Вводиться группа, подгруппа,

- Вводятся неделя, день недели и время

- Вводятся предмет и фамилия преподавателя

- Выбирается аудитория

 

2. Алгоритмы используемые в процессе выполнения проекта

 

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

 

struct zap

{

char fio_teacher[20];

int n_pdgrup;

char n_audit[6];

char predmet[10];

struct ti

{

int n_ned;

char den_ned[11];

struct wat

{

int fst_time,scd_time;

}watch;

}time;

char n_group[6];

};

struct spisok

{

zap zip[1];

struct spisok *a;

};

Поиск записи происходит по следующему алгоритму:

void outzap()

{

int h,time_zip,time_zip_end,time_zill,x_up,p;

char chose;

textbackground(BLACK);

window(1,1,80,23);

clrscr();

textcolor(WHITE);

window(27,5,50,20);

if (kolzap==0)

{

puts("Записей нет!");

getche();

exit(0);

}

window(1,1,80,23);gotoxy(10,3);

gotoxy(27,6); puts("Введите группу:"); scanf("%s",zill[1].n_group);

gotoxy(27,7); puts("Введите подгруппу:"); scanf("%d",zill[1].n_pdgrup);

gotoxy(27,8); puts("Введите неделю:"); scanf("%d",zill[1].time.n_ned);

gotoxy(27,9); puts("Введите день недели:"); scanf("%s",zill[1].time.den_ned);

gotoxy(20,10); puts("Вывести расписание на день или по времени(y/n)");

chose=getche();

switch (chose)

{

case y:

{

u2=u1;

clrscr();

x_up=5;

p=0;

while (u2!=NULL)

{

if ((u2->zip[1].n_group==zill[1].n_group)&&(u2->zip[1].n_pdgrup==zill[1].n_pdgrup)&&

zip[1].time.n_ned==zill[1].time.n_ned)&&(u2->zip[1].time.den_ned==zill[1].time.den_ned))">(u2->zip[1].time.n_ned==zill[1].time.n_ned)&&(u2->zip[1].time.den_ned==zill[1].time.den_ned))

{

gotoxy(20,x_up);

zip[1].time.watch.scd_timezip[1].time.watch.scd_time);

zip[1].time.watch.fst_time,":",u2->zip[1].time.watch.scd_time);">else printf("%d",u2->zip[1].time.watch.fst_time,":",u2->zip[1].time.watch.scd_time);

gotoxy(27,x_up); printf("%s",u2->zip[1].predmet);

gotoxy(39,x_up); printf("%s",u2->zip[1].n_audit);

x_up=x_up+1;

p=1;

}

u2=u2->a;

}

if (p==0)

{

gotoxy(20,6);

puts("Возможно группа задана неверно или у нее нет пар.");

}

scanf("%d",&a);

getche();

exit(0);

}

case n:

при нажатии клавиши “n” запись ищется по времени.

3. Приложение

 

#include

#include

#include

#include

FILE *f;

typedef char arr_string[7][25];

struct zap

{

char fio_teacher[20];

int n_pdgrup;

char n_audit[6];

char predmet[10];

struct ti

{

int n_ned;

char den_ned[11];

struct wat

{

int fst_time,scd_time;

}watch;

}time;

char n_group[6];

};

struct spisok

{

zap zip[1];

struct spisok *a;

};

struct zap zill[1];

struct spisok *sled,*u1,*u2,*pred,*pred2;

int i,j,col_pr,col_pn,kolzap,l,pl,b;

char kbd,kod,yes,a;

char dg[20],fm[20],filename[20];

int p;

arr_string s,d;

void outdone();

void menu();

void newzap();

void delzap();

void outzap();

//-----------------------------------------------------------------------------

void schet()

{

kolzap=0;

u2=u1;

while (u2!=NULL)

{

kolzap=kolzap+1;

u2=u2->a;

}

}

//-------------------------------------------------------------------------------------

void formir_spisok()

{

u1=NULL;

u2=NULL;

if (!feof(f)) exit(0);

u1=(struct spisok *)malloc(sizeof(struct spisok));

fread(u1->zip,sizeof u1->zip,1,f);

u1->a=NULL;

u2=u1;

while (feof(f)!=0)

{

u2->a=(struct spisok *)malloc(sizeof(struct spisok));

u2=u2->a;

fread(u2->zip,sizeof u1->zip,1,f);

u2->a=NULL;

}

pred=u2;

fclose(f);

}

//------------------------------------------------------------------------------

void menudiag()

{

textbackground(BLACK);

window(1,1,80,23);

clrscr();

textbackground(BLACK);

window(27,5,47,5);

textbackground(RED);

textcolor(GREEN);

printf(d[1]);

window(27,7,47,7);

textbackground(BLACK);

textcolor(GREEN);

printf(d[2]);

window(27,9,47,9);

textbackground(BLACK);

textcolor(GREEN);

printf(d[3]);

i=5;j=1;p=1;

col_pr=GREEN;

col_pn=RED;

}

//-------------------------------------------------------------------------------

void quit()

{

outdone();

exit(0);

}

//---------------------------------------------------------------------------

void quit2()

{

exit(0);

}

//---------------------------------------------------------------------------

void move_line(int kol_proced,void (*proced)(),void (*proced1)(),void (*proced2)(),void (*proced3)(),void (*proced4)(), arr_string string_arr)

{

proced();

do

{

kbd=getche();

if ((kbd!=27)&&(kbd!=13)&&(kbd!=0))

{