
на первый
заказ
Решение задач на тему: Данной курсовой работе представлена реализация программы, для обработки динамической структуры
Купить за 100 руб.Введение
В данном отчёте представлено решение задачи с помощью языка программирования С.В первом разделе отчёта представлена постановка задачи. Второй раздел содержит метод решения программы. Третий раздел отчёта - алгоритм работы программы, включая алгоритм работы интерфейса программы и десяти основных подпрограмм. В четвёртом разделе рассматривается подробное руководство пользователя. Пятый раздел содержит анализ результатов. В листинге (приложение Д) представлен полный текст программы с комментариями.
Оглавление
- Введение- Постановка задачи
- Метод решения
- Общая схема работы программы
- Метод сортировки
- Разработка алгоритмов решения задачи
- Общая схема алгоритма
- Стандартные процедуры и функции, используемые в программе
- Описание работы пользовательских подпрограмм
- Описание работы подпрограммы vvodSp
- Описание работы подпрограммы loadIT
- Описание работы подпрограммы sort
- Описание работы подпрограммы vivodSp
- Описание работы подпрограммы dobEl
- Описание работы подпрограммы delel
- Описание работы подпрограммы vidacha
- Описание работы подпрограммы vozvrat
- Описание работы подпрограммы saveIT
- Описание работы основной программы
- Руководство пользователя
- Анализ результатов Заключение
- Список литературы
- Приложения
Список литературы
cur2=cur2->next; //аналогичноprintf("Было удалено %d книг данного автора",n);
void vozvrat(еl *cur,еl *cur2) //возвращение элемента
if(cur==NULL) printf("Перед тем, как производить поиск в списке, необходимо его создать!");
printf("Введите интересующего Вас автора:\n");
printf("Введите интересующую Вас книгу:\n");
if((strcmp(cur->inf.avt,iskA)==0)&&(strcmp(cur->inf.nazv,iskN)==0)&&cur2->inf.kol>0) //если есть книги на руках (кол-во>0)
cur->inf.kol++; //увеличивается в первом списке количество
cur2->inf.kol--; //уменьшается во втором
printf("Книга возвращена!");
else if((strcmp(cur->inf.avt,iskA)==0)&&(strcmp(cur->inf.nazv,iskN)==0)&&cur2->inf.kol<=0) //если книг на руках нет
printf("Все свои книги дома! Чужих нам не надо)))");
if(n==0) printf("К сожалению, ни одной такой книги не найдено!\n");
void sort(еl *top) //сортировка
int к=1; //вспомогательный элемент, показывает были ли перестановки или нет
еl* cur; //указатель на текущий элемент
book dop; //переменная для временного хранения данных (используется при сортировке)
if(top==NULL) printf("Перед тем, как сортировать список, необходимо его создать!");
while(к!=0) //пока не будет перестановок
к=0; //перстановок нет
for(cur=top;cur->next!=NULL;cur=cur->next) //пока указатель на следующий элемент у текущего не равен NULL
if(strcmp(cur->inf.avt,cur->next->inf.avt)>0) //если следующий элемент меньше, чем текущий
dop=cur->inf; //занесение в буфер данных текущего элемента
cur->inf=cur->next->inf; //переписывание в текущий данные следующего
cur->next->inf=dop; //переписывание в следующий данные из буфера
к=1; //перестановки есть
void saveIT(еl *cur,еl *cur2) //сохранение в файл
FILE *f1,*f2; //файлы
f1=fopen("Base.txt","wb"); //файл для первого списка
f2=fopen("Out.txt","wb"); //для второго
if(f1==NULL||f2==NULL) printf("Чтоё-то не грузится: глюк)");
while(cur!=NULL) //пока не конец списка
fwrite(&cur->inf,sizeof(еl),1,f1); //запись данных текущего элемента в файл
fwrite(&cur2->inf,sizeof(еl),1,f2); //то же
cur=cur->next; //переход к следующему элементу
cur2=cur2->next; //то же
printf("Списки сохранены успешно!");
fcloseall(); //закрытие файлов
void loadIT(еl **top,еl **top2) //чтение файлов
еl *cur,*рr,*tail,*tail2,*cur2; //указатели
FILE *f1,*f2; //файлы
*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("Чтоё-то не грузится: глюк)");//если файлов нет
while(!feof(f1)) //пока не конец файла
cur=(еl*)malloc(sizeof(еl)); //выделение памяти под новый элемент (далее текущий)
cur->next=NULL; //обнуление указателя на следующий элемент текущего элемента
cur->pred=tail; //присваивание указателя на предыдущий элемент текущего элемента хвосту списка
if((*top)==NULL) (*top)=cur; //если указатель на начало списка пуст, то указателем на начало списка становится текущий элемент
else tail->next=cur; //если нет, то указателем на хвост списка становится текущий элемент
tail=cur; //указатель на хвост становится приравнивается текущему элементу
cur2=(еl*)malloc(sizeof(еl)); //аналогично для второго элемента
fread(&cur->inf,sizeof(еl),1,f1); //считывание с файла
fcloseall(); //закрываем файлы
printf("Списки успешно загружены из файлов!");
void main() //основная программа
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");
printf("Такого пункта нет! Введите повторно:\n");
или зарегистрироваться
в сервисе
удобным
способом
вы получите ссылку
на скачивание
к нам за прошлый год