ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Сибирский государственный университет
телекоммуникаций и информатики.
Межрегиональный центр переподготовки специалистов
КУРСОВАЯ РАБОТА
по дисциплине
«Программирование на языках высокого уровня. Язык программирования Си»
Выполнил:
студент группы ПДТ- 93
Ермаков П. Е.
2006
Разработать программу для создания и работы с двусвязным списком, состоящим из структур. Для работы со списком создать меню со следующими пунктами:
1. Создание списка.
2. Просмотр списка.
3. Добавление в конец списка новой структуры.
4. Корректировка списка.
5. Выход.
Пункт “корректировка списка” выполнить согласно своему варианту задания.
Структура содержит фамилию и 4 оценки. Удалить из списка неуспевающих.
Введение. 4
1. Постановка комплекса задач. 5
2. Блок схема функционирования системы.. 7
3. Описание пользовательских функций. 12
4. Исходный модуль программы.. 15
5. Результаты тестирования выполнения задания. 24
Заключение. 29
Список использованной литературы.. 30
Целью данного курсового проекта является создание программного продукта в соответствии с принципами структурного и объектно-ориентированного программирования, определить типы входных и выходных данных, разработать алгоритм решения предложенной задачи, определить функциональные блоки программного продукта и реализовать предложенную задачу на языке высокого уровня Си/Си++.
Программный продукт должен иметь дружественный интерфейс.
Исходя из задания, задачу можно разделить на несколько составных частей:
1. Создание экранного меню – интерфейса программы;
2. Создание и просмотр списка;
3. Добавление в конец списка новой структуры;
4. Выполнение корректировки списка.
Экранное меню создается для того, чтобы пользователь имел возможность выбирать функции программы. Оно должно быть представлено в графическом виде, быть интуитивно понятным.
Создание и просмотр условно списка объединены в одну функции. Дело в том, что неудобно при запуске программы каждый раз создавать новый список и работать с ним, поэтому лучше создать текстовый файл, который будет хранить данные списка. При выборе данной функции список будет формироваться на основании данных из файла. Дальнейшая работа будет осуществляется с полученным списком. Впоследствии, будет вызвана функция вывода списка на экран, то есть его осуществлен его просмотр. Функция просмотра будет вызываться и из других процедур после совершения действий над списком.
Добавление в конец списка новой структуры будет осуществлено в виде диалога с пользователем. Пользователь вводит все необходимые данные, программа добавляет их в конец списка, а так же в исходный файл. Затем программа вызовет функцию просмотра и выведет обновленный список.
При выполнении корректировки необходимо удалить из списка студентов имеющих все двойки. Перед выполнением данной функции список должен быть сформирован, поэтому запускается процедура создания списка. Данная функция осуществляет удаление только из списка, но не из файла. Таким образом, можно будет несколько раз продемонстрировать выполнение данной функции, не изменяя постоянно содержимое файла. Скорректированный список будет выведен на экран.
Рассмотрим отдельно блок схемы каждой функции программы. На рисунке 2.1 представлена блок-схема основного меню.
Рисунок 2.1 – блок схема основного меню программы.
Блок схема формирования списка по данным исходного файла представлена на рисунке 2.2. В блок-схеме встречаются обозначения указатель «вперед» и указатель «назад». Это указатели на предыдущий и последующий элемент в соответствии со схемой двунаправленного списка.
Рисунок 2.2 – Блок-схема функции создания списка
На рисунке 2.3 представлена блок-схема процедуры добавления нового элемента в конец списка.
Рисунок 2.3 – Блок схема процедуры добавления нового элемента в конец списка.
На рисунке 2.4 представлена блок-схема процедуры корректировки списка (удаления из него неуспевающих студентов).
Рисунок 2.4 – Блок-схема процедуры корректировки списка.
На рисунке 2.5 представлена блок-схема вывода списка на экран.
Рисунок 2.5 – Блок-схема процедуры просмотра списка.
Программа состоит из нескольких функций и процедур условно разделенных на две части:
¾ для работы с текстовым экраном;
¾ функциональные.
Для работы с текстовым экраном используются следующие функции:
int ShowWindow(Menu_W Menu) – функция рисует на экране окно меню. Параметром функции является структура Menu, которая содержит данные о выводимом окне (координата верхнего левого угла, ширина окна, высота окна, тип рамки, заголовок, цвет символов, цвет фона, текстовое содержание окна).
int Select_tema(Menu_W Menu,int kod); - функция отображает активный пункт меню (делает его подсвеченным). Параметрами функции являются: структура Menu, код активного пункта меню.
int tema(Menu_W Menu,int kod) – функция отображает пункт меню если он стал не активным (возвращает его в исходное положение). Параметры функции те же что и в предыдущей функции.
int Navig (Menu_W Menu) – функция осуществляет передвижение по пунктам меню. Параметрами ее является структура Menu. Данная функция отслеживает нажатие клавиш пользователем и определяет, движется ли он по пунктам меню (нажатие клавиш «вверх», «вниз»), либо выбирает пункт (клавиша «Enter»), либо выходит из программы (клавиша «ESC»).
Вышеперечисленные функции отвечают за графическое оформление программы, создают интерфейс. Суть системы заключена в следующих функциях:
int dile(int kod) – функция осуществляет вызов процедур для выполнения действий определенных в меню. Параметром является номер выбранного пункта меню. При помощи оператора switch данная функция вызывает процедуры записанные в меню, какую именно процедуру вызвать определяет переменная kod, которая принимает значения от 0 до 2, по количеств пунктов в меню.
Функция заканчивает свое выполнение отображением главного меню.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.