Белорусский национальный технический университет
Международный институт дистанционного образования
Кафедра ПОВТ и АС
КУРСОВОЙ ПРОЕКТ
по курсу « Структуры и организация данных в ЭВМ »
На тему
« Информационная система расчетов по договорам »
Исполнитель ст. гр.417313 Я
Руководитель Романов А.В.
Данный проект состоит из одной формы Form1. На форме расположены следующие компоненты (см. рис1):
- компонент MainMenu1 - осуществляет общее управление программой, в частности сохранение файлов с данными, обновление данных из файлов, выход из программы.
- компонент BtnDel - кнопка в нижней части формы для удаления записей данных.
- компонент txtSearch - поле ввода искомых данных.
- компонент btnSearch - кнопка для начала поиска введенных данных в поле txtSearch.
- компонент CheckBox1 - соответственно для разрешения редактирования данных.
- компонент PageControl1 - содержит вкладки TabSheet 1?4 на которых отражены данные (соответственно “ХД”, “ВТК”, “БАНК” и “Незавершенные договора”).
Компоненты TabSheet 1?4 содержат в себе элементы таблицы (соответственно “XDgrid”, “WTKgrid”, “BANKgrid” и “NDgrid”). Кроме того, TabSheet 4 содержит ещё компонент GroupBox1 c кнопками btnSort1 и btnSort2 для сортировки списка незавершенных договоров по возрастанию и по убыванию количества членов ВТК.
Список модулей:
Программа содержит модуль Unit1 - модуль интерфейсной формы проекта.
Список основных процедур, входящих в состав программного комплекса:
- procedure LoadFromFiles - процедура загрузки данных из файлов в одномерные массивы.
- procedure InitGrids - процедура инициализации таблиц и заполнения их в соответствии с массивами.
- procedure FillArrays - процедура заполнения массивов в соответствии с данными в таблицах.
- procedure SaveInFiles - процедура сохранения данных из массивов в файлы.
- procedure FillNDgrid - заполнение таблицы незавершенных договоров.
- procedure Sort - пирамидальная сортировка таблицы незавершенных договоров NDgrid по возрастанию.
- procedure Sort2- пирамидальная сортировка таблицы незавершенных договоров NDgrid по убыванию.
- procedure SweepRows(r1,r2:word) - замена местами строк в таблице незавершенных договоров NDgrid при сортировке.
- procedure SaveRow(var sr:SRow;r:word) - сохранение замененной строки.
2. Статические данные и структуры
В программе для хранения данных объявлено 5 одномерных строковых массива типа String[N] , где N?255.
XDar: array [1..70] of String[30];
WTKar: array [1..150] of String[30];
BANKar: array [1..50] of String[30];
SRow=array [0..5] of String[30];
s: array [0..5] of String[30];
Имя массива
Тип
Размер в байтах
XDar
String[N]
(30+1)*70=2170
WTKar
(30+1)*150=4650
BANKar
(30+1)*50=1550
SRow
(30+1)*6=186
S
Кроме того, в программе для временных нужд объявляются переменные:
nCol, i, j, y, x, n, n1, n2, c типа integer (каждая по 4 байта);
l, r типа word (каждая по 2 байта);
st, code, s импа string[30] (каждая по 30+1=31 байт).
Главным элементом и базовой структурой данного проекта являются обычные одномерные строковые массивы XDar, WTKar и BANKar размерностью 70, 150 и 50 соответственно.
Объявление массива выглядит следующим образом:
Массив (array) - это структура данных. Общим признаком всех массивов всех типов является возможность прямого доступа к их элементам со стороны программы. Эта возможность обеспечивается нумерацией элементов с помощью индекса, который обычно имеет целый тип.
Для логического определения массива ему необходимо происвоить имя, указать пару ограниченых значений индекса (или несколько пар граничных значений индексов), а также указать тип элементов.
Логическая схема структуры массива XDar:
0
1
2
…
30
3
70
Каждый элемент массива занимает 1 байт памяти. Соответственно массив XDar будет занимать (30+1)*70=2170 байт.
Логическая схема структуры массива WTKar:
150
Страницы: 1, 2, 3