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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 10.01.2015
Размер файла 907,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

КУРСОВАЯ РАБОТА

по курсу

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

на тему

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

ВВЕДЕНИЕ

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

Для выполнения курсовой работы я использую систему PascalABC.

Система Pascal ABC основана на языке Delphi Pascal и призвана осуществить постепенный переход от простейших программ к модульному, объектно-ориентированному, событийному и компонентному программированию. Некоторые языковые конструкции в Pascal ABC допускают, наряду с основным, упрощенное использование, что позволяет использовать их на ранних этапах обучения. Например, в модулях может отсутствовать разделение на секцию интерфейса и секцию реализации. Тела методов можно определять непосредственно внутри классов (в стиле Java и C#), что позволяет создавать классы практически сразу после изучения записей, процедур и функций.

Ряд модулей системы программирования Pascal ABC специально создавался для учебных целей:

Модуль растровой графики GraphABC обходится без объектов, хотя его возможности практически совпадают с графическими возможностями Borland Delphi. Он доступен в несобытийных программах и позволяет легко создавать анимацию без мерцания

В программе использую свои модули:

ProcedureAndFunktion - содержит основные процедуры и функции программы.

Type_And_Var - содержит глобальные переменные и свои типы переменных.

Компилятор Pascal ABC является компилятором переднего плана (front-end). Это означает, что он не генерирует исполняемый код в виде .exe-файла, а создает в результате компиляции дерево программы в памяти, которое затем выполняется с помощью встроенного интерпретатора. В итоге скорость работы программы примерно в 20 раз медленнее скорости работы этой же программы, откомпилированной в среде Borland Pascal, и в 50 раз медленнее этой программы, откомпилированной в среде Borland Delphi.

Система Pascal ABC позволяет:

программировать на языке Паскаль, подобном Delphi Pascal, включая объектно-ориентированные расширения

работать с графикой

создавать событийные приложения

работать с исполнителями Робот и Чертежник

использовать мини-версию электронного задачника Programming Taskbook, содержащую 200 учебных заданий по следующим темам:

скалярные типы данных и управляющие операторы

обработка последовательностей

минимум и максимум

одномерные и двумерные массивы

символы и строки

типизированные и текстовые файлы

процедуры и функции, рекурсия

указатели и динамические структуры данных

1.ПОСТАНОВКА ЗАДАЧИ

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

1.1 Описание необходимых входных данных

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

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

Ф.И.О. студента;

Предмет по которому он тестировался;

Количество заданных вопросов;

Количество правильных ответов;

Дата прохождения теста;

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

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

2. ПРОЕКТИРОВАНИЕ ПРОГРАММЫ

Опираясь на поставленные задачи в предыдущем пункте, приступим к проектированию приложения.

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

Номер записи. Тип данных - integer;

Фамилия. Тип данных - string;

Имя. Тип данных - string;

Отчество. Тип данных - string;

Название предмета. Тип данных - string.

Дата и время. Тип данных - date.

Количество заданных вопросов. Тип данных - integer.

Количество правильных ответов. Тип данных -integer.

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

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

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

Процедуру чтения данных из базы данных.

Интерфейс программы должен иметь следующие особенности:

Предоставлять пользователю возможность открытия базы данных, сохранения изменений в базе данных;

Предоставлять возможность вывода на дисплей информации;

3.Возможность добавлять новую информацию;

4.Возможность удаления информации;

5.Возможность сортировки информации;

6.Возможность поиска информации;

7.Возможность проверки на некорректный ввод данных.

2.1 Используемые компоненты при разработке программы

При разработке приложения были использованы следующие стандартные модули: CRT.

Модуль CRT предназначен для работы с текстовым окном. Он написан для совместимости с Turbo Pascal. В качестве текстового используется графическое окно модуля GraphABC, при этом запрещено изменение размеров окна и ввод/вывод осуществляется непосредственно в текстовом окне. В результате вывода может осуществляться скроллирование текстового экрана.

Подключив модули CRT и GraphABC одновременно, можно совмещать вывод текста и графики. При этом, однако, запрещено изменение размеров окна, рекомендуется также перед графическим выводом отключать курсор. Наконец, совместное использование модулей CRT и Events не рекомендуется.

3. ОПИСАНИЕ ПРОГРАММЫ

Программа разбита на модули ProcedureAndFunction, Type_and_Var . Рассмотрим некоторые процедуры описанные в программе:

Процедура Output служит для вывода базы данных на экран. Входные данные отсутствуют. файл тестирование данные база

Procedure OutputData;

var

TempFlag : boolean ;

TempInt : integer;

TempString: string;

begin

writeln;

write(Number);

GotoXY(4,WhereY);

write(Element.Surname);

GotoXY(4,WhereY+1);

write(Element.Name);

GotoXY(4,WhereY+1);

write(Element.Patronymic);

GotoXY(22,WhereY-2);

TempInt:=1;

TempFlag:=true;

while (TempInt < Length(Element.Title)) and TempFlag do

begin

if (TempInt > 10) and (Element.Title[TempInt] = ' ') then

begin

write(Copy(Element.Title,1,TempInt));

TempFlag:=false;

end;

if not TempFlag then

begin

GotoXY(22,WhereY+1);

write(Copy(Element.Title,TempInt+1,Length(Element.Title)));

end;

Inc(TempInt);

end;

if TempFlag then

begin

write(Element.Title);

writeln;

end;

GotoXY(52,WhereY-1);

write(Element.NumberQuestions);

GotoXY(62,WhereY);

write(Element.NumberAnswer);

GotoXY(70,WhereY);

writeln(Element.Time.Day div 10,Element.Time.Day mod 10,'.',Element.Time.Month div 10,Element.Time.Month mod 10,'.',Element.Time.Year);

GotoXY(70,WhereY);

writeln(Element.Time.Hour div 10,Element.Time.Hour mod 10,':',Element.Time.Minutes div 10,Element.Time.Minutes mod 10);

writeln;

end;

Процедура InputElement заполнения записи. Входные данные, строки:

procedure InputElement(var Element: body);

var

tempS: string;

tempCH,tempInt: integer;

begin

write('фамилия: ');

readln(tempS);

Element.Surname:=tempS;

write('Имя: ');

readln(tempS);

Element.Name:=tempS;

write('Отчество: ');

readln(tempS);

Element.Patronymic:=tempS;

write('Название предмета: ');

readln(tempS);

Element.Title:=tempS;

write('Количество заданных вопросов: ');

readln(tempCH);

Element.NumberQuestions:=tempCH;

flag:=true;

while flag do

begin

write('Количество правильных ответов: ');

readln(tempCH);

if tempCH > Element.NumberQuestions then

begin

writeln('Правильных ответов не может быть больше чем вопросов!');

end

else

begin

flag:=false;

Element.NumberAnswer:=tempCH;

end;

end;

writeln('Введите дату прохождения теста: ');

flag:= true;

while flag do

begin

write('Введите год(гггг/гг) 2001-2100: ');

readln(tempCH);

case tempCH of

0..100:

begin

Element.Time.Year:=2000+tempCH;

flag:=false;

end;

2000..2100:

begin

Element.Time.Year:=tempCH;

flag:=false;

end;

else writeln('Введены неверные данные!!!');

end;

end;

flag:= true;

while flag do

begin

write('Введите месяц сеанса (мм): ');

readln(tempCH);

case tempCH of

1..12:

begin

Element.Time.Month:=tempCH;

flag:=false;

end;

else

begin

writeln('Введены неверные данные!!!');

end;

end;

end;

flag:=true;

while flag do

begin

tempInt:=Element.Time.Month;

write('Введите день сеанса(дд): ');

readln(tempCH);

case tempCH of

1..31:

begin

Element.Time.Day:=tempCH;

flag:=false;

case tempInt of

2: begin

if ((Element.Time.Year mod 4) <> 0) and (tempCH = 29) then

begin

writeln('Только в высокосный год в феврале 29 дней!');

flag:=true;

end;

if tempCH >= 30 then

begin

writeln('В феврале нет',tempCH,'числа!');

flag:=true;

end;

end;

4,6,9,11: if tempCH = 31 then

begin

writeln('В указанном месяце нет 31 числа!!!');

flag:=true;

end;

end;

end;

else

begin

writeln('Введены неверные данные!!!');

end;

end;

end;

flag:=true;

while flag do

begin

write('Введите час сеанса(чч): ');

readln(tempCH);

if (tempCH >= 0) and (tempCH <=23) then

begin

Element.Time.Hour:=tempCH;

flag:=false;

end

else

begin

writeln('Введены неверные данные!!!');

end;

end;

flag:=true;

while flag do

begin

write('Введите минуты сеанса(мм): ');

readln(tempCH);

if (tempCH >= 0) and (tempCH <=59) then

begin

Element.Time.Minutes:=tempCH;

flag:=false;

end

else

begin

writeln('Введены неверные данные!!!');

end;

end;

writeln('Данные сохранены!');

delay(2000);

clrscr;

end;

Процедура DeletElement удаления записи :

procedure DeletElement(var Q: Queue; NumberElement: integer);

begin

if NumberElement <> Q.Head^.Number then

begin

TempInt:=Q.Head^.Number;

Pop(Q,TempBody);

PushTail(Q,TempBody,false);

Flag:=true;

while (Q.Head^.Number <> NumberElement) and Flag do

begin

if Q.Head^.Number = TempInt then

begin

flag:=false;

end

else

begin

Pop(Q,TempBody);

PushTail(Q,TempBody,false);

end;

end;

if flag then

begin

Pop(Q,TempBody);

while Q.Head^.Number <> TempInt do

begin

Pop(Q,TempBody);

PushTail(Q,TempBody,True);

end;

end

else

begin

writeln('Элемент с указаным номером не найден.');

delay(2000);

end;

end

else

begin

Pop(Q,TempBody);

if Q.Head <> nil then

begin

Pop(Q,TempBody);

TempBody.Number:=1;

PushTail(Q,TempBody,False);

while Q.Head^.Number <> 1 do

begin

Pop(Q,TempBody);

PushTail(Q,TempBody,True);

end;

end;

end;

end;

4.ТЕСТИРОВАНИЕ ПРОГРАММЫ

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

Рис. 1 - Главное окно программы

На экране отображается меню программы. Пользователь может работать с программой.

Создание нового файла:

Рис. 2 - Создание нового файла

Можно открыть уже созданную базу данных из файла:

Рис. 2 - Открытие имеющегося файла

Ввод данных о студенте

Рис. 3 - Добавление нового элемента в базу данных

Сортировка данных

Рис. 4 - Сортировка данных простыми вставками

Поиск данных в базе

Рис. 5 - Поиск по базе данных по всем полям

Вывод записей

Рис. 6 - Вывод данных на экран

Рис. 7 - как это выглядит на экране

На Рис. 7 после выведенных данных мы видим 3 функции:

Вывод других записей

Удаление определённого элемента

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

Сортировка ведомости

Рис. 8 - Сортировка данных перед занесением в ведомость

В пункте можно выбрать сортировку по Ф.И.О студента или сортировку по названию предмета.

Завершение программы

Рис. 9 - завершение программы

Завершение программы осуществляется путём выбора 9 пунка в главном меню программы.

ЗАКЛЮЧЕНИЕ

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

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

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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

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

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

3. Т.А. Павловская -Паскаль, программирование на языке высокого уровня москва-минск, 2009.

ПРИЛОЖЕНИЕ 1

Блок-схемы подпрограмм

Рисунок 1 - блок-схема процедуры добавления элемента в очередь

Рисунок 2 - блок-схема процедуры форматированного вывода информации на экран

Размещено на Allbest.ru


Подобные документы

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

    курсовая работа [364,1 K], добавлен 06.04.2014

  • Создание программного продукта на языке Pascal в визуальной среде программирования Borland Developer Studio в консольном приложении. Разработка типизированного файла для записи данных и их вывод на экран, добавление данных в конец файла, поиск информации.

    курсовая работа [1,0 M], добавлен 04.12.2011

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

    курсовая работа [299,8 K], добавлен 27.06.2014

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

    курсовая работа [1,3 M], добавлен 08.08.2012

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

    контрольная работа [1,3 M], добавлен 12.06.2009

  • Рассмотрение правил записи, способов ввода и вывода, использования функций обработки символьных данных в Pascal. Описание алгоритмизации и программирования файловых структур данных, проектирования структуры файла. Ознакомление с работой данных массива.

    курсовая работа [336,2 K], добавлен 27.06.2015

  • Создание приложения, использующего возможности встроенной в ОС Android базу данных SQLite. Проектирование приложения для преподавателей "DataBase". Классы для работы с SQLite. Вставка новой записи в базу данных. Методы update и delete. Листинг программы.

    курсовая работа [744,9 K], добавлен 07.07.2014

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

    курсовая работа [135,9 K], добавлен 28.12.2012

  • Основные подходы к организации баз данных, компоненты языка Delphi, используемые для их построения. Разработка программного обеспечения - базы данных "Школа", предназначенной для хранения информации об учащихся, их успеваемости по различным дисциплинам.

    курсовая работа [739,8 K], добавлен 14.07.2012

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

    реферат [14,5 K], добавлен 06.12.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.