16 – повертає користувача до попередньої кнопкової форми (Рисунок 3.1).
Натискання кнопки (8) призведе до закриття всієї бази даних.
ВИСНОВКИ
У процесі даної курсової роботи була спроектована та реалізована в СУБД MS Access інформаційна система «Теорія та практика прикладного програмування».
У цій базі даних зберігається довідкова інформація, що міститься у певних главах посібника з прикладного програмування (Культин Н.Б. Основы программирования в Delphi 7). База містить запити, що дозволяють здійснювати пошук необхідних даних та відображати статистичну інформацію, як то: інформацію про зміст глави; які таблиці, компоненти та лістинги містяться у параграфі; який оператор у якому лістингу знаходиться; інформація про загальну кількість сторінок.
Дана система пройшла всі три етапи проектування. На інфологічному рівні структура бази даних була відображена у вигляді ER-діаграми, яка надалі була приведена до третьої нормальної форми. На даталогічному рівні — представлена реляційною моделлю. У таблицях був усунений надлишок. Безпосередня робота з СУБД з формування таблиць і їх заповнення на комп'ютері була проведена на стадії фізичного проектування.
Таким чином, було створено 7 таблиць, 11 запитів та 14 форм. Розмір файлу БД — 8,28 Мб.
Надалі дану систему можна вдосконалювати, відповідно до потреб користувачів.
ПЕРЕЛІК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Кузин А.В., Левонисова С.В. Базы данных. — Академия, 2008. — 320 с.
2. ГОСТ 34.003-90. Государственный стандарт Российской Федерации: «Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Термины и определения». — М.: ИПК Издательство стандартов, 2002.
3. http://www.intuit.ru/ . — Інтернет університет інформаційних технологій.
4. Дейт Д. Введение в систему баз данных. — М., СПб.: BHV — Санкт-Петербург, 1977. — 312 с.
5. http://ru.wikipedia.org/ . — Вільна енциклопедія.
6. Гринченко Н. Н., Гусев Е. В., Макаров Н. П. Проектирование баз данных. СУБД Microsoft Access — Горячая Линия-Телеком, 2004. — 240 с.
7. Горев А., Макашарипов С., Ахаян Р. Эффективная работа с СУБД. — К.: Академія, 2003. — 344с.
8. Бекаревич Ю., Пушкина Н. Самоучитель Microsoft Access 2003. — БХВ-Петербург, 2004. — 738 с.
9. Степанов В. Скачать книгу Microsoft Access 2003 для начинающих. — Аквариум-Принт, Дом печати – Вятка, 2004. — 128 с.
10. http://www.lessons-tva.info/ . — Безкоштовне дистанційне навчання інформатиці, телекомунікаціям та основам електронного бізнесу.
Листинг
Unit Phone_u;
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;
type
TForm1= class{TForm}
Edit1: TEdit; //поле ввода длительности разговора
Edit2: TEdit; //поле ввода номера дня недели
Button1: TButton; //кнопка Вычислить
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1:TForm1;
implementation
{SR*.dfm}
procedure Button1Click(Sender: TObject);
const
PAY=0.15; //цена одной минуты разговора 0,15 рубля
DISCOUNT=0.2; //скидка 20 процентов
var
Time: real; //длительность разговора
Day: integer; //день недели
Summa: real; //стоимость разговора
begin
//получить исходные данные
Time:=StrToFloat(Edit1.Text);
Day:=StrToInr(Edit2.Text);
//Вычислить стоимость разговора
Summa:=PAY*Time;
//Если день суббота или воскресенье, то уменьшить
//стоимость на величину скидки
if (Day=6) or (Day=7)
then Summa:=Summa*(1-DISCOUNT);
//Вывод результата вычисления
Label1.Caption:=’К оплате’+FloatToStr(Summa)+’руб.’;
end;
end.
Unit wtest_;
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;
type
TForm1= class{TForm}
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit; //поле ввода Веса
Edit2: TEdit; //поле ввода Роста
Button1: TButton; //кнопка Вычислить
Label3: TLabel; //поле вывода сообщения – результата работы программы
procedure Button1Click(Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1:TForm1;
implementation
{SR*.dfm}
procedure Button1Click(Sender: TObject);
var
w : real; //вес
h: real; //рост
opt: real; //оптимальный вес
d: real; //отклонение от оптимального веса
begin
w:=StrToFloat(Edit1.Text);
h:=StrToInt(Edit2.Text);
opt:=h-100;
if w=opt
then
Label3.Caption:=’Вы в хорошей форме!’
else
if w<opt
then
begin
d:=opt-w;
Label3.Caption:=’Вам надо поправиться на ’
+FloatToStr(d)+’кг.’;
end;
else
begin
d:=w-opt;
Label3.Caption:=’Надо немного похудеть, на ’
+FloatToStr(d)+’кг.’;
end;
end;
end.
Unit 1;
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;
type
TForm1= class{TForm}
Label2: TLabel;
Edit1: TEdit; //поле ввода веса в фунтах
Button1: TButton; //кнопка Вычислить
Label1: TLabel;
Label3: TLabel;
ListBox1: TlistBox; //список стран
Label4: TLabel; //поле вывода результата – веса в килограммах
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1:TForm1;
implementation
{SR*.dfm}
procedure FormCreate(Sender: TObject);
begin
ListBox1.Items.Add(Россия);
ListBox1.Items.Add(Австралия);
ListBox1.Items.Add(Англия);
ListBox1.Items.Add(Германия);
ListBox1.Items.Add(Дания);
ListBox1.Items.Add(Исландия);
ListBox1.Items.Add(Италия);
ListBox1.Items.Add(Нидерланды);
ListBox1.ItemIndex:=0;
end;
procedure Button1Click(Sender: TObject);
var
funt: real; //вес в фунтах
kg: real; //вес в килограммах
k: real; //коэффициент пересчета
begin
case ListBox1.ItemIndex:=0 do
0: k:=0.4095; //Россия
1: k:=0.453592; //Англия
2: k:=0.56001 //Австралия
3..5,7 k:=0.5 //Германия, Дания, Исландия, Нидерланды
6: k:=0.31762 //Италия
end;
funt:=StrToFloat(Edit1.Text);
kg:=kg*funt;
Label4.Caption:=Edit1.Text
+’ф. - это’
+FloatToStrF(kg,ffixed,6,3)
+’кг.’;
end;
end.
Unit rub_1;
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;
type
TForm1= class{TForm}
Label1: TLabel;
Edit1: TEdit; //поле ввода длительности разговора
Label2: TLabel;
Edit2: TEdit; //поле ввода номера дня недели
Button1: TButton; //кнопка Вычислить
Label3: TLabel;
procedure Edit1KeyPress(Sender: Tobject; var Key: Char);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1:TForm1;
implementation
{SR*.dfm}
//нажатие клавиши
procedure Edit1KeyPress(Sender: Tobject; var Key: Char);
var
n: integer; //число
r: integer; //остаток от деления n на 10
text: string[10]; //формируемый поясняющий текст
begin
if Key=chr(VK_RETURN) then
begin
n:=StrToInt(Edit1.Text);
if n>100
then n:=n mod 100;
if (n>=11) and (n<=14)
then
text:=’рублей’
else
begin
r:=n mod 10
case r of
1: text:=’ рубль’;
2..4: text:=’ рубля’
else text:=’ рублей’;
end;
end;
Label2.Caption:=IntToStr(n)+text;
end;
end.
//вычисление даты следующего дня
day: integer; //день
month: integer; //месяц
year: integer; //год
last: boolean; //если день – последний день месяца,
//то last:=True
r: integer; //если год не високосный, то остаток
//от деления year на 4 не равен нулю
begin
//переменные day, month и year содержат сегодняшнюю дату 1
last:=False //пусть день – не последний день месяца
case month of
4, 6, 9, 11: if day=30 then last:=True;
2: if day=28 then
begin
r:=year mod 4;
if r<>0 then last:=True;
end;
else: if day=31 then last:=True
end;
if last then
begin //последний день месяца
day:=1;
if month=12 then
begin //последний месяц
month:=1;
year:=year+1;
end;
else
month:=month+1;
end;
else
day:=day+1;
// переменные day, month и year содержат завтрашнюю дату
end;
Unit pi;
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;
type
TForm1= class{TForm}
Edit1: TEdit; //точность вычисления
Button1: TButton; //кнопка Вычислить
Label1: TLabel;
Label2: TLabel; //поле вывода результата
procedure Button1Click(Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1:TForm1;
implementation
{SR*.dfm}
procedure Button1Click(Sender: TObject);
var
pi: real; //вычисляемое значение ПИ
t: integer; //точность вычисления
n: integer; // номер члена ряда
elem: real; //значение члена ряда
begin
pi:=0;
n:=1;
t:=StrToFloat(Edit1.Text);
elem:=1; //чтобы начать цикл
while elem>=t do
begin
elem:=1/(2*n-1)
if n mod 2 =0
then pi:=pi-elem
else pi:=pi+elem;
n:=n+1;
end;
pi:=pi*4;
Label1.Caption:= ‘ПИ равно’+FloatToStr(pi)+#13
+‘Просуммировано’+IntToStr(n)+ ‘членов ряда.’;
end;
end.
Unit simple_;
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;
type
TForm1= class{TForm}
Button1: TButton; //кнопка Проверить
Label1: TLabel;
Edit1: TEdit; //поле ввода числа
Label2: TLabel; //поле вывода результат
procedure Button1Click(Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1:TForm1;
implementation
{SR*.dfm}
procedure Button1Click(Sender: TObject);
var
n: integer; //проверяемое число
d: integer; //делитель
r: integer; //остаток от n деления на d
begin
n:=StrToInt(Edit1.Text);
d:=2; //сначала будем делить на два
repeat
r:=n mod d;
if n <>0 //n не делилось нацело на d
then d:=d+1;
until r=o //найдено число, на которое n делилось без остатка
Labe2.Caption:=Edit1.Text;
if d=n
then
Label2.Caption:= Label2.Caption+‘- простое число’
Label2.Caption:= Label2.Caption+ ‘ - обычное число’
end;
end.
procedure Button1Click(Sender: TObject);
label //раздел объявления меток
bye;
var
n: integer; //проверяемое число
d: integer; //делитель
r: integer; //остаток от n деления на d
begin
n:=StrToInt(Edit1.Text);
if n<=0 then
begin
MessageDlg(‘Число должно быть больше нуля.’,
mtError,mb[OK],0);
Edit1.Text:=’’;
goto bye;
end;
//Введено положительное число
d:=2; //сначала будем делить на два
repeat
r:=n mod d;
if n <>0 //n не делилось нацело на d
then d:=d+1;
until r=o
Labe2.Caption:=Edit1.Text;
if d=n
then
Label2.Caption:= Label2.Caption+‘- простое число’
Label2.Caption:= Label2.Caption+ ‘ - обычное число’
end;
end.