Смекни!
smekni.com

Работа с языками С и С++ (стр. 3 из 3)

c=1;

while (c==1) {

c=0;

fgets (k->name,40,stdin);

for (i=0; i<39 && k->name [i]! ='&bsol;n'; i++)

if (k->name [i] >126 || k->name [i] <31)

c=1;

if (c==1)

printf ("Недопустимый символ&bsol;n");

if (i==39)

while ( (getchar ())! ='&bsol;n')

continue;

else

k->name [i] ='&bsol;0';

}

printf ("Введите количество разьёмов БП №%d&bsol;n",n+1);

while (! scanf ("%d",&k->a))

while (getchar ()! ='&bsol;n')

continue;

printf ("Введите мощность БП №%d&bsol;n",n+1);

while (! scanf ("%hd",&k->p))

while (getchar ()! ='&bsol;n')

continue;

while ( (getchar ())! ='&bsol;n')

continue;

printf ("Закончить (y/any key) &bsol;n");

scanf ("%c",&y);

while ( (getchar ())! ='&bsol;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 ()! ='&bsol;n')

continue;

do{

readName (name);

if (name [0] =='&bsol;0')

return;

printf ("Невозможно создать файл cименем '%s'. &bsol;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 стр.