Ведение банковских счетов юридических лиц
МИНИСТЕРСТВО
ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ДАГЕСТАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ
Факультет
Информационных Систем
Кафедра:
Информационных Систем в Экономике
КУРСОВАЯ
РАБОТА
по
дисциплине "База данных и знаний"
на
тему: "Ведение банковских счетов юридических лиц"
Выполнил:
ст-т 3 курса гр. 3162
Вердиханов А.С.
Проверил: Мурадов М..М
Махачкала
2003г.
Содержание
Введение
.
Основные разделы проекта
.1
Анализ входной и выходной информации системы
.2
Инфологическая модель
.3
Разработка структур баз данных. Даталогическая модель
.4
Содержание операций обработки информации
.5
Разработка комплекса программ и средств взаимодействия с ЭВМ (меню)
.6
Тексты программы
Заключение
Список
использованной литературы
Введение
Персональные компьютеры
зарекомендовали себя очень удобным средством для поддержания относительно
небольших баз данных индивидуального пользования.
Историческое понятие баз данных
возникла как альтернатива файлов организации данных при хранении с помощью ЭВМ
(на магнитных носителях). Такая организация данных была характерна для
прикладного программного обеспечения на начальном этапе распространения
вычислительной техники. Файловая организация предполагала хранение данных в
виде совокупности файлов, ориентированных на использование какой - либо одной
прикладной программы, предназначенной для решения некоторой специфической
задачи. Такая не универсальность в организации информации привела к большой
избыточности (дублированию) при хранении, противоречивости данных, хранящихся в
различных системах.
Для файлов организации данных
свойственна высокая зависимость от данных программ, так что информация о форме
хранения данных скрыта в сочетании «файл - программа».
Понятие «база данных» возникло
в результате стандартизации и унификации данных, универсально организованных и
хранящихся с помощью ЭВМ с целью использования для многих приложений. При этом
описание данных уже не скрыто в программе, а явным образом декларируется и
хранится в самой базе. База данных может быть определена как структурная
совокупность данных, поддерживаемых в актуальном состоянии (в соответствии
объектам некоторой предметной области) и служащая для удовлетворения
информационных потребностей многих пользователей. Базы данных устраняют
избыточность и противоречивость данных. Для поддержания актуальности данных,
хранящихся в базе, получения сводок по информационным запросам, перехода к
данным и программам пользователей служат системы управления базами данных
(СУБД).
Большое количество различных
СУБД предоставляют пользователю самые разнообразные средства для управления
данными, начиная с наглядных систем меню и кончая специальными языками
программирования, доступными специалистам, далеким от программирования.
Одной из самых популярных СУБД
является система "Fox
Pro" созданной
фирмой "Ashton - Tate".
По способу установления связей
между данными различают:
реляционную
иерархическую
сетевую модели.
Реляционная модель является
простейшей и наиболее привычной формой представления данных в виде таблицы. В
теории множеств таблице соответствует термин отношение (relation),
который и дал название модели. Для нее имеется развитый математический аппарат
- реляционное исчисление и реляционная алгебра, где для баз данных (отношений)
определены такие хорошо известные теоретико-множественные операции, как
объединение, вычитание, пересечение, соединение и др.
Достоинством реляционной модели
является сравнительная простота инструментальных средств ее поддержки,
недостатком - жесткость структуры данных и зависимость скорости ее работы от
размера базы данных, для многих операций, определенных в такой, может оказаться
необходимым просмотр всей базы.
В настоящее время реляционные
системы лучше соответствуют техническим возможностям персональных компьютеров и
вполне удовлетворяют большинство пользователей. Скоростные характеристики этих
СУБД поддерживаются специальными средствами ускоренного доступа к информации -
индексированием баз данных. В наиболее полном пакете СУБД может иметь следующие
компоненты:
• Среда пользователя, дающая
возможность непосредственного управления данными с клавиатуры;
• Алгоритмический язык для
программирования прикладных систем обработки данных, реализованный как
интерпретатор. Последнее позволяет быстро создавать и отлаживать программы;
• Компилятор для придания завершенной
программе вида готового коммерческого продукта в форме независимого ЕХЕ-файла.
• Программы-утилиты быстрого
программирования рутинных операций, (генераторы отчетов, экранов, меню и других
приложений).
1. Основные разделы проекта
1.1 Анализ входной
и выходной информации
программирование листинг банковский
счет
Для пункта ОТКРЫТИЕ СЧЕТА меню
ОПЕРАЦИИ БАНКА входной информацией являются данные о новом вкладчике:
. Номер счета.
. Фамилия.
. Имя.
. Отчество.
. Адрес.
. Номер паспорта.
. Телефон.
. Сумма вклада.
Выходной: уведомление об
открытии счета
Для пунктов ПРИХОД и РАСХОД меню
ОПЕРАЦИИ БАНК входной информацией является:
. Номер счета.
. Сумма.
Выходной: Приходный ордер и
расходный ордер соответственно
Для пунктов меню ПОИСК и
ФИЛЬТРАЦИЯ входной информацией является ключ, по которому происходит поиск
и фильтрация в соответствующих полях
1.2 Инфологическая
модель
В базе данных отображается
какая-то часть реального мира. Естественно, что полнота ее описания будет
зависеть от целей создаваемой информационной системы.
Для того чтобы база данных
адекватно отражала предметную область, проектировщик базы данных должен хорошо
представлять себе все нюансы, присущие данной предметной области, и уметь
отобразить их в базе данных. Поэтому прежде чем начинать проектирование базы
данных, необходимо как следует разобраться, как функционирует предметная
область, для отображения которой вы создаете БД. Предметная область должна быть
предварительно описана. Для этого в принципе может использоваться и естественный
язык, но его применение имеет много недостатков, основными из них является
громоздкость описания и неоднозначность его трактовки. Поэтому обычно для этих
целей используют искусственные формализованные языковые средства. В связи с
этим под инфологической моделью (ИЛМ) понимают описание предметной области,
выполненное с использованием специальных языковых средств, не зависящих от
используемых в дальнейшем программных средств.
Инфологическая модель должна
строиться вне зависимости от того, будете ли вы в дальнейшем использовать
какую-либо СУБД или пользоваться другими программными средствами для реализации
своей информационной системы.
Требования,
предъявляемые к инфологической модели
Основным требованием к ИЛМ,
вытекающим из ее назначения, является требование адекватного отражения
предметной области.
В связи с этим язык для
представления ИЛМ должен обладать достаточными выразительными возможностями для
отображения явлений, имеющих место в предметной области. ИЛМ должна быть
непротиворечивой. Она является единым интегрированным описанием предметной
области и отображает взгляды и потребности всех пользователей системы. Не
должна допускаться неоднозначная трактовка модели.
Несмотря на то, что реальный
мир, отображаемый в ИЛМ, является по своей природе бесконечным, инфологическая
модель является конечной, что обеспечивается четким ограничением предметной
области. Тем не менее, в ИЛМ по разным причинам часто приходится вводить новые
объекты. ИЛМ должна в связи с этим обладать свойством легкой расширяемости,
обеспечивающим ввод новых данных без изменения ранее определенных. Тоже самое
можно сказать и об удалении данных.
В связи с большой размерностью
реальных инфологических моделей должна обеспечиваться возможность композиции и
декомпозиции модели.
Желательно, чтобы язык
спецификации ИЛМ был одинаково применим как при ручном, так и при
автоматизированном проектировании информационных систем. Последнее предъявляет
дополнительные требования к нему, а именно должен:
• Быть вычисляемым, т.е.
восприниматься и обрабатываться ЭВМ;
• Использовать «дружелюбные»
пользователю интерфейсы, в частности графические;
• Использовать средства
тестирования ИЛМ, а также иметь аппарат для указания того, что спецификация
завершена и по ней может быть выполнена генерация структур баз данных.
1.3 Разработка структур баз данных.
Даталогическая модель
При автоматизированном
проектировании все изменения, внесенные в ИЛМ, должны быть автоматически
отражены в связанных с модифицируемым элементом компонентах банка данных.
Инфологическая модель должна
легко восприниматься разными категориями пользователей. Желательно, ИЛМ строил
специалист, работающий в этой предметной области, а не проектировщик систем
машинной обработки данных. Если в силу определенных причин это невозможно
обеспечить, то необходимо, чтобы первые могли хотя бы проверить сделанное
описание, чтобы убедиться, что специфика предметной области воспринята
правильно. Инфологическая модель является средством коммуникации разнообразных
коллективов как конечных пользователей, так и разработчиков. Кроме того, она
является ядром системы проектирования. ИЛМ содержит необходимую и достаточную
информацию для дальнейшего проектирования автоматизированной системы обработки
информации. Информация из ИЛМ корреспондирует со словарной системой и другими
компонентами банка данных.
Компоненты
инфологической модели.
Ограничения
целостности
Лингвистические отношения
Центральной компонентной
инфологической модели является описание объектов предметной области и связей
между ними.
Описание предметной области
всегда представлено в какой-то знаковой системе. Поэтому кроме отношений,
присущих предметной области, возникают еще и отношения, обусловленные
особенностями отображения ПО в языковой среде. Поэтому при построении ИЛМ
должны учитываться такие лингвистические категории, как синонимия, омонимия,
изоморфизм и др.
Кроме того, в инфологической
модели должны быть отражены и алгоритмические зависимости между показателями.
Обычно для этих целей используются графы взаимосвязи показателей, отражающие,
какие показатели служат исходными для вычисления других. Расчетные формулы, а
также алгоритмы вычислений также в каком-то виде должны быть представлены в
ИЛМ. Следующим компонентом инфологической модели является описание
информационных потребностей пользователей для этих целей используются
специальные языковые средства. Они должны отражать тип запроса, объемно-частотные
характеристики, режим использования данных и т.п.
.4 Содержание операций обработки
информации
Изменение данных.
В FoxPro
имеется возможность изменять данные путем присвоений или вычислений.
REPLACE
[<границы>] [WHILE
<условие>] [FOR
<условие>] <поле!> WITH
<выражение> [,<поле2> WITH
<выражение>...] [ADDITIVE]
[NOOPTIMIZE]
Эта команда осуществляет
множественное изменение полей базы данных в соответствии с заданными
выражениями, в установленных границах и при заданных условиях. Если отсутствует
параметр <границы> или <условия>, изменена будет только текущая
запись. Параметр ADDITIVE
действует для мемо-полей и означает, что заданное <выражение> будет
дописываться в конец поля. Если этот параметр опущен, то старое значение
мемо-поля будет замещено <выражением>.
Фильтрация данных.
SET
FILTER TO
[<условие>]
Команда позволяет установить FOR-условие
для всех без исключения команд обработки данных. Здесь <условие>
указывает на то, какие именно записи будут доступны для обработки.
Последовательный
поиск.
LOCATE
[<границы>] FOR
<условие> [WHILE<условие>]
Команда осуществляет
последовательный поиск одной самой первой записи в базе данных, удовлетворяющей
заданному FOR- условие
>, среди записей, находящихся в заданных границах, и до тех пор, пока
соблюдается WHILE-условие
(если есть).
В случае если границы и WHILE-условие
отсутствуют, поиск ведется во всем файле, начиная с первой записи. При успешном
поиске указатель записей устанавливается на найденную запись, функция RECNO()
равна номеру этой записи, а функция FOUNDQ,
оценивающая результат поиска, возвращает значение «Истина» (.Т.). При неудачном
поиске функция RECNO
( ) равна числу записей в базе плюс 1, FOUND()=.F.,
а функция достижения конца файла EOF(
) возвращает .Т.
CONTINUE
- команда, которая продолжает поиск записей, начатые раннее командой LOCATE.
Обмен данными с
базой данных.
Обмен данными между массивами и
базами данных может выполняться посредством двух пар команд, которые реализуют
считывание записей в массив и занесение массива в записи базы данных.
SCATTER
[FIELDS <поля>] [MEMO]
ТО <массив>/ТО
<массив> BLANK/
BLANK/MEMVAR
BLANK
Команда последовательно
переносит значения полей только из текущей записи активного файла база данных в
последовательные элементы одномерного массива (если указана опция
<массив>) или переменные (если указано MEMVAR).
Все такие переменные получат те же типы и размеры, что и поля базы данных. С
опцией BLANK создаются
пустые переменные.
Если массив ранее не был описан
или его длина недостаточна, он будет создан командой. Если переменные ранее не
существовали, они будут с теми же именами, что и соответствующие поля. Для
того, чтобы СУБД могла отличить одинаковые имена полей и переменных, к
последним можно обращаться с префиксом «М». Например, М->Х или М.Х для
переменной X. В случае если
префикса нет, СУБД сначала ищет поле с указанным именем и только если его не
находит -переменную. Опция MEMO
указывает на то, что и мемо-поля будут копироваться.
GATHER FROM <Macсив>/MEMVAR
[FIELDS<поля>] [MEMO]
Действие команды GATHER
обратно действию команды SCATTER
Команда переписывает в
<поля> текущей записи активного файла базы данных элементы
<массива> или одноименные переменные (опция MEMVAR),
созданные ранее командой SCATTER,
включая и мемо-поля (если указана опция MEMO).
Типы соответствующих полей и элементов массива должны совпадать. Если
отсутствует слово FIELDS,
элементы переносятся в последовательные поля, начиная с первого. Если число
элементов массива и полей не совпадает, лишние игнорируются.
1.5 Разработка
комплекса программ и средств взаимодействия с ЭВМ (меню)
ACTIVATE
MENU
Вывод на дисплей и активация линейки меню Формат:
ACTIVATE MENU <имя!>
[PAD <имя2>]
Данная команда работает в
сочетании с командами DEFINE
MENU и DEFINE
PAD. Две эти команды
определяют линейку меню, которая может располагаться на экране горизонтально
или вертикально.
Команда ACTIVATE
MENU вызывает на экран
или в окно ранее определенную линейку меню, помеченную как <имя!>, и
активирует ее для использования.
После активации меню вы можете
переходить между элементами линейки при помощи клавиш-стрелок à
и ß. Для перемещения между опциями
соответствующих элементам линейки всплывающих меню служат клавиши-стрелки ↑
и ↓. Опция всплывающего меню становится выбранной, если в момент, когда
она выделена, нажать Enter
или кнопку мыши. Для деактивации всплывающего меню без выполнения выбора нужно
нажать Esc.
Деактивировать меню можно также командой DEACTIVATE
MENU или активировав
другую линейку меню.
Если используется
необязательное предложение PAD
<имя2>, то при выводе на дисплей выделен будет элемент линейки, указанный
в <имя2>. Если это предложение опущено, то выделен будет первый элемент.
ACTIVATE
POPUP
Вывод на дисплей и активация вертикального меню Формат: ACTIVATE
POPUP<имя> Данная
команда активации меню работает в сочетании с командами DEFINE
POPUP и DEFINE
BAR. Эти две команды
определяют всплывающее меню, которое затем может быть выведено в любой позиции
крана.
Команда ACTIVATE
POPUP вызывает
определение, ранее всплывающее меню с именем <имя>, которое затем
размещается на экране или в окне и активируется для последующего использования.
После активации всплывающего меню вы можете переходить между составляющими его
опциями при помощи клавиш-стрелок Вверх и Вниз.
Опция меню считается выбранной,
если в момент, когда она выделена, нажать Enter
или кнопку мыши. Для деактивации всплывающего меню без выбора следует нажать Esc.
Всплывающее меню также может быть деактивировано командой DEACTIVATE
POPUP, либо при
активации другого всплывающего меню.
DEACTIVATE
MENU
Формат: DEACTIVATE
MENU
Команда DEACTIVATE
MENU удаляет активное
меню с экрана, но не из памяти. Одновременно активным может являться только
одно меню, поэтому указывать имя меню нет необходимости. Меню можно повторно
активировать командой ACTIVATE
MENU с именем меню.
Для освобождения конкретного
меню из памяти следует дать команду REEEASE
MENUS с именем меню.
Команды CLEAR
ALL и CLEAR
MENUS позволяют
освободить из памяти все меню.
Команда DEACTIVATE
MENUS выполняется только
из программных файлов. Управление программой затем возвращается в строку
программы, непосредственно после строки, активировавшей меню. Из командного
окна команда DEACTIVATE
MENU не действует.
DEACTIVATE
POPUP.
Деактивация всплывающего меню и
удаление его с экрана Формат: DEACTIVATE
POPUP Команда DEACTIVATE
POPUP удаляет активное
всплывающее меню с экрана или из окна, оставляя его в памяти. Одновременно
может быть активным только одно всплывающее меню, поэтому задавать его имя нет
необходимости. Для повторной активации всплывающего меню следует дать команду ACTIVATE
POPUP с именем
всплывающего меню.
Для освобождения конкретного
всплывающего меню из памяти следует дать команду RELEASE
MENUS с именем меню.
Команды CEEAR
POPUPS и CLEAR
ALL позволяют
освободить из памяти все всплывающие меню.
Команда DEACTIVATE
POPUP выполняется только
из программных файлов. Управление программой затем возвращается в строку про
граммы, непосредственно после строки, активировавшей всплывающее меню. Из
командного окна команда DEACTIVATE
POPUP не действует.
DEFINE
BAR
Определение
опции всплывающего меню формат: DEFINE
BAR <выраж N>
OF <имя> PROMPT
<выраж Cl> [MESSAGE
<выpaжC2>][SKIP[FOR<выpaжL>]]
Команда DEFINE
BAR добавляет опцию
всплывающего меню. DEFINE
BAR используется
совместно с командами DEFINE
POPUP и ACTIVATE
POPUP для создания
всплывающего меню и вывода его на экран. Прежде чем можно будет пользоваться
командой DEFINE
BAR, необходимо
определить само всплывающее меню командой DEFINE
POPUP. Меню можно убрать
с экрана командой DEACTIVATE
POPUP, либо и с экрана и
из памяти командами CLEAR
ALL, CLEAR
POPUPS или RELEASE
POPUPS.
DEFINE
MENU
Создание линейки меню формат: DEFINE
MENU <имя>[МЕSSАGЕ<выраж
С>]Команда DEFINE
MENU создает линейку
меню и назначает ей имя. После того, как линейка меню определена, вы можете при
помощи команды DEFINE
PAD определять
элементы линейки меню.
DEFINE
PAD
Определение
элемента линейки меню формат: DEFINE
PAD <имя> OF
<имя_меню>PROMPT<выражС1>
[AT<строка>,<столбец>][
МЕSSАGЕ
<выражС2>] Команда DEFINE
PAD служит для
совместно с командой DEFINE
MENU, обычно при
создании системы меню. Перемещения между элементами инейки меню выполняются при
помощи клавиш управления курсором или мыши.
ON
SELECTION
PAD
Назначает
подпрограмму на поле меню. Формат: ON SELECTION PAD
< имя
поля
>
< имя меню > [ < команда > ]
Команда ON
SELECTION
PAD назначает
подпрограмму на поле меню.
Подпрограмма, которая будет
выполняться при выборе поля меню, может быть командой, программой или
процедурой.
ACTIVATE
MENU
Вывод на дисплей и активация линейки меню формат: ACTIVATE
MENU <имя!> [PAD
<имя2>] Данная команда работает в сочетании с командами DEFINE
MENU и DEFINE
PAD. Две эти команды
определяют линейку меню, которая может располагаться на экране горизонтально
или вертикально. Команда ACTIVATE
MENU вызывает на экран
или в окно ранее определенную линейку меню, помеченную как <имя!>, и
активирует ее для использования.
CLEAR
MENUS
освобождает все меню из памяти, а также с экрана или из окон.
DEFINE
POPUP
описывает
прямоугольное меню и определяет его содержание, если оно является компонентами
файлов/файла.
DEFINE BAR <BыpNl>
OF <РОРUР-меню>
PROMPT
<ВырС1> команда описывает ВАК-пункты POPUP-меню,
если программист задает их сам в виде некоторых строк. Команда используется
после команды DEFINE
POPUP.
ON SELECTION
BAR <BыpN>
OF <РОРUР-меню>
[<команда>]
назначает <команду> (обычно вызов процедуры) на пункт номер <BыpN>
из названного <РОРUР-меню>.
Назначение должно быть сделано после определения <POPUP-меню>,
но до его активации. Использование команды без параметра <команда>
отменяет закрепление.
1.6 Меню программы
Меню моей программы содержит
следующие пункты:
данные
операции банка
поиск
фильтрация
Данные -
позволяет работать с базами данных
Операции банка -
позволяет осуществлять основные банковские операции.
Фильтрация -
позволяет осуществлять фильтрацию данных по ключу.
Пункт Данные содержит:
редактирование
просмотр
возврат в главное меню
Пункт Редактирование позволяет
вносить изменения в файлы БД. Просмотр позволяет просмотреть файлы БД в BROWSE-окне.
Возврат в главное меню закрывает вертикальное меню ДАННЫЕ
Пункт Операции банка содержит:
открытие счета
расходный ордер
приходный ордер
Пункт Открытие счета позволяет
открыть новый счет.
Расход служит
для осуществления операции снятия денег со счета. После ввода номера счета и
суммы происходит печать «Расходного ордера» При попытке снять сумму,
превышающую вклад, вкладчик облагается штрафом в размере 5% вклада.
Приход служит
для осуществления операции вклада денег.
После ввода номера счета и
суммы происходит печать «Приходного ордера».
Пункт Поиск содержит:
поиск по фамилии
поиск по счету Пункт Поиск
по фамилии позволяет осуществлять поиск клиентов по фамилии.
Действие пункта Поиск по
счету аналогично действию пункта Поиск по фамилии, но поиск
производится по номеру счета.
Фильтрация производится
по фамилии
по адресу
по счету
При выборе пункта По фамилии
появляется диалоговое окно, где запрашивается ключ. После ввода ключа и
нажатии кнопки «Фильтрация», отфильтрованные данные выводятся в BROWSE-окно.
Действие пунктов По счету и
По адресу аналогично действию пункта По фамилии, только фильтрация
происходит по соответствующим полям.
Пункт Выход содержит:
выход в DOS
выход в FOXPRO
После выбора пункта ВЫХОД в DOS
или
ВЫХОД в FOXPRO,
происходит
выход, соответственно, в OS
MS-DOS
или в СУБД FOXPRO 2.5.
Даталогическая
модель.
База данных KLIENT.DBF
name
|
type
|
width
|
dec
|
LC
|
Character
|
20
|
|
SURNAME
|
Character
|
15
|
|
NAME
|
Character
|
12
|
|
отсн
|
Character
|
15
|
|
ADR
|
Character
|
20
|
|
NUM PAS
|
Character
|
10
|
|
TEL
|
Numeric
|
6
|
0
|
SUMS
|
Numeric
|
9
|
2
|
DATA1
|
Date
|
8
|
|
База данных SCHET.DBF
Name
|
Type
|
Width
|
Dec
|
LC
|
Character
|
|
PRIH
|
Numeric
|
9
|
2
|
RASH
|
Numeric
|
9
|
2
|
DATA2
|
Date
|
8
|
|
Тексты программы.
SET ТАЕК
OFF
SET BEEE OFF SET
ESCAPE OFF SET DATE GERMAN CEOSE DATABASES CEEARFILE klc.idx DELETE FILE
slc.idxklient IN 1schet IN 21ON 1c
TO klc2ON Ic TO sic1REEATION TO 1c INTO ВSKIP
TO ВWINDOW
EIST1 FROM 0,0 TO 24,79 WINDOW
listl
TEXT
МИНИСТЕРСТВО ОБРАЗОВАНИЯ
РОССИЙСКОЙ ФЕДЕРАЦИИ ДАГЕСТАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ
Факультет Информационных Систем
Кафедра: Информационных Систем в Экономике
КУРСОВАЯ РАБОТА
по дисциплине "База данных
и знаний"
на тему: "Ведение
банковских счетов юридических лиц"
Выполнила: ст-т гр. 3162
Вердиханов А.С.
Проверил: Мурадов М.М
Махачкала 2003г.
ENDTEXT
WAIT
'Для продолжения нажмите любую клавишу' RELEASE
WINDOW listl
DEFINE WINDOW title
1 from 0,0 to 24,79 COEOR GR+/G TITLE 'ИНФОРМАЦИОННАЯ
СИСТЕМА
"БАНК"'
DEFINE WINDOW prosm FROM 2,0 TO 24,79 COLOR N/W ACTIVATE WINDOW title 1menu
1prl PARAMETERS Ml DO CASE=1 TITLE
'ДАННЫЕ <Ctrl-W>-Сохранить
<Еsс>-Выход без
сохранения'
FIELDS
Lс:Н='Счет №',;
Surname:Н='Фамилия',;
Name:Н='Имя',;
Otch:H='Отчество
',;
Adr:H=
Адрес',;
Num_pas:H='Hoмep
паспорта',;
Те1:Н=Телефон',;
Sums:H=
Сумма',;
Datal
:Н='Дата отк. счета',;
B.prih:H=
'Приход',;
В.rash:H='Расход',;
В.data2:Н='Дата
операции';
WINDOW prosmMl =2
SELECT 1TITLE 'ДАННЫЕ';
FIELDS Lc:H='Cчет№',;:Н='Фамилия',;
Name:Н='Имя',;
Otch:H='Отчество
',;
Adr:H=
Адрес',;
Num_pas:H='Hoмep
паспорта',;
Те1:Н=Телефон',;
Sums:H=
Сумма',;
Datal
:Н='Дата отк. счета',;
B.prih:H=
'Приход',;
В.rash:H='Расход',;
В.data2:Н='Дата
операции';
NODELETE NOEDIT NO
APPEND WINDOW prosmPOPUPMl =4POPUP
ENDCASEpr2
PARAMETERS M2 AB=MONTH(DATE()) DO CASEM2=lnewsM2=2rashodM2=3prihodM2=5POPUPpr3M3CASE=1POISKFM3=2POISKFPOPUPpr5M5CASE=1M5=2WINDOW
title 1menu mlM5=4POPUPfilterM4M4=5POPUP fltPOPUP fltSKIP TO=SPACE(20)WINDOW
flitl TITLE 'Фильтрация
'+PROMPTQ FROM 5,22 TO 11,58WINDOW flitl
@1,1 SAY 'Введите
ключ'
GET kluich
@3,8 PROMPT 'Фильтрация'
@3,23 PROMPT'Выход1to
kljklj=lCASEM4=lFILTER TO sumame=ALLTRIM(kluich)M4=2FILTER TO
adr=ALLTRIM(kluich)M4=3FILTER TO lc=ALLTRIM(kluich)WINDOW flitlTITLE 'ФИЛЬТРАЦИЯ
ПО
КЛЮЧУ;Lc:H='Cчет
№',;:Н='Фамилия',;
Name:Н='Имя',;
Otch:H='Отчество
',;
Adr:H=
Адрес',;
Num_pas:H='Hoмep
паспорта',;
Те1:Н=Телефон',;
Sums:H=
Сумма',;
Datal
:Н='Дата отк. счета',;
NOEDIT NO APPEND
NODELETE;
WINDOW prosmWINDOW
flitlFILTER TO
SET SKIP TO ВWINDOW
prosm RETURN.PRG
DEFINE MENU Ml
COLOR SCHEME 10PAD datl OF Ml PROMPT 'Данные';'Работа
с
базами
данных1PAD
dat2 OF Ml PROMPT 'Операции банка';
MESSAGE 'Операции
банка'PAD
dat3 OF Ml PROMPT 'Поиск';'Поиск
по
ключу'PAD
dat4 OF Ml PROMPT 'Фильтрация';'Фильтрация
по
ключу'PAD
dat5 OF Ml PROMPT 'Выход';'Выход
из
программы'SELECTION
PAD datl OF Ml ACTIVATE POPUP dann ON SELECTION PAD dat2 OF Ml ACTIVATE POPUP
oper ON SELECTION PAD dat3 OF Ml ACTIVATE POPUP poisk ON SELECTION PAD dat4 OF
Ml ACTIVATE POPUP fit ON SELECTION PAD dat5 OF Ml ACTIVATE POPUP vihodPOPUP
dann FROM 1,0BAR 1 OF dann PROMPT 'Редактирование';
'Просмотр данных с возможностью внесения зменений'
DEFINE BAR 2 OF
dann PROMPT 'Просмотр';
'Просмотр данных без внесения изменений'
DEFINE BAR 3 OF
dann PROMPT '\-'BAR 4 OF dann PROMPT 'Возврат
в
главное
меню';'Переход
в
главное
меню'SELECTION
POPUP dann DO prl WITH BAR()POPUP oper from 1,9BAR 1 OF oper PROMPT 'Открытие
счета';'Открытие
нового
счета'BAR
2 OF oper PROMPT 'Расход';'Печать
расходного
ордера'BAR
3 OF oper PROMPT 'Приход';'Печать
приходного
ордера'BAR
4 OF oper PROMPT '\-'BAR 5 OF oper PROMPT 'Возврат
в
главное
меню';'Переход
в
главное
меню'SELECTION
POPUP oper DO pr2 WITH BAR()POPUP poisk FROM 1,26BAR 1 OF poisk PROMPT 'Поиск
по
фамилии';
'Поиск данных по фамилии'
DEFINE
BAR 2 OF
poisk PROMPT
'Поиск по счету';
DEFINE BAR 3 OF
poisk PROMPT '\-'BAR 4 OF poisk PROMPT 'Возврат
в
главное
меню';'Переход
в
главное
меню'SELECTION
POPUP poisk DO ргЗ
WITH BAR()POPUP fit FROM 1,34BAR 1 OF fit PROMPT 'По
фамилии';'Фильтрация
по
фамилии'BAR
2 OF fit PROMPT 'По адресу';'Фильтрация
по
адресу'BAR
3 OF fit PROMPT 'По счету';'Фильтрация
по
счету'BAR
4 OF fit PROMPT '\-'BAR 5 OF fit PROMPT 'Возврат
в
главное
меню';'Переход
в
главное
меню'SELECTION
POPUP fit DO fliter WITH BAR()POPUP vihod FROM 1,47BAR 1 OF vihod PROMPT 'Выход
в
DOS';'Выход
в
ОС
MS-DOS'BAR 2 OF vihod PROMPT 'Выход
в
FoxPro';'Выход в
СУБД
FoxPro'BAR 3 OF vihod PROMPT '\-'BAR 4 OF vihod PROMPT 'Возврат
в
главное
меню';'Переход
в
главное
меню'SELECTION
POPUP vihod DO pr5 WITH BAR()MENU Ml RETURN
Файл
NEWS.PRGWINDOW dob FROM 6,20 TO 19,60 TITLE 'Открытие
счета'
DOUBLEWINDOW dobMEMVAR BLANK.DATA1=DATE()
@ 1,1 SAY '№ счета:'
GET M.LC
@ 2,1 SAY 'Фамилия:'
GET M.SURNAME
@ 3,1 SAY 'Имя:'
GET M.NAME
@ 4,1 SAY 'Отчество:'
GET M.OTCH
@ 5,1 SAY 'Адрес:'
GET M.ADR
@ 6,1 SAY 'Номер
паспорта:'
GET M.NUM_PAS
@ 7,1 SAY Телефон:'
GET M.TEL
@ 8,1 SAY 'Сумма:'ОЕТ
M.SUMS
@ 9,1 SAY
'Дата открытия счета:' GET
M.DATA1
DISABLED
@ 11,10 PROMPT
'Сохранить'
@ 11,25 PROMPT 'Отмена'TO
qq=lBLANKMEMVARWINDOW dobPRINTER ON
?
?
?
?
?'Уведомление об открытие счета
' ?' юридическим лицом'
?
?'Счет №', m.lc
?'Лицо на имя которого открыт
счет', ALLTRIM(m.surname),'
'
??ALLTRIM(m.name),
' ',ALLTRIM(m.otch)
?
?'Сумма вклада',sums
?
?'Дата открытия счета',date()
SET PRINTER
OFFWINDOW dob
Файл
RASHOD.PRGPOPUP operWINDOW orders TITLE 'Расход'
FROM 7,20 TO 14,59WINDOW ordersВMEMVAR
BLANK=SPACE(20)
@1,1 SAY 'Введите
№счета'
GET A
@3,1 SAY
'Введите сумму' GET
M.rash
@5,11 PROMPT 'Принять'
@5,21 PROMPT 'Отмена'TO
PWINDOW ordersCASE=1PRINTSTATUS( )AALLTRIM(A)=A.AND.!EMPTY(M.RASH)FOR
LC=am.rash>a.sumsWINDOW vnim TITLE 'ВНИМАНИЕ'
FROM 4,17 TO 12,63WINDOW vnim
@0,14 SAY 'Вкладчик
'+surname
@1,1 SAY
'За попытку изъять сумму, превышающую вклад,'
@2,1 SAY
'вы облагаетесь штрафом в размере 5% вклада'
@4,12 SAY 'Сумма
штрафа:
'+ALLTRTM(str(sums/100*5))+'p.'
@6,19 PROMPT' OK
'MEMVAR.sums=rn.sums-m.surns/100*5MEMVARto i=lWINDOW vnimPRINTER ON
?'Ф№51'
?'Расходный ордер'
?
?'Счет
№',1с
?'',day(date()),rusmon(AB),year(date())
?'',alltrim(a.surname),'
',alltrim(a.name),' ',alltrim(a.otch)
?'
------------------------------------------------------------------------------------'
?'(Фамилия,имя, и отчество
вкладчика)'
?'
?'Прошу ВЫДАТЬ вклад в сумме'
? m.rash
??'ПОЛУЧИЛ:'
?'
?'Выдано',' | ОСТАТКИ (после
взноса)'
?m.rash,'|
Вклада ',a.sums-m.rash
?
?
?'ФилиалКонтролер Кассир' ?'№
(оператор)' SET
PRINTER OFF
CLEAR
SELECT Вm.rash#0a.sums
WITH a.sums-m.rashBLANK.lc=a.lc.data2=date()MEMVAR
ENDIF
ENDIF
ELSE'ПРИНТЕР
НЕ
ГОТОВ'
WINDOW
ENDIF
CASE P=2SHOW MENUS
ALL
SELECT A
Файл
PRIHOD.PRG
DEFINE WINDOW
orders! TITLE 'Приход'
FROM 7,20 TO 14,59WINDOW orders 1ВMEMVAR
BLANK=SPACE(20)
@1 SAY 'Введите
№счета'
GET A
@3,1 SAY 'Введите
сумму'
GET M.prih
@5,11 PROMPT'Принять'
@5,21 PROMPT'Отмена'
READ
MENU TO PWINDOW
orders 1
SELECT
AALLTRIM(A)=A.AND. !EMPTY(M.PRIH) LOCATE FOR LC=a
SET PRINTER ON
?'Ф №51' ?' Приходный ордер'
?
?'Счет
№',1с
?
?'',day(date()),rusmon(AB),year(date())
?'',alltrim(a.surname),'
',trim(a.name),' ',alltrim(a.otch)
?'
____________________________________________________
(Фамилия,имя, и отчество
вкладчика)'
?
?'Прошу Принять вклад в сумме'
? m.prih
?
?'Внес:'
?'Принято','! ОСТАТКИ (после
взноса)' ?' ',m.prih,'|
Вклада ',a.sums+m.prih
?
?'Филиал
Контролер
Кассир'
?'№ (оператор)'
SET PRINTER OFF CLEAR SELECT 2a.sums WITH
a.sums+m.prihBLANK.lc=a.lc.data2=date()memvarPOPUP ELSE
'ПРИНТЕР НЕ ГОТОВ' WINDOW
ENDIF
CASE P=2WINDOW
orders!
ENDCASEAMENUS ALL
Файл
POISKF.PRG
HIDE menu allPOPUP
poiskWINDOW POISK FROM 6,20 TO 12,60 COLOR B+/R TITLE PROMPT();WINDOW
POISK=space(20)
@ 0,1 SAY 'Введите
ключ'
@0,18 GETkluch
@ 2,13 PROMPT'Поиск'
@ 2,21 PROMPT 'Выход'TO
R=1POISKWINDOW POISKMENU ALL
Файл
POISK.PRGSKIP TOWINDOW poisk kluch=alltrim(kluch) IF
EMPTY(kluch)poiskfTOP=0CASEM3=lFOR surname=kluchM3=2FOR lc=kluchWHILE
!EOF().AND.les#3.AND.LASTKEY()#27FOUND()MEMVARWINDOW W2 FROM 5,20 TO
18,56WINDOW W2
@ 1,1 SAY'№ счета:'
@ 1,10 SAY M.lc
@2,1 SAY'Фамилия:
'
@2,10 SAY M.surname
@3,1 SAY 'Имя:'
@ 3,5 SAY M.name
@4,1 SAY'Отчество:'
@4,11 SAY M.otch
@5,1 SAY 'Адрес:'
@5,9 SAY
M.adr
@ 6,1 SAY
'Номер паспорта:'
@ 6,18 SAY
M.num_pas
@7,1 SAY Телефон:'
@7,11 SAY M.tel
@8,1 SAY 'Сумма:'
@8,10SAY
M.sums
@ 9,1 SAY
'Дата открытия счета:'
@ 9,22 SAY M.datal
@ 10,2 PROMPT 'Поиск
далее'
@ 10,14 PROMPT 'Новый
поиск'
@ 10,26 PROMPT 'Выход'TO
lesMEMVARCASEles=lles=2WINDOW W2POISKF OTHERWISEWINDOW W2WINDOW W2SKIP TO В
Файл
RUSMON.PRGABCASE CASE AB=1='Января'AB=2='Февраля'AB=3='Марта'AB=4
М='Апреля'AB=5
CASE AB-6='Июня'AB=7='Июля'AB=8='Августа'AB=9='Сентября'AB=10=11='Ноября'=12N
Заключение
В курсовой работе мною создан
комплекс программ на СУБД FoxPro
2.5 , состоящий из следующих компонентов:
. KURS.PRG
- основная программа, реализующая вызов остальных компонентов и процедуру
фильтрации по 3 полям:
• Фамилия
• Адрес
• Номер счета
. MENU1
.PRG - программа,
реализующая меню моей информационной системы
. NEWS.PRG
- программа, позволяющая открыть новый счет.
. RASHOD.PRG
- программа, организующая снятия суммы со счета и печать Расходного ордера.
. PRIHOD.PRG
- программа, организующая принятия вклада и печать Приходного ордера.
. POISKF.PRG
и POISK.PRG
- программы, реализующие поиск данных по 2 полям:
• Фамилия
• Номер счета
. RUSMON.PRG
- функция, преобразующая номер месяца в его название на русском языке.
Список
использованной литературы
1. Диго С.М. Проектирование и использование баз
данных.
. Попов А.А. Создание приложений для FoxPro
2.5/2.6 в DOS и Windows.
. Мурадов М.М. Курс лекции по дисциплине «Базы
данных и знаний».
. Наумов А.Н «Системы управления базами данных и
знаний». М.: «Финансы и статистика»