Файл: Разработка проекта информационной системы для автопарка.pdf
Добавлен: 30.06.2023
Просмотров: 55
Скачиваний: 2
Пункт меню База автомобилей решает основные задачи, поставленные в курсовой работе. Пункт меню Корректировать позволяет изменить все или несколько полей записи в базе данных. В пункте меню Просмотреть возможно просмотреть основные параметры (или поля) базы данных, а при выборе одной записи – дополнительную информацию о ней (записи). Пункт меню Добавить позволяет добавить одну или несколько записей в основную базу данных. В пункте меню Поиск реализованы два вида поиска: по марке авто и по рег. номеру.
И, соответственно, Выход в DOS осуществляет выход из программы.
1.4 Разработка системного меню.
Сервис(Загрузить, Сохранить, Удалить(Удалить всю БД, Удалить по признаку(По марке авто, По рег. номеру)))
База автомобилей(Корректировать, Просмотреть, Добавить, Поиск(По марке авто, По рег. номеру))
Выход в DOS
1.5 Разработка процедур.
В программе были использованы 6 процедур и 1 функция.
- Процедура удаления записи из БД udal1.
При выборе процедуры udal1 на экране вырисовывается окно ok1 для удаления записи по признаку. В зависимости от того, какой из пунктов меню был выбран (по марке авто или по рег. номеру), выполняется первая или вторая часть процедуры.
- Процедура коррекции БД korr.
При выборе процедуры korr на экране вырисовывается окно krok для коррекции одного или нескольких полей БД.
- Функция nom, предупреждающая возможность дублирования рег. номера.
Данная функция вызывается после ввода рег. номера авто. Просматривая все записи БД, введенный рег. номер сравнивается с уже существующими. Если такой номер уже существует, то выводится сообщение о том, что данный номер уже занят.
- Процедура просмотра БД procm.
При выборе процедуры procm на экран вырисовывается окно prosm для просмотра трех параметров записей БД.
- Процедура inf, выдающая в окне содержимое выбранной записи.
Процедура inf вызывается лишь в том случае, если была выбрана определенная запись в процедуре procm. При выполнении процедуры inf на экран вырисовывается окно inf, содержащее дополнительную информацию о выбранной записи.
- Процедура добавления новой записи в БД vvod.
При выборе данной процедуры vvod на экран вырисовывается окно ok_v. После внесения параметров новой записи она заносится в БД.
- Процедура поиска записи по признаку 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