
- •Контрольные примеры
- •Описание переменных главной функции
- •Краткое описание алгоритма
- •9. Описание функций
- •9.1. Описание функции f_vvod
- •9.2. Описание функции vivod
- •9.3. Описание функции func_dobavka_nach
- •9.4. Описание функции func_dobavka_kon
- •9.5. Описание функции func_sort
- •Int dist; //Дистанция
- •Результаты выполнения программы
Федеральное государственное учреждение высшего профессионального образования
Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина) (СПбГЭТУ)
Факультет компьютерных технологий и информатики
Кафедра вычислительной техники
Отчет
по лабораторной работе №3
на тему «Двусвязные списки»
по дисциплине «Программирование»
Выполнил: студент группы №2306
Лебедев С. И.
Проверила: к. т. н., доцент
Сискович Т. И.
Санкт-Петербург
2013 г.
Цель работы
Получение практических навыков в работе с двусвязными списками.
Задание
Написать программу для выполнения типовых действий с двусвязными списками: добавление элементов в список, вывод списка на экран, удаление элементов списка,сортировка элементов списка.
Уточнение задания
Состав списка задается программистом. Пользователь вводит информационные поля списка. Элементы списка можно сортировать в алфавитном порядке по полю «Фамилия»
Возможно добавление элемента в список. Место, в которое нужно добавить, выбирает пользователь (в начало или в конец). Описание списка приведено в следующем пункте.
Описание списка
typedef struct swimmers
{
char name[20]; //Имя пловца
char surname[20]; //Фамилия
int dist; //Дистанция
char country[20]; //Страна
struct swimmers *next; //Поле указатель на следующий элемент
struct swimmers *prev; //Поле указатель на предыдущий элемент
}NT;
Использование оператора typedef для приведения нового типа: NT.
Пример объявления указателя типа NT: NT *spisok=NULL.
Контрольные примеры
Контрольные примеры приведены в таблице №1 «Контрольные примеры».
Таблица
1. Сортировка в алфавитном порядке по
фамилии .
алфавитном
порядке по фамилии
К
|
Исходные данные |
Данные после обработки |
|||||||
№ |
Имя |
Фамилия |
Дистанция |
Страна |
Имя |
Фамилия |
Дистанция |
Страна |
|
1 |
Paul |
Biederman |
200 |
Germany |
Yanick |
Agnel |
200 |
France |
|
2 |
Yanick |
Agnel |
200 |
France |
Paul |
Biederman |
200 |
Germany |
|
3 |
Ian |
Thorpe |
800 |
Australia |
Ian |
Thorpe |
800 |
Australia |
Описание переменных главной функции
Описание переменных главной функции приведено в таблице 3.
Таблица 3. Описание переменных главной функции
Имя переменной |
Тип переменной |
Назначение |
c,fl1,fl2
|
int |
Вспомогательные перменные |
c |
char |
Переменные, управляющие циклом |
popitka,spisok |
NT* |
Указатели |
Краткое описание алгоритма
Шаг 1: Начало программы
Шаг 2: Вывод меню
Шаг 3: Вывод сообщения «Выберите пункт меню»
Шаг 4:Ввод номера пункта. Пункт 1 – переход к шагу 5, пункт 2-переход к шагу 6, пункт 3-переход к шагу 7, пункт 4-переход к шагу 8, пункт 5-переход к шагу 9.
Шаг 5: Заполнение полей списка. Возврат к шагу 4.
Шаг 6: Вывод исходного списка в виде таблицы. Возврат к шагу 4.
Шаг 7: Сортировка списка по алфавиту. Формирование нового списка. Возврат к шагу 4.
Шаг 8: Вывод нового списка в виде таблицы, если новый список не сформирован, то вывод сообщения. Возврат к шагу 4.
Шаг 9: Завершение программы.
9. Описание функций
9.1. Описание функции f_vvod
Назначение
Используется для заполнения данных электронной картотеки.
Прототип
NT* f_vvod(NT* spisok)
, где NT*-указатель на объект типа NT, NT*-тип вовращаемого значения.
Пример вызова
spisok=f_vvod(popitka);
Описание переменных
Описание локальных переменных приведено в таблице 5.
Таблица 5. Описание локальных переменных функции razm
Имя переменной |
Тип переменной |
Назначение |
r |
NT* |
Переменная для ввода данных полей структуры |
y |
char |
Вспомогательная переменная |
d |
char |
Используется для ввода данных |
i |
int |
Используется для ввода данных |
9.2. Описание функции vivod
Назначение
Используется для вывода списка.
Прототип
void vivod(NT* lst)
, где параметр NT* - указатель на объект параметра NT;
Пример вызова
vivod(spisok)
; где spisok- указатель на начало списка.
Описание переменных
Описание локальных переменных приведено в таблице 6.
Таблица 6. Описание локальных переменных функции vivod
Имя переменной |
Тип переменной |
Назначение |
r |
NT* |
Вспомогательная перменная |