Создание и обработка динамического списка
Категория реферата: Рефераты по информатике, программированию
Теги реферата: государство реферат, изложения по русскому языку 9
Добавил(а) на сайт: Vassian.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата
11
6. Разработка программы
6.1 Основная часть программы.
0 Начало. Описываем глобальные переменные и типы данных
1 Очищаем экран с помощью оператора clrscr()
2 Присваиваем переменной а, которая является параметром последующего цикла
и оператора множественного выбора значение равное единицы: a=1
3 Открываем цикл с предусловием (условие: переменная а не равна 5); в цикле
будут выполняться шаги с 4 по 11: while (a!=5)
4 Вводим переменную а: a=getch()
5 Выполняем оператор множественного выбора с параметром а; оператор
включает шаги с 6 по 10: switch(a)
6 Если а=1, вызываем процедуру ввода данных: case '1':vvod(); break
7 Если а=2, вызываем процедуру вывода данных: case '2':vivod(); break
8 Если а=3, вызываем процедуру удаления первого элемента: case '3':dele();
break;
9 Если а=4, вызываем процедуру перемены мест элементов, которые заданы
номерами: case '4':pomen(); break;
10 Если а не равно не одному из указанных раннее значений, то а присваиваем
значение 5: default: a=5; break;
11 Закрываем оператор множественного выбора: }
12 Закрываем цикл с предусловием: }
13 Конец: }
6.2 Процедура ввода данных
0 Начало процедуры: void vvod(); Описываем локальные переменные
1 Резервируем область оперативной памяти размером равным размеру элемента и
присваиваем указателю на последний элемент q адрес этой области:
q=new(news)
2 Последовательно вводим данные внутренней структуры, на которую будет
указывать указатель q. Ввод будем осуществлять с помощью последовательности
операторов ввода scanf
12
3 Присваиваем указателю на первый элемент списка un и указателю на текущий
элемент p значение указателя q. Присваиваем переменной i, которая содержит
данные о числе элементов списка и переменной j, которая является параметром
последующих циклов значение равное 1: un=q; p=q; j=1; i=1;
4 Открываем цикл с предусловием (условие: переменная j равна 1); в цикле
будут выполняться шаги с 5 по 9: while (j==1)
5 Увеличиваем значение переменной i на единицу: i++
6 Резервируем область оперативной памяти размером равным размеру элемента и
присваиваем указателю q адрес этой области: q=new(news);
7 Последовательно вводим данные внутренней структуры, на которую будет
указывать указатель q. Ввод будем осуществлять с помощью последовательности
операторов ввода scanf
8 Устанавливаем указатель введенного ранее элемента n на элемент, введенный
шагом 7, а указателю p значение указателя q: p->n=q; p=q;
9 Вводим новое значение переменной j. Ввод будем осуществлять с помощью
оператора ввода scanf
10 Закрываем цикл с предусловием: }
11 Устанавливаем указатель n текущего элемента на NULL: p->n=NULL;
12 Конец процедуры: }
6.3 Процедура вывода данных
0 Начало процедуры: void vivod(); Описываем локальные переменные
1 Устанавливаем указатель p на первый элемент списка, а переменную j, которая будет параметром следующего цикла, устанавливаем в 1: p=un; j=1;
2 Открываем цикл с предусловием (условие: переменная j меньше или равно i);
в цикле будет выполняться шаги с 3 по 4: while (jn; j++;
5 Закрываем цикл с предусловием: }
6 Конец процедуры: }
6.4 Процедура удаления элемента заданного по имени
0 Начало процедуры: void dele(); Описываем локальные переменные
1 Указатель текущего элемента p устанавливаем в начало, а указатель первого
элемента в списке un устанавливаем на следующий элемент: p=un; un=un->n;
2 Освобождаем область памяти, на которую указывает указатель текущего
элемента p: delete p;
3 Значение переменной i, которая содержит данные о числе элементов в
списке, уменьшаем на 1: i=i-1;
4 Конец процедуры
6.5 Процедура перемены мест элементов, которые заданы номерами
0 Начало процедуры: void pomen();Описываем локальные переменные
1 Вводим переменную k1, которая указывает на название первого элемента в
операции перемены мест. Ввод будем осуществлять с помощью оператора ввода
scanf
2 Устанавливаем указатель p на первый элемент списка: p=un;
3 Открываем цикл с заданным числом повторений (j=0…k1); в цикле будет
выполняться шаг 4: for(j=1;jn;
5 Закрываем цикл с заданным числом повторений: }
6 Вводим переменную k2, которая указывает на название второго элемента в
операции перемены мест. Ввод будем осуществлять с помощью оператора ввода
scanf
7 Устанавливаем указатель p2 на первый элемент списка: p2=un
8 Открываем цикл с заданным числом повторений (j=0…k2); в цикле будет
выполняться шаг 4: for(j=1;jn;
14
10 Закрываем цикл с заданным числом повторений: }
11 Переменной с присваиваем данные внутренней структуры, на которые
указывает указатель текущего элемента p: с=p->g;
12 Данные внутренней структуры, на которые указывает указатель текущего
элемента p2, копируем в переменные внутренней структуры, на которые
указывает указатель текущего элемента p: p->g=p2->g;
13 Значение переменной g1 присваиваем переменным внутренней структуры, на
которые указывает указатель текущего элемента p2: p2->g=с;
14 Конец процедуры: }
15
7. Отладка и тестирование программы
Суть процесса тестирования и отладки программы заключается в проверке правильности программы и исправлении найденных ошибок. В ходе процесса отладки и тестирования возникали следующие ошибки:
Statement missing ; - отсутствие знака конца оператора.
16
Список используемой литературы
1 В. В. Подбельский. Язык СИ++. - М.: Финансы и статистика, 2003.
2 Б. И. Березин, С. Б. Березин. Начальный курс С и С++. – М.: Диалог-МИФИ,
1998.
17
ПРИЛОЖЕНИЕ 1
18
19
20
21
ПРИЛОЖЕНИЕ 2
# include
# include
# include
struct gaseta{ char n[30]; char s[30]; int st;};
struct news{ games g; play *n;};
play *un,*p,*q;
int i;
Рекомендуем скачать другие рефераты по теме: доклад на тему, кредит реферат.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата