- •2013 Г. Цель работы
- •Уточнение задания
- •Описание информационной структуры
- •Описание структуры, используемой для организации списка
- •Контрольные примеры
- •Описание переменных главной функции
- •Краткое описание алгоритма
- •Описание функций Описание функции «enter»
- •Описание функции «Output»
- •Описание функции «confirming»
- •Описание функции «Sort»
- •Описание функции «Newsort»
- •Описание функции «Add»
- •Описание функции «Del»
- •Описание функции «Output_2»
- •Код программы на языке c
- •Результаты выполнения программы
Федеральное государственное бюджетное образовательное учреждение высшего
профессионального образования
«Санкт-Петербургский государственный электротехнический
университет «ЛЭТИ» им. В.И.Ульянова (Ленина)»
Факультет компьютерных технологий и информатики
Кафедра вычислительной техники
Отчет
по лабораторной работе № 2
на тему «Односвязные списки»
по дисциплине «Программирование»
Выполнил: студент группы 2306 Титков Е.В.
Проверила: к.т.н., доцент Сискович Т.И.
Санкт-Петербург
2013 Г. Цель работы
Получение практических навыков в работе с односвязными списками.
Задание
Написать программу для выполнения типовых действий с односвязными списками: добавление элементов в список, вывод информационных полей на экран, удаление элементов списка, обработка списка, сортировка элементов списка.
Уточнение задания
Состав списка и структуры, которая является одним из полей списка, задается программистом. Пользователь вводит информационные поля списка. Условия для обработки – элементы списка, в которых значение поля «rating» поля «info» больше значения, заданного пользователем. Также возможна сортировка исходного списка, заключающаяся в распределении элементов списка в порядке возрастания или убывания значений одного из полей «rating” или “year” поля «info». Поле для сортировки и тип сортировки (по возрастанию, убыванию) выбирает пользователь.
Возможно добавление элемента в уже существующий список и удаление элемента из списка. Место, в которое нужно добавить, выбирает пользователь (в начало, в конец, после заданного), элемент, который нужно удалить, также выбирает пользователь.
Описание списка и структуры приведено в следующем пункте.
Описание информационной структуры
Шаблон:
Struct games
{
charname[12]; // Наименование продукта
int year; // Дата выхода
int rating; // Рейтинг
};
где первое поле типа char- адрес первой буквы название продукта, второе поле типаint– дата выхода, третье поле типаint– рейтинг.
Имя структурного типа: games.
Имя нового типа:MS.
Пример объявления переменной типа NT: MS*gamess=NULL.
Описание структуры, используемой для организации списка
Шаблон:
struct list
{
MS info;
struct list *next;
}SP;
где первое поле – данные типа MS, второе поле указатель типа struct list *.
Имя структуры, используемой для организации список: list.
Имя нового типа: SP.
Пример объявления переменной типа SP: SP *h1=NULL.
Контрольные примеры
Контрольные примеры обработки приведены в таблице 1 «Контрольные примеры обработки».
Таблица 1. Контрольные примеры обработки
№ п.п. |
Исходные данные |
Условие обработки |
Результат | ||||||
Наименование |
Год выхода |
Рейтинг |
Наименование |
Год выхода |
Рейтинг | ||||
1 |
Crysis |
2008 |
7 |
>8 |
Crysis 2 |
2010 |
9 | ||
Crysis 2 |
2010 |
9 |
Crysis 3 |
2012 |
10 | ||||
Crysis 3 |
2012 |
10 |
|
|
| ||||
2 |
Max Payne |
2000 |
9 |
>10 |
Gears World |
2012 |
11 | ||
Gears World |
2012 |
11 |
|
|
| ||||
Shake |
2010 |
3 |
|
|
|
Контрольные примеры сортировки по полю ratingприведены в таблице 2 «Контрольные примеры сортировки».
Таблица 2. Контрольные примеры сортировки
№ п.п. |
Исходные данные |
Тип сортировки |
Результат | ||||||
Наименование |
Год выхода |
Рейтинг |
Наименование |
Год выхода |
Рейтинг | ||||
1 |
Crysis |
2008 |
8 |
По возрастанию |
Crysis 3 |
2012 |
7 | ||
Crysis 2 |
2010 |
11 |
Crysis |
2008 |
8 | ||||
Crysis 3 |
2012 |
7 |
Crysis 2 |
2010 |
11 | ||||
2 |
Crysis |
2008 |
8 |
По убыванию |
Crysis 2 |
2010 |
11 | ||
Crysis 2 |
2010 |
11 |
Crysis |
2008 |
8 | ||||
Crysis 3 |
2012 |
7 |
Crysis 3 |
2012 |
7 |