Смекни!
smekni.com

База даних "Теорія та практика прикладного програмування" (стр. 5 из 5)

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.