Программирование в среде FoxPro. Создание базы данных “Фильмотека”, страница 2

            Основной методикой при работе с программой является просто использование команд меню и наблюдение за результатами работы той или иной команды. Подробное описание пунктов приведены в соответствующем пункте отчёта. Для запуска нужно в оболочке Visual FoxPro 6. открыть проект, после чего запустить программу на выполнение. Стандартное меню Visual FoxPro будет заменено на меню программы. Теперь можно выбирать команды меню и осуществлять необходимые действия.


5.  Тексты программ

Ниже приводится текст программы указанных запросов.

n По году выпуска

SELECT *;

 FROM data1!table1;

 ORDER BY table1.year

n В алфавитном порядке все фильмы

SELECT *;

 FROM data1!table1;

 ORDER BY table1.title

n По стоимости

SELECT *;

 FROM data1!table1;

 ORDER BY table1.cost

n По странам

SELECT *;

 FROM data1!table1;

 ORDER BY table1.country

n Самый дорогой фильм

SELECT *;

 FROM data1!table1;

 WHERE table1.cost IN (select max(table1.cost) from data1!table1)

n Наиболее популярный

SELECT *;

 FROM data1!table1;

 WHERE table1.visitors IN (select max(table1.visitors) from data1!table1)

n Самый старый по году выпуска

SELECT *;

 FROM data1!table1;

 WHERE table1.year IN (select min(table1.year) from data1!table1)

n Для заданного жанра (ввод, выбор) определить все фильмы, чья стоимость меньше, чем заданный фильм (выбор) из заданной страны (выбор)

SELECT *;

 FROM data1!table1;

 WHERE table1.genre = thisform.combo1.value;

 AND table1.cost < (select table1.cost from data1!table1 where thisform.combo2.value = table1.title)

n Найти все фильмы со стоимостью в заданных пределах (выбор) по заданному году выпуска (выбор) для заданной страны (выбор)

SELECT *;

 FROM data1!table1;

 WHERE table1.cost >= thisform.spinner1.value;

 AND table1.cost <= thisform.spinner2.value;

 AND table1.year = thisform.spinner3.value;

 AND table1.country = thisform.combo1.value

n Найти долю дешевых, долю дорогих фильмов для заданной страны (выбор) заданного жанра (выбор)

public q,qall

CALCULATE CNT();

            for genre = thisform.combo2.value;

            AND country = thisform.combo1.value to qall

ThisForm.Label6.Caption = alltr(str(qall))

ThisForm.Label11.Caption = alltr(str(qall))

CALCULATE CNT();

            for genre = thisform.combo2.value;

            AND country = thisform.combo1.value;

            AND cost < 1000000 to q

ThisForm.Label3.Caption = alltr(str(q))

thisform.Spinner1.Value=(q/qall)

ThisForm.Label10.Caption = alltr(str(qall-q))

thisform.Spinner2.Value=((qall-q)/qall)

n Найти страны, где произведено наибольшее число фильмов заданного жанра

public q,maxcountry,maxnum,tempcountry,rec

calculate cnt() to rec

maxcountry="qwe"

maxnum=-1

for i=1 to rec

go i

tempcountry=country

go top

CALCULATE CNT();

            for genre = thisform.combo1.value;

            AND country = tempcountry to q

if maxnum < q

            maxnum = q

            maxcountry=tempcountry

endif

endfor

thisform.label2.caption = maxcountry

&&WHERE table1.cost IN (select max(table1.cost);

&&from data1!table1)

·  Основная программа:

PUSH MENU _MSYSMENU

do c:\1\menu1.mpr

read events

POP MENU _MSYSMENU

6.  Программная оболочка

Данная расчётно-графическая работа написана полностью в среде Microsoft Visual FoxPro 6.0, входящей в состав Microsoft Visual Studio 6.0. Все запросы выполнены с помощью языка запросов SQL. Работа выполнялась в среде операционной системы Windows 98 Second Edition.

7.  Аппаратная поддержка

Работа тестировалась на следующей конфигурации компьютера:

Процессор – AMD K6-2 400

Память – 288 Mb RAM

8.  Список использованной литературы

  1. Лекции по дисциплине «Системы управления базами данных».
  2. Русифицированный help-файл по Visual FoxPro 5.0.
  3. Коновалов П.В.  Методические указания к лабораторным работам  по  дисциплине  ПТО САПР ( СУБД ) для студентов четвертого курса дневного отделения АВТФ.