Главная Учебники - Разные Лекции (разные) - часть 32
|
МОСКОВСКАЯ
ГОСУДАРСТВЕННАЯ
ТЕКСТИЛЬНАЯ
АКАДЕМИЯ
им. КОСЫГИНА
Кафедра ИТ
и ВТ.
К У Р С
О В А Я Р А Б О Т
А
Тема : “Разработка
програмного
обеспечения,
ведение базы
данных и получение
ведомости с
частичными
суммами.“
по курсу:
“Алгоритмические
языки и технология
програмирования
“
Выполнил:
Пономарев
А.Н.
гр.42-96
Руководитель:
доц.
Стрельников
Б.А.
асс. Степанова
О.П.
МОСКВА
1998 2.
ЗАДАНИЕ: ТЕМА
КУРСОВОЙ РАБОТЫ:
Реализация
алгоритма
обработки
данных
и ведения
реляционной
базы данных. ИСХОДНЫЕ
ДАННЫЕ:
Индивидуальное
задание с описанием
базы данных
и получаемой
в
результате
ее обработки
ведомости с
частичными
и полными суммами. ПЕРЕЧЕНЬ
ПОДЛЕЖАЩИХ
РАЗРАБОТКЕ
ВОПРОСОВ (
СОДЕРЖАНИЕ
РАСЧЕТНО-ПОЯСНИТЕЛЬНОЙ
ЗАПИСКИ )
1.
Разработать
структуры
файлов и создать
макет базы
данных. 2.
Разработать
алгоритм обработки
данных для
получения
ведомости. 3.
Составить и
отладить программу
получения
ведомости. 4.
Разраб. формы
экранных кадров
и меню для ведения
базыданных. 5.
Составить и
отладить программу
реализации
экранного кадра
для
просмотра
основных(ой)
таблиц(ы). 6.
Дополнить
программу п.5
возможностью
удаления и
добавления
строк в таблицу. 7.
Дополнить
программу п.5
возможностью
изменения
инф-ии в
таблице. 8.
Составить и
отладить процедуры
оперативного
ведения справочников
базы данных. 9.
Разраб.единую
систему меню
для ведения
базы данных
и ее
обработки
с целью получения
ведомости. 10.
Разработать
систему интерфейса
пользователя
(подсказки о
клавишах,
на которые
предусмотрена
реакция системы
и помощь пользователю). ПЕРЕЧЕНЬ
ГРАФИЧЕСКОГО
МАТЕРИАЛА 1.
Структуры
файлов базы
данных и их
заполнение
для тестового
примера. 2.
Макеты экранных
кадров и состав
подсказок для
пунктов ожидания
ввода
от пользователя. 3.
Ведомость,
получаемая
в результате
выполнения
тестового
примера. МАТЕМАТИЧЕСКИЕ
МОДЕЛИ
Обеспечить
модульную
структуру
программы. (
программа
состоит из
нескольких
PRG-файлов, включая
PRG-файл типовых
утилит. Каждый
PRG-файл состоит
из функций или
процедур,
снабженных
комментариями.
) ТЕХНИЧЕСКИЕ
СРЕДСТВА:
ПЭВМ IBM
Система
программирования
Clipper 5.2 3.
ИНДИВИДУАЛЬНОЕ
ЗАДАНИЕ.
Имеются
файлы: АА - нормативы
профилактики
оборудования, ВВ
- профилактики
и СС - состав
оборудования АА:
1. Идентификатор
типа станка
ВВ: 1. Инвентарный
номер станка
2. Наименование
типа станка
2. Вид профилактики
3. Норма
кол-ва дней
между 3. Дата
профилактики
профилактиками
4. Идентификатор
записи СС:
1. Инвентарный
номер
2. Идентификатор
типа станка Выявить
все случаи
превышения
нормативных
интервалов
между профилактиками
и вывести их
в выводной файл
DD:
1. Инв.№
2. Фактическое
кол-во дней
между профилактиками
3. Нормативное
кол-во дней
4. Иден-тор
записи пред.
проф-ки
5. Иден-тор записи
след. проф-ки На
принтер вывести
ведомость,
упорядоченную
по убыванию
кол-ва просроченных
дней:
Нарушения норм
техобслуживания Инв.№
/Тип Дата/Вид
пред.проф-ки
Дата /Вид след.проф-ки
Просрочено,
дней Инв.№
/Тип Дата /Вид
пред.проф-ки
Дата /Вид след.проф-ки
Просрочено,
дней Инв.№
/Тип Дата /Вид
пред.проф-ки
Дата /Вид след.проф-ки
Просрочено,
дней . . . . . . . . . . Общее
кол-во дней
просрочки
СУММА
4.Анализ
обработки БД
для её получения
:
а) По какому
файлу проводится
главный цикл
обработки ?
Главный цикл
обработки в
подпрограмме
vedom - (п.п.,
которая осущест- вляет
выявление всех
случаев превышения
нормативных
интервалов
между профилактиками,
вывод их в выводной
файл “DD”, а также
осуществляет
выдачу
ведомости на
принтер) проводится
по файлу bb.dbf
. б)
Как он должен
быть упорядочен
? Он
должен быть
упорядочен
в хронологическом
порядке. Пример:
index on bb->invnom + dtoc(bb->dateprof) to
bb0001 Справка:
Синтаксис: INDEX
ON <ключевое
выражение>
TO <имя индексного
файла> INDEX
- команда обработки
базы данных,
которая создает
файлы,
содержащие
индексы базы
данных на основе
значения аргумента
<ключевое
выражение>.
При использовании
индексного
файла записи
базы данных
обрабатываются
в последовательности,
заданной ключевым
выражением,
однако физический
порядок следования
записей базы
данных остается
неизменным.
INDEX обеспечивает
последовательность
записей,
упорядоченную
по значениям
ключевого
выражения. Для
ключей типа
CHARACTER
- в соответствии
со значением
ASCII кода каждого
символа
внутри
строки, для
ключей типа
NUMERIC - в соответствии
с числовым
порядком,
для ключей типа
дата - в хронологическом
порядке и для логических
- считается,
что истина
(.Т.) - более высокого
порядка. Memo-поля
не могут быть
индексированы. в)
Применяются
ли фильтры ? Хотя
команда SET FILTER делает
так, что файл
в рабочей области
выглядит
состоящим из
подмножества
записей, на
самом деле
последовательно
обрабатываются
все его записи.
Фильтры не
применяются,
т.к время работы
с фильтрованной
и нефильтрованной
рабочей областью
оказывается
одним и тем же.
г)
Имеются ли
связи ”хозяин-слуга”
и по каким полям
? В
подпрограмме
vedom имеются
связи. Пример:
а) set relat to bb->invnom into cc
Связь по
полю “invnom”.
б) set relat to cc->idst into aa additive
Связь по
полю “idst”.
в) set relat to dd->invnom into cc additive
Связь по
полю “invnom”. ............................................................................................................................... 5.Структура
dbf-файлов (имя,
тип, формат,
каждого поля
): a)
Структура
файла aa.dbf : IDST
NAMEST NORMA
1 Строгальный
25
2 Сверлильный
15
3 Токарный
20
...................................................................................................... Имя
Тип Длина IDST
Символ 3 NAMEST
Символ 12 NORMA
Число 3 б)
Структура
файла bb.dbf :
INVNOM VIDPROF DATEPROF IDZAP
24 Смазка
09-01-98 1
4 Смазка
09-01-98 2
231 Смазка
09-01-98 3
2 Смазка
09-01-98 4
626 Смазка
09-01-98 5
323 Смазка
09-01-98 6
626 Регулировка
01-02-98 7
323 Регулировка
28-01-98 8
2 Регулировка
29-01-98 9
231 Регулировка
28-01-98 10
4 Регулировка
19-01-98 11
24 Регулировка
18-01-98 12
626 Чистка
31-03-98 13
323 Чистка
15-04-98 14
2 Чистка
01-04-98 15
231 Чистка
20-03-98 16
4 Чистка
10-03-98 17
24 Чистка
02-04-98 18
......................................................................................................
Имя
Тип Длина INVNOM
Символ 3
VIDPROF Символ
12
DATEPROF Дата
8 IDZAP
Символ 3 в)
Структура
файла сс.dbf : INVNOM
IDST 323
1
626 1 4
2
231 3
24 2 2
3
...................................................................................................... Имя
Тип Длина INVNOM
Символ 3 IDST
Символ 3 г)
Структура
файла dd.dbf : INVNOM
FKDN NORMA IDZAPPP IDZAPSP
2
62 20 9
15
231
51 20 10
16
24
74 15 12
18
323
77 25 8
14
4
50 15 11
17
626
58 25 7
13
..................................................................................................... Имя
Тип Длина
INVNOM Символ
3 FKDN
Число 3
NORMA Число
3
IDZAPPP Символ
3
IDZAPSP Символ
3 ................................................................................................................................. 6.
Принципы подготовки
данных для
тестового
примера и
заполнения
исходных данных. Эти
данные были
выбраны произвольно
- “из головы”: 1)
Идентификатор
типа станка
2)
Инвентарный
номер станка 3)
Вид профилактики 4)
Наименование
типа станка Идентификатор
записи в файле
bb.dbf заполнялся
по убыванию
(от 1 до 18), где 1- первая
запись, а 18- последняя. Норма
кол-ва дней
между профилактиками
была выбрана
произвольна. Дата
профилактики
выбиралась
так, чтобы норма
кол-ва дней
между профилактиками
была превышена
для всех видов
профилактик. ............................................................................................................................... 7.
Система меню. а)
Какие экранные
кадры ?
Экранный
кадр № 1:
Московская
государственная
текстильная
академия ( МГТА
)
БАЗА
ДАННЫХ Нарушение
норм техобслуживания:
Курсовая
работа по курсу
:
"Алгоритмические
языки обработки
данных и технология
программирования"
студента
гр 42/96 Пономарёва
А.Н.
*************************
Руководитель:
доц.
Стрельников
Б.А.
асс.
Степанова О.П.
Сразу
приступить
к работе с Базой
Данных
Заново
построить все
индексы Базы
Данных
Провести
компрессию
Базы Данных
Выход
из Базы Данных
Московская
государственная
текстильная
академия ( МГТА
)
БАЗА
ДАННЫХ Нарушение
норм техобслуживания:
Курсовая
работа по курсу
:
"Алгоритмические
языки обработки
данных и технология
программирования"
студента
гр 42/96 Пономарёва
А.Н.
*************************
Руководитель:
доц.
Стрельников
Б.А.
асс.
Степанова О.П.
Выберите
одну из следующих
задач
Ведение
файла "Нормативы
профилактики
оборудования"
Ведение
файла "Профилактика"
Получение
ведомости
нарушение норм
техобслуживания
Выход
из Базы Данных Экранный
кадр № 3:
Нормативы
профилактики
оборудования:
Идент.
типа станка
Наименование
типа станка
Норма,дней
------------------------------------------------------------------------------------------
1 ¦
Строгальный
¦ 25
2 ¦
Сверлильный
¦ 15
3 ¦
Токарный
¦ 20
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
------------------------------------------------------------------------------------------- Тип
станка: Строгальный /
Ї
/ ®
/ ¬
/ ^®
PgUp / PgDn / ^¬/
Home / End - Перемещение
курсора
¦
Esc - Возврат на
шаг назад ¦F8
- Удалить строку Enter
- Редактирование
¦ ¦F3
- Вставить строку
Экранный
кадр № 4:
Профилактики:
Инв.№
станка Вид
профилактики
Дата профилактики
----------------------------------------------------------------------------------------
2 ¦
Смазка
¦ 01/09/98
2 ¦
Регулировка
¦ 01/29/98
2 ¦
Чистка
¦ 04/01/98
231 ¦
Смазка
¦ 01/09/98
231 ¦
Регулировка
¦ 01/28/98
231 ¦
Чистка
¦ 03/20/98
24 ¦
Смазка
¦ 01/09/98
24 ¦
Регулировка
¦ 01/18/98
24 ¦
Чистка
¦ 04/02/98
323 ¦
Смазка
¦ 01/09/98
323 ¦
Регулировка
¦ 01/28/98
323 ¦
Чистка
¦ 04/15/98
---------------------------------------------------------------------------------------- Инв.№
станка: 2 Вид
профилактики:
Смазка Дата
профилактики:
01/09/98 /
Ї
/ ®
/ ¬
/ ^®
PgUp / PgDn / ^¬/
Home / End - Перемещение
курсора
¦
Esc - Возврат на
шаг назад ¦F8
- Удалить строку Enter
- Редактирование
¦ ¦F3
- Вставить строку
Экранный
кадр № 5:
Таблица
нарушение норм
техобслуживания: ------------------------------------------------------------------------------------------------------------ ¦
Инв. ¦ Наименование
¦ Дата ¦ Вид
предвор. ¦
Дата ¦ вид след.
¦Просроч.¦ ¦номер
¦ типа станка
¦ ¦ профилактики
¦ ¦ профилактики
¦ дней ¦ ¦------------------------------------------------------------------------------------------------------------¦ ¦
24 ¦ Сверлильный
¦01/18/98¦ Регулировка
¦04/02/98¦ Чистка
¦ 59 ¦ ¦
323 ¦ Строгальный
¦01/28/98¦ Регулировка
¦04/15/98¦ Чистка
¦ 52 ¦ ¦
2 ¦ Токарный
¦01/29/98¦ Регулировка
¦04/01/98¦ Чистка
¦ 42 ¦ ¦
4 ¦ Сверлильный
¦01/19/98¦ Регулировка
¦03/10/98¦ Чистка
¦ 35 ¦ ¦
626 ¦ Строгальный
¦02/01/98¦ Регулировка
¦03/31/98¦ Чистка
¦ 33 ¦ ¦
231 ¦ Токарный
¦01/28/98¦ Регулировка
¦03/20/98¦ Чистка
¦ 31 ¦ ------------------------------------------------------------------------------------------------------------- Всего
просроченно
дней - 252
Экранный
кадр № 6:
Московская
государственная
текстильная
академия ( МГТА
)
БАЗА
ДАННЫХ Нарушение
норм техобслуживания:
Курсовая
работа по курсу
:
"Алгоритмические
языки обработки
данных и технология
программирования"
----------------------------------------------------------------------------------а
А.Н.
¦ Сохранить
все внесенные
изменения и
продолжить
¦*****
¦ работу
с Базой данных
- т.е. сделать
промежуточный
SAVE ¦
¦
или ¦
¦ Завершить
работу с базой
данных с сохранением
всех ¦.А.
¦
изменений
¦.
¦ Сохранить
и продолжить
Завершить
работу ¦
----------------------------------------------------------------------------------
Выберите
одну из следующих
задач
Ведение
файла "Нормативы
профилактики
оборудования"
Ведение
файла "Профилактика"
Получение
ведомости
нарушение норм
техобслуживания
Выход
из Базы Данных б)
Пункты меню,
что в них делается
? Меню
№ 1:
1) Сразу
приступить
к работе с Базой
Данных
2) Заново
построить все
индексы Базы
Данных
3) Провести
компрессию
Базы Данных
4) Выход
из Базы Данных При
выборе п.1, если
индексы уже
имеются мы
попадаем в меню
№ 2.
При
выборе п.2 заново
происходит
построение
всех индексов
Б.Д . При
выборе п.3 производится
компрессия
(уплотнение)
Б.Д .
При
выборе п.4 появляется
горизонтальное
подменю:
а) Сохранить
и продолжить
б) Завершить
работу П.а)
Сохранить все
внесенные
изменения и
продолжить П.б)
Завершить
работу с базой
данных с сохранением
всех изменений Меню
№ 2:
1) Ведение
файла "Нормативы
профилактики
оборудования"
2) Ведение
файла "Профилактика"
3) Получение
ведомости
нарушение норм
техобслуживания
4) Выход
из Базы Данных При
выборе п.1 мы
попадаем в
редактор файла
aa.dbf - (“Нормативы
профилактики
оборудования”),
где мы можем
его просматривать
и редактировать. При
выборе п.2 мы
попадаем в
редактор файла
bb.dbf - (“Профилактика”),
где мы можем
его просматривать
и редактировать. При
выборе п.3 происходит
выявление всех
случаев превышения
нормативных
интервалов
между профилактиками,
вывод их в выводной
файл “DD”, а также
выдача ведомости
на принтер. При
выборе п.4 выполняются
действия аналогичные
п.4 в меню № 1. ................................................................................................................................. 8.
Ведение БД .
Какими табл.
представлено
ведение БД, по
какой табл.
указывается
текущая рабочая
область, её
слуги, колонки
таблицы, набор
клавиш на которые
предусмотрена
реакция системы.
Клавиши на
которые реагирует
система:
/
Ї
/ ®
/ ¬
/; PgUp / PgDn; Home / End
- Перемещение
курсора Enter
- Выбор задачи
в меню и редактирование
полей в редакторе
Esc
- Возврат на
шаг назад. Отмена
редактирования
(без сохранения
изменненого
значения)
F8
- Удалить строку
F3
- Вставить строку
F10
- Выход из задачи
с сохранением
всей информации
или выход без
сохранения
информации
Таблицы
ведения Б.Д.: Табл.
№1
Нормативы
профилактики
оборудования:
Идент.
типа станка
Наименование
типа станка
Норма, дней
-----------------------------------------------------------------------------------------------
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
------------------------------------------------------------------------------------------------
Тип
станка: Табл.
№2
Профилактики:
Инв.№
станка Вид
профилактики
Дата профилактики
----------------------------------------------------------------------------------------------
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
¦
------------------------------------------------------------------------------------------------
Инв.№
станка:
Вид
профилактики:
Дата
профилактики:
.................................................................................................................................
9.
Структура
программы : а)
Содержимое
rmk-файла “kursv.rmk”: objs
= main2,aa,util,bb .prg.obj:
CLIPPER $< /a/m/n .obj.exe:
RTLINK OUTPUT $* FI $(objs) /PLL:base52 main2.obj
: main2.prg aa.obj
: aa.prg util.obj
: util.prg bb.obj
: bb.prg kurs_ok.exe
: main2.obj aa.obj util.obj bb.obj б)
Имена и содержание
prg-файлов. По каждой
функции: имя,
назначение,
параметры, тип
данных и смысл,
возвращенное
значение, рабочие
перемен-ные
и их назначение.
Программные
файлы: 1)
aa.prg В
этой программе
реализовано: 1.
Создание
TBrowse-объекта для
просмотра-редактирования
файла aa.dbf в окне.
2)
bb.prg В
этой программе
реализовано: 1.
Создание
TBrowse-объекта для
просмотра-редактирования
файла bb.dbf в окне.
3)
main2.prg В
этой программе
реализовано:
1.Организация
меню. 2.
Индексирование
файлов.
3.
Уплотнение
файла . 4.
Выявление всех
случаев превышения
нормативных
интервалов
между
профилактиками,
вывод их в выводной
файл “DD”, а также
выдача ведомости
на принтер. 5.
Вывод на экран
информации
о “горячих”
клавишах. 4)
util.prg
Эта
программа
содержит набор
стандартных
утилит:
1. Сохранение
экрана, восстановление
экрана.
2. Перевод в
верхний регистр
как латиницы,
так и кириллицы.
3. Координаты,
сообщение,
цвет.
4. Выход из
задачи с сохранением
всей информации
- реакция на
клавишу F10.
5. Подача звукового
сигнала для
сигнализации
успешного
выполнения
поставленной
задачи:
Описание
основных
подпрограмм: 1)
п.п. постоения
индексов: func
db_index(prm) s_scr(24,0,25,79) CLOSE
ALL SETCOLOR
("w/n") @
24,0 CLEAR TO 25,79 @
24,6 SAY "Ждите идет
индексирование!
" COLOR "w+*/n" use
bb index
on bb->invnom + dtoc(bb->dateprof) to bb0001 use
aa index
on aa->idst to aa0002 use
cc index
on cc->invnom to cc0003 use
dd index
on dd->(norma-fkdn) to dd0004 close
all r_scr() return
nil 2)
п.п. открытия
индексов:
func
db_open close
all use
aa index aa0002 use
bb index bb0001 new use
cc index cc0003 new use
dd index dd0004 new return
nil 3)
п.п. уплотнения
Б.Д. : FUNCTION
db_compress()
s_scr(24,0,25,79) CLOSE
ALL
SETCOLOR("w/n") @
24,0 CLEAR TO 25,79 @
24,6 SAY "Ждите идет
уплотнение
!" COLOR ("w+*/n") USE
aa // уплотнение
файла aa.dbf COPY
TO work IF
ERRORLEVEL() = 0 USE
DELETE FILE aa.dbf
RENAME work.dbf TO aa.dbf ENDIF USE
bb // уплотнение
файла bb.dbf COPY
TO work IF
ERRORLEVEL() = 0 USE
DELETE FILE bb.dbf
RENAME work.dbf TO bb.dbf ENDIF USE
cc // уплотнение
файла cc.dbf COPY
TO work IF
ERRORLEVEL() = 0
USE
DELETE FILE cc.dbf
RENAME work.dbf TO cc.dbf
ENDIF USE
dd // уплотнение
файла dd.dbf COPY
TO work IF
ERRORLEVEL() = 0
USE
DELETE FILE dd.dbf
RENAME work.dbf TO dd.dbf
ENDIF CLOSE
ALL
r_scr() RETURN
NIL 4)
п.п. выдачи
информации
о клавишах, на
которые реагирует
система
”Help”: PROCEDURE
hlp(callpnt,prm) LOCAL
retcol,crow,ccol IF
prm = NIL
prm := .F. ENDIF crow
= ROW() ccol
= COL() retcol
= SETCOLOR("w/n") @
22,0 CLEAR TO 24,79 IF
callpnt = "GET"
// исправленный
HLP для GET 26.09.96 @
22,0 SAY "Enter/" + CHR(24) + '/' + CHR(25) +
'/PgUp/PgDn' ; +
" -Завершить
редактирование
с сохранением
измененного
значения" @
22,0 SAY "Enter/"+ CHR(24) + '/' + CHR(25) +
'/PgUp/PgDn' COLOR "r+/n" @
23,1 SAY CHR(26) + ' / ' + CHR(27) + ' / ^' + CHR(26) ; +
' / ^' + CHR(27) + ' / Home / End - Перемещение
курсора' @
23,1 SAY CHR(26) + ' / ' + CHR(27) + ' / ^' + CHR(26) ; +
' / ^' + CHR(27) + ' / Home / End' COLOR "r+/n" @
24,1 SAY 'Esc - Отменить
| |||||