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

Главная
Программирование, компьютеры и кибернетика
Разработка приложения, использующего однофайловую базу данных на Pascal
Исследование особенностей работы с динамическими структурами данных, обработки строк. Реализация работоспособного программного обеспечения, которое должно поддерживать информационную базу пользователей компьютеров. Метод пирамидальной сортировки данных.
посмотреть текст работы
скачать работу можно здесь
полная информация о работе
весь список подобных работ
Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Министерство образования Республики Беларусь
УО «Полоцкий государственный университет»
Факультет информационных технологий
Кафедра технологий программирования
по курсу «Основы алгоритмизации и программирования»
«Разработка приложения, использующего однофайловую базу данных на Pascal»
В наше время, когда очень быстро развиваются высокие технологии, компьютер стремительно проник в нашу жизнь, трудно представить своё рабочее место без компьютера. Компьютер - это универсальный помощник, который может выполнять множество заданий, тем самым облегчая труд человека.
В настоящее время на смену калькулятора и бумаги как хранителя информации стал компьютер. Ни одна аптека уже не может обойтись без этого “чуда” техники. Компьютер позволяет производить сложные расчёты с минимальными затратами времени, а так же может хранить большие базы с информацией, тем самым облегчая труд и повышая производительность.
В рамках данного курсового проекта попытаемся организовать сведения об использовании компьютеров, которая будет содержать информацию о пользователях, их имя, номер компьютера на котором они работают, их дата использования, а также время начала и время окончания работы, признак (в локальной сети или в Internet).
Программа будет работать с большим количеством информации. Для размещения этих данных в памяти персональных компьютеров потребуется большое количество памяти. Поэтому для обработки больших объемов информации и экономии памяти будут использоваться динамические структуры, в которых выделение памяти на данные происходит только во время выполнения самой программы и при её завершении эти данные из памяти удаляются и «не засоряют» оперативную память персонального компьютера.
Интерфейс и алгоритм работы программы интуитивно понятны любому пользователю, который будет использовать данный проект, даже без специальных знаний. Всё это позволит работать с данной программой большому количеству людей и использовать её в различных организациях без предварительного обучения методике работы с нею. Для использования программы будет достаточным наличие базовых навыков работы с персональными компьютерами.
Курсовая работа реализована на языке программирования Pascal в свободно распространяемой среде программирования Pascal ABC.
программный информационный пользователь сортировка
Согласно условию задачи программа должна иметь возможность хранить и обрабатывать информацию об использовании компьютеров. Входными данными являются:
6) признак работы(в локальной сети или в Internet)
Также программа должна иметь возможность обрабатывать эти данные. Обработка должна включать в себя:
-Пирамидальную сортировку записей по одному из полей
Также программа должна иметь возможность создавать базу данных, открывать базу данных из файла, сохранять базу данных в файл, а также должен быть предусмотрен выход из программы.
В программе предусмотрена процедура пирамидальной сортировки по одному из полей записи.
При решении задачи должна использоваться динамическая структура данных «Кольцевой список»
Программа должна иметь понятный удобный интерфейс и иметь требуемые возможности по управлению информационными базами.
Работа данной программы основывается на использовании динамической структуры данных - кольцевой список. При выполнении любой программы, каждая используемая в ней переменная получает свой адрес в оперативной памяти. При динамическом распределении памяти имеется возможность создавать новые, не объявленные заранее переменные, и размещать их на свободные участки в динамической области оперативной памяти. Это достигается за счет использования указателей.
Указатель - это элемент данных, представляющий собой ссылку на определённую ячейку динамической области оперативной памяти, начиная с которой записывается значение переменной. Переменные, которые размещаются в динамической области оперативной памяти с помощью указателей, называются динамическими переменными .
Указатель может принимать значения, равные всем тем адресам оперативной памяти, по которым возможна запись данных. Указатель может принимать также значение NIL, которое говорит о том, что соответствующая динамическая переменная в оперативной памяти отсутствует.
Указатель объявляется с помощью специального символа, называемого “ каре ” (), за которым записывается идентификатор типа динамической переменой:
Динамическая структура называется кольцевым списком или двунаправленным списком, если каждый узел её содержит два указателя: один указывает на предшествующий узел, другой - на последующий. Указатель первого элемента указывает на последний элемент и наоборот.
Рисунок - Реализация кольцевого списка
Также условие предусматривает использование пирамидальной сортировки.
Метод пирамидальной сортировки работает следующим образом:
для начала необходимо перестроить исходный массив так, чтобы он превратился в пирамиду, где каждый элемент "опирается" на два меньших. Этот процесс назвали просеиванием, потому что он очень напоминает процесс разделения некоторой смеси (камней, монет, т.п.) на фракции в соответствии с размерам частиц: на нескольких грохотах последовательно задерживаются сначала крупные, а затем все мелкие частицы.
Для того чтобы отсортировать массив методом Пирамиды, необходимо выполнить такую последовательность действий:
0-й шаг: Превратить исходный массив в пирамиду (с помощью просеивания).
1-й шаг: Для N-1 элементов, начиная с последнего, производить следующие действия:
· поменять местами очередной "рабочий" элемент с первым;
· просеять (новый) первый элемент, не затрагивая, однако, уже отсортированный хвост последовательности (элементы с i-го по N-й).
Пирамидальная сортировка хорошо работает с большими массивами, однако на маленьких примерах (N<20) выгода от ее применения может быть не слишком очевидна. В среднем этот алгоритм имеет сложность, пропорциональную N*log N.
Помимо динамической памяти будем использовать возможности модуля CRT для организации дружелюбного пользовательского интерфейса. Возможности модуля дают нам возможность грамотно расположить элементы управления, обеспечить управление программой при помощи устройства ввода (клавиатуры) и организовать удобный для понимания вывод данных.
Сразу после запуска программа должна будет предложить выбрать одно из перечисленных ниже действий, для этого нужно будет нажать клавишу “Enter” и продолжить пользование программой.
7) Сортировать список пользователей.
8) Посмотреть весь список пользователей.
9) Отчет за определённый период времени.
Создание новой базы данных - эта команда будет выполнять создание новой базы данных на компьютере.
Открытие базы данных - эта команда будет выполнять открытие базы данных на компьютере.
Просмотреть весь список пользователей - эта команда будет выполнять вывод полного списка пользователей на монитор.
Сортировать список пользователей - эта команда будет выполнять сортировку преподавателей по одному из перечисленных элементов:
1) Сортировка пользователей по Имени (от А до Я).
2) Сортировка пользователей по номеру (по возрастанию).
3) Сортировка пользователей по Дате (по возрастанию).
Добавить нового пользователя - эта команда будет выполнять добавление пользователя в базу данных библиотеки.
Если пользователь добавлен, то по нажатию клавиши будет осуществлён выход в предыдущее меню.
Удалить пользователя из списка - эта команда будет выполнять удаление пользователя по одному из перечисленных элементов:
Произвести поиск пользователя - эта команда будет выполнять поиск пользователя по одному из перечисленных элементов:
2) Поиск пользователя по Номеру компьютера.
Вернуться - эта команда будет выполнять возврат в предыдущее меню.
Сохранить изменения - эта команда будет выполнять сохранение изменений, совершённых за время работы программы.
Выход из программы - эта команда будет выполнять закрытие окна без сохранения изменений, совершённых за время работы программы.
Также в программе используется и стандартный модуль crt.
Кольцевой список я реализовал следующим образом:
Где поле data является записью, которая хранится в списке, а поля Next и Pred являются указателями на предыдущий и следующий элементы списка соответственно.
Запись infrec описана следующим образом:
name,date,time_nach,time_end,priznak:string;
В переменной head - хранится «голова» списка, а в переменной Tail - соответственно хранится «хвост» списка.
Поле Name имя пользователя, Number - номер компьютера пользователя , date - дату использования компьютера , time_nach - время, time_end - время окончания работы, priznak - признак работы(в локальной сети или в Internet).
Данный модуль включает в себя следующие подпрограммы:
Function pr_kolelem(p : string)(листинг 1) - функция, производящая проверку количества пользователей;
Листинг 1 - описание процедуры pr_kolelem(p:string)
if s[i] in ['0'..'9'] then // Если цифра то считаем кол-во
if (kol <> i) and (length(s) < 11) then n:=-1 //Если кол-во не равно длине
n:=strtoint(s); // иначе преобразуем строку в число и отправляем дальше
Procedure prover_date(s:string;var buf:plist); (листинг 2) - процедура, производящая проверку вводимых символов в дату;
Листинг 2 - описание процедуры prover_date(s:string;var buf:plist);
Procedure prover_date(s:string;var buf:plist);
if (length(s) = 10 ) and (s[3] = '.') and (s[6] = '.')
and (s[1] < '4') and (s[7] < '3') then
if ((s[4] = '1') and (s[5] < '2=') )or (s[4] = '0') then
flag:=true; // Проверяем на корректность ввода даты
if not flag then // Если ввели не правильно, то предлогаем ввод заново
writeln(`Введите дату в формате (дд.мм.гггг):');
s:=buf.data.date; // обновляем строку введенной информацией
Procedure prover_name(s:string;var buf:plist); (листинг 3) - процедура, производящая проверку вводимых символов в имя пользователя;
Листинг 3 - описание процедуры prover_name(s:string;var buf:plist);
Procedure prover_name(s:string;var buf:plist);
if (ord(s[1])>=65) and (ord(s[1])<=90) or (ord(s[1])>=192) and (ord(s[1])<=223) then // Если первая буква заглавная flag:=true;
if (length(s) <= 20) and (ord(s[i])>=97) and (ord(s[i])<=122) or (ord(s[i])>=224) and (ord(s[i])<=255) // Если латинские
or (ord(s[i])>=65) and (ord(s[i])<=90) or (ord(s[i])>=192) and (ord(s[i])<=223) then // Если русские
flag:=false; // иначе выходим из подпрограммы и опускаем флаг
if not flag then begin // если не корректно, то ввод заново
write(Введите имя состоящее из букв(Alex):');
procedure prover_time_nach(s:string;var buf:plist); (листинг 4) - процедура, производящая проверку вводимых символов в начальное время.
Листинг 4 - описание процедуры prover_time_nach(s:string;var buf:plist); prover_time_nach(s:string;var buf:plist);
if (length(s) = 5 ) and (s[3] = '.') and (s[1] < '3') and (s[4] < '7') then // Если время введено правильно то поднимаем флаг
if not flag then // если введено не правильно, то ввод заново.
writeln('Введите время в формате (чч.мм)');
procedure prover_number (s:string;var buf:plist); (листинг 5) - процедура, производящая проверку вводимых символов в номер компьютера.
Листинг 5 - описание процедуры prover_number (s:string;var buf:plist);
prover_number (s:string;var buf:plist var i,x,flag,code:integer;
if s[i] in ['0'..'9'] then inc(flag); // если цифра то считаем
if flag <> 3 then //если не 3-х значное то, ввод заново
writeln('Введите целое 3-х значное число:');
until flag = 3; // Если флаг = 3, то выходим из цикла
val(s,x,code); // преобразуем строку s в целочисленную переменную x
Procedure add_data - процедура заполнения записи. Выполнено ряд проверок при вводе данных о пользователе. Если вы введете не верные данные, то вы увидите соответствующее окно.
Procedure add_head, add_tail, add_elem - процедуры создают новый узел и заполняют информацию о пользователях с помощью процедуры add_data.
Function search_number - функция выполняет поиск по введенному номеру компьютера, возвращает позицию в списке.
Procedure print(print_one) - процедура выводит на экран список пользователей(одного пользователя).
Procedure save_in_fail - процедура сохраняет базу данных в файл.
Procedure open_fail - процедура открывает из файла, сохранённую ранее базу данных.
Procedure add_zap_head, add_zap_tail, add_zap - процедуры для добавления записи о пользователях, в уже существующий список пользователей.
Procedure search_name, search_date - процедуры поиска пользователей по одному из полей записи . Выполнено ряд проверок при вводе данных о пользователе. Если пользователя по одному из критериев не будет, то выведется на экран соответствующие сообщение.
Sort_date, sort_name, sort_number - процедуры сортировки по полям записей. Используеться пирамидальная сортировка. Для примера сортировка графически представлена в (приложении 4).
Procedure delete_head, delete_tail, delete_elem - процедуры удаления любого элемента из списка.
Function srav_date - функция возвращает количество минут содержащихся в обрабатываемой дате.
Для проведения тестирования запустим программу из файла main.pas.
После запуска программы на экране появляется главное меню (рис. 1).
При выборе пункта «Создание новой базы данных» запускается следующее меню (рис.2.)
Рисунок 2 - Создание новой базы данных.
Если при ввод данных присутствуют неверные символы, то программа выдаёт сообщение об ошибке до тех пор, пока не будут введены верные символы (рис.2)
При выборе пункта «Открытие базы данных» запускается следующее меню (рис.3.)
При попытке открыть файл которого не существует, то программа выдаёт сообщение об ошибке(рис.3).
При выборе пункта “Сортировать список пользователей” запускается следующее меню (рис.5).
При выборе пункта “Добавить нового пользователя ” запускается следующие меню (рис.6).
Рисунок 6 - Добавление данных о пользователе
При выборе пункта “Удалить пользователя из списка ” запускается следующие меню (рис.7).
Рисунок 7 - Удалить пользователя из списка
При выборе пункта “Произвести поиск пользователя” запускается следующие меню (рис.8).
Рисунок 8 - Меню поиска пользователя
Если пользователи с определенными данными не будут обнаружены в базе данных, то выведется сообщение (рис. 9).
Рисунок 9 - Сообщение о не нахождении пользователя в базе данных
Тестирование программы завершено успешно.
В данной курсовой работе была поставлена цель, использовать полученные знания языка программирования Pascal ABC, реализовать работоспособное программное обеспечение, которое должно поддерживать информационную базу пользователей компьютеров.
В процессе работы были закреплены основные навыки работы с динамическими структурами данных, обработка строк, процедурное программирование, модульное программирование, было освоено умение работать со стандартным модулем crt.
Удалось реализовать программу, которая способна управлять базой пользователей компьютеров, добавлять и удалять их, которая реагирует на ошибки. Кроме того, она удобна в работе и имеет понятный интерфейс.
Интерфейс и алгоритм работы программы интуитивно понятны любому пользователю, который будет использовать данный проект, даже без специальных знаний. Всё это позволит работать с данной программой большому количеству людей и использовать её в различных организациях без предварительного обучения методике работы с нею. Для использования программы будет достаточным наличие базовых навыков работы с персональными компьютерами.
1. В.С. Фаронов: “ Turbo Pascal 7.0(начальный курс)”, МВТУ,1992.
2. М.С. Долинский: ”Алгоритмизация и программирование на Turbo Pascal”,Спб.: Питер- 2005.
3. В.П. Грибанов: “Основы алгоритмизации и программирования”, Москва, 2004.
4. И.А. Шпак: “Иллюстрированный самоучитель по Turbo Pascal”, Москва,2002.
Блок-схема записи данных в голову списка.
Блок-схема сохранения в файл базы данных.
Блок-схема пирамидальной сортировки. В данном случае сортировка по номеру компьютера(по возрастанию).
Создание типизированного файла, содержащего информацию о тестировании студентов по учебным дисциплинам. Описание необходимых входных данных. Используемые компоненты при разработке программы. Процедура Output, служащая для вывода базы данных на экран. курсовая работа [907,1 K], добавлен 10.01.2015
Создание приложения, использующего возможности встроенной в ОС Android базу данных SQLite. Проектирование приложения для преподавателей "DataBase". Классы для работы с SQLite. Вставка новой записи в базу данных. Методы update и delete. Листинг программы. курсовая работа [744,9 K], добавлен 07.07.2014
Автоматизация процесса разбора данных файла с расписанием занятий Института Естественных наук и Биомедицины САФУ. Перенос данных из таблицы, содержащей расписание института в базу данных, находящуюся на вэб-сервере. Написание алгоритма работы приложения. контрольная работа [355,3 K], добавлен 27.07.2013
Создание систем автоматизированного сбора и обработки данных. Разработка информационной системы гостиничного комплекса. Выбор требуемой СУБД и программного обеспечения. Концептуальное, логическое проектирование. Организация ввода данных в базу данных. дипломная работа [790,1 K], добавлен 13.02.2016
Общие сведения о платформе Microsoft NET Framework. Разработка приложения "Поставка и реализация программного обеспечения", содержащего базу данных о каталогах адресов в Internet. Описание логической структуры. Требования к техническому обеспечению. курсовая работа [2,4 M], добавлен 28.06.2011
Разработка программного продукта - приложения, позволяющего заносить данные анкетирования в базу данных MS SQL. Описание логики работы приложения, особенности пользовательского интерфейса. Формы просмотра анкет, описание процедур и функций программы. курсовая работа [1,2 M], добавлен 16.08.2012
Разработка программы, создающей и управляющей базой данных, ее реализация на языке Turbo Pascal. Организация алгоритма программы. Вывод информации и возможность добавления информации в базу данных. Поиск информации в базе данных по заданному значению. курсовая работа [26,7 K], добавлен 19.06.2010
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .
© 2000 — 2021
Разработка приложения, использующего однофайловую базу данных на Pascal курсовая работа. Программирование, компьютеры и кибернетика.
Курсовая Работа На Тему Теория Систем
Контрольная работа: Сбор и обработка измерительной информации
Дипломная работа по теме Анализ показателей по труду и заработной плате и пути их улучшения
Глубина Человеческих Чувств Сочинение
Контрольная Работа По Обществознанию 9 Класс Политика
Курсовая Работа На Тему Стилі Керівництва І Їх Вплив На Самозатвердження І Розвиток Співробітників
Комплексная Региональная Контрольная Работа 3 Класс
Последствия Крупных Аварий На Аэс Реферат
Становление Древнерусского Государства Реферат
Япония В Средние Века Реферат
Реферат: Cisc And Risc Processor Technologies Essay Research
Ответ на вопрос по теме Охрана труда
Теория И Методика Плавания Реферат
Скачать Михайловский Собрание Сочинений
Реферат На Тему Итоги И Уроки Великой Отечественной Войны (1941-1945гг.)
Курсовая работа: Характеристика птахів-синантропів
Дипломная работа по теме Разработка перспективных программ обслуживания в Рязанской области
Курсовая работа: Доходы бюджета РФ
Источники Загрязнения Почвы Реферат
Реферат: Динамическое программирование 2
Моделирование систем и процессов защиты информации в условиях неполноты и недостоверности данных - Программирование, компьютеры и кибернетика дипломная работа
Методика обучения студентов педагогических вузов теме: "Сложное отношение точек. Полный четырехвершинник" - Педагогика дипломная работа
Формы объединений, ассациаций и особености управления ими - Менеджмент и трудовые отношения курсовая работа