Система учета граждан, нуждающихся в жилье

Этапы разработки концептуальной модели и базовой архитектуры программно-аппаратного комплекса. Особенности процесса учета граждан города Черногорска. Модель SADT как серия диаграмм с сопроводительной документацией. Способы разработки интерфейса.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 07.12.2012
Размер файла 3,7 M

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

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

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

Введение

учет аппаратный интерфейс концептуальный

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

Данное программное средство создается в целях автоматизации и структуризации процесса учета граждан города Черногорска.

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

Исследование предметной области;

Разработка концептуальной модели и базовой архитектуры программно-аппаратного комплекса;

Выбор программно-аппаратной платформы и среды разработки;

Обеспечение интуитивно-понятного пользовательского интерфейса;

Создание автоматизированной системы управления.

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

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

Цели работы, задачи для решения поставленной цели

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

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

Исследование предметной области;

Разработка концептуальной модели и базовой архитектуры программно-аппаратного комплекса;

Выбор программно-аппаратной платформы и среды разработки;

Обеспечение интуитивно-понятного пользовательского интерфейса;

Создание автоматизированной системы управления.

Объект исследования, предмет исследования

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

Предметом исследования является разрабатываемое программное средство, которое должно реализовывать процессы, описанные как объект.

Методы исследования

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

Гипотеза исследования

Внедрение данного программного средства позволит существенно снизить нагрузку на специалистов по жилью и ускорить их работу.

Актуальность

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

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

Постановка задачи

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

В соответствии с Жилищным Кодексом РФ существует несколько групп очередей. Для нашего случая был определен следующий список групп:

1) Группа «По заболеванию» - содержит граждан, имеющих определенные болезни, которые дают возможность на получение жилья;

2) Группа «Аварийщики» - содержит граждан, чье жилье признано аварийным и требует оперативной замены;

3) Группа «Молодые семьи» - содержит список семей, которые могут встать в очередь на жилье;

4) Группа «Сироты» - содержит список граждан, которые признаны в статусе сирот;

5) Группа «Малоимущие» - содержит список граждан, которые признаны малоимущими.

6) Группа «Без льгот» - содержит список граждан, которые не имеют никаких льгот на получение жилищной площади.

7) Группа «Вынужденные переселенцы» - содержит список граждан, которые были вынуждены по каким - либо причинам покинуть свое прежнее место жительства.

8) Группа «Инвалиды I группы» - содержит список граждан, которые признаны инвалидами I группы.

9) Группа «Инвалиды II группы» - содержит список граждан, которые признаны инвалидами II группы.

10) Группа «Инвалиды войны» - содержит список граждан, которые признаны инвалидами, вследствие военных действий.

11) Группа «Инвалиды детства» - содержит список граждан, которые признаны инвалидами детства.

12) Группа «Многодетные» - содержит список граждан, которые признаны многодетными семьями.

13) Группа «Реабилитированные» - содержит список граждан, прошедших реабилитацию, вследствие каких - либо природных явлений или катастроф, аварий, вызванных действиями человека, которые нанесли вред здоровью человека.

14) Группа «СПК».

15) Группа «Север» - содержит список граждан, прежнее место жительства которых было в северных районах Российской Федерации.

16) Группа «Участники ВОВ» - содержит список граждан, которые являются участниками Великой Отечественной Войны.

17) Группа «Участники локальных войн» - содержит список граждан, которые принимали участие в локальных военных действиях.

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

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

1) Справка с места жительства (если имеется данная справка, то «Выписка из домовой книги» не заполняется);

2) Свидетельство о рождении ребенка;

3) Справка из архитектуры;

4) Справка из БТИ;

5) Выписка из домовой книги (если имеется данная справка, то «Справка с места жительства» не заполняется);

6) Свидетельство о браке:

7) Копия лицевого счета.

8) Пенсионное удостоверение.

9) Удостоверение участника локальных войн.

10) Удостоверение участника ВОВ.

11) Удостоверение инвалида ВОВ.

12) Удостоверение участника локальных войн.

13) Справка ВТЭК (справка выдается при тяжелых заболеваниях, повлекшими инвалидность).

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

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

Логическая структура проектируемого ПС

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

Рис.1.2.1 - Логическая структура ПС

Анализ входящей информации

В нашем случае входными данными будут являться:

Личные данные о каждом человеке;

Учетные данные каждого человека;

Данные о предоставленных документах.

Анализ исходящей информации

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

Существующие системы разработки ПС

Для разработки ПС была выбрана среда разработки Delphi 7 компании Borland совместно с Microsoft SQL Server 2000.

Простота, скорость и эффективность Delphi 7 объясняют ее популярность. Delphi 7 имеет один из самых быстрых компиляторов, порождающий, тем не менее, весьма и весьма неплохой объектный код. Есть и другие достоинства: простота изучения Object Pascal; программы, написанные на Delphi 7, не требуется снабжать дополнительными библиотеками (в отличие от связки C++/MFC).

В самом деле, VCL предоставляет удобный, легко расширяемый объектно-ориентированный интерфейс к Windows, что ни в коей мере не мешает программисту опускаться в самые глубины Windows API. Создателям оригинальных компонентов это приходится делать довольно часто, в отличие от "просто программистов". Модель программирования в Delphi 7 - компонентная, что позволяет пользоваться компонентами, написанными другими разработчиками, даже не имея их исходного кода и уж подавно не изучая его. В Интернете есть огромное количество компонентов, значительная часть которых распространяется бесплатно. Применение компонентной модели приводит к тому, что довольно многое в поведении объектов программировать не нужно вообще, и многое, на что в других средах ушли бы недели, можно сделать за часы или даже минуты. Использование СУБД Microsoft SQL Server 2000 связано с тем, что после реструктуризации локальной вычислительной сети возникает потребность в установке именно этого СУБД, так как многие, уже существующие базы данных, имеют формат этого СУБД.

Входящая информация относительно ПС

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

Рис 2.6.1. Форма «Регистрация».

На данной форме для ввода информации определены следующие компоненты:

· Компонент Edit - предназначен для ввода данных о фамилии, имени, отчестве, даты рождения человека, о составе семьи, о номере и серии паспорта, об органе, который выдал паспорт, о номере дома и квартиры, где проживает человек, а также данные об особых отметках;

· Компонент RadioGroup - предназначен для определения группы очереди;

· Компонент DateTimePicker - предназначен для ввода информации, которая имеет формат «Дата», а именно для ввода данных о дате рождения, дате выдачи паспорта, дате подачи заявления и дате постановки на учет, дате перерегистрации;

· Компонент CheckBox - включает/отключает возможность ввода данных об особых отметках или перерегистрации.

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

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

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

Рис. 2.6.2. Форма «Добавить справки».

При нажатии на соответствующей кнопке (компонент Button) для каждой справки будет открываться определенная форма для ввода информации.

Исходящая информация относительно ПС

Исходящая информация относительно программного средства зависит от того, что требуется специалисту. Это может быть подробная информация как обо всех гражданах, информация о которых присутствует в базе данных, так и о любом конкретном человеке. Так же можно осуществлять выборку всех записей из базы данных, удовлетворяющих определенным параметрам, например, выборка всех записей, относящихся к группе «Многодетные». Так же исходящей информацией является вывод количества записей в базе данных, относящихся к определенной льготе, а так же вывод информации об общем количестве записей в базе данных. Большинство исходящей информаций в данном программном средстве отображается в результирующих таблицах (компонент DBGrid), но есть и данные которые отображаются в полях ввода (компонент Edit).

Рис. 2.7.1 - Отображение исходящей информации в различных компонентах.

Механизм исполнения

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

ADOConnection - используется для установления соединения программного средства с сервером базы данных;

ADOQuery - используется для произведения различного рода манипуляций с данными (запись в базу данных, извлечение из базы данных);

DataSet - используется для хранения результирующего набора данных;

DBGrid - используется для отображения данных, которые хранятся в базе данных.

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

Декомпозиция и взаимодействие блоков ПС

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

В основе методологии SADT лежит модель, состоящая из диаграмм, текстов, имеющих ссылки друг на друга. Диаграмма является главным компонентом модели, она состоит из блоков и дуг. Блок отображает функцию, подфункцию, процесс и задачи, а дуги - интерфейс входа выхода данных. Модель SADT представляет собой серию диаграмм с сопроводительной документацией, разбивающих сложный объект на составные части, которые изображены в виде блоков. Детали каждого из основных блоков показаны в виде блоков на других диаграммах. Каждая детальная диаграмма является декомпозицией блока из диаграммы предыдущего уровня. На каждом шаге декомпозиции диаграмма предыдущего уровня называется родительской для более детальной диаграммы.

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

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

Рис. 3.1.1. Начальная контекстная диаграмма

Рис. 3.1.2. Декомпозиция диаграмм

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

Диаграммы потоков данных (DFD) являются основным средством моделирования функциональных требований к проектируемой системе. С их помощью эти требования представляются в виде иерархии функциональных компонентов (процессов), связанных потоками данных. Главная цель такого представления - продемонстрировать, как каждый процесс преобразует свои входные данные в выходные, а также выявить отношения между этими процессам. Эти диаграммы детализируются при помощи диаграмм нижнего уровня.

Для описания информационной системы предметной области применялась диаграмма потоков данных нулевого уровня (рис. 3.2.1). На диаграмме определены две сущности «Пользователь» и «Банк данных». Образован процесс: система учета граждан. На этой диаграмме хорошо видны все возможные потоки данных.

Рис. 3.1.3 - Диаграмма потоков данных нулевого уровня

Структура БД, структура таблиц, типы данных столбцов, связи

Вся информация будет храниться в базе данных под названием «glav». Сама база данных будет содержать в себе 20 таблиц, которые будут связаны между собой.

Таблица «tabl1» - содержит основную информацию о человеке.

Таблица «pasport» - содержит паспортные данные человека, является дочерней таблицей по отношению к таблице «tabl1».

Таблица «arh» - содержит данные справки «Справка из архитектуры», является дочерней таблицей по отношению к таблице «tabl1».

Таблица. Структура таблицы «arh»

Таблица «brak» - содержит данные справки «Свидетельство о браке», является дочерней таблицей по отношению к таблице «tabl1».

Таблица. Структура таблицы «brak».

Таблица «bti» - содержит данные справки «Справка из БТИ», является дочерней таблицей по отношению к таблице «tabl1».

Таблица. Структура таблица «bti».

Таблица «house_book» - содержит данные справки «Выписка из домовой книги», является дочерней таблицей по отношению к таблице «tabl1».

Таблица. Структура таблицы «house_book».

Таблица «inv_lok_v» - содержит данные справки «Удостоверене инвалида локальных войн», является дочерней таблицей по отношению к таблице «tabl1».

Таблица. Структура таблицы «inv_lok_v».

Таблица «inv_vov» - содержит данные справки «Удостоверение инвалиды ВОВ», является дочерней таблицей по отношению к таблице «tabl1».

Таблица. Структура таблицы «inv_vov».

Таблица «mesto_zh» - содержит данные справки «Справка с места жительства», является дочерней таблицей по отношению к таблице «tabl1».

Таблица. Структура таблицы «mesto_zh».

Таблица «parent» - содержит информацию о родителях, является дочерней таблицей по отношению к таблицам «tabl1» и «rozhd».

Таблица. Структура таблицы «parent».

Таблица «pens_ud» - содержит данные справки «Пенсионное удостоверение», является дочерней таблицей по отношению к таблице «tabl1».

Таблица. Структура таблицы «pens_ud».

Таблица «propis2» - содержит информацию о прописанных по адресу, который указан в соответствующей справке «Выписка из домовой книги», является дочерней таблице по отношению к таблицам «tabl1» и «house_book».

Таблица. Структура таблицы «propis2».

Таблица «propisanye» - содержит информацию о прописанных по адресу, который указан в соответствующей справке «Справка с места жительства», является дочерней таблицей по отношению к таблицам «tabl1» и «mesto_zh».

Таблица. Структура таблицы «propisanye».

Таблица «rozhd» - содержит данные справки «Свидетельство о рождении ребенка», является дочерней таблицей по отношению к таблице «tabl1».

Таблица. Структура таблицы «rozhd».

Таблица «schet» - содержит данные справки «Копия лицевого счета», является дочерней таблицей по отношению к таблице «tabl1».

Таблица. Структура таблицы «schet».

Таблица «streets» - содержит список улиц города Черногорска.

Таблица. Структура таблицы «streets».

Таблица «suprugi» - содержит информацию о супругах, дыне о которых присутствуют в соответствующей справке «Свидетельство о браке», является дочерней таблицей по отношению к таблицам «tabl1» и «brak».

Таблица. Структура таблицы «suprugi».

Таблица «uch_lok_v» - содержит данные справки «Удостоверение участника локальных войн», является дочерней таблицей по отношению к таблице «tabl1».

Таблица. Структура таблицы «uch_lok_v».

Таблица «uch_vov» - содержит данные справки «Удостоверение участника ВОВ», является дочерней таблицей по отношению к таблице «tabl1».

Таблица. Структура таблицы «uch_vov».

Таблица «ud_helth» - содержит данные справки «Справка ВТЭК», является дочерней таблицей по отношению к таблице «tabl1».

Таблица. Структура таблицы «ud_helth».

Схема связей таблиц:

Рис. 3.3.21 - Схема связей таблиц.

Базисные алгоритмы решения задачи

Основными алгоритмами решения задачи являются: алгоритм записи данных в базу данных и алгоритм выборки данных из базы данных.

Алгоритм записи данных в базу данных:

procedure TForm3.Button10Click(Sender: TObject);

var i,m,a,c,o,b,v,d:integer;

begin

Form1.ADOQuery1.Open;

i:=Form1.ADOQuery1.RecordCount;

if (Edit1.Text='')

or(Edit2.Text='')

or(Edit3.Text='')

or(Edit4.Text='')

or(Edit5.Text='')

or(Edit6.Text='')

or(Edit7.Text='')

or(Edit8.Text='')

or(Edit10.Text='')

or(Edit12.Text='')

or (RadioGroup1.ItemIndex=-1)

or (CheckBox1.Checked=true) and (edit13.Text='')

then

begin

MessageDlg('Введены не все данные. Повторите ввод.',mtError,[mbOK],0);

exit;

end

else

Form1.ADOQuery1.SQL.Clear;

Form1.ADOQuery1.sql.add('insert into tabl1(код,фамилия,имя,отчество,дата_рождения,состав_семьи,город,улица,дом,квартира,дата_подачи_заявления,дата_постановки_на_учет,группа_очереди,перерегистрация,примечание)');

Form1.ADOQuery1.sql.add('values (:id,:fam,:name,:otch,:day,:sost,:city,:street,:house,:kvart,:date_z,:date_u,:grup,:preg,:prim)'); Form1.ADOQuery1.Parameters.ParamByName('id').DataType := ftInteger; Form1.ADOQuery1.Parameters.ParamByName('id').Value := strtoint(edit10.Text); Form1.ADOQuery1.Parameters.ParamByName('fam').DataType:=ftString; Form1.ADOQuery1.Parameters.ParamByName('fam').Value:=Edit1.Text; Form1.ADOQuery1.Parameters.ParamByName('name').DataType := ftString;

Form1.ADOQuery1.Parameters.ParamByName('name').Value := Edit2.Text; Form1.ADOQuery1.Parameters.ParamByName('otch').DataType := ftString;

Form1.ADOQuery1.Parameters.ParamByName('otch').Value := Edit3.Text; Form1.ADOQuery1.Parameters.ParamByName('day').DataType := ftDate;

Form1.ADOQuery1.Parameters.ParamByName('day').Value := FormatDateTime('dd.mm.yyyy',DateTimePicker1.Date);

Form1.ADOQuery1.Parameters.ParamByName('sost').DataType := ftString;

Form1.ADOQuery1.Parameters.ParamByName('sost').Value := Edit12.Text; Form1.ADOQuery1.Parameters.ParamByName('city').DataType:=ftString;

if ComboBox1.ItemIndex=0 then

Form1.ADOQuery1.Parameters.ParamByName('city').Value:=ComboBox1.Items[0]; Form1.ADOQuery1.Parameters.ParamByName('street').DataType:=ftString; Form1.ADOQuery1.Parameters.ParamByName('street').Value:=ComboBox2.Text;

Form1.ADOQuery1.Parameters.ParamByName('house').DataType:=ftString; Form1.ADOQuery1.Parameters.ParamByName('house').Value:=Edit7.Text;

Form1.ADOQuery1.Parameters.ParamByName('kvart').DataType:=ftString;

Form1.ADOQuery1.Parameters.ParamByName('kvart').Value:=Edit8.Text;

Form1.ADOQuery1.Parameters.ParamByName('date_z').DataType:=ftdate;

Form1.ADOQuery1.Parameters.ParamByName('date_z').Value:=FormatDateTime('dd.mm.yyyy',DateTimePicker3.Date);

Form1.ADOQuery1.Parameters.ParamByName('date_u').DataType:=ftDate; Form1.ADOQuery1.Parameters.ParamByName('date_u').Value:=FormatDateTime('dd.mm.yyyy', DateTimePicker4.Date)

if CheckBox2.Checked=true then Form1.ADOQuery1.Parameters.ParamByName('preg').Value:=FormatDateTime('dd.mm.yyyy', DateTimePicker5.Date)

else Form1.ADOQuery1.Parameters.ParamByName('preg').Value:='01.01.1900';

if CheckBox1.Checked=true then Form1.ADOQuery1.Parameters.ParamByName('prim').Value:=edit13.Text

else Form1.ADOQuery1.Parameters.ParamByName('prim').Value:='-'; Form1.ADOQuery1.Parameters.ParamByName('grup').DataType:=ftString;

ifRadioGroup1.ItemIndex=0 then form1.ADOQuery1.Parameters.ParamByName('grup').Value:='Аварийщики';

if RadioGroup1.ItemIndex=1 then form1.ADOQuery1.Parameters.ParamByName('grup').Value:='Без льгот';

if RadioGroup1.ItemIndex=2 then

form1.ADOQuery1.Parameters.ParamByName('grup').Value:='В/переселенцы';

if RadioGroup1.ItemIndex=3 then Form1.ADOQuery1.Parameters.ParamByName('grup').Value:='Инвалиды I группы';

if RadioGroup1.ItemIndex=4 then Form1.ADOQuery1.Parameters.ParamByName('grup').Value:='Инвалиды II группы';

if RadioGroup1.ItemIndex=5 then Form1.ADOQuery1.Parameters.ParamByName('grup').Value:='Инвалиды войны';

if RadioGroup1.ItemIndex=6 then Form1.ADOQuery1.Parameters.ParamByName('grup').Value:='Инвалиды детства';

if RadioGroup1.ItemIndex=7 then Form1.ADOQuery1.Parameters.ParamByName('grup').Value:='Малоимущие';

if RadioGroup1.ItemIndex=8 then Form1.ADOQuery1.Parameters.ParamByName('grup').Value:='Многодетные';

if RadioGroup1.ItemIndex=9 then Form1.ADOQuery1.Parameters.ParamByName('grup').Value:='Молодые семьи';

if RadioGroup1.ItemIndex=10 thenForm1.ADOQuery1.Parameters.ParamByName('grup').Value:='По заболеванию';

if RadioGroup1.ItemIndex=11 then

Form1.ADOQuery1.Parameters.ParamByName('grup').Value:='Реабилитированные';

if RadioGroup1.ItemIndex=12 then

Form1.ADOQuery1.Parameters.ParamByName('grup').Value:='СПК';

if RadioGroup1.ItemIndex=13 thenForm1.ADOQuery1.Parameters.ParamByName('grup').Value:='Север';

if RadioGroup1.ItemIndex=14 theForm1.ADOQuery1.Parameters.ParamByName('grup').Value:='Сироты';

if RadioGroup1.ItemIndex=15 then Form1.ADOQuery1.Parameters.ParamByName('grup').Value:='Участники ВОВ';

if RadioGroup1.ItemIndex=16 then Form1.ADOQuery1.Parameters.ParamByName('grup').Value:='Участники лок. войн';

Form1.ADOQuery1.ExecSQL;

ADOQuery2.SQL.Clear;

ADOQuery2.SQL.Text:='insert into pasport (id_pas,num_ps,ser_ps,date_v,kem_dano,id_cl) values (:idp,:n,:s,:d,:k,:id)';

ADOQuery2.Parameters.ParamByName('idp').DataType:=ftstring;

ADOQuery2.Parameters.ParamByName('idp').Value:=StrToInt(Edit11.Tex

ADOQuery2.Parameters.ParamByName('n').DataType:=ftstring;

ADOQuery2.Parameters.ParamByName('n').Value:=Edit4.Text;

ADOQuery2.Parameters.ParamByName('s').DataType:=ftstring;

ADOQuery2.Parameters.ParamByName('s').Value:=Edit5.Text;

ADOQuery2.Parameters.ParamByName('d').DataType:=ftDate;

ADOQuery2.Parameters.ParamByName('d').Value:=FormatDateTime('dd.mm.yyyy',DateTimePicker2.Date);

ADOQuery2.Parameters.ParamByName('k').DataType:=ftString;

ADOQuery2.Parameters.ParamByName('k').Value:=Edit6.Text;

ADOQuery2.Parameters.ParamByName('id').DataType:=ftInteger;

ADOQuery2.Parameters.ParamByName('id').Value:= StrToInt(Edit10.Text);

ADOQuery2.ExecSQL;

ComboBox2.Text:='';

RadioGroup1.ItemIndex:=-1;

Form1.ADOQuery1.SQL.Clear;

MessageDlg('Запись успешно добавлена',mtInformation,[mbok],0);

form19.button1.Enabled:=true;

form19.button2.Enabled:=true;

form19.button3.Enabled:=true;

form19.button5.Enabled:=true;

form19.button6.Enabled:=true;

form19.button7.Enabled:=true;

form19.button8.Enabled:=true;

Edit4.Text:='';

Edit5.Text:='';

Edit6.Text:='';

Edit7.Text:='';

Edit8.Text:='';

Edit9.Text:='';

edit12.text:='';

edit13.text:='';

button1.Enabled:=true;

button2.Enabled:=true;

end;

Алгоритм выборки данных из базы данных:

procedure TForm1.N33Click(Sender: TObject);

var s:string;

t:textfile;

a,b,v,d,i,uv,ulv,iv,mn,sev,vp,rea,spk,inv1g,inv2g,invd,o:integer;

begin

AssignFile(t,'c:\program Files\zhile\Жилье\connect.txt');

reset(t);

while not eof(t) do

readln(t,s);

ADOConnection1.ConnectionString:=s;

ADOConnection1.Connected:=true;

Timer1.Enabled:=true;

if ADOConnection1.Connected=true then

begin

c:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='сироты';

ADOQuery1.Open;

c:=ADOQuery1.RecordCount;

Edit2.Text:=IntToStr(c);

a:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='малоимущие';

ADOQuery1.Open;

a:=ADOQuery1.RecordCount;

Edit3.Text:=IntToStr(a);

o:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='без льгот';

ADOQuery1.Open;

o:=ADOQuery1.RecordCount;

Edit1.Text:=IntToStr(o);

b:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='аварийщики';

ADOQuery1.Open;

b:=ADOQuery1.RecordCount;

Edit4.Text:=IntToStr(b);

v:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='молодые семьи';

ADOQuery1.Open;

v:=ADOQuery1.RecordCount;

Edit5.Text:=IntToStr(v);

d:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='по заболеванию';

ADOQuery1.Open;

d:=ADOQuery1.RecordCount;

Edit6.Text:=IntToStr(d);

uv:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='Участники ВОВ';

ADOQuery1.Open;

uv:=ADOQuery1.RecordCount;

Edit10.Text:=IntToStr(uv);

ulv:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='Участники лок. войн';

ADOQuery1.Open;

ulv:=ADOQuery1.RecordCount;

Edit11.Text:=IntToStr(ulv);

mn:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='Многодетные';

ADOQuery1.Open;

mn:=ADOQuery1.RecordCount;

Edit9.Text:=IntToStr(mn);

iv:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='Инвалиды войны';

ADOQuery1.Open;

iv:=ADOQuery1.RecordCount;

Edit12.Text:=IntToStr(iv);

sev:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='Север';

ADOQuery1.Open;

sev:=ADOQuery1.RecordCount;

Edit15.Text:=IntToStr(sev);

inv1g:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='Инвалиды I группы';

ADOQuery1.Open;

inv1g:=ADOQuery1.RecordCount;

Edit19.Text:=IntToStr(inv1g);

inv2g:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='Инвалиды II группы';

ADOQuery1.Open;

inv2g:=ADOQuery1.RecordCount;

Edit18.Text:=IntToStr(inv2g);

invd:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='Инвалиды детства';

ADOQuery1.Open;

invd:=ADOQuery1.RecordCount;

Edit17.Text:=IntToStr(invd);

rea:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='Реабилитированны

ADOQuery1.Open;

rea:=ADOQuery1.RecordCount;

Edit13.Text:=IntToStr(rea);

vp:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='В/переселенцы';

ADOQuery1.Open;

vp:=ADOQuery1.RecordCount;

Edit14.Text:=IntToStr(vp);

spk:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1 where группа_очереди=:sir';

ADOQuery1.Parameters.ParamByName('sir').DataType:=ftString;

ADOQuery1.Parameters.ParamByName('sir').Value:='СПК';

ADOQuery1.Open;

spk:=ADOQuery1.RecordCount;

Edit16.Text:=IntToStr(spk);

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from tabl1';

ADOQuery1.Open;

StatusBar1.Panels[2].Text:='Всего записей в БД: '+inttostr(ADOQuery1.RecordCount);

i:=0;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select Номер,Фамилия,Имя,Отчество,Дата_рождения,');

ADOQuery1.SQL.Add('Дата_подачи_заявления,Дата_постановки_на_учет,');

ADOQuery1.SQL.Add('Группа_очереди,Примечание Особые_отметки from tabl1,pasport');

ADOQuery1.SQL.Add('where код=id_cl order by дата_постановки_на_учет,фамилия,имя asc');

ADOQuery1.Open;

i:=ADOQuery1.RecordCount;

ADOQuery1.FieldByName('номер').DisplayWidth:=4;

ADOQuery1.FieldByName('фамилия').DisplayWidth:=20;

ADOQuery1.FieldByName('имя').DisplayWidth:=20;

ADOQuery1.FieldByName('отчество').DisplayWidth:=20;

ADOQuery1.FieldByName('дата_рождения').DisplayWidth:=10;

ADOQuery1.FieldByName('дата_постановки_на_учет').DisplayWidth:=1

ADOQuery1.FieldByName('группа_очереди').DisplayWidth:=20;

ADOQuery1.FieldByName('особые_отметки').DisplayWidth:=20;

Заключение

Благодаря проведенной работе были четко определены цели и задачи разработки программного продукта «Жилье». Так же были выявлены недостатки программного продукта и определены способы их устранения.

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

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

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

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

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


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

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