Российский Государственный Открытый
Технический Университет Путей Сообщения
факультет
Управление процессами перевозок
кафедра
Вычислительная техника
Контрольная работа
По дисциплине
Базы данных
Выполнил: студент 5 курса Ермолина Н.М. шифр 0445-п/ИСЖ-1072 Дата ____________ Подпись _________ |
Проверил:Канд.тех.наук доцент Коптева Л.Г. оценка __________ Дата ____________ Подпись _________ |
Москва 2008
Задание на курсовую работу
В курсовой работе необходимо:
1. Создать БД:
- создать таблицу;
- заполнить ее данными по своему усмотрению (число записей должно быть 20:25).
2. Составить главный форму, в которой предусмотреть задание главного меню системы.
3. Составить необходимые формы по обработке данных.
4. Создать формы по формированию и выводу документов на принтер.
5. Создать инструкцию пользователя по работе с разработанным приложением.
Пояснительная записка к курсовой работе должна содержать:
· задание и исходные данные;
· структуру исходной базы данных;
· блок – схему алгоритма реализации;
· листинги форм;
· «твердые копии» форм документов.
Вариант 2
1. Создать БД, имеющий следующие поля: фамилия, имя, отчество, год рождения, кафедра, должность, учебная нагрузка (в часах), лекции (в часах), консультации (в часах), практические занятия (в часах), лабораторные работы (в часах), курсовые работы (в часах).
2. Главная форма должна содержать меню информационно-справочной системы «Досье учебного отдела»:
· поиск и сортировка данных;
· просмотр;
· и редактирование БД;
· вывод на печать;
· выход.
3. В форме (2) должны присутствовать кнопки:
· «Просмотреть»;
|
· «Редактировать»;
· «Выйти».
4. В форме печати справок (данных) по:
· фамилиям;
· кафедрам;
· должностям
Должны присутствовать кнопки-переключатели «Просмотр перед печатью» и «Печать номеров строк».
Структура исходной базы данных
Наименование поля | Тип поля | Количество символов в поле | Количество знаков после запятой |
stroka | Integer (Autoincrement) | ||
family | Character | - | |
name | Character | - | |
otchest | Character | - | |
yearbir | Integer | - | |
kafed | Character | - | |
dolzhnost | Character | - | |
nagruzka | Numeric | ||
lekcii | Numeric | ||
konsult | Numeric | ||
pracktik | Numeric | ||
laborator | Numeric | ||
kursof | Numeric |
Блок – схема алгоритма реализации
Распечатка текстов программ и «твердые копии» форм документа
Рис 1. Главная форма
Программный код, выполняемый при нажатии на кнопку «Поиск и сортировка данных»:
DO FORM "d:\users\пк\documents\visual foxpro projects\ермолина\поиск и сортировка.scx"
Программный код, выполняемый при нажатии на кнопку «Просмотр и редактирование БД»:
DO FORM "d:\users\пк\documents\visual foxpro projects\ермолина\просмотр.scx"
Программный код, выполняемый при нажатии на кнопку «Вывод на печать»:
DO FORM "d:\users\пк\documents\visual foxpro projects\ермолина\печать.scx"
Программный код, выполняемый при нажатии на кнопку «Выход »:
THISFORM.Release
Рис 2. Форма «Поиск и сортировка»
Программный код, выполняемый при нажатии на кнопку «Поиск»:
SELECT Table_уебного_отдела.stroka,; Table_уебного_отдела.family+Table_уебного_отдела.name+Table_уебного_отдела.otchest,;
Table_уебного_отдела.yearbir, Table_уебного_отдела.kafed,;
|
Table_уебного_отдела.dolzhnost, Table_уебного_отдела.nagruzka,;
Table_уебного_отдела.lekcii, Table_уебного_отдела.koncult,;
Table_уебного_отдела.praktika, Table_уебного_отдела.laborator,;
Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
WHERE Table_уебного_отдела.family=thisform.text1.Value OR Table_уебного_отдела.name=thisform.text1.Value;
OR Table_уебного_отдела.otchest=thisform.text1.Value OR Table_уебного_отдела.kafed=thisform.text1.Value;
OR Table_уебного_отдела.dolzhnost=thisform.text1.Value;
ORDER BY Table_уебного_отдела.stroka
Рис 3. Результат поиска.
Программный код, выполняемый при нажатии на кнопку «Сортировать»:
IF Thisform.Combo1.Value='строке'then
SELECT Table_уебного_отдела.stroka, Table_уебного_отдела.family,;
Table_уебного_отдела.name, Table_уебного_отдела.otchest,;
Table_уебного_отдела.yearbir, Table_уебного_отдела.kafed,;
Table_уебного_отдела.dolzhnost, Table_уебного_отдела.nagruzka,;
Table_уебного_отдела.lekcii, Table_уебного_отдела.koncult,;
Table_уебного_отдела.praktika, Table_уебного_отдела.laborator,;
Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
ORDER BY Table_уебного_отдела.stroka
ENDIF
IF Thisform.Combo1.Value='Фамилия'then
SELECT Table_уебного_отдела.stroka,;
Table_уебного_отдела.family+Table_уебного_отдела.name+Table_уебного_отдела.otchest,;
Table_уебного_отдела.yearbir, Table_уебного_отдела.kafed,;
Table_уебного_отдела.dolzhnost, Table_уебного_отдела.nagruzka,;
Table_уебного_отдела.lekcii, Table_уебного_отдела.koncult,;
Table_уебного_отдела.praktika, Table_уебного_отдела.laborator,;
Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
ORDER BY Table_уебного_отдела.family
ENDIF
IF Thisform.Combo1.Value='имя'then
SELECT Table_уебного_отдела.stroka, Table_уебного_отдела.family,;
Table_уебного_отдела.name, Table_уебного_отдела.otchest,;
|
Table_уебного_отдела.yearbir, Table_уебного_отдела.kafed,;
Table_уебного_отдела.dolzhnost, Table_уебного_отдела.nagruzka,;
Table_уебного_отдела.lekcii, Table_уебного_отдела.koncult,;
Table_уебного_отдела.praktika, Table_уебного_отдела.laborator,;
Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
ORDER BY Table_уебного_отдела.name;
ENDIF
IF Thisform.Combo1.Value='очество'then
SELECT Table_уебного_отдела.stroka, Table_уебного_отдела.family,;
Table_уебного_отдела.name, Table_уебного_отдела.otchest,;
Table_уебного_отдела.yearbir, Table_уебного_отдела.kafed,;
Table_уебного_отдела.dolzhnost, Table_уебного_отдела.nagruzka,;
Table_уебного_отдела.lekcii, Table_уебного_отдела.koncult,;
Table_уебного_отдела.praktika, Table_уебного_отдела.laborator,;
Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
ORDER BY Table_уебного_отдела.otchest;
ENDIF
IF Thisform.Combo1.Value='год рождения'then
SELECT Table_уебного_отдела.stroka, Table_уебного_отдела.family,;
Table_уебного_отдела.name, Table_уебного_отдела.otchest,;
Table_уебного_отдела.yearbir, Table_уебного_отдела.kafed,;
Table_уебного_отдела.dolzhnost, Table_уебного_отдела.nagruzka,;
Table_уебного_отдела.lekcii, Table_уебного_отдела.koncult,;
Table_уебного_отдела.praktika, Table_уебного_отдела.laborator,;
Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
ORDER BY Table_уебного_отдела.yearbir;
ENDIF
IF Thisform.Combo1.Value='кафедра'then
SELECT Table_уебного_отдела.stroka,;
Table_уебного_отдела.kafed, Table_уебного_отдела.dolzhnost,;
Table_уебного_отдела.family, Table_уебного_отдела.name,;
Table_уебного_отдела.otchest, Table_уебного_отдела.yearbir,;
Table_уебного_отдела.nagruzka, Table_уебного_отдела.lekcii,;
Table_уебного_отдела.koncult, Table_уебного_отдела.praktika,;
Table_уебного_отдела.laborator, Table_уебного_отдела.kursov; FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
ORDER BY Table_уебного_отдела.kafed;
ENDIF
IF Thisform.Combo1.Value='должность'then
SELECT Table_уебного_отдела.stroka,;
Table_уебного_отдела.dolzhnost+Table_уебного_отдела.kafed,;
Table_уебного_отдела.family+Table_уебного_отдела.name+Table_уебного_отдела.otchest,; Table_уебного_отдела.nagruzka, Table_уебного_отдела.lekcii,; Table_уебного_отдела.koncult, Table_уебного_отдела.praktika,; Table_уебного_отдела.laborator, Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
ORDER BY Table_уебного_отдела.dolzhnost;
ENDIF
IF Thisform.Combo1.Value='нагрузка'then
SELECT Table_уебного_отдела.stroka, Table_уебного_отдела.family,;
Table_уебного_отдела.name, Table_уебного_отдела.otchest,;
Table_уебного_отдела.yearbir, Table_уебного_отдела.kafed,;
Table_уебного_отдела.dolzhnost, Table_уебного_отдела.nagruzka,;
Table_уебного_отдела.lekcii, Table_уебного_отдела.koncult,;
Table_уебного_отдела.praktika, Table_уебного_отдела.laborator,;
Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
ORDER BY Table_уебного_отдела.nagruzka;
ENDIF
IF Thisform.Combo1.Value='лекции'then
SELECT Table_уебного_отдела.stroka, Table_уебного_отдела.family,;
Table_уебного_отдела.name, Table_уебного_отдела.otchest,;
Table_уебного_отдела.yearbir, Table_уебного_отдела.kafed,;
Table_уебного_отдела.dolzhnost, Table_уебного_отдела.nagruzka,;
Table_уебного_отдела.lekcii, Table_уебного_отдела.koncult,;
Table_уебного_отдела.praktika, Table_уебного_отдела.laborator,;
Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
ORDER BY Table_уебного_отдела.lekcii;
ENDIF
IF Thisform.Combo1.Value='консультации'then
SELECT Table_уебного_отдела.stroka, Table_уебного_отдела.family,;
Table_уебного_отдела.name, Table_уебного_отдела.otchest,;
Table_уебного_отдела.yearbir, Table_уебного_отдела.kafed,;
Table_уебного_отдела.dolzhnost, Table_уебного_отдела.nagruzka,;
Table_уебного_отдела.lekcii, Table_уебного_отдела.koncult,;
Table_уебного_отдела.praktika, Table_уебного_отдела.laborator,;
Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
ORDER BY Table_уебного_отдела.konsult;
ENDIF
IF Thisform.Combo1.Value='практика'then
SELECT Table_уебного_отдела.stroka, Table_уебного_отдела.family,;
Table_уебного_отдела.name, Table_уебного_отдела.otchest,;
Table_уебного_отдела.yearbir, Table_уебного_отдела.kafed,;
Table_уебного_отдела.dolzhnost, Table_уебного_отдела.nagruzka,;
Table_уебного_отдела.lekcii, Table_уебного_отдела.koncult,;
Table_уебного_отдела.praktika, Table_уебного_отдела.laborator,;
Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
ORDER BY Table_уебного_отдела.pracktik;
ENDIF
IF Thisform.Combo1.Value='лабораторные'then
SELECT Table_уебного_отдела.stroka,;
Table_уебного_отдела.dolzhnost+Table_уебного_отдела.kafed,;
Table_уебного_отдела.family+Table_уебного_отдела.name+Table_уебного_отдела.otchest,;Table_уебного_отдела.nagruzka,; Table_уебного_отдела.lekcii,; Table_уебного_отдела.koncult, Table_уебного_отдела.praktika,; Table_уебного_отдела.laborator, Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
ORDER BY Table_уебного_отдела.laborator;
ENDIF
IF Thisform.Combo1.Value='курсовик'then
SELECT Table_уебного_отдела.stroka, Table_уебного_отдела.family,;
Table_уебного_отдела.name, Table_уебного_отдела.otchest,;
Table_уебного_отдела.yearbir, Table_уебного_отдела.kafed,;
Table_уебного_отдела.dolzhnost, Table_уебного_отдела.nagruzka,;
Table_уебного_отдела.lekcii, Table_уебного_отдела.koncult,;
Table_уебного_отдела.praktika, Table_уебного_отдела.laborator,;
Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
ORDER BY Table_уебного_отдела.kursof;
ENDIF
Рис 4. Результат сортировки по кафедрам.
Программный код, выполняемый при нажатии на кнопку «Выход»:
thisform.Releas
Рис 5. Форма «Просмотр и редактирование БД»
Программный код, выполняемый при нажатии на кнопку «Просмотреть»:
SELECT Table_уебного_отдела.stroka,;
Table_уебного_отдела.family+Table_уебного_отдела.name+Table_уебного_отдела.otchest,;
Table_уебного_отдела.yearbir, Table_уебного_отдела.kafed,;
Table_уебного_отдела.dolzhnost, Table_уебного_отдела.nagruzka,;
Table_уебного_отдела.lekcii, Table_уебного_отдела.koncult,;
Table_уебного_отдела.praktika, Table_уебного_отдела.laborator,;
Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
ORDER BY Table_уебного_отдела.family
Рис 6. Форма «Просмотреть»
Программный код, выполняемый при нажатии на кнопку «Редактировать»:
DO FORM "d:\users\пк\documents\visual foxpro projects\ермолина\досье уебного отдела.scx"
thisform.Release
Рис 7. Форма «Редактирования»
Программный код, выполняемый при нажатии на кнопку «Выход»:
thisform.Release
Рис 7. Форма «Печать справок»
Программный код, выполняемый при нажатии на кнопку «По фамилиям»:
IF thisform.Check2.Value=1 then
IF thisform.Check1.Value=1 then
SELECT Table_уебного_отдела.stroka,; Table_уебного_отдела.family+Table_уебного_отдела.name+Table_уебного_отдела.otchest,;
Table_уебного_отдела.yearbir, Table_уебного_отдела.kafed,;
Table_уебного_отдела.dolzhnost, Table_уебного_отдела.nagruzka,;
Table_уебного_отдела.lekcii, Table_уебного_отдела.koncult,;
Table_уебного_отдела.praktika, Table_уебного_отдела.laborator,;
Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
REPORT FORM по фамилиям PREVIEW
ENDIF
SELECT Table_уебного_отдела.stroka,; Table_уебного_отдела.family+Table_уебного_отдела.name+Table_уебного_отдела.otchest,;
Table_уебного_отдела.yearbir, Table_уебного_отдела.kafed,;
Table_уебного_отдела.dolzhnost, Table_уебного_отдела.nagruzka,;
Table_уебного_отдела.lekcii, Table_уебного_отдела.koncult,;
Table_уебного_отдела.praktika, Table_уебного_отдела.laborator,;
Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
REPORT FORM по фамилиям
TO PRINTER PROMPT
ELSE
IF thisform.Check1.Value=1 then
SELECT Table_уебного_отдела.family+Table_уебного_отдела.name+Table_уебного_отдела.otchest,;
Table_уебного_отдела.yearbir, Table_уебного_отдела.kafed,;
Table_уебного_отдела.dolzhnost, Table_уебного_отдела.nagruzka,;
Table_уебного_отдела.lekcii, Table_уебного_отдела.koncult,;
Table_уебного_отдела.praktika, Table_уебного_отдела.laborator,;
Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
REPORT FORM по фамилиям PREVIEW
ENDIF
SELECT Table_уебного_отдела.family+Table_уебного_отдела.name+Table_уебного_отдела.otchest,;
Table_уебного_отдела.yearbir, Table_уебного_отдела.kafed,;
Table_уебного_отдела.dolzhnost, Table_уебного_отдела.nagruzka,;
Table_уебного_отдела.lekcii, Table_уебного_отдела.koncult,;
Table_уебного_отдела.praktika, Table_уебного_отдела.laborator,;
Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
REPORT FORM по фамилиям
TO PRINTER PROMPT
ENDIF
Рис 8. Форма «Печать по фамилии»
Программный код, выполняемый при нажатии на кнопку «По кафедрам»:
IF thisform.Check2.Value=1 then
IF thisform.Check1.Value=1 then
SELECT Table_уебного_отдела.stroka,;
Table_уебного_отдела.kafed+Table_уебного_отдела.dolzhnost,;
Table_уебного_отдела.family, Table_уебного_отдела.name,;
Table_уебного_отдела.otchest, Table_уебного_отдела.yearbir,;
Table_уебного_отдела.nagruzka, Table_уебного_отдела.lekcii,;
Table_уебного_отдела.koncult, Table_уебного_отдела.praktika,;
Table_уебного_отдела.laborator, Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
REPORT FORM по каф PREVIEW
ENDIF
SELECT Table_уебного_отдела.stroka,;
Table_уебного_отдела.kafed+Table_уебного_отдела.dolzhnost,;
Table_уебного_отдела.family, Table_уебного_отдела.name,;
Table_уебного_отдела.otchest, Table_уебного_отдела.yearbir,;
Table_уебного_отдела.nagruzka, Table_уебного_отдела.lekcii,;
Table_уебного_отдела.koncult, Table_уебного_отдела.praktika,;
Table_уебного_отдела.laborator, Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
REPORT FORM по каф
TO PRINTER PROMPT
ELSE
IF thisform.Check1.Value=1 then
SELECT Table_уебного_отдела.kafed+Table_уебного_отдела.dolzhnost,;
Table_уебного_отдела.family, Table_уебного_отдела.name,;
Table_уебного_отдела.otchest, Table_уебного_отдела.yearbir,;
Table_уебного_отдела.nagruzka, Table_уебного_отдела.lekcii,;
Table_уебного_отдела.koncult, Table_уебного_отдела.praktika,;
Table_уебного_отдела.laborator, Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
REPORT FORM по каф PREVIEW
ENDIF
SELECT Table_уебного_отдела.kafed+Table_уебного_отдела.dolzhnost,;
Table_уебного_отдела.family, Table_уебного_отдела.name,;
Table_уебного_отдела.otchest, Table_уебного_отдела.yearbir,;
Table_уебного_отдела.nagruzka, Table_уебного_отдела.lekcii,;
Table_уебного_отдела.koncult, Table_уебного_отдела.praktika,;
Table_уебного_отдела.laborator, Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
REPORT FORM по каф
TO PRINTER PROMPT
ENDIF
Рис 9. Форма «Печать по кафедрам»
Программный код, выполняемый при нажатии на кнопку «По должностям»:
IF thisform.Check2.Value=1 then
IF thisform.Check1.Value=1 then
SELECT Table_уебного_отдела.stroka,; Table_уебного_отдела.dolzhnost+Table_уебного_отдела.kafed,;
Table_уебного_отдела.family+Table_уебного_отдела.name+Table_уебного_отдела.otchest,;
Table_уебного_отдела.nagruzka, Table_уебного_отдела.lekcii,;
Table_уебного_отдела.koncult, Table_уебного_отдела.praktika,;
Table_уебного_отдела.laborator, Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
REPORT FORM по должностям PREVIEW
ENDIF
SELECT Table_уебного_отдела.stroka,; Table_уебного_отдела.dolzhnost+Table_уебного_отдела.kafed,; Table_уебного_отдела.family+Table_уебного_отдела.name+Table_уебного_отдела.otchest,;
Table_уебного_отдела.nagruzka, Table_уебного_отдела.lekcii,;
Table_уебного_отдела.koncult, Table_уебного_отдела.praktika,;
Table_уебного_отдела.laborator, Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
REPORT FORM по должностям PREVIEW
TO PRINTER PROMPT
ELSE
IF thisform.Check1.Value=1 then
SELECT Table_уебного_отдела.dolzhnost+Table_уебного_отдела.kafed,;
Table_уебного_отдела.family+Table_уебного_отдела.name+Table_уебного_отдела.otchest,;
Table_уебного_отдела.nagruzka, Table_уебного_отдела.lekcii,;
Table_уебного_отдела.koncult, Table_уебного_отдела.praktika,;
Table_уебного_отдела.laborator, Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
REPORT FORM по должностям PREVIEW
ENDIF
SELECT Table_уебного_отдела.dolzhnost+Table_уебного_отдела.kafed,; Table_уебного_отдела.family+Table_уебного_отдела.name+Table_уебного_отдела.otchest,;
Table_уебного_отдела.nagruzka, Table_уебного_отдела.lekcii,;
Table_уебного_отдела.koncult, Table_уебного_отдела.praktika,;
Table_уебного_отдела.laborator, Table_уебного_отдела.kursov;
FROM;
"досье учебного отдела!table уебного отдела" Table_уебного_отдела;
REPORT FORM по должностям PREVIEW
TO PRINTER PROMPT
ENDIF
Рис 7. Форма «Печать по должностям»
Программный код, выполняемый при нажатии на кнопку «Выход»:
THISFORM.Release
Вариант 2
Составьте запрос, который выбирает наименьший заказ каждого покупателя.
Таблица Заказы
Таблица Покупки
Решение:
Запрос, который выбирает наименьший заказ каждого покупателя будет выглядеть так:
SELECT MIN(Заказы.amt), Заказы.cnum, Покупки.cname, Покупки.city;
FROM;
заказы;
INNER JOIN покупки;
ON Заказы.cnum = Покупки.cnum;
GROUP BY Заказы.cnum, Покупки.city, Покупки.cname
Используемая литература.
- Омельченко Л.Н. «Самоучитель Visual Foxpro 8”. СПб.: БХВ-Петербург, 2003. – 688с.: ил.
- Коптева Л.Г. Базы данных. Рабочая программа, руководство к лабораторным работам и задание на контрольную работу с методическими указаниями. М.: РГОТУПС, 1997 – 18с.