Разработка приложения, использующего однофайловую базу данных на 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