Материал: Основы алгоритмизации и программирования

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

.1 Анализ предметной области


Задачей курсового проектирования является решение задач и создание информационной базы данных «Студенты».

При проектировании программного продукта необходимо обеспечить вывод на экран и в отдельный файл: фамилии неуспевающих студентов с указанием номера группы и количества задолженностей; средний балл, полученный каждым студентом группы Х и всей группой в целом. Номер группы вводить с клавиатуры. Программа должна выполнять следующие дополнительные функции: создание новой базы данных; открытие базы из файла; сохранение базы в файл; добавление записей; удаление записей; поиск записей по одному из полей; сортировку по одному из полей; вывод базы данных на экран; выход из программы. Для реализации основных действий алгоритма использовать подпрограммы. Для обработки записей реализовать динамическую структуру данных стек.

.2 Входная информация


Входная информация - это информация, которой будет дополняться база данных.

В качестве входной информации выступает информация о студентах: фамилия, имя, отчество студента, номер группы, оценки по пяти экзаменах и по пяти зачетам.

.3 Выходная информация


Выходная информация представляет собой описание предполагаемых отчетов и результатов запросов и поисков, возможных в системе.

Разработанная база данных «Студенты» выдает информацию о студентах. Также программный продукт выводит отчет, в котором отображается информация о неуспевающих студентах, а именно − фамилии, имена, отчества, номер группы и количество задолженностей студентов.

.4 Постоянная информация


Постоянная информация в разработанной базе данных представлена следующими составляющими: перечень студентов, отметки данных студентов по экзаменам и зачетам.

6. Математическая формулировка задачи и выбор метода обработки информации

.1 Математическая формулировка задачи


Для того чтобы рассчитать средний балл по группам, необходимо найти средний балл каждого студента этой группы и сложить все средние баллы студентов.

Для расчета среднего балла каждого студента необходимой группы использовалась данная формула:

,

где k - количество оценок по экзаменам, а - оценка.

Данная формула выполняется для каждого студента, переход по строкам таблицы происходит в виде циклического процесса.

Для расчета среднего балла по группе использовалась следующая формула:

, где  - средний балл студента этой группы.

.2 Метод решения


Для расчета среднего балла по группам для начала необходимо найти студентов, которые непосредственно находятся в этой группе.

Производим сравнивание номера группы с введенным номером (if (s^.data.group=n) then). При нахождении таковых студентов, производим расчет среднего балла по экзаменам каждого из них.

for i:=1 to 5 do:=c+s^.data.ekzam[i];:=c div 5;

Для нахождения общего среднего балла группы складываем средние баллы каждого студента и делим на количество студентов в группе.

:=g div j;

После расчета выводим результат на экран.

.3 Выбор среды разработки


Язык Паскаль относится к процедурно-ориентированным языкам высокого уровня. Разработан американским ученым Никласом Виртом в 1971 г. в качестве языка для обучения программированию. Базой при разработке явился язык Алгол.

Достоинства языка Паскаль:

) относительная простота (т.к. разрабатывался с целью обучения программированию);

) идеология языка Паскаль близка к современным методикам и технологиям программирования, в частности, к структурному программированию и нисходящему проектированию (метод пошаговой детализации) программ. Паскаль может использоваться для записи программы на различных уровнях ее детализации, не прибегая к помощи схем алгоритмов;

) гибкие возможности в отношении используемых структур данных;

) высокая эффективность программ;

) наличие средств повышения надежности программ, включающих контроль правильности использования данных различных типов и программных элементов на этапах трансляции, редактирования и выполнения.

В связи с этим язык Паскаль в настоящее время находит самое широкое распространение для решения большого круга разнообразных практических и научных задач.

Для разработки курсового проекта был выбрана среда разработки Pascal ABC.

7. Форма представления исходных данных


Для хранения исходных данных была выбрана структура данных стек, т.к. это указано в условии задачи.

Стек - структура данных с методом доступа к элементам LIFO.

Добавление элемента, называемое также проталкиванием (push), возможно только в вершину стека (добавленный элемент становится первым сверху). Удаление элемента, называемое также выталкивание (pop), возможно также только из вершины стека, при этом, второй сверху элемент становится верхним.

Стеки широко применяются в вычислительной технике - в частности, для отслеживания точек возврата из подпрограмм используется стек вызовов, который является неотъемлемой частью архитектуры большинства современных процессоров. Языки программирования также используют стек вызовов для передачи параметров при вызове процедур.

Информация в базе данных представлена в виде записей. Запись представляет собой совокупность ограниченного числа логически связанных компонент, принадлежащих к разным типам. Компоненты записи называются полями, каждое из которых определяется именем. Поле записи содержит имя поля, вслед за которым через двоеточие указывается тип этого поля. Поля записи могут относиться к любому типу, допустимому в языке Паскаль, за исключением файлового типа. Каждая запись в базе данных «Студенты» содержит поля: фамилия, имя, отчество, номер группы, оценки по экзаменам, зачеты.

В разрабатываемом проекте форма выдачи результата - текстовая.

Текстовая информация находит широкое распространение благодаря компактности и наглядности способа представления информации для человека. Благодаря этому пользователь с легкостью может работать с программным продуктом.

Для хранения исходных данных на жестком диске была выбрана файловая форма хранения. В отличие от переменной, файл (в частности, его имя) имеет смысл вне конкретной программы. Ресурсами, доступными через файлы, в принципе, может быть что угодно, представимое в цифровом виде.


8. Разработка алгоритма и его описание


Алгоритм создания базы данных делится на создание файла базы данных, текстовой оболочки базы данных и дополнительных функций, таких как вывод отчета в файл, сортировка по любому полю записей. Файл базы данных был создан при помощи самого разработанного продукта. База данных была создана при помощи приложения Pascal ABC. Она представляет собой обыкновенную текстовую оболочку.


9. Описание программы

.1 Структура


Программа на языке Паскаль состоит из заголовка программы и тела программы (блока), за которым следует точка - признак конца программы. База данных «Студенты» состоит из следующих разделов: раздел подключаемых модулей, раздел описания типов данных, раздел описания переменных, раздел описания подпрограмм и раздела операторов.

В разделе подключаемых модулей uses в программе используется модуль CRT.

В разделе описания типов данных type описывается такие типы данных как стек (pstack = ^tstack) и записи (tdata = record).

В разделе описания переменных var описана переменная стека - stack: pstack, записи - data: tdata, переменная для работы с текстовым меню - m:byte.

В разделе описания подпрограмм описаны подпрограммы для удаления, добавления записей, сохранения базы данных в файл, вывод базы данных из файла, инициализация стека, выход из программы, сортировка базы данных по определенному полю, поиск данных по базе данных, очистка буфера клавиатуры.

.2 Описание подпрограмм


Исходный текст программы разделен на несколько подпрограмм, каждая из которых отвечает за определенные функции. Ниже представлен список процедур и функции реализованных в программе:

-       procedure push (data: tdata; var stack: pstack); процедура добавления информации в стек;

-       procedure pop (var data: tdata; var stack: pstack); процедура изъятия информации из стека;

-       function stackDepth (stack:pstack):integer; функция определяющая глубину стека;

-       function get (stack:pstack; num:integer):pstack; функция получения количества элементов в стеке;

-       procedure fflush; процедура очистки буфера клавиатуры;

-       procedure kill (var stack:pstack); процедура уничтожения стека;

-       procedure inputData (var data:tdata); процедура ввода данных;

-       function menu:byte; меню программы;

-       procedure addNew; добавление записи в стек;

-       function zachet (z:byte):char; перевод информации в зачет / незачет;

-       procedure printLine (n:integer; data:tdata); процедура печати одной записи;

-       procedure printAll; вывод на экран все элементов стека;

-       procedure save (filename:string); процедура для сохранения базы данных в файл;

-       procedure load (filename:string); процедура загрузки базы данных из файла;

-       procedure saveBase; сохранение базы данных под именем;

-       procedure loadBase; загрузка базы данных по имени;

-       procedure deleteItem; процедура для удаления элемента из стека;

-       procedure Report; процедура для генерирования отчета, расчета среднего бала и вывода отчета на экран и в файл;

-       function compare (s1, s2:pstack; field:integer):boolean; функция сравнения при поиске;

-       procedure swap (s1, s2:pstack); процедура обмена;

-       procedure doSort (stack:pstack; field:integer); процедура для сортировки;

-       procedure sort; сортировка по полям записей;

-       procedure gen; процедура для генерирования случайных записей в базе данных;

.3 Описание переменных


сh:char; - переменная предназначенная для продолжения какого либо действия

stack: pstack; - переменная для инициализации стека: integer; - переменная для подсчета элементов в стеке: tdata; - переменная содержащая запись:char; - переменная для выбора строки меню

z:byte; - переменная для перевода цифр в зачеты:file of tdata; - файловая переменная для хранения записей:string; - переменная для имени файла базы данных:integer; - переменная для выбора номера элемента, который необходимо удалить.


10. Инструкция по эксплуатации программы


Для начала работы с программой необходимо запустить файл «base.exe» из корневого каталога программы. После запуска появится меню работы с программой (рисунок 1).

Главное меню программы

Для работы с базой данных необходимо нажимать цифру с соответствующей подписью. Для создания новой базы данных необходимо нажать 1, после этого вводим номер группы, имя, отчество, фамилию, оценки и зачеты.

Для загрузки базы данных необходимо нажать 2 - после этого ввести название базы данных (по умолчанию base.db).

Для сохранения базы данных необходимо нажать на клавишу 3 = после нажатия ввести имя под которым будет сохранена база.

Для просмотра записей - клавиша 4. Информация будет введена на экран.

Для добавления записи вверх стека нажать - 5. После необходимо ввести информацию о студенте.

Клавиша 6 предназначена для удаления записи в стеке.

Для поиска по всем полям таблицы необходимо нажать 7. после этого необходимо ввести информацию, которую необходимо найти.

Для сортировки нужно нажать 8. Появится окно для работы с сортировкой (рисунок).

Форма для работы с сортировкой

После нажатием определенной клавиши, выбрать по какому полю произвести сортировку.

Для генерирования отчета по неуспевающим студентам - клавиша 9. Отчет сохранится на жестком диске и выведется на экран.

Для выхода из программы необходимо нажать 0.


11. Результаты проведенных расчетов и их анализ


План тестирования базы данных включает в себя тестирование функций базы данных, таких как:

−        функция добавления данных;

−       функция удаления данных;

−       корректная работа главного меню;

−       функция загрузки базы данных из файла;

−       функция сохранения базы данных в файл;

−       функция поиска данных;

−       функция расчета среднего балла;

−       функция отображения отчета;

−       функция сохранения отчета;

−       функция сортировки по одному из полей записи;

−       закрытие приложения.

Тестовый вариант

Входные данные

Ожидаемый результат

Фактический результат

Результаты тестирования

Рекомендации к исправлению

Функция добавления данных

Файл базы данных

Добавление записи в базу данных

Добавление записи в базу данных

неуспешно


Функция удаления данных

Записи базы данных

Удаление записи из базы данных

Удаление записи из базы данных

неуспешно


Корректная работа главного меня


Корректная работа функций главного меню

Корректная работа функций главного меню

неуспешно


Функция сохранения базы данных в файл

Файл базы данных

Сохранение базы данных на жестком диске в виде файла

Сохранение базы данных на жестком диске в виде файла

неуспешно


Функция загрузки базы данных из файла

Файл базы данных

Отображение всех данных базы даны на экране

Отображение всех данных на экране

неуспешно


Поиск данных

Записи базы данных

Вывод записей по критерию поиска

неуспешно


Функция расчета среднего балла по группе

Записи базы данных

Расчет среднего балла и вывод результата на экран

Расчет среднего балла и вывод результата на экран

неуспешно


Отображение отчета

Записи базы данных

Отображение отчета на экране со необходимыми записями базы данных

Отображение отчета на экране со необходимыми записями базы данных

неуспешно


Сохранение отчета

Отчет с данными

Сохранение отчета в файл с расширением TXT

Файл сохранен на жестком диске с расширением TXT

неуспешно


Сортировка записей по одному из полей

Записи базы данных

Отсортированный набор записей по одному из полей

Отсортированный набор записей по одному из полей



Закрытие приложения


Закрытие приложения, остановка выполнения функций базы данных

Закрытие приложения, остановка выполнения функций базы данных

неуспешно



В ходе тестирования базы данных «Студенты» ошибок выявлено не было.

 


Заключение


Pascal ABC обладает немалым количеством весьма полезных свойств, не совсем поддерживающих самые современные технологии, но способных повысить эффективность разработки программных продуктов самого разнообразного назначения.

Разработанный курсовой проект отвечает всем условиям и требованиям.

В рамках курсового проектирования была разработана база данных с функциями добавления, удаления записей файла базы данных, расчета среднего балла, отображении информации при помощи отчета, сортировки данных по определенному полю, поиска по всем записям базы данных. Разработанная база данных выполняют свои функции, которые были назначены.

Разработанный проект имеет текстовый интерфейс, предоставляющий наиболее гибкий способ просмотра, добавления, удаления данных, а также отбор и поиск необходимых данных, при этом получать быстрый результат.

Также был решен ряд задач на различные темы.

Были приобретены новые навыки в программировании, повысился уровень знаний.

В заключение хочется сказать, что научиться программировать можно только программируя, решая конкретные задачи. Поэтому нужно искать задачи и программировать.

 


Список использованной литературы


1. Turbo Pascal для студентов и школьников - СПб.: БЧВ - Петербург, 2004. - 352 с.: ил. (Г.Г. Рапаков, С.Ю. Ржеуцкая)

2.      Turbo Pascal для школьников. Версия 7.0. - М.: Финансы и статистика, 1996. - 446 с. (Попов В.Б.)

.        Turbo Pascal: Учись программировать. 2002. - 448 с.: ил. (Меженный О.А.)

.        Аляев Ю.А., Гладков В.П., Козлов О.А. Практикум по алгоритмизации и программированию на языке Паскаль: Учеб. пособие. - М.:Финансы и статистика, 2004.

.        Бородич Ю.С., Вальвачев А.Н., Кузьмич А.И. Паскаль для персональных компьютеров. - Мн.: Выш.шк.; БФ ГИТМ «НИКА», 1991.

.        Информатика, 7 - 11 класс. Киев, 2004. Гаевский А.Ю.

.        Кулагин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi. - СПб.:BHV, 2000.

.        Кулагин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi. - СПб.:BHV, 2000.

.        Мануйлов В.Г. Разработка программного обеспечения на Паскале. - М.: Приор, 1996.

.        О.А. Меженный: Turbo Pascal. Учитесь программировать. Санкт - Петербург, 2001 год.

.        Офицеров Д.В., Долгий А.Б., Старых В.А. Программирование на персональных ЭВМ: Практикум: Учеб.пособие. - Мн.: Выш.шк., 1993.

.        Пильщиков В.Н. Сборник упражнений по языку Паскаль. - М.: Наука, 1989.

.        Пильщиков В.Н. Сборник упражнений по языку Паскаль. М.: Наука, 1989.

.        Фаронов В.В. Практика программирования. М.: МВТУ-ФЕСТО ДИДАКТИК, 1993.