Файл: Разработка проекта информационной системы для автопарка.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 30.06.2023

Просмотров: 54

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Пункт меню База автомобилей решает основные задачи, поставленные в курсовой работе. Пункт меню Корректировать позволяет изменить все или несколько полей записи в базе данных. В пункте меню Просмотреть возможно просмотреть основные параметры (или поля) базы данных, а при выборе одной записи – дополнительную информацию о ней (записи). Пункт меню Добавить позволяет добавить одну или несколько записей в основную базу данных. В пункте меню Поиск реализованы два вида поиска: по марке авто и по рег. номеру.

И, соответственно, Выход в DOS осуществляет выход из программы.

1.4 Разработка системного меню.

Сервис(Загрузить, Сохранить, Удалить(Удалить всю БД, Удалить по признаку(По марке авто, По рег. номеру)))

База автомобилей(Корректировать, Просмотреть, Добавить, Поиск(По марке авто, По рег. номеру))

Выход в DOS

1.5 Разработка процедур.

В программе были использованы 6 процедур и 1 функция.

  1. Процедура удаления записи из БД udal1.

При выборе процедуры udal1 на экране вырисовывается окно ok1 для удаления записи по признаку. В зависимости от того, какой из пунктов меню был выбран (по марке авто или по рег. номеру), выполняется первая или вторая часть процедуры.

  1. Процедура коррекции БД korr.

При выборе процедуры korr на экране вырисовывается окно krok для коррекции одного или нескольких полей БД.

  1. Функция nom, предупреждающая возможность дублирования рег. номера.

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

  1. Процедура просмотра БД procm.

При выборе процедуры procm на экран вырисовывается окно prosm для просмотра трех параметров записей БД.

  1. Процедура inf, выдающая в окне содержимое выбранной записи.

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

  1. Процедура добавления новой записи в БД vvod.

При выборе данной процедуры vvod на экран вырисовывается окно ok_v. После внесения параметров новой записи она заносится в БД.


  1. Процедура поиска записи по признаку poisk1.

При выборе процедуры poisk1 на экране вырисовывается окно ok для поиска записи по признаку. В зависимости от того, какой из пунктов меню был выбран (по марке авто или по рег. номеру), выполняется первая или вторая часть процедуры.

Листинг программы AutoPark.PRG

marka1=''

model1=''

color1=''

nomer1=0

dvigatel1=0

regnomer1=0

DEFINE WINDOW AutoPark FROM 1,1 TO 24,79 fill ;

'░' color b/W

ACTIVATE WINDOW AutoPark

SET TALK OFF

CLEAR

USE Auto In 1

USE Klient In 2

DEFINE MENU AutoPark

DEFINE PAD system OF AutoPark PROMPT "Система" AT 1,5 COLOR SCHEME 3

DEFINE PAD baza OF AutoPark PROMPT "База Автомобилей" AT 1,25 COLOR SCHEME 3

DEFINE PAD vih OF AutoPark PROMPT "Выход в DOS" AT 1,55 COLOR SCHEME 3

ON PAD system OF AutoPark ACTIVATE POPUP syst

ON PAD baza OF AutoPark ACTIVATE POPUP baza

ON SELECTION PAD vih OF AutoPark DO _18b16pgbh

* IN LOCFILE("FOX26\AUTO" ,"MPX;MPR|FXP;PRG" ,"Where is AUTO?")

DEFINE POPUP syst MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF syst PROMPT "Загрузить"

DEFINE BAR 2 OF syst PROMPT "Сохранить"

DEFINE BAR 3 OF syst PROMPT "Удалить"

ON SELECTION BAR 1 OF syst BROWSE

ON SELECTION BAR 2 OF syst SAVE TO AutoSET

ON BAR 3 OF syst ACTIVATE POPUP udalen

DEFINE POPUP udalen MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF udalen PROMPT "Удалить всю БД"

DEFINE BAR 2 OF udalen PROMPT "Удалить по признаку"

ON SELECTION BAR 1 OF udalen ZAP

ON BAR 2 OF udalen ACTIVATE POPUP udalp

DEFINE POPUP udalp MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF udalp PROMPT "По марке авто"

DEFINE BAR 2 OF udalp PROMPT "По рег.номеру"

ON SELECTION BAR 1 OF udalp DO udal1

ON SELECTION BAR 2 OF udalp DO udal1

DEFINE POPUP baza MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF baza PROMPT "Корректировать"

DEFINE BAR 2 OF baza PROMPT "Просмотреть"

DEFINE BAR 3 OF baza PROMPT "Добавить"

DEFINE BAR 4 OF baza PROMPT "Поиск"

ON SELECTION BAR 1 OF baza DO korr

ON SELECTION BAR 2 OF baza DO procm

ON SELECTION BAR 3 OF baza DO vvod

ON BAR 4 OF baza ACTIVATE POPUP poisk

DEFINE POPUP poisk MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF poisk PROMPT "По марке авто"

DEFINE BAR 2 OF poisk PROMPT "По рег.номеру"

ON SELECTION BAR 1 OF poisk DO poisk1

ON SELECTION BAR 2 OF poisk DO poisk1

ACTIVATE MENU AutoPark

DEACTIVATE MENU

DEACTIVATE WINDOW AutoPark

* Процедура удаления записи

PROCEDURE udal1

DEFINE WINDOW ok1 FROM 5,10 to 20,70 TITLE 'Удаление записи из БД' COLOR SCHEME 10

ACTIVATE WINDOW ok1

n=RECNO()

IF BAR()=1

@ 2,2 SAY 'Введита марку авто'

@ 2,col()+2 GET m.marka DEFAULT SPACE(25)

READ

LOCATE FOR marka=ALLTRIM(m.marka)

ELSE

@ 2,2 SAY 'Введите рег.номер авто'

@ 2,col()+2 GET m.regnomer DEFAULT 0

READ

LOCATE FOR regnomer=m.regnomer

ENDIF

IF EOF()

WAIT 'Не найдено' WINDOW

GO n

ELSE

IF DELETE()

RECALL

ELSE

DELETE

ENDIF

ENDIF

@ 3,2 SAY IIF(DELETE(),'Запись удалена !!!',' ')

SHOW GETS

DEACTIVATE WINDOW ok1

RETURN

* Процедура коррекции БД

PROCEDURE korr

USE auto IN 1

USE klient IN 2

SELECT 1

DEFINE WINDOW krok FROM 5,10 to 20, 70 TITLE 'Коррекция БД' COLOR SCHEME 10

ACTIVATE WINDOW krok

SCAN

@ 2,2 SAY 'Марка авто '

@ 2,col()+4 GET marka

@ 3,4 SAY 'Модель авто'

@ 3,col()+6 GET model

@ 4,6 SAY 'Цвет авто'


@ 4,col()+10 GET color

@ 5,6 SAY 'Номер двигателя'

@ 5,col()+4 GET dvigatel

@ 6,4 SAY 'Номер авто'

@ 6,col()+7 GET nomer

@ 7,2 SAY 'Рег. номер '

@ 7,col()+4 GET regnomer VALID nom() ERROR 'Этот номер занят !'

READ

ch=1

@ 10,12 say 'Продолжим просмотр базы Да Нет'

@ 10,col()-7 get ch FUNCTION '*IHT ;' SIZE 1,3,1

READ cycl

IF ch<>1

EXIT

ENDIF

ENDSCAN

DEACTIVATE WINDOW krok

RETURN

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

FUNCTION nom

i=RECNO()

n=regnomer

r=.t.

SCAN

IF RECNO() <>i

r=IIF(regnomer=n,.f.,.t.)

IF NOT r

EXIT

ENDIF

ENDIF

ENDSCAN

GO i

RETURN r

* Процедура просмотра БД

PROCEDURE procm

USE auto IN 1

USE klient IN 2

SELECT 1

SET RELATION TO regnomer INTO klient

DEFINE WINDOW prosm FROM 5,10 to 20,70 TITLE 'Информация о авто' COLOR SCHEME 10

DEFINE POPUP pr FROM 1,1 to 12,57 PROMPT FIELD marka+' '+model+' '+ ;

str(nomer,3) TITLE 'Марка авто Модель авто Номер авто' footer ;

'Выберите и нажмите ENTER'

ON SELECT POPUP pr DO inf

ACTIVATE WINDOW prosm

ACTIVATE POPUP pr

SET RELATION TO

DEACTIVATE WINDOW prosm

RETURN

* Прoцедура, выдающая в окне содержимое выбранной записи

PROCEDURE inf

DEFINE WINDOW inf FROM 9,45 TO 15,73 TITLE 'Авто '+marka COLOR SCHEME 7

ACTIVATE WINDOW inf

m_n=regnomer

fio=MEC()

@1,1 SAY 'Цвет авто:'

@1,col()+1 SAY color

@2,1 say 'Номер двигателя:'

@2,col()+1 SAY dvigatel

@3,1 say 'Рег. номер:'

@3,col()+1 SAY regnomer

WAIT ''

DEACTIVATE WINDOW inf

RETURN

FUNCTION mec

SELECT 2

fio=''

LOCATE FOR m_n=regnomer

IF NOT FOUND()

WAIT WINDOW 'Ошибка! Клиент авто не зарегестрирован! '

ENDIF

fio1=fio

SELECT 1

RETURN fio1

* Процедура добавления новой записи в БД

PROCEDURE vvod

USE auto IN 1

USE klient IN 2

SET EXACT ON

DEFINE WINDOW ok_v FROM 5,10 to 20,70 TITLE 'Добавление новой записи в БД' COLOR SCHEME 10

defi popup mesto from 1,1 to 6,16 prompt field pol

DO WHILE .t.

SELECT 1

CLEAR

STORE 0 TO regnomer1

ACTIVATE WINDOW ok_v

@ 2,2 SAY 'Введите марку авто:'

@ 2,col()+6 GET marka1 size 1,15

@ 3,4 SAY 'Введите модель авто:'

@ 3,col()+5 GET model1 size 1,15

@ 4,6 SAY 'Введите цвет авто'

@ 4,col()+8 GET color1 size 1,15

@ 5,6 SAY 'Введите номер авто:'

@ 5,col()+6 GET nomer1 size 1,15

@ 6,4 SAY 'Введите рег. номер:'

@ 6,col()+6 GET regnomer1 size 1,15

@ 7,2 SAY 'Введите номер двигателя:'

@ 7,col()+1 GET dvigatel1 size 1,15

READ

SELECT 1

@ 10,5 SAY 'Вы уверены в правильности ввода ? Да Нет'

@ 10,col()-7 GET ch FUNCTION '*IHT ;' SIZE 1,3,1 default 1

READ cycl

IF ch=1

SELECT 1

APPEND BLANK

REPLACE marka WITH marka1

REPLACE model WITH model1

REPLACE color WITH color1

REPLACE nomer WITH nomer1

REPLACE dvigatel WITH dvigatel1

REPLACE regnomer WITH regnomer1

ELSE

CLEAR

ENDIF

@ 10,1 TO 15,78 CLEAR

@ 10,5 SAY 'Продолжим ввод ? Да Нет'

@ 10,col()-7 get ch FUNCTION '*IHT ;' SIZE 1,3,1

READ cycl

IF ch<>1

DEACTIVATE WINDOW ok_v

CLOSE DATA ALL

EXIT

ENDIF

ENDDO

DEACTIVATE POPUP kor

RETURN

* Процедура поиска записи

PROCEDURE poisk1

DEFINE WINDOW ok FROM 5,10 to 20,70 TITLE 'Поиск записи в БД' COLOR SCHEME 10

ACTIVATE WINDOW ok

n=RECNO()

IF BAR()=1


@ 2,2 SAY 'Введита марку авто'

@ 2,col()+2 GET m.marka DEFAULT SPACE(25)

READ

LOCATE FOR marka=ALLTRIM(m.marka)

ELSE

@ 2,2 SAY 'Введите рег.номер авто'

@ 2,col()+2 GET m.regnomer DEFAULT 0

READ

LOCATE FOR regnomer=m.regnomer

ENDIF

IF EOF()

WAIT 'Не найдено' WINDOW

GO n

ELSE

@ 4,3 SAY 'Марка авто :'

@ 4,col()+1 SAY marka

@ 5,3 SAY 'Модель авто :'

@ 5,col()+1 SAY model

@ 6,3 SAY 'Цвет авто :'

@ 6,col()+1 SAY color

@ 7,3 SAY 'Номер авто :'

@ 7,col()+1 SAY nomer

@ 8,3 SAY 'Рег.номер :'

@ 8,col()+1 SAY regnomer

@ 9,3 SAY 'Номер двигателя:'

@ 9,col()+1 SAY dvigatel

WAIT ''

ENDIF

DEACTIVATE WINDOW ok

RETURN

PROCEDURE _18b16pgbh

RELEASE WINDOW poisk

CLOSE ALL

CANCEL

Прикладной пакет экранных форм программы AutoPark.PRG

Система База автомобилей Выход в DOS

Загрузить

Сохранить

Удалить >

Удалить всю БД

Удалить по признаку >

По марке авто

По рег. номеру

Система База автомобилей Выход в DOS

Корректировать

Просмотреть

Добавить

Поиск >

По марке авто

По рег. номеру

база данные программа листинг

Система База автомобилей Выход в DOS

Загрузить

Сохранить

Удалить >

Удалить всю БД

Удалить по признаку >

По марке авто

По рег. номеру

Удаление записи из ДБ

Введите рег. номер авто 1

Система База автомобилей Выход в DOS

Удалить всю БД

Удалить по признаку >

По марке авто

По рег. номеру

Коррекция БД

Марка авто Mersedes-Benz

Модель авто SLK

Цвет авто Black

Номер двигателя 333333

Номер авто 301

Рег. номер 16

Продолжим просмотр базы ДА НЕТ

Система База автомобилей Выход в DOS

Удалить всю БД

Удалить по признаку >

По марке авто

По рег. номеру

Информация о авто

Марка авто Модель авто Номер авто

Mersedes-Bnz SLK 301

Ford Mondeo 474

Mersedes-Benz S600 101

Mustang SG900 560

Folkswaggen Passat 103

Vaz 1010 679

Opel Frontera 234

Opel Astra 546

Dodge Viper 126

Выберите и нажмите ENTER

Авто Mersedes-Benz

Цвет авто: Black

Номер двигателя: 100000

Рег. номер: 6

Система База автомобилей Выход в DOS

Удалить всю БД

Удалить по признаку >

По марке авто

По рег. номеру

Добавление ново записи в БД

Марка авто Mersedes-Benz

Модель авто SLK

Цвет авто Black

Номер двигателя 333333

Номер авто 301

Рег. номер 16

Вы уверенны в правильности ввода? ДА НЕТ

Система База автомобилей Выход в DOS