Электронная картотека
Рефераты >> Программирование и компьютеры >> Электронная картотека

PL *plan=NULL,*plane=NULL;

FILE *fp;

window(1,1,79,25);

clrscr();

name=fname();

cprintf("Осуществлять чтение? (y-Да , n-Нет)\n");

do

c=getch();

while((c!='y')&&(c!='n'));

if (c=='n') return (pla);

if((fp=fopen(name,"rt"))==NULL)

{

klear(pla);

cprintf("\nОшибкаприоткрытиифайла!!!");

sovet("Ошибка!!! Нажмите любую кнопку");

getch();

return (NULL);

}

plane=(PL*)malloc(sizeof(PL));

while (fscanf(fp,"%s %d %s %d |",

plane->namepl,&(plane->year),plane->people,&(plane->sputnik))==4)

{

plane->prev=NULL;

plane->next=plan;

if (plan!=NULL) plan->prev=plane;

plan=plane;

plane=(PL*)malloc(sizeof(PL));

}

free(plane);

if (plan!=NULL)

{

while(plan->next)

plan=plan->next;

}

fclose(fp);

klear(pla);

return (plan);

}

/*Функция сортировки по алфавиту*/

PL *sort(PL *pla)

{

PL *point,*tmp=NULL,*f,*s;

int i,j,srav;

//Указатель на начало

f=pla;

point=pla;

while(f!=NULL)

{

s=f->next;

while(s!=NULL)

{

if((strcmp(f->namepl,s->namepl)>0))

{ tmp=(PL*)malloc(sizeof(PL));

strcpy(tmp->namepl,f->namepl);

tmp->year=f->year;

strcpy(tmp->people,f->people);

tmp->sputnik,f->sputnik;

//

strcpy(f->namepl,s->namepl);

f->year=s->year;

strcpy(f->people,s->people);

f->sputnik=s->sputnik;

//

strcpy(s->namepl,tmp->namepl);

s->year=tmp->year;

strcpy(s->people,tmp->people);

s->sputnik=tmp->sputnik;

free(tmp);

}

s=s->next;

}

strcpy(point->namepl,f->namepl);

point->year=f->year;

strcpy(point->people,f->people);

point->sputnik=f->sputnik;

point=point->next;

f=f->next;

}

point=pla;

return(point);

}

void main()

{

char ccc,hhh,ch;

int i;

PL* planet=NULL;

planet->prev=planet->next=NULL;

_setcursortype(_NOCURSOR);

textcolor(10);

menu1();

do

{

do

{

fflush(stdin);

switch(ccc=getch())

{

case '1':

{

clrscr();

printf("\t\t\t Рекомендации пользователю :\n\n"

"Эта программа- это подобие электронной базы данных. Программа работает, "

"\nиспользуя массивы в памяти ЭВМ для хранения информации введенной пользователем."

"\nДанные могут вводиться с клавиатуры или загружаться из файла."

"Также можно вывестина экран всю картотеку или же просматривать картотеку по карточкам,"

" с возмож- ностью добавления или удаления некоторых карточек по выбору."

" Программа имеет хороший интерфейс и показывает устойчивую работу."

" В программе имеется поиск элементов по заданным условиям, а также сортировка планет по названиям."

" В программе есть главное меню и подменю для поиска планет по некоторым признакам."

" Желательно, чтобы данные были точные, корректно записанные и касающиеся"

"\n непосредственно темы данной лабораторной работы.");

puts("\n\n\n\n\n\t\tДля перехода в главное меню нажмите любую клавишу .");

getch();

menu1();

break;

}

case '2':

{

free(planet);

planet=NULL;

planet->prev=planet->next=NULL;

clrscr();

puts("Это новая база данных?(да-y/ нет-n) ");

do

{

fflush(stdin);scanf ("%c", &ch);

printf ("\tВведите символ(да- y / нет- n) ");

}

while (ch!='n' && ch!='y'&& ch!='Y'&& ch!='N');

if (ch=='y'|| ch=='Y')

{

clrscr();

planet=vvodall();

clrscr();

puts("\n\n\Записать в файл (да-y/нет-n)?");

do

{

fflush(stdin);

scanf ("%c", &ch);

printf ("Введите символ(да- y / нет- n)\n ");

}

while (ch!='n' && ch!='y'&& ch!='Y'&& ch!='N');

if (ch=='Y'|| ch=='y')

{

save(planet);

puts("\n\n\n\n\n\t\t Запись данных закончена! Нажмите любую клавишу.");

getch();

}

}

else

planet=load(planet);

menu1();

continue;

}

case '3':

{

if(planet!=NULL)

{

clrscr();

vivodall(planet);

menu1();

continue;

}

break;

}

case '4':

{

free(planet);

planet=korrekt(planet);

menu1();

break;

}

case '5':

{

if(planet!=NULL)

{

clrscr();

menu2();

switch(hhh=getch())

{

case '1':

{

poisk1(planet);

menu1();

continue;

}

case '2':

{

poisk2(planet);

menu1();

continue;

}

default : menu1();

}

menu1();

continue;

}

break;

}

case '6':

{

if(planet!=NULL)

{

clrscr();

i=5;

puts("\n\n\n\n\t\t Идет сортировка по названию планеты.");

while(i<70)

{

gotoxy(i,10);

puts("*");

delay(60);

i++;

}

planet=sort(planet);


Страница: