Электронная картотекаРефераты >> Программирование и компьютеры >> Электронная картотека
while (pla->prev)
{
if(strcmpi(pla->namepl,s)==0)
{
printf("│ %5d │ %18s │ %12u │ %15s │ %11u │ ",i,pla->namepl,
pla->year,pla->people,pla->sputnik);
l++;i++;
}
pla=pla->prev;
}
if (strcmpi(pla->namepl,s)==0)
{
printf("│ %5d │ %18s │ %12u │ %15s │ %11u │ ",i,pla->namepl,
pla->year,pla->people,pla->sputnik);
l++;i++; }
puts("└──────┴─────────────────┴────────────┴─────────────────┴─────────────┘");
printf("\n Найдено %d планет.\n",l);
puts(" Поиск по названиям планет завершен. Продолжить?(y- да)");
fflush(stdin);
ch=getch();
}
while(ch=='y');
}
void poisk2(PL *pla) //Функция поиска по годам открытия
{
char ch;
do
{
int i=1,l=0,a,b;
clrscr();
fflush(stdin);
puts("Введите интерессующее вас границы поиска (от чего- то до чего- то) :");
while(scanf("%d%d",&a,&b)!=2)
{
while (getchar()!='\n');
printf("Все- таки стоит здесь что- нибудь ввести\n(от a до b)\n");
}
printf("\n\n Планеты открытые в таком диапозоне(с %d до %d года):\n",a,b);
printf("┌──────┬─────────────────┬────────────┬───────────────┬───────────┐\n");
printf("│Номер │ Название │ Когда │ Кто открыл │ Кол-во │\n");
printf("│ стр. │ планеты │ открыли │ планету │ спутников │\n");
printf("└──────┴─────────────────┴────────────┴───────────────┴───────────┘\n");
printf("┌──────┬─────────────────┬────────────┬───────────────┬───────────┐\n");
while(pla->prev)
{
if((a<=pla->year)&&(b>=pla->year))
{
printf("│ %5d │ %18s │ %12u │ %15s │ %11u │ ",i,pla->namepl,
pla->year,pla->people,pla->sputnik);
l++;i++;
}
pla=pla->prev;
}
if((a<=pla->year)&&(b>=pla->year))
{
printf("│ %5d │ %18s │ %12u │ %15s │ %11u │ ",i,pla->namepl,
pla->year,pla->people,pla->sputnik);
l++;i++;
}
puts("└──────┴─────────────────┴────────────┴───────────────┴───────────┘");
printf("\n Найдено %d планет.\n",l);
puts(" Поиск по годам открытия планет завершен. Продолжить?(y- да)");
fflush(stdin);
ch=getch();
}
while(ch=='y');
}
void klear(PL* pla) //Функцияочисткипамяти
{
PL *plr;
if (pla)
{
if (pla->prev)
{
plr=pla->prev;
while (plr->prev)
{
free(plr->next);
plr=plr->prev;
}
}
else
plr=pla;
free(plr);
}
}
char * fname() //Функциявводаименифайла
{
char *t;
t=(char *)malloc(80*sizeof(char));
cprintf("Введите имя файла: \n");
fflush(stdin);
scanf("%79s",t);
return t;
}
int save1(PL *pla,char *filename) //Функция, сохраняющаяданные
{
FILE *fp;
if((fp=fopen(filename,"w"))==NULL) return 0;
while(pla)
{
fprintf(fp,"%s %d %s %d |",
pla->namepl,pla->year,pla->people,pla->sputnik);
pla=pla->prev;
}
fclose(fp);
return 1;
}
int save(PL *pla) //Функция для сохранения данных
{
char * name;
window(1,1,79,25);
clrscr();
name=fname();
if (save1(pla,name)==1) return 1;
cprintf("\nНевозможно произвести запись!!!");
sovet("Ошибка!!! Нажмите любую кнопку");
getch();
return 0;
}
PL *load(PL *pla) //Функция загрузки данных из файла
{
char c,*name;
int i;