49784 (Обработка динамических структур), страница 4
Описание файла
Документ из архива "Обработка динамических структур", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "49784"
Текст 4 страницы из документа "49784"
{
el *cur,*pr,*tail,*tail2,*cur2; //указатели
FILE *f1,*f2; //файлы
clrscr();
*top2=*top=tail=tail2=NULL; //обнуление ссылок на хвост и вершину
f1=fopen("Base.txt","rb"); //открытие файла Base.txt
f2=fopen("Out.txt","rb"); //открытие файла Out.txt
if(f1==NULL||f2==NULL) printf("Чтоё-то не грузится: глюк)");//если файлов нет
else
{
while(!feof(f1)) //пока не конец файла
{
cur=(el*)malloc(sizeof(el)); //выделение памяти под новый элемент (далее текущий)
cur->next=NULL; //обнуление указателя на следующий элемент текущего элемента
cur->pred=tail; //присваивание указателя на предыдущий элемент текущего элемента хвосту списка
if((*top)==NULL) (*top)=cur; //если указатель на начало списка пуст, то указателем на начало списка становится текущий элемент
else tail->next=cur; //если нет, то указателем на хвост списка становится текущий элемент
tail=cur; //указатель на хвост становится приравнивается текущему элементу
cur2=(el*)malloc(sizeof(el)); //аналогично для второго элемента
cur2->next=NULL;
cur2->pred=tail2;
if((*top2)==NULL) (*top2)=cur2;
else tail2->next=cur2;
tail2=cur2;
fread(&cur->inf,sizeof(el),1,f1); //считывание с файла
fread(&cur2->inf,sizeof(el),1,f2);
}
fcloseall(); //закрываем файлы
printf("Списки успешно загружены из файлов!");
}
getch();
}
//---------------------------------------------------------------------\\
void main() //основная программа
{
int n=0;
el *top=NULL,*top2=NULL;
while(n!=11)
{
clrscr();
printf("Введите номер пункта для выполнения:\n");
printf("1.Заполнить список\n");
printf("2.Загрузить списки из файлов\n");
printf("3.Отсортировать текущий список\n");
printf("4.Вывести текущий список\n");
printf("5.Вывести текущий список выданных на руки книг\n");
printf("6.Добавить новый элемент\n");
printf("7.Удалить из списка книги заданного автора\n");
printf("8.Выдать книгу на руки\n");
printf("9.Вернуть книгу в библиотеку\n");
printf("10.Сохранить списки в файл\n");
printf("11.Выход из программы\n");
printf("Ваш выбор:\n");
scanf("%d",&n);
while(n>11||n<1)
{
printf("Такого пункта нет! Введите повторно:\n");
scanf("%d",&n);
}
if(n==1) top=vvodSp(&top2);
else if(n==2) loadIT(&top,&top2);
else if(n==3) {sort(top); sort(top2);}
else if(n==4) vivodSp(top);
else if(n==5) vivodSp(top2);
else if(n==6) {dobEl(top,top2); sort(top); sort(top2);}
else if(n==7) delel(&top,&top2);
else if(n==8) vidacha(top,top2);
else if(n==9) vozvrat(top,top2);
else if(n==10) saveIT(top,top2);
}
}
Приложение Б
Результаты работы программы
1>