Пиши Дома Нужные Работы

Обратная связь

Разработка приложения database.exe

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

Приложение database.exe - основной модуль программы. Для реализации навигации по главному меню был разработан модуль mainmenu.c. В нем описаны функций, необходимые для работы меню, вывода его на экран и выполнения выбранного действия.

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


Иерархическая структура программы представлена на рисунке 4.

 

 

updatesm()
savefile()
datasize()
main()
intro()
mmenu()
updatemm()
makemm()
openfile()
smenu()
deletedata()
viewdata()
makesm()
A
inputdata()
stest()
ntest()
deletefile()
about()
exit()

 


 


Рисунок 4 – иерархическая структура программы
A
removerecord()
editrecord()
findrecord()
sortdata()
sorttag()
sortupdate()
makesort()
report()
dialog()
updatedialog()

Разработка меню

Навигация по программе состоит из главного меню и подменю.

Главное меню реализовано в модуле mainmenu.c и состоит из девяти пунктов: «Open File», «Save File», «Delete File», «View Data», «Enter Data», «Delete Data», «Look Intro», «About» и «Exit».

Меню реагирует на нажатие клавиш (стрелки вверх/вниз), тем самым в главной функции меню (mmenu()) происходит нахождение выбранного пункта и обновление меню (updatemm()). При нажатии кнопки ввода порядковый номер пункта меню передается в функцию, которая осуществляет выполнение выбранного действия (makemm()). Меню располагается посередине окна программы.



Помимо главного меню существует подменю, предназначенное для работы с записями. Оно описано в модуле submenu.c и состоит из шести пунктов: «Main Menu», «Add», «Remove», «Edit», «Find», «Sort». Алгоритм работы подменю аналогичен главному меню. Меню располагается в самом верху окна, под которым выводится таблица с имеющимися записями.

 

 


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

 

Клавиша, вызывающая событие Событие Действия программы Функция
Стрелка вверх/вниз, ввод   Открыть файл Производится считывание данных из файла «data.txt» в список. Создается новый файл, либо перезаписывается старый. openfile()
Сохранить файл Данные записываются в файл «data.txt». savefile()
Удалить файл Файл «data.txt» полностью удаляется. deletefile()
Просмотреть данные Вывод записей из списка на экран в виде таблицы. viewdata()
Ввести данные Записи вводятся с клавиатуры. После ввода каждой записи появляется запрос на добавление новой записи. inputdata()
Удалить данные Все данные из списка удаляются. deletedata()
Показать заставку Просмотреть приветствие. intro()
О программе Некоторая информация о базе данных. about()
Выход При наличии хотя бы одной записи появляется запрос на сохранение базы в файл. exit()

 

Таблица 1 – Пункты главного меню

 


Разработка функции на языке Assembler

Как известно, функции, реализованные на языке «Ассемблер», работают быстрее. Компилятор, входящий в состав среды разработки VS2005, позволяет это реализовать.

Описание функции выполнено на языке Си, а тело функции представляет собой ассемблерную вставку. Для этого перед ассемблерной вставкой необходимо написать ключевое слово «__asm» и внутри фигурных скобок описать тело функции.

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

 

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

1. инструкция mov выполняет копирование содержимого источника в приемник;

2. инструкция sub выполняет вычитание содержимого источника и приемника;

3. инструкция cmp выполняет сравнение двух операндов и изменяет состояние флагов;

4. инструкция je выполняет условный переход на метку, если операнды при выполнении инструкции cmp были равны;

5. инструкция jmp выполняет безусловный переход на метку;

 

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

 

pos = pos - 1;

if(pos == 0)

pos = line;

 

 

Ассемблерная вставка:

 

__asm {

mov al, pos;

mov bl, line;

sub al, 1;

cmp al, 0;

je equally;

jmp assignment;

equally:

mov al, bl;

assignment:

mov pos, al;

}


Руководство пользователя

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

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

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

 

Рисунок 5.1 – Окно заставки

 

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

Главное меню состоит из следующих пунктов:

1. Открытие файла

2. Сохранение файла

3. Удаление файла

4. Просмотр данных

5. Ввод данных

6. Удаление всех данных

7. Просмотр заставки

8. О программе

9. Выход

 

L t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEA2KeGl8UA AADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPzWrDMBCE74W8g9hALqWR60Na3CghPw30kB7shpwX a2uZWisjKbHz9lWg0OMwM98wy/VoO3ElH1rHCp7nGQji2umWGwWnr8PTK4gQkTV2jknBjQKsV5OH JRbaDVzStYqNSBAOBSowMfaFlKE2ZDHMXU+cvG/nLcYkfSO1xyHBbSfzLFtIiy2nBYM97QzVP9XF Kljs/WUoefe4P70f8bNv8vP2dlZqNh03byAijfE//Nf+0AryF7h/ST9Arn4BAAD//wMAUEsBAi0A FAAGAAgAAAAhAPD3irv9AAAA4gEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54 bWxQSwECLQAUAAYACAAAACEAMd1fYdIAAACPAQAACwAAAAAAAAAAAAAAAAAuAQAAX3JlbHMvLnJl bHNQSwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAEAAAAAAAAAAAAAAAAAApAgAAZHJzL3NoYXBl eG1sLnhtbFBLAQItABQABgAIAAAAIQDYp4aXxQAAANsAAAAPAAAAAAAAAAAAAAAAAJgCAABkcnMv ZG93bnJldi54bWxQSwUGAAAAAAQABAD1AAAAigMAAAAA " stroked="f">

Рисунок 5.2 – Главное меню

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

 

Рисунок 5.3 – Вывод оповещения

 


Если база данных содержит записи (или одну запись), то при выходе программа выводит диалоговое окно с запросом на сохранение файла:

 

L t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAy+b+hsQA AADcAAAADwAAAGRycy9kb3ducmV2LnhtbESPzYvCMBTE7wv+D+EJe1nWdEVUukbxEzy4Bz/w/Gie bbF5KUm09b83grDHYWZ+w0xmranEnZwvLSv46SUgiDOrS84VnI6b7zEIH5A1VpZJwYM8zKadjwmm 2ja8p/sh5CJC2KeooAihTqX0WUEGfc/WxNG7WGcwROlyqR02EW4q2U+SoTRYclwosKZlQdn1cDMK hit3a/a8/Fqd1jv8q/P+efE4K/XZbee/IAK14T/8bm+1gsFoBK8z8QjI6RMAAP//AwBQSwECLQAU AAYACAAAACEA8PeKu/0AAADiAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnht bFBLAQItABQABgAIAAAAIQAx3V9h0gAAAI8BAAALAAAAAAAAAAAAAAAAAC4BAABfcmVscy8ucmVs c1BLAQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAQAAAAAAAAAAAAAAAAACkCAABkcnMvc2hhcGV4 bWwueG1sUEsBAi0AFAAGAAgAAAAhAMvm/obEAAAA3AAAAA8AAAAAAAAAAAAAAAAAmAIAAGRycy9k b3ducmV2LnhtbFBLBQYAAAAABAAEAPUAAACJAwAAAAA= " stroked="f">

Рисунок 5.4 – Диалоговое окно

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

Над таблицей есть подменю, которое включает в себя: возврат в главное меню, добавление, удаление, редактирование, поиск и сортировку записей.

Переход от одного пункта к другому осуществляется при помощи клавиатуры (стрелка вправо/влево). Выбор пункта осуществляется нажатием кнопки ввода.

 

Рисунок 5.5 – Просмотр данных

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

Для поля «Title» существует несколько проверок, таких как проверка на повторение одинакового названия, длину названия (30 символов) и проверка на содержание специального символа. Символ «*» существует как разделитель между столбцами в файле data.txt, следовательно он недопустим в полях базы данных. Для поля «Code» алгоритм аналогичный, но максимальная длина ограничивается до 6 символов.

Поля «Number» и «Cost» целочисленные, проверка ограничивается лишь диапазоном вводимых чисел (от 0 до 999999), так как эти поля не могут быть отрицательными.

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

 

Рисунок 5.6 – Добавление записи

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

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

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

Рисунок 5.7 – Поиск записи
Ниже представлен результат поиска по критерию «Notebook». В названиях товара было найдено 3 совпадения, которые выведены на экран.


При выборе пункта подменю «Sort» происходит сортировка всех записей с указанными параметрами. В начале необходимо указать, по какому критерию осуществлять сортировку. Для этого было реализовано небольшое меню:

Рисунок 5.8 – Выбор критерия сортировки

 

 


Затем необходимо определить тип сортировки (по возрастанию/убыванию):

Рисунок 5.9 – Выбор типа сортировки

 


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

 

L t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAs+99ccUA AADcAAAADwAAAGRycy9kb3ducmV2LnhtbESPT2sCMRTE70K/Q3gFL1KzriCyNYrVCj20B614fmxe dxc3L0uS/fftG6HQ4zAzv2E2u8HUoiPnK8sKFvMEBHFudcWFguv36WUNwgdkjbVlUjCSh932abLB TNuez9RdQiEihH2GCsoQmkxKn5dk0M9tQxy9H+sMhihdIbXDPsJNLdMkWUmDFceFEhs6lJTfL61R sDq6tj/zYXa8vn/iV1Okt7fxptT0edi/ggg0hP/wX/tDK1gmC3iciUdAbn8BAAD//wMAUEsBAi0A FAAGAAgAAAAhAPD3irv9AAAA4gEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54 bWxQSwECLQAUAAYACAAAACEAMd1fYdIAAACPAQAACwAAAAAAAAAAAAAAAAAuAQAAX3JlbHMvLnJl bHNQSwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAEAAAAAAAAAAAAAAAAAApAgAAZHJzL3NoYXBl eG1sLnhtbFBLAQItABQABgAIAAAAIQCz731xxQAAANwAAAAPAAAAAAAAAAAAAAAAAJgCAABkcnMv ZG93bnJldi54bWxQSwUGAAAAAAQABAD1AAAAigMAAAAA " stroked="f">

Рисунок 5.10 – Запрос на сохранение сортировки

Ниже представлен результат сортировки таблицы по цене в порядке убывания. Результат выводится на экран и ожидается нажатие клавиши.

 

Рисунок 5.11 – Результат сортировки

 


Запрос на сохранение файла происходит либо при выходе из программы, либо при выборе пункта «Save File» в главном меню. Если база данных пуста, это окно выводится не будет.

 

L t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAItXU7MEA AADcAAAADwAAAGRycy9kb3ducmV2LnhtbERPTYvCMBC9C/6HMMJeZJuugkhtFFd3wYMedMXz0Ixt sZmUJNr67zcHwePjfeer3jTiQc7XlhV8JSkI4sLqmksF57/fzzkIH5A1NpZJwZM8rJbDQY6Zth0f 6XEKpYgh7DNUUIXQZlL6oiKDPrEtceSu1hkMEbpSaoddDDeNnKTpTBqsOTZU2NKmouJ2uhsFs627 d0fejLfnnz0e2nJy+X5elPoY9esFiEB9eItf7p1WME3j2ngmHgG5/AcAAP//AwBQSwECLQAUAAYA CAAAACEA8PeKu/0AAADiAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnhtbFBL AQItABQABgAIAAAAIQAx3V9h0gAAAI8BAAALAAAAAAAAAAAAAAAAAC4BAABfcmVscy8ucmVsc1BL AQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAQAAAAAAAAAAAAAAAAACkCAABkcnMvc2hhcGV4bWwu eG1sUEsBAi0AFAAGAAgAAAAhACLV1OzBAAAA3AAAAA8AAAAAAAAAAAAAAAAAmAIAAGRycy9kb3du cmV2LnhtbFBLBQYAAAAABAAEAPUAAACGAwAAAAA= " stroked="f">

Рисунок 5.4 – Диалоговое окно

Заключение

При выполнении данной курсовой работы были получены навыки разработки многомодульных программ. Были освоены приему создания пользовательского интерфейса, изучены функции работы с консолью, способы обработки событий с клавиатуры. Усвоены механизмы реализации меню. Изучены функции работы с файлами. Получены базовые навыки программирования на языке Си. Изучены основные возможности среды программирования Microsoft Visual Studio 2005. Получены навыки отладки и тестирования программ.

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

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

 






ТОП 5 статей:
Экономическая сущность инвестиций - Экономическая сущность инвестиций – долгосрочные вложения экономических ресурсов сроком более 1 года для получения прибыли путем...
Тема: Федеральный закон от 26.07.2006 N 135-ФЗ - На основании изучения ФЗ № 135, дайте максимально короткое определение следующих понятий с указанием статей и пунктов закона...
Сущность, функции и виды управления в телекоммуникациях - Цели достигаются с помощью различных принципов, функций и методов социально-экономического менеджмента...
Схема построения базисных индексов - Индекс (лат. INDEX – указатель, показатель) - относительная величина, показывающая, во сколько раз уровень изучаемого явления...
Тема 11. Международное космическое право - Правовой режим космического пространства и небесных тел. Принципы деятельности государств по исследованию...



©2015- 2024 pdnr.ru Все права принадлежат авторам размещенных материалов.