c=1;
while (c==1) {
c=0;
fgets (k->name,40,stdin);
for (i=0; i<39 && k->name [i]! ='\n'; i++)
if (k->name [i] >126 || k->name [i] <31)
c=1;
if (c==1)
printf ("Недопустимый символ\n");
if (i==39)
while ( (getchar ())! ='\n')
continue;
else
k->name [i] ='\0';
}
printf ("Введите количество разьёмов БП №%d\n",n+1);
while (! scanf ("%d",&k->a))
while (getchar ()! ='\n')
continue;
printf ("Введите мощность БП №%d\n",n+1);
while (! scanf ("%hd",&k->p))
while (getchar ()! ='\n')
continue;
while ( (getchar ())! ='\n')
continue;
printf ("Закончить (y/any key) \n");
scanf ("%c",&y);
while ( (getchar ())! ='\n')
continue;
k->this=k;
k->number=n+1;
if (y=='y') {
k->next=NULL;
}
else{
k->next=malloc (sizeof (struct e));
k->next->pre=k;
k=k->next;
}
}
system ("clear");
printf ("Ввод закончен");
return n;
}
“writeFileBC. с”
#include "my. h"
void writeFileBC (struct e *k, char *fileName) {
FILE *f;
int i;
char name [11];
if (! (f=fopen (fileName,"wb"))) {
while (getchar ()! ='\n')
continue;
do{
readName (name);
if (name [0] =='\0')
return;
printf ("Невозможно создать файл cименем '%s'. \n",name);
}while (! (f=fopen (name,"wb")));
system ("clear");
printf ("Файл с именем '%s' создан", name);
}
else
printf ("Файл с именем '%s' создан", fileName);
while (1) {
fwrite (& (k->year),5,1,f);
fwrite (& (k->name),40,1,f);
fwrite (& (k->a),sizeof (int),1,f);
fwrite (& (k->p),sizeof (short),1,f);
if (k->next==NULL)
break;
else
k=k->next;
}
fclose (f);
return;
}
Вместе с исходным кодом программы прилагается файл такого содержания
год | название | разъёмы | шум | мощность |
2009 | Thermaltake EVO_Blue 650W (W0307RU) | 24 | 22 | 650 |
2008 | ETG ESP-550X-S 550W | 24 | 30 | 550 |
2009 | FSP Group ATX-600PNR 600W | 20 | 27 | 600 |
2009 | Antec HCG-620 620W | 20 | 22 | 620 |
2010 | Thermaltake TR2 RX 750W | 24 | 25 | 750 |
Результатом выполнения данной работы является информационно-поисковый справочник "Блок питания". В нём были реализованы следующие функции:
1. Создание справочника в памяти
2. Вывод справочника на экран
3. Удаление записи
4. Два способа сортировки
5. Сортировка дискового файла
6. Сохранение справочника в файле
7. Открытие справочника из файла
Я пришел к выводу, что связные списки хоть и усложняют обработку данных, но при этом дают программе гибкость в вопросе выделения памяти. Так же такой способ хранения данных позволяет экономить ресурсы компьютера, ведь место выделяется лишь по необходимости, а не резервируется при запуске программы.
От себя могу сказать, что я не только углубил имеющиеся знания, но и получил новые.
1. Герберт Шилдт. Полный справочник по С++. Ossborne. 2003
2. Стивен Прата. /Язык программирования С. - М. Издательство "Диасофт", 2002. - 896 с.
3. П. Дейтел, X. Дейтел. / Как программировать на С++. - М, Издательство "Бином" 2001 - 1152 стр.