Автор работы: Пользователь скрыл имя, 08 Сентября 2013 в 19:56, курсовая работа
Московский университет МВД России — федеральное государственное казенное образовательное учреждение высшего профессионального образования Министерства внутренних дел России, созданное в 2002 году в соответствии с постановлениемПравительства РФ и приказом Министра внутренних дел РФ путем слияния трех вузов МВД России — Московской академии, Московского института и Юридического института[1][2]. Осуществляет подготовку кадров для органов внутренних дел по правоохранительной деятельности, безопасности, психологии и педагогике, юриспруденции по программам высшего и среднего профессионального образования.
Среда программирования Delphi представляет
собой идеальную платформу для
создания интерфейсов с локальными и удаленными
базами данных в среде Windows. С ее помощью
можно быстро писать программы, не только
выполняющие какие - либо вычисления или
функции, но и надёжные приложения управления
базами данных. Визуальные аспекты программирования
в Delphi позволяют считать его великолепным
инструментом скоростной разработки программ.
Кроме того, Delphi является хорошим инструментом
для скоростной разработки приложений
Windows. А также он содержит в себе всю мощь
компилируемого языка программирования
(Object Pascal), помещённого в оболочку средств
скоростной разработки приложений (RAD)
– Rapid Application Development. RAD резко повышает эффективность
разработки приложений. Чтобы более наглядно
это понять стоит привести отличительные
особенности СУБД, содержащих RAD.
Во-первых, это, конечно же, наличие объектно-ориентированного
языка программирования, эффективно использующего
модульный принцип построения программ.
Модульный принцип основан на следующих
понятиях:
Во-вторых, это наличие визуальных
средств разработки, заменяющих написание
кодов программ, размещением графических
объектов на рабочем столе.
В-третьих, должна обеспечиваться поддержка
стандартных протоколов обмена данными
между приложениями.
Выбор системы управления баз
данных (СУБД) представляет собой сложную
многопараметрическую задачу и является
одним из важных этапов при разработке
приложений баз данных. Выбранный
программный продукт должен удовлетворять
как текущим, так и будущим потребностям
предприятия, при этом следует учитывать
финансовые затраты на приобретение необходимого
оборудования, самой системы, разработку
необходимого программного обеспечения
на ее основе, а также обучение персонала.
Кроме того, необходимо убедиться, что
новая СУБД способна принести предприятию
реальные выгоды.
Для реализации поставленной задачи,
были использованы следующие программные
методы.
Отображение данных
Для отображения данных использовался
компонент dbGrid. Навигация по базе данных
осуществляется перемещением курсора
в главной таблице и компонентом bdNavigator.
Добавление/редактирование/
Компонент DBNavigator обеспечивает перемещение
указателя текущей записи, активизацию
режима редактирования, добавление и удаление
записей
Сортировка данных
Сортировка предназначена для удобства
просмотра данных.
Сортировка данных организована средствами
компонента dbGrid по нажатию на заголовок
столбца.
procedure TFMain.DBGrid1TitleClick(
var
i:integer;
order, field:string;
begin
i:= Column.Index;
sort[i]:=not sort[i];
if(sort[i]) then order:=' ASC '
else order:=' DESC ';
case Column.Index of
0:field:=' nomer ';
1:field:=' FIO';
2:field:=' kol ';
3:field:=' uch st ';
4:field:=' uch zv ';
5:field:=' prochee ';
end;
DM.ADOQSvodnaya.Close;
DM.ADOQSvodnaya.SQL.Text:=SQL+
DM.ADOQSvodnaya.Open;
Поиск в наборе данных
Поиск в наборе данных осуществляется
в таблице «Дисциплина», по кнопке «искать»:
procedure TFDisc.Button1Click(Sender: TObject);
begin
if not DM.ADOQDisciplina.Locate('
then showmessage('Запись не обнаружена');
end;
Вывод отчетов
Вывод отчетов организован средствами
компонента dbGrid.
procedure TFChReport.Button1Click(
begin
if(ComboBox1.Text = '')then
begin
ShowMessage('Группа не выбрана');
exit;
end;
QuickReport1.QRLabel6.Caption:
DM.ADOQRep.close;
DM.ADOQRep.SQL.Text:=SQL+'
DM.ADOQRep.open;
QuickReport1.Preview;
end;
Обеспечение безопасности базы данных
Вход в базу данных осуществляется при
вводе логина и пароля (по умолчанию: login
–work, key – 963258741). Это предотвращает несанкционированный
доступ к базе.
Так же сохранение записей в базе данных
при наличии одного или несколько незаполненных
полей невозможно, что способствует сохранению
целостности данных и достоверности информации.
Правильность вводимых данный осуществляется
методами компонента dbNavigator, он не позволяет
добавить записи с пустыми полями, так
же осуществляет проверку типа вводимых
данный в соответствии с тем типом, который
указан для полей в таблицах Access.
Приложение запускается файлом
work.exe, располагающемся в папке программы.
При запуске откроется окно входа в приложение
«Код безопасности»
Для авторизации в системе необходимо
указать логин – work, пароль – 963258741. После
этого Вам будет предоставлен доступ ко
всем таблицам базы данных, первой откроется
итоговая таблица «Дисциплина-Преподаватель»
.
Навигация по таблицам осуществляется
с помощью кликов мыши, либо кнопками компонента
bdNavigator, расположенного под каждой из таблиц.
Открытие необходимых таблиц осуществляется
через главное меню, расположенное в верхней
части форм.
Добавление, редактирование, удаление
записей осуществляется через bdNavigator,
расположенный под каждой из таблиц.
Формирование отчета осуществляется через
меню в верхней части экрана
Заключение
В результате проделанной работы была
разработана база данных и приложение
по работе с данной базой. Совокупность
программных средств позволяет выполнять
работу по учету, регистрации, поддержании
актуального состояния сведений о группах,
дисциплинах, формах обучения и специальностях,
имеющихся в ВУЗе.
Простота навигации и управления базой
позволяют работать с ней широкому кругу
лиц вне зависимости от возрастной категории.
Есть возможность подсчета среднего количества
студентов в группах для отслеживания
потока студентов в разные периоды обучения.
Имеется быстрый способ просмотра общего
числа студентов по специальностям.
Также доступна возможно печати отчета
по перечню учебных дисциплин для выбранной
студенческой группы.
Список литературы
unit chrep;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls, DBCtrls;
type
TFChReport = class(TForm)
Label1: TLabel;
Button1: TButton;
ComboBox1: TComboBox;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FChReport: TFChReport;
implementation
uses datamod, report, main;
{$R *.dfm}
procedure TFChReport.Button1Click(
begin
if(ComboBox1.Text = '')then
begin
ShowMessage('Íå âûáðàíà ãðóïïà');
exit;
end;
QuickReport1.QRLabel6.Caption:
DM.ADOQRep.close;
DM.ADOQRep.SQL.Text:=SQL+'
DM.ADOQRep.open;
QuickReport1.Preview;
end;
procedure TFChReport.FormCreate(Sender: TObject);
begin
ComboBox1.Clear;
DM.ADOQGruppa.First;
while not DM.ADOQGruppa.Eof do
begin
ComboBox1.Items.Add(DM.
DM.ADOQGruppa.Next;
end
end;
end.
unit datamod;
interface
uses
SysUtils, Classes, DB, ADODB;
type
TDM = class(TDataModule)
ADOConnection1: TADOConnection;
ADOQGruppa: TADOQuery;
ADOQGruppaG_id: TAutoIncField;
ADOQGruppaG_nomer: TWideStringField;
ADOQGruppaG_chislennost: TIntegerField;
ADOQGruppaG_sred_proh_bal: TFloatField;
ADOQGruppaG_specialnost_id: TIntegerField;
ADOQGruppaG_forma_obucheniya_
ADOQSpec: TADOQuery;
ADOQFormaOb: TADOQuery;
ADOQDisciplina: TADOQuery;
ADOQGruppaDisc: TADOQuery;
dsSpec: TDataSource;
dsGruppa: TDataSource;
dsFormaOb: TDataSource;
ADOQGruppaG_specialnost: TStringField;
ADOQGruppaG_forma_obuch: TStringField;
dsDisciplina: TDataSource;
dsGruppaDisc: TDataSource;
ADOQGruppaDiscGD_id: TAutoIncField;
ADOQGruppaDiscGD_gruppa_id: TIntegerField;
ADOQGruppaDiscGD_disciplina_
ADOQGruppaDiscGD_Gruppa: TStringField;
ADOQGruppaDiscGD_disciplina: TStringField;
ADOQSvodnaya: TADOQuery;
dsSvodnaya: TDataSource;
ADOQRep: TADOQuery;
dsRep: TDataSource;
ADOQSred: TADOQuery;
ADOQuery: TADOQuery;
dsQuery: TDataSource;
private
{ Private declarations }
public
{ Public declarations }
end;
var
DM: TDM;
implementation
{$R *.dfm}
end.
unit disciplina;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, StdCtrls;
type
TFDisc = class(TForm)
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
GroupBox1: TGroupBox;
LabeledEdit1: TLabeledEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FDisc: TFDisc;
implementation
uses datamod;
{$R *.dfm}
procedure TFDisc.Button1Click(Sender: TObject);
begin
if not DM.ADOQDisciplina.Locate('D_
then showmessage('Çàïèñü íå íàéäåíà');
end;
end.
unit Fobuch;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids;
type
TFObuchenie = class(TForm)
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
private
{ Private declarations }
public
{ Public declarations }
end;
var
FObuchenie: TFObuchenie;
implementation
uses datamod;
{$R *.dfm}
end.
unit FSpec;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids;
type
TFSpecialnost = class(TForm)
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
private
{ Private declarations }
public
{ Public declarations }
end;
var
FSpecialnost: TFSpecialnost;
implementation
uses datamod;
{$R *.dfm}
end.
unit gruppa;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids;
type
TFGruppa = class(TForm)
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FGruppa: TFGruppa;
implementation
uses datamod;
{$R *.dfm}
procedure TFGruppa.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.ADOQGruppa.Close;
DM.ADOQGruppa.Open;
end;
end.
unit gruppadisc;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids;
type
TFGruppaDisc = class(TForm)
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FGruppaDisc: TFGruppaDisc;
implementation
uses datamod;
{$R *.dfm}
procedure TFGruppaDisc.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
DM.ADOQSvodnaya.Close;
DM.ADOQSvodnaya.Open;
end;
end.
unit login;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TFLogin = class(TForm)
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
Button1: TButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FLogin: TFLogin;
implementation
uses main;
{$R *.dfm}
procedure TFLogin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if(not logged)then Fmain.Close;
end;
procedure TFLogin.Button1Click(Sender: TObject);
begin
if(LabeledEdit1.Text = 'Admin') and(LabeledEdit2.Text = '12345')
then begin logged:=true;
FMain.Show;
Close;
end;
end;
end.
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, Menus, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls, XPMan;
type
TFMain = class(TForm)
MainMenu1: TMainMenu;
menu1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N1: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
N6: TMenuItem;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
N241: TMenuItem;
XPManifest1: TXPManifest;
procedure N1Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
procedure FormCreate(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure N241Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FMain: TFMain;
sort:array[0..6] of boolean;
SQL:AnsiString;
logged:boolean;
implementation
uses FSpec, Fobuch, gruppa, disciplina, gruppadisc, datamod, chrep,
qqqq,
login;
{$R *.dfm}
procedure TFMain.N1Click(Sender: TObject);
begin
FSpecialnost.ShowModal;
end;
procedure TFMain.N4Click(Sender: TObject);
begin
FObuchenie.ShowModal;
end;
procedure TFMain.N2Click(Sender: TObject);
begin
FGruppa.ShowModal;
end;
procedure TFMain.N3Click(Sender: TObject);
begin
FDisc.ShowModal;
end;
procedure TFMain.N5Click(Sender: TObject);
begin
FGruppaDisc.ShowModal;
end;
procedure TFMain.DBGrid1TitleClick(
var
i:integer;
order, field:string;
begin
i:= Column.Index;
sort[i]:=not sort[i];
if(sort[i]) then order:=' ASC '
else order:=' DESC ';
case Column.Index of
0:field:=' G_nomer ';
1:field:=' S_shifr ';
2:field:=' FO_kod ';
3:field:=' D_nazvanie ';
4:field:=' D_lekcii ';
5:field:=' D_prakticheskie ';
6:field:=' D_prochee ';
end;
DM.ADOQSvodnaya.Close;
DM.ADOQSvodnaya.SQL.Text:=SQL+
DM.ADOQSvodnaya.Open;
end;
procedure TFMain.FormCreate(Sender: TObject);
var i:integer;
begin
for i:=0 to 6 do sort[i]:=true;
SQL:='SELECT Gruppa.G_nomer, Specialnost.S_shifr, Forma_obucheniya.FO_kod,
Disciplina.D_nazvanie, Disciplina.D_lekcii, Disciplina.D_prakticheskie,
Disciplina.D_prochee '+
' FROM Forma_obucheniya INNER JOIN (Specialnost INNER JOIN (Disciplina
INNER JOIN (Gruppa INNER JOIN Gruppa_Disciplina ON Gruppa.G_id = Gruppa_Disciplina.GD_gruppa_
' Specialnost.S_id = Gruppa.G_specialnost_id) ON Forma_obucheniya.FO_id
= Gruppa.G_forma_obucheniya_id ';
logged:=false;
end;
procedure TFMain.N6Click(Sender: TObject);
begin
FChReport.ShowModal;
end;
procedure TFMain.FormShow(Sender: TObject);
begin
Label2.Caption:=IntToStr(DM.
Label4.Caption:=IntToStr(DM.
end;
procedure TFMain.N241Click(Sender: TObject);
begin
DM.ADOQuery.Close;
DM.ADOQuery.Open;
FQ.ShowModal;
end;
procedure TFMain.FormActivate(Sender: TObject);
begin
if(not logged)then begin
//Hide;
Label2.Caption:=IntToStr(DM.
Label4.Caption:=IntToStr(DM.
FLogin.ShowModal;
end;
end;
procedure TFMain.FormClick(Sender: TObject);
begin
Label2.Caption:=IntToStr(DM.
Label4.Caption:=IntToStr(DM.
end;
end.
program mydatabase;
uses
Forms,
main in 'main.pas' {FMain},
FSpec in 'FSpec.pas' {FSpecialnost},
datamod in 'datamod.pas' {DM: TDataModule},
Fobuch in 'Fobuch.pas' {FObuchenie},
gruppa in 'gruppa.pas' {FGruppa},
disciplina in 'disciplina.pas' {FDisc},
gruppadisc in 'gruppadisc.pas' {FGruppaDisc},
report in 'report.pas' {QuickReport1: TQuickRep},
chrep in 'chrep.pas' {FChReport},
qqqq in 'qqqq.pas' {FQ},
login in 'login.pas' {FLogin};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TFMain, FMain);
Application.CreateForm(
Application.CreateForm(TDM, DM);
Application.CreateForm(
Application.CreateForm(
Application.CreateForm(TFDisc, FDisc);
Application.CreateForm(
Application.CreateForm(
Application.CreateForm(
Application.CreateForm(TFQ, FQ);
Application.CreateForm(
Application.Run;
end.
unit qqqq;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, Grids, DBGrids;
type
TFQ = class(TForm)
DBGrid1: TDBGrid;
private
{ Private declarations }
public
{ Public declarations }
end;
var
FQ: TFQ;
implementation
uses datamod;
{$R *.dfm}
end.
unit report;
interface
uses Windows, SysUtils, Messages, Classes, Graphics, Controls,
StdCtrls, ExtCtrls, Forms, QuickRpt, QRCtrls;
type
TQuickReport1 = class(TQuickRep)
QRBand1: TQRBand;
QRLabel1: TQRLabel;
QRBand2: TQRBand;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRBand3: TQRBand;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRDBText4: TQRDBText;
private
public
end;
var
QuickReport1: TQuickReport1;
implementation
uses datamod;
{$R *.DFM}
end.
Список литературы
1. Гофман В.Э. Delphi 5 / В.Э. Гофман, А.Д. Хомоненко.
СПб. : БХВ Санкт-Петербург, 2000. 800 с.
2.Фаронов В.В. Delphi 5: учеб. курс / В.В. Фаронов. М. : Нолидж, 2001. 608 с.
3.Фаронов В.В., Программирование баз данных в Delphi 7. Учебный курс, СПб.: Питер, 2003;
4.Классификация основных средств, включаемых в амортизационные группы – М.: Налог-инфо, 2005;
5.Гофман В.Э., Хомоненко А.Д., Работа с базами данных в Delphi. – 2-е изд, СПБ.: БХВ-Петербург, 2002;
6.Бобровский С. И., Delphi 7. Учебный курс, СПБ.: Питер, 2003;
7.электронный ресурс: delphisite.ru
8.электронный ресурс: delphiexpert.ru