Разработка базы данных для расписания занятий
Контрольная работа - Компьютеры, программирование
Другие контрольные работы по предмету Компьютеры, программирование
МГТУ имени Баумана
Пояснительная записка по курсовому проекту на тему:
”Разработка базы данных для расписания занятий”
МОСКВА 2006
Содержание
1. Введение
- Постановка задачи
- Описание работы
2. Алгоритмы используемые в процессе выполнения проекта
- Приложение
- Литература
1. Введение
- Постановка задачи
Задачей данной курсовой работы является написание базы данных применимой для расписания занятий в университете.
Программа реализована на языках программирования “C++”.База данных содержит список предметов. С расписанием занятий ведётся такая основная работа как:
- ввод новой записи
- изменение базы данных
- просмотр базы данных
- поиск данных и т.д.
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))
{