2. Блок-схемы:
2.1 Общий принцип работы программы:
Рис 1. – Структурная схема программы
2.2 Блок-схемы основных функций программы:
Рис 2. – Блок-схема главной функции–main():
Рис 3. – Функции create(), создает файл базы данных
Рис 4. – Функции open(), открывает файл базы данных
Рис 5. Функции load(), загружает данные из файла в базу данных
Рис 6. Функции save(), сохраняет изменения в файле базы данных
Рис 7. Функции add(), добавляет запись в базу данных
Рис 8. – Функции view(), осуществляет просмотр базы данных
Рис 9.Функции edit(), изменяет содержимое записи базы данных
Рис 10. – Функции delet(), удаляет запись из базы данных
Рис 11. – Функции find(), поиск записи с базе данных
Рис 12. Функции sort(), сортировка быза данных
Рис 13. – Функции sort1()…sort5()1,осуществляют сортировку базы данных
Рис 14. – Функции replace(int x), меняет местами значения элементов массив
1 Функции sort1(), sort2(),sort3(), sort4(),sort5() аналогичны с той лишь разницей, что они сравнивают разные поля структуры kyrs
3. Тестирование
На рисунке 1представлено главноеменю программы,котороепозволяет осуществить открытие базы данных,созданиебазы данных иливыход из программы.
Рис 1. – Главное меню программы
На рисунке 2 представлено меню программы для работы с БД, позволяющее открытие, редактирование,поиск и сортировку базы данных
Рис 2. – Меню выбора различных действий для работы с базой данных
На рисунке 3осуществлён просмотр базы данных
Рис 3. – Просмотр базы данных
На рисунке 4 представлена процедура редактирования БД
Рис 4. – Изменение записи в базе
На рисунке 5 представлен результат поиска в БД по полю“Номер отдела”
Рис 5. Результаты поиска
На рисунках (6,7) представлена сортировка БД по полю “F.I.O”
Рис 6. – Сортировка
Рис7. Вид БД после сортировки по полю «F.I.O»
Приложение
Листинг программы
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<stdlib.h>
#include<string.h>
#include<iostream.h>
#include"G:\temp\kyrs_ope.cpp"
#include"G:\temp\kyrs_cre.cpp"
//Constations ::begin
const int GRAPH_REW=3;
// ::end
//Global variable ::begin
char ch,*file;
int err=0, size=0;
// ::end
//Fuction for graphics ::begin
void intro();
void intro_table();
void intro_graph(int, int);
// ::end
//BEGIN PROGRAMM e2e4;
void main(){
clrscr();intro();closegraph();clrscr();
textmode(3); _setcursortype(_NOCURSOR);textcolor(14);
cprintf("\r\n");cprintf("\r\n");cprintf("\r\n");cprintf("\r\n");cprintf("\r\n");
for (int i=0;i<30;i++)cprintf(" ");cprintf("%c",char(201));
for (i=0;i<16;i++)cprintf("%c",char(205));cprintf("%c\r\n",char(187));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c Select action: %c\r\n",char(186), char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c1. Open table %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c2. Create table %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c3. Exit %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c",char(200));
for (i=0;i<16;i++)cprintf("%c",char(205));cprintf("%c\r\n",char(188));
do ch=getch();while((ch!='1')&&(ch!='2')&&(ch!='3'));
if (ch=='3') exit(0);
if (ch=='2') create();
if (ch=='1') {
textcolor(2);
while (err==0){
for (i=0;i<20;i++)cprintf(" ");cprintf("Please enter name file: ");
char *name;
FILE *f;
scanf("%s",name);
if ((f=fopen(name,"r"))==NULL){
textcolor(4);
for (i=0;i<20;i++)cprintf(" ");cprintf("File not found!\r\n");
textcolor(2);}else{
err=1;
file=new char(strlen(name));
strcpy(file,name);
fclose(f);
open(file);
}
}
delete file;
}
//END PROGRAMM
//Graphics module
//BEGIN
void intro(){
int gd=DETECT, gm, t=0,c=0,f=0,i,j
initgraph(&gd, &gm, "");setcolor(2);setwritemode(0);
intro_table();
while (c==0){
intro_graph(t,200);setcolor(0);intro_graph(t,200);setcolor(2);
t++;if (t==580) {t=0;f++;}; if (f==GRAPH_REW) c=1;}
intro_graph(100,200);
for(i=0; i<20; i++)printf("\n");
printf("Press any key...");getch();}
void intro_table(){
printf("%c",char(201));for(int i=0;i<78;i++)printf("%c",char(205));
printf("%c%c",char(187),char(186));for(i=0;i<78;i++)printf(" ");
printf("%c%c",char(186),char(186));for(i=0;i<32;i++)printf(" ");
printf("Data Base v1.0");for(i=0;i<32;i++)printf(" ");
printf("%c%c",char(186),char(186));for(i=0;i<78;i++)printf(" ");
printf("%c%c",char(186),char(186));for(i=0;i<78;i++)printf(" ");
printf("%c%c",char(186),char(186));for(i=0;i<30;i++)printf(" ");
printf("Vedomost' zarplaty");for(i=0;i<30;i++)printf(" ");
printf("%c%c",char(186),char(186));for(i=0;i<78;i++)printf(" ");
printf("%c%c",char(186),char(200));for(i=0;i<78;i++)printf("%c",char(205));
printf("%c%c",char(188));}
void intro_graph(int a, int b){
moveto(a,b-1);
lineto(a,b+100);moveto(a,b+100);lineto(a+50,b+100);arc(a+80,b+100,0,180,30);
circle(a+80,b+100,25);circle(a+80,b+100,15);
moveto(a+110,b+100);lineto(a+200,b+100);moveto(a+200,b+100);lineto(a+200,b-1);
moveto(a+200,b-1);lineto(a,b-1);moveto(a+200,b+100);lineto(a+210,b+100);
moveto(a+200,b+70);lineto(a+210,b+70);moveto(a+210,b+100);lineto(a+210,b-1);
moveto(a+210,b-1);lineto(a+290,b-1);moveto(a+290,b-1);lineto(a+310,b+35);
moveto(a+210,b+100);lineto(a+220,b+100);arc(a+250,b+100,0,180,30);
circle(a+250,b+100,25);circle(a+250,b+100,15);arc(a+250,b+100,35,120,35);
moveto(a+230,b+70);lineto(a+230,b+7);moveto(a+230,b+7);lineto(a+270,b+7);
moveto(a+270,b+7);lineto(a+290,b+35);moveto(a+290,b+35);lineto(a+230,b+35);
moveto(a+290,b+35);lineto(a+290,b+79);moveto(a+290,b+79);lineto(a+280,b+79);
moveto(a+310,b+35);lineto(a+310,b+100);moveto(a+310,b+100); lineto(a+280,b+100);
arc(a+155,b+29,10,270,20); moveto(a+150,b+4);lineto(a+150,b+94);
arc(a+155,b+69,170,90,20); moveto(a+160,b+4);lineto(a+160,b+94);
}
//END
//kyrs_ope.cpp
extern char ch;
extern int size;
int fs=0;
const int tab=1;
const int zag=4;
const int tex=7;
struct kyrs {
char na[30];
float pl, ze;
int et, ye, id;
} list[500], tmp, fin[500];
void load(char *base);
void save(char *base);
void add(char *base);
void view(char *base);
void edit(char *base);
void delet(char *base);
void find(char *base);
void sort(char *base);
void sort1();
void sort2();
void sort3();
void sort4();
void sort5();
void replace(int);
void open(char *base){
load(base);
clrscr();
textcolor(9);
cprintf("\r\n");cprintf("\r\n");cprintf("\r\n");cprintf("\r\n");cprintf("\r\n");
for (int i=0;i<30;i++)cprintf(" ");cprintf("%c",char(201));
for (i=0;i<16;i++)cprintf("%c",char(205));cprintf("%c\r\n",char(187));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c Select action: %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c1. View table %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c2. Edit table %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c3. Add record %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c4. Delete %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c5. Find %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c6. Sort %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c7. Exit %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c",char(200));
for (i=0;i<16;i++)cprintf("%c",char(205));cprintf("%c\r\n",char(188));
do ch=getch();
while((ch!='1')&&(ch!='2')&&(ch!='3')&&(ch!='4')&&(ch!='5')&&(ch!='6')&&(ch!='7'));
switch (ch){
case '1': view(base);break;
case '2': edit(base);break;
case '3': add(base);break;
case '4': delet(base);break;
case '5': find(base);break;
case '6': sort(base);break;
case '7': exit(0); break;
default: exit(0);
}}
void sort(char *base){
clrscr();
textcolor(5);
cprintf("Please select field:\r\n1.F.I.O 2.Nomer otdela 3.Tabel'niy nomer 4.Kol-vo rab. chasov 5.Zarplata\n6.Back to menu");
do ch=getch();
while((ch!='1')&&(ch!='2')&&(ch!='3')&&(ch!='4')&&(ch!='5')&&(ch!='6'));
switch (ch){
case '1': sort1();break;
case '2': sort2();break;
case '3': sort3();break;
case '4': sort4();break;
case '5': sort5();break;
case '6': open(base);break;
default: exit(0);}
textcolor(15);save(base);
cprintf("\r\nSorting...OK! View base");
getch();open(base);}
void sort1(){
int i,j;
for (i=0; i<size; i++)
for (j=0; j<size; j++)
if (strcmp(list[j].na,list[j+1].na)>0) replace(j);
}
void sort2(){
int i,j;
for (i=0; i<size; i++)
for (j=0; j<size; j++)
if (list[j].pl<list[j+1].pl) replace(j);}
void sort3(){
int i,j;
for (i=0; i<size; i++)
for (j=0; j<size; j++)
if (list[j].et<list[j+1].et) replace(j);}
void sort4(){
int i,j;
for (i=0; i<size; i++)
for (j=0; j<size; j++)
if (list[j].ye<list[j+1].ye) replace(j);}
void sort5(){
int i,j;
for (i=0; i<size; i++)
for (j=0; j<size; j++)
if (list[j].ze<list[j+1].ze) replace(j);}
void replace(int x){
strcpy(tmp.na,list[x].na);
tmp.pl=list[x].pl;tmp.et=list[x].et;
tmp.ye=list[x].ye;tmp.ze=list[x].ze;
strcpy(list[x].na,list[x+1].na);
list[x].pl=list[x+1].pl;list[x].et=list[x+1].et;
list[x].ye=list[x+1].ye;list[x].ze=list[x+1].ze;
strcpy(list[x+1].na,tmp.na);
list[x+1].pl=tmp.pl;list[x+1].et=tmp.et;
list[x+1].ye=tmp.ye;list[x+1].ze=tmp.ze;
strcpy(tmp.na, "");
tmp.pl=0;tmp.et=0;tmp.ye=0;tmp.ze=0;}
void find(char *base){
clrscr();
textcolor(5);cprintf("Please enter find record:\r\n");
printf("F.I.O: ");cin.getline(tmp.na,30);
printf("Nomer otdela (m^2): ");scanf("%f",&tmp.pl);
printf("Tabel'niy nomer: ");scanf("%u",&tmp.et);
printf("Kol-vo rab. chasov: ");scanf("%u",&tmp.ye);
printf("Zarplata (t. rub.): ");scanf("%f",&tmp.ze);
char *css;int t=0;
for (;t<=strlen(tmp.na);t++){
css=strchr (tmp.na,' '); if (css) *(css)='_';}
int j=0,i=0;
for (;j<=size;j++)
if ((strcmp(tmp.na,list[j].na)==0)||(tmp.pl==list[j].pl)||(tmp.et==list[j].et)||(tmp.ye==list[j].ye)||(tmp.ze==list[j].ze)){
strcpy(fin[i].na,list[j].na);
fin[i].pl=list[j].pl;fin[i].et=list[j].et;
fin[i].ye=list[j].ye;fin[i].ze=list[j].ze;
fin[i].id=list[j].id;i++;}
fs=--i;
strcpy(tmp.na, "");
tmp.pl=0;tmp.et=0;tmp.ye=0;tmp.ze=0;
getch();
textcolor(tab);int z,l,p=0;clrscr();
cout<<char(201); for(z=1; z<=3; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=16; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=15; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=8; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=15; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=15; z++)cout<<char(205);
cout<<char(187)<<"\n";
cout<<char(186); textcolor(zag); cprintf("%3s","ID"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%16s","F.I.O"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","Nomer otdela"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%8s","T.nomer"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","Rab. chasi"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","Zarplata"); textcolor(tab);
cout<<char(186)<<"\n";
cout<<char(204); for(l=1; l<=3; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=16; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=15; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=8; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=15; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=15; l++)cout<<char(205);
cout<<char(185)<<"\n";
for(z=0; z<=fs; z++){
cout<<char(186); textcolor(tex); cprintf("%3u",fin[z].id);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%16s", fin[z].na);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%15u", fin[z].pl);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%8s", fin[z].et);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%15u", fin[z].ye);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%15.2f", fin[z].ze);textcolor(tab);
cout<<char(186)<<"\n";
if (z<=(fs-1)){
cout<<char(204);
for(l=1; l<=3; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=16; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=15; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=8; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=15; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=15; l++)cout<<char(205); cout<<char(185)<<"\n";}
p++;
if (p==10){
p=0;getch();}}
cout<<char(200);
for(z=1; z<=3; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=16; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=15; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=8; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=15; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=15; z++)cout<<char(205); cout<<char(188)<<"\n";
getch();open(base);}
void delet(char *base){
clrscr();int i,j;
textcolor(1);cprintf("ID: ");scanf("%u",&i);--i;
if (i==size) --size;else{
for (j=i;j<size;j++){
strcpy(list[j].na,list[j+1].na);
list[j].pl=list[j+1].pl;
list[j].et=list[j+1].et;
list[j].ye=list[j+1].ye;
list[j].ze=list[j+1].ze;
}--size;}
textcolor(4);cprintf("\r\nDelete record %u...OK!\r\n",i+1);
getch();save(base);open(base);}
void edit(char *base){
clrscr();int i;
textcolor(1);cprintf("ID: ");scanf("%u",&i);--i;
cprintf("\r\nOLD:\r\n");
printf("F.I.O : %30s\n",list[i].na);
printf("Nomer Otdel: %30.2f\n",list[i].pl);
printf("Tabel'niy nomer : %30u\n",list[i].et);
printf("Kol-vo rab. chasov : %30u\n",list[i].ye);
printf("Zarplata (t. rub.): %30.2f\n",list[i].ze);
cprintf("\r\nNEW:\r\n");
printf("F.I.O: ");cin.getline(tmp.na,30);
printf("Nomer otdela: ");scanf("%f",&tmp.pl);
printf("Tabel'niy nomer: ");scanf("%u",&tmp.et);
printf("Kol-vo rab. chasov: ");scanf("%u",&tmp.ye);
printf("Zarplata (t. rub.): ");scanf("%f",&tmp.ze);
char *css;int t=0;
for (;t<=strlen(tmp.na);t++){
css=strchr (tmp.na,' '); if (css) *(css)='_';}
strcpy(list[i].na,tmp.na);
list[i].pl=tmp.pl;list[i].et=tmp.et;
list[i].ye=tmp.ye;list[i].ze=tmp.ze;
strcpy(tmp.na, "");
tmp.pl=0;tmp.et=0;tmp.ye=0;tmp.ze=0;
save(base);getch();open(base);}
void view(char *base){
textcolor(tab);int z,l,p=0;clrscr();
cout<<char(201); for(z=1; z<=3; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=16; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=15; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=8; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=15; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=15; z++)cout<<char(205);
cout<<char(187)<<"\n";
cout<<char(186); textcolor(zag); cprintf("%3s","ID"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%16s","F.I.O"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","N otdela"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%8s","T.nomer"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","Rab.chasi"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","Zarplata"); textcolor(tab);
cout<<char(186)<<"\n";
cout<<char(204); for(l=1; l<=3; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=16; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=15; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=8; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=15; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=15; l++)cout<<char(205);
cout<<char(185)<<"\n";
for(z=0; z<=size; z++){
cout<<char(186); textcolor(tex); cprintf("%3u",list[z].id);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%16s", list[z].na);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%15.2f", list[z].pl);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%8u", list[z].et);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%15u", list[z].ye);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%15.2f", list[z].ze);textcolor(tab);
cout<<char(186)<<"\n";
if (z<=(size-1)){
cout<<char(204);
for(l=1; l<=3; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=16; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=15; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=8; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=15; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=15; l++)cout<<char(205); cout<<char(185)<<"\n";}
p++;
if (p==10){
p=0;getch();}}
cout<<char(200);
for(z=1; z<=3; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=16; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=15; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=8; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=15; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=15; z++)cout<<char(205); cout<<char(188)<<"\n";
getch();open(base);}
void add(char *base){
clrscr();
FILE *f=fopen(base,"a");
textcolor(15);
printf("F.I.O: ");cin.getline(tmp.na,30);
printf("Nomer otdela: ");scanf("%f",&tmp.pl);
printf("Tabel'niy nomer: ");scanf("%u",&tmp.et);
printf("Kol-vo rab. chasov: ");scanf("%u",&tmp.ye);
printf("Zarplata (t. rub.): ");scanf("%f",&tmp.ze);
char *css;int t=0;
for (;t<=strlen(tmp.na);t++){
css=strchr (tmp.na,' '); if (css) *(css)='_';}
size++;
strcpy(list[size].na,tmp.na);
list[size].pl=tmp.pl;
list[size].et=tmp.et;
list[size].ye=tmp.ye;
list[size].ze=tmp.ze;
strcpy(tmp.na, "");
tmp.pl=0;tmp.et=0;
tmp.ye=0;tmp.ze=0;
fclose(f);
save(base);
open(base);
}
void save(char *base){
int j=0;
FILE *f=fopen(base,"w");
fprintf(f,"%s %1.2f %u %u %1.2f", list[j].na, list[j].pl, list[j].et, list[j].ye, list[j].ze);
for (j=1;j<=size;j++)
fprintf(f,"\n%s %1.2f %u %u %1.2f", list[j].na, list[j].pl, list[j].et, list[j].ye, list[j].ze);
fclose(f);
}
void load(char *base){
int j=0;
FILE *f=fopen(base,"r");
while(!feof(f)){
fscanf(f,"%s %f %u %u %f", &tmp.na , &tmp.pl, &tmp.et, &tmp.ye, &tmp.ze);
if (strcmp(tmp.na,"")!=0){
strcpy(list[j].na,tmp.na);
list[j].pl=tmp.pl;
list[j].et=tmp.et;
list[j].ye=tmp.ye;
list[j].ze=tmp.ze;
list[j].id=j+1;
j++;}
strcpy(tmp.na, "");
tmp.pl=0;tmp.et=0;
tmp.ye=0;tmp.ze=0;}
size=--j;fclose(f);}
//kyrs_cre.cpp
extern char *file;
void create(){
textcolor(2);
cprintf("Please enter name new file: ");
char *name;
scanf("%s",name);
cprintf("\r\nCreating new file...\r\n");
FILE *f;
if ((f=fopen(name,"w"))==NULL){
textcolor(4);
cprintf("Error!!!");
getch();
exit(1);
}
file=new char(strlen(name));
strcpy(file,name);
fclose(f);
open(file)
Заключение
В ходе выполнения курсовой работы разработана программа наязыкеСи для обработки данных типа структура. Обработка данных включает:
создания новой БД
просмотр существующей БД
редактирование БД
дополнение БД
удаление записей из БД
сортировка БД по определённому полю
поиск записи по одному или нескольким критериям
Также в программе разработана графическая заставка.
При разработке программе использовались функции,массивы,циклы,
указатели. Для реализации заставки использовалась графическая библиотека Си.
Разработанная программа позволяет повысить эффективность обработки данных и сократить время на поиск необходимых записей.