- •Курсова робота
- •1.Пояснювальна записка
- •2.Зміст додатків
- •3. Позитивні сторони _______________________________________
- •1. Системний аналіз
- •1.1 Вимоги до продукту(Визначення с, d-вимог)
- •2. Розробка інтерфейсу програми
- •2.1 Кроки розробки призначених для користувача інтерфейсів
- •2.2 Проектування інтерфейсу
- •3. Вибір архітектури
- •3.1 Функціональна структура програми(Типи моделі розробки)
- •3.2 Генерація схеми бази даних
- •4. Детальне програмування
- •4.1 Логічна структура бази даних проекту
- •4.2 Розробка структури таблиць бази даних
- •Висновок
- •Список літератури
- •Додаток 1. Лістинг програми
- •Додаток 2. Результат роботи
- •Додаток 3. Схеми проекту
Список літератури
Іан Соммервілла. Інженерія програмного забезпечення 2002.
Орлов С. А. Технології розробки програмного забезпечення: Розробка складних програмних систем (Вид. 3), 2004.
Ерік Дж. Брауде. Технологія розробки програмного забезпечення, 2004.
Липаев, В. В. Програмна інженерія. Методологічні основи [Текст]: Учеб. / В. В. Липаев; Держ. ун-т - Вища школа економіки. - М. : ТЕИС, 2006. - 608 с. - 1000 екз. - ISBN 5-7598-0424-3, УДК 004,41 (075,8), ББК 32.973.26-018я73, Липаев, Вища школа економіки, ТЕИС, 2006, PDF, економіка, програмування.
Лапланте, Філ (2009). Вимоги Техніка для програмного забезпечення і систем (вид. 1). Редмонд, штат Вашингтон: CRC Press. ISBN 1-42006-467-3.
Макконнелл Стів (1996). Швидкий розвиток: Приборкання Дикого Software Розклади (. Вид 1). Редмонд, штат Вашингтон: Microsoft Press. ISBN 1-55615-900-5.
Віджерс, Карл Е. (2003). Вимоги до програмного забезпечення (вид. 2). Редмонд, штат Вашингтон: Microsoft Press. ISBN 0-7356-1879-8.
Андрій Стельман і Дженніфер Грін (2005). Прикладне програмне забезпечення для управління проектами. Кембридж, Массачусетс: O'Reilly Media. ISBN 0-596-00948-8.
Брайан Беренбач, Даніель Пауліш, Юрген Катзмеєр, Арнольд Рудофер (2009). Програмне забезпечення та системи технічних вимог: на практиці. Нью-Йорк: McGraw-Hill Професійний. ISBN 0-07-1605479.
Вальтер Собків (2008). Сталий розвиток можливий при Creative System Engineering. Нью-Джерсі: CassBeth. ISBN 0615216307.
Додаток 1. Лістинг програми
//Redagyvannya_dannih.cpp
#include <vcl.h>
#pragma hdrstop
#include "Redagyvannya_dannih.h"
#include "Data1.h"
#include "Help_client.h"
#include "Klients.h"
#include "Me_info.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
Tregedit *regedit;
__fastcall Tregedit::Tregedit(TComponent* Owner)
: TForm(Owner)
{ }
void __fastcall Tregedit::FormCreate(TObject *Sender)
{
Memo1->Clear(); Memo2->Clear(); Memo3->Clear();
Memo4->Clear(); Memo5->Clear(); Memo6->Clear();
Memo1->Visible = false; Memo2->Visible = false; Memo3->Visible = false;
Memo4->Visible = false; Memo5->Visible = false; Memo6->Visible = false;
}
void __fastcall Tregedit::Button2Click(TObject *Sender)
{
Memo1->Clear();
bd_work->Klient_table->Active=false;
AnsiString text[]={"INSERT INTO Клієнти([Код клієнта], [Прізвище та ім'я],Категорія)",
" VALUES ( \""+Edit6->Text+"\",\""+Edit5->Text+"\",\""+Edit4->Text+"\")"};
for(unsigned t=0; t<sizeof(text)/sizeof(int); t++)
Memo1->Lines->Add(text[t]);
bd_work->Klient_table->Close();
bd_work->Klient_table->SQL->Clear();
bd_work->Klient_table->SQL->Add(Memo1->Text);
bd_work->Klient_table->ExecSQL();
AnsiString text2[]={"SELECT *", "FROM Клієнти;"};
Memo1->Clear();
for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++)
Memo1->Lines->Add(text2[t]);
bd_work->Klient_table->Close();
bd_work->Klient_table->SQL->Clear();
bd_work->Klient_table->SQL->Add(Memo1->Text);
bd_work->Klient_table->Open();
bd_work->Klient_table->Active=true;
}
void __fastcall Tregedit::Button1Click(TObject *Sender)
{
Memo2->Clear();
bd_work->Klient_table->Active=false;
AnsiString text[]={"DELETE FROM Клієнти",
" WHERE Клієнти.[Код клієнта]=\""+Edit1->Text+"\"",
" OR Клієнти.[Прізвище та ім'я]=\""+Edit2->Text+"\" OR",
"Клієнти.Категорія=\""+Edit3->Text+"\""};
for(unsigned t=0; t<sizeof(text)/sizeof(int); t++)
Memo2->Lines->Add(text[t]);
bd_work->Klient_table->Close();
bd_work->Klient_table->SQL->Clear();
bd_work->Klient_table->SQL->Add(Memo2->Text);
bd_work->Klient_table->ExecSQL();
AnsiString text2[]={"SELECT *", "FROM Клієнти;"};
Memo2->Clear();
for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++)
Memo2->Lines->Add(text2[t]);
bd_work->Klient_table->Close();
bd_work->Klient_table->SQL->Clear();
bd_work->Klient_table->SQL->Add(Memo2->Text);
bd_work->Klient_table->Open();
bd_work->Klient_table->Active=true;
}
void __fastcall Tregedit::Button4Click(TObject *Sender)
{
Memo3->Clear();
bd_work->Teach_table->Active=false;
AnsiString text[]={"INSERT INTO Вчителі([Код вчителя], [Прізвище та ім'я],[Код паспорту],[Телефонний номер])",
" VALUES ( \""+Edit12->Text+"\",\""+Edit11->Text+"\",\""+Edit10->Text+"\",\""+Edit19->Text+"\")"};
for(unsigned t=0; t<sizeof(text)/sizeof(int); t++)
Memo3->Lines->Add(text[t]);
bd_work->Teach_table->Close();
bd_work->Teach_table->SQL->Clear();
bd_work->Teach_table->SQL->Add(Memo3->Text);
bd_work->Teach_table->ExecSQL();
AnsiString text2[]={"SELECT *", "FROM Вчителі;"};
Memo3->Clear();
for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++)
Memo3->Lines->Add(text2[t]);
bd_work->Teach_table->Close();
bd_work->Teach_table->SQL->Clear();
bd_work->Teach_table->SQL->Add(Memo3->Text);
bd_work->Teach_table->Open();
bd_work->Teach_table->Active=true;
}
void __fastcall Tregedit::Button3Click(TObject *Sender)
{
Memo3->Clear();
bd_work->Teach_table->Active=false;
AnsiString text[]={"DELETE FROM Вчителі",
" WHERE [Код вчителя] = \""+Edit9->Text+"\" or ",
"[Прізвище та ім'я] = \""+Edit8->Text+"\" or",
"[Код паспорту] = \""+Edit7->Text+"\" or",
"[Телефонний номер] = \""+Edit20->Text+"\"" };
for(unsigned t=0; t<sizeof(text)/sizeof(int); t++)
Memo3->Lines->Add(text[t]);
bd_work->Teach_table->Close();
bd_work->Teach_table->SQL->Clear();
bd_work->Teach_table->SQL->Add(Memo3->Text);
bd_work->Teach_table->ExecSQL();
AnsiString text2[]={"SELECT *", "FROM Вчителі;"};
Memo3->Clear();
for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++)
Memo3->Lines->Add(text2[t]);
bd_work->Teach_table->Close();
bd_work->Teach_table->SQL->Clear();
bd_work->Teach_table->SQL->Add(Memo3->Text);
bd_work->Teach_table->Open();
bd_work->Teach_table->Active=true;
}
void __fastcall Tregedit::Button5Click(TObject *Sender)
{
Memo3->Clear();
bd_work->Teach_table->Active=false;
AnsiString text[]={"INSERT INTO Транспорт([Код транспорту], Модель, [Кількість кінських сил], [Об'єм двигуна])",
" VALUES ( \""+Edit15->Text+"\",\""+Edit14->Text+"\",\""+Edit13->Text+"\",\""+Edit21->Text+"\")"};
for(unsigned t=0; t<sizeof(text)/sizeof(int); t++)
Memo3->Lines->Add(text[t]);
bd_work->Auto_table->Close();
bd_work->Auto_table->SQL->Clear();
bd_work->Auto_table->SQL->Add(Memo3->Text);
bd_work->Auto_table->ExecSQL();
AnsiString text2[]={"SELECT *", "FROM Транспорт;"};
Memo3->Clear();
for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++)
Memo3->Lines->Add(text2[t]);
bd_work->Auto_table->Close();
bd_work->Auto_table->SQL->Clear();
bd_work->Auto_table->SQL->Add(Memo3->Text);
bd_work->Auto_table->Open();
bd_work->Auto_table->Active=true;
}
void __fastcall Tregedit::Button6Click(TObject *Sender)
{
Memo3->Clear();
bd_work->Teach_table->Active=false;
AnsiString text[]={"DELETE FROM Транспорт",
" WHERE [Код транспорту] = \""+Edit18->Text+"\" or", "Модель = \""+Edit17->Text+"\" or ",
"[Кількість кінських сил] = \""+Edit16->Text+"\" or ",
"[Об'єм двигуна] = \""+Edit22->Text+"\" "};
for(unsigned t=0; t<sizeof(text)/sizeof(int); t++)
Memo3->Lines->Add(text[t]);
bd_work->Auto_table->Close(); bd_work->Auto_table->SQL->Clear();
bd_work->Auto_table->SQL->Add(Memo3->Text);
bd_work->Auto_table->ExecSQL();
AnsiString text2[]={"SELECT *", "FROM Транспорт;"};
Memo3->Clear(); for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++)
Memo3->Lines->Add(text2[t]);
bd_work->Auto_table->Close(); bd_work->Auto_table->SQL->Clear();
bd_work->Auto_table->SQL->Add(Memo3->Text);
bd_work->Auto_table->Open(); bd_work->Auto_table->Active=true;
}
//Auto_form.cpp
#include <vcl.h>
#pragma hdrstop
#include "Auto_form.h"
#include "Data1.h"
#include "Klients.h"
#include "Help_client.h"
#include "Klienti_zvit.h"
#include "Me_info.h"
#include "Redagyvannya_dannih.h"
#include "Teach_form.h"
#include "ZVIT_auto.h"
#include "Zvit_teach.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
Ttran *tran;
__fastcall Ttran::Ttran(TComponent* Owner)
: TForm(Owner)
{ }
void __fastcall Ttran::Button1Click(TObject *Sender)
{
if((ComboBox1->Text=="Скинути фільтри")||(Edit1->Text==""))
{ bd_work->Auto_table->Filtered = false; ComboBox1->Text="Фільтри"; }
else if((ComboBox1->Text=="Код транспорту")&&(Edit1->Text!=""))
{
bd_work->Auto_table->Filtered = false;
bd_work->Auto_table->Filter = "[Код транспорту] like '"+Edit1->Text+"*'";
bd_work->Auto_table->Filtered = true;
}
else if((ComboBox1->Text=="Модель")&&(Edit1->Text!=""))
{
bd_work->Auto_table->Filtered = false;
bd_work->Auto_table->Filter = "Модель like '"+Edit1->Text+"*'";
bd_work->Auto_table->Filtered = true;
}
else if((ComboBox1->Text=="Кількість кінських сил")&&(Edit1->Text!=""))
{
bd_work->Auto_table->Filtered = false;
bd_work->Auto_table->Filter = "[Кількість кінських сил] like '"+Edit1->Text+"*'";
bd_work->Auto_table->Filtered = true;
}
else if((ComboBox1->Text=="Об'єм двигуна")&&(Edit1->Text!=""))
{
bd_work->Auto_table->Filtered = false;
bd_work->Auto_table->Filter = "[Об'єм двигуна] like '"+Edit1->Text+"*'";
bd_work->Auto_table->Filtered = true;
}
}
void __fastcall Ttran::FormClose(TObject *Sender, TCloseAction &Action)
{
Form1->Close();
}
void __fastcall Ttran::ToolButton1Click(TObject *Sender)
{
regedit->Visible = true;
}
void __fastcall Ttran::ToolButton4Click(TObject *Sender)
{
Me->Visible = true;
}
void __fastcall Ttran::ToolButton5Click(TObject *Sender)
{
Help->Visible = true;
}
void __fastcall Ttran::ToolButton6Click(TObject *Sender)
{
Form1->Close();
}
//Data1.cpp
#include <vcl.h>
#pragma hdrstop
#include "Data1.h"
#include "Klients.h"
#include "Help_client.h"
#include "Me_info.h"
#include "Redagyvannya_dannih.h"
#include "Teach_form.h"
#include "Auto_form.h"
#include "Klienti_zvit.h"
#include "ZVIT_auto.h"
#include "Zvit_teach.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
Tbd_work *bd_work;
__fastcall Tbd_work::Tbd_work(TComponent* Owner)
: TDataModule(Owner)
{ }
void __fastcall Tbd_work::N111Click(TObject *Sender)
{
regedit->Visible = true;
}
void __fastcall Tbd_work::N4Click(TObject *Sender)
{
regedit->Close();
}
void __fastcall Tbd_work::N2Click(TObject *Sender)
{
Teach->Visible = true; Form1->Visible = false;
}
void __fastcall Tbd_work::N3Click(TObject *Sender)
{
tran->Visible = true; Form1->Visible = false;
}
void __fastcall Tbd_work::N6Click(TObject *Sender)
{
tran->Visible = true; Teach->Visible = false;
}
void __fastcall Tbd_work::N5Click(TObject *Sender)
{
Teach->Visible = false; Form1->Visible = true;
}
void __fastcall Tbd_work::N8Click(TObject *Sender)
{
tran->Visible = false; Form1->Visible = true;
}
void __fastcall Tbd_work::N9Click(TObject *Sender)
{
Teach->Visible = true; tran->Visible = false;
}
void __fastcall Tbd_work::N10Click(TObject *Sender)
{
regedit->Visible = true;
}
void __fastcall Tbd_work::N11Click(TObject *Sender)
{
Auto_zvit->QuickRep1->Preview();
}
void __fastcall Tbd_work::N12Click(TObject *Sender)
{
Me->Visible = true;
}
void __fastcall Tbd_work::N13Click(TObject *Sender)
{
Help->Visible = true;
}
void __fastcall Tbd_work::N14Click(TObject *Sender)
{
Form1->Close();
}
void __fastcall Tbd_work::N15Click(TObject *Sender)
{
regedit->Visible = true;
}
void __fastcall Tbd_work::N16Click(TObject *Sender)
{
Teach_ZVIT->QuickRep1->Preview();
}
void __fastcall Tbd_work::N17Click(TObject *Sender)
{
Me->Visible = true;
}
void __fastcall Tbd_work::N18Click(TObject *Sender)
{
Help->Visible = true;
}
void __fastcall Tbd_work::N19Click(TObject *Sender)
{
Form1->Close();
}
void __fastcall Tbd_work::N20Click(TObject *Sender)
{
ZVIT_klienti->QuickRep1->Preview();
}
void __fastcall Tbd_work::N21Click(TObject *Sender)
{
Me->Visible = true;
}
void __fastcall Tbd_work::N22Click(TObject *Sender)
{
Help->Visible = true;
}
void __fastcall Tbd_work::N23Click(TObject *Sender)
{
Form1->Close();
}
//Teach_form.cpp
#include <vcl.h>
#pragma hdrstop
#include "Teach_form.h"
#include "Data1.h"
#include "Help_client.h"
#include "Klients.h"
#include "Me_info.h"
#include "Redagyvannya_dannih.h"
#include "Auto_form.h"
#include "Klienti_zvit.h"
#include "ZVIT_auto.h"
#include "Zvit_teach.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TTeach *Teach;
__fastcall TTeach::TTeach(TComponent* Owner)
: TForm(Owner)
{ }
void __fastcall TTeach::Button1Click(TObject *Sender)
{
if((ComboBox1->Text=="Скинути фільтри")||(Edit1->Text==""))
{ bd_work->Teach_table->Filtered = false; ComboBox1->Text="Фільтри"; }
else if((ComboBox1->Text=="Код вчителя")&&(Edit1->Text!=""))
{
bd_work->Teach_table->Filtered = false;
bd_work->Teach_table->Filter = "[Код вчителя] like '"+Edit1->Text+"*'";
bd_work->Teach_table->Filtered = true;
}
else if((ComboBox1->Text=="Прізвище та ім'я")&&(Edit1->Text!=""))
{
bd_work->Teach_table->Filtered = false;
bd_work->Teach_table->Filter = "[Прізвище та ім'я] like '"+Edit1->Text+"*'";
bd_work->Teach_table->Filtered = true;
}
else if((ComboBox1->Text=="Код паспорту")&&(Edit1->Text!=""))
{
bd_work->Teach_table->Filtered = false;
bd_work->Teach_table->Filter = "[Код паспорту] like '"+Edit1->Text+"*'";
bd_work->Teach_table->Filtered = true;
}
else if((ComboBox1->Text=="Телефонний номер")&&(Edit1->Text!=""))
{
bd_work->Teach_table->Filtered = false;
bd_work->Teach_table->Filter = "[Телефонний номер] like '"+Edit1->Text+"*'";
bd_work->Teach_table->Filtered = true;
}
}
void __fastcall TTeach::FormClose(TObject *Sender, TCloseAction &Action)
{
Form1->Close();
}
void __fastcall TTeach::ToolButton1Click(TObject *Sender)
{
regedit->Visible = true;
}
void __fastcall TTeach::ToolButton3Click(TObject *Sender)
{
Teach_ZVIT->QuickRep1->Preview();
}
void __fastcall TTeach::ToolButton4Click(TObject *Sender)
{
Me->Visible = true;
}
void __fastcall TTeach::ToolButton7Click(TObject *Sender)
{
Help->Visible = true;
}
void __fastcall TTeach::ToolButton9Click(TObject *Sender)
{
Form1->Close();
}
//Data1.h
//---------------------------------------------------------------------------
#ifndef Data1H
#define Data1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <DB.hpp>
#include <Menus.hpp>
#include <ADODB.hpp>
#include <ImgList.hpp>
//---------------------------------------------------------------------------
class Tbd_work : public TDataModule
{
__published:
TDataSource *Auto_data;
TDataSource *Teach_data;
TDataSource *Klient_data;
TADOConnection *ADOConnection1;
TADOQuery *Auto_table;
TADOQuery *Teach_table;
TADOQuery *Klient_table;
TMainMenu *Menu_auto;
TMainMenu *Menu_teach;
TMainMenu *Menu_klient;
TWideStringField *Auto_tableDSDesigner;
TWideStringField *Auto_tableDSDesigner2;
TWideStringField *Auto_tableDSDesigner3;
TWideStringField *Auto_tableDSDesigner4;
TWideStringField *Teach_tableDSDesigner;
TWideStringField *Teach_tableDSDesigner2;
TWideStringField *Teach_tableDSDesigner3;
TWideStringField *Teach_tableDSDesigner4;
TWideStringField *Teach_tableDSDesigner5;
TStringField *Teach_tableKod_transp;
TWideStringField *Klient_tableDSDesigner;
TWideStringField *Klient_tableDSDesigner2;
TDateTimeField *Klient_tableDSDesigner3;
TDateTimeField *Klient_tableDSDesigner4;
TWideStringField *Klient_tableDSDesigner5;
TWideStringField *Klient_tableDSDesigner6;
TStringField *Klient_tableKod_teach;
TImageList *ImageList1;
// IDE-managed Components
void __fastcall N111Click(TObject *Sender);
void __fastcall N4Click(TObject *Sender);
void __fastcall N2Click(TObject *Sender);
void __fastcall N3Click(TObject *Sender);
void __fastcall N6Click(TObject *Sender);
void __fastcall N5Click(TObject *Sender);
void __fastcall N8Click(TObject *Sender);
void __fastcall N9Click(TObject *Sender);
void __fastcall N10Click(TObject *Sender);
void __fastcall N11Click(TObject *Sender);
void __fastcall N12Click(TObject *Sender);
void __fastcall N13Click(TObject *Sender);
void __fastcall N14Click(TObject *Sender);
void __fastcall N15Click(TObject *Sender);
void __fastcall N16Click(TObject *Sender);
void __fastcall N17Click(TObject *Sender);
void __fastcall N18Click(TObject *Sender);
void __fastcall N19Click(TObject *Sender);
void __fastcall N20Click(TObject *Sender);
void __fastcall N21Click(TObject *Sender);
void __fastcall N22Click(TObject *Sender);
void __fastcall N23Click(TObject *Sender);
void __fastcall DataModuleCreate(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall Tbd_work(TComponent* Owner);
TMenuItem *N1;
TMenuItem *N2;
TMenuItem *N3;
TMenuItem *N111;
TMenuItem *N4;
TMenuItem *N5;
TMenuItem *N6;
TMenuItem *N7;
TMenuItem *N8;
TMenuItem *N9;
TMenuItem *N10;
TMenuItem *N11;
TMenuItem *N12;
TMenuItem *N13;
TMenuItem *N14;
TMenuItem *N15;
TMenuItem *N16;
TMenuItem *N17;
TMenuItem *N18;
TMenuItem *N19;
TMenuItem *N20;
TMenuItem *N21;
TMenuItem *N22;
TMenuItem *N23;
};
//---------------------------------------------------------------------------
extern PACKAGE Tbd_work *bd_work;
//---------------------------------------------------------------------------
#endif
