попередню структуруtelephone * next;// покажчик на наступну структуру
}; abonent
{* surname; score; abonent * prev; abonent * next;
}; n;// к-ть запісейtelephone ** a;// покажчик на масив покажчиків на структуру telephonetelephone * f1 = NULL;// початок спіскаtelephone * f2 = NULL;// остання запис спіскаabonent * s1 = NULL;// початок спіскаabonent * s2 = NULL;// остання запис списку
/***** Функція додавання нових абонентів телефонної мережі *****/Add ()
{telephone * f; j = 1; (); ("cls"); (j! = 2)
{("cls"); = (struct telephone *) malloc (sizeof (struct telephone));
// Розподіл пам'яті під один вузол списку ("ввела прізвище абонента:"); (f-> surname); ("Його ім'я:"); (f-> name); ("І по-батькові:"); (f-> lastname); ("Номер телефону:"); (f-> number); ("Рік встановлення телефону:"); (f-> year); ("Заборгованість абонента:"); ("% d", & f-> score); ("Ви хочете додати ще абонента? (1 - так/2 - немає) n "); ("% d ", & j); (); (f1 == NULL)
{
(* f). next = NULL;
(* f). prev = NULL; = f; = f;
}
{
(* f). next = NULL;
(* f). prev = f2;
(* f2). next = f; = f;
}
} ("запис успішно додана, можна продовжувати ... n"); (); ();
}
/***** Функція збереження бази даних *****/SaveBaz ()
{* ff; telephone * f; ("cls"); = f1;// почати з початку списку ((ff = fopen ("datebase.db", "w") )! = NULL)// якщо файл нормально відкрився для запису
{(ff, " n"); (f-> next! = NULL)
{(f-> surname, ff); (ff, " t"); (f-> name, ff); (ff, " t"); ( f-> lastname, ff); (ff, " t"); (f-> number, ff); (ff, " t"); (f-> year, ff); ( ff, " t"); (ff, "% d", f-> score); (ff, " n"); = f-> next;
}
// запис в файл останнього вузла (f-> surname, ff); (ff, " t"); (f-> name, ff); (ff, " t "); (f-> lastname, ff); (ff," t "); (f-> number, ff); (ff," t "); (f-> year, ff); (ff, " t"); (ff, "% d", f-> score); (ff, " 0");// " 0" - кінець рядка ("База даних збережена! Поздравляю! ... n"); (ff);
} ("Ошибочка datebase.db! n"); (); ();
}
/***** Функція зчитування бази даних з файлу *****/LoadBaz ()
{* ff; telephone * f; ("cls"); = NULL; ((ff = fopen ("datebase.db", "r"))! = NULL)
{(fgetc (ff)! = EOF)
{= (struct telephone *) malloc (sizeof (struct telephone)); (ff, "% s", & (f-> surname)); (ff, "% s ", & (f-> name)); (ff,"% s ", & (f-> lastname));...