- •Глава 1 Общая часть 4
- •Глава 2. Разработка программного обеспечения 8
- •1.2.3 Требования предъявляемые к программному обеспечению
- •1.3 Характеристика используемой пэвм, ос и языка программирования
- •Глава 2. Разработка программного обеспечения
- •2.1 Технологический процесс машинной реализации
- •2.2 Алгоритм задачи и его описание
- •2.3 Описание переменных, процедур и функций
- •2.6 Инструкция пользователю
- •3. Заключение
- •2.5 Результаты работы программ
- •Приложение 2- Эскизный проект
- •Приложение 3- sadt и dfd модели
- •Приложение 4- Тексты программ
Приложение 2- Эскизный проект
Ведомость эскизного проекта
Документы по разработанному продукту:
Техническое задание на создание информационной системы СуБД «Архив личных дел студентов».
Пояснительная записка к эскизному проекту.
Общие положения:
Данный документ является эскизным проектом на создание Системы Управления Базой Данных для ВУЗа (СуБД «Архив студентов»).
Основные технические решения:
Решения по структуре системы СуБД «Архив студентов» будет представлять собой персональную систему управления локальной базой данных, работающей на одном компьютере.
Система будет управлять реляционной базой данных.
Так как модуль имеет узкую направленность, то используется единственная таблица, таким образом будет достигнута непротиворечивость данных.
Общая структура базы данных:
Хранение информации о студентах осуществляется с сохранением целостности данных при изменении или удалении записей таблицы.
Информация о студенте отражается в таблице с указанием ФИО, НЗК, пола, возраста, форме обучения, контактной информации и т.д.
Указанные решения должны удовлетворять требованиям,
приведенным в техническом задании на разработку системы.
Состав функций комплексов задач, реализуемых системой:
Автоматизированная система должна выполнять следующие
функции:
• Обеспечивать целостное хранение данных в базе;
•Выводить корректные данные в случае поиска;
• Формировать необходимые отчеты;
Решения по составу программных средств, языкам деятельности, алгоритмам процедур и операций и методам их реализации.
Для реализации АС будет использоваться среда
программирования Lazarus и язык программирования FreePascal.
Источники разработки:
Данный документ разрабатывался на основании ГОСТ
34.698—90 на написание ТЗ на автоматизированные системы
управления от 01.01.1992 г.
Приложение 3- sadt и dfd модели
SADT модель
Рисунок 19- SADT модель
DFD модель
Рисунок 20- DFD модель
Приложение 4- Тексты программ
Form1 (Студенты)
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, db, dbf, FileUtil, Forms, Controls, Graphics, Dialogs,
StdCtrls, DBGrids, DbCtrls, ExtCtrls,unit2;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
DBEdit1: TDBEdit;
DBEdit10: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
fam: TEdit;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
nam: TEdit;
otch: TEdit;
nzk: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
formm: TPanel;
s: TDatasource;
d: TDbf;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure DBEdit1Change(Sender: TObject);
procedure DBEdit3Change(Sender: TObject);
procedure DBEdit4Change(Sender: TObject);
procedure DBEdit7Change(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure formmClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
d.close;
form2.showmodal;
end;
procedure TForm1.Button4Click(Sender: TObject);
var f,n,o,nz:String;
begin
if (d.Active) then begin
if (fam.Text <> '') then f:=trim(fam.text) else f := '';
if (nam.Text <> '') then n:=trim(nam.text) else n := '';
if (otch.Text <> '') then o:=trim(otch.text) else o := '';
if (nzk.Text <> '') then nz:=trim(nzk.text) else nz := '';
d.First;
while not(d.EOF) do begin
if (f <> '') then if (d.FieldByName('f').AsString = f) then break;
if (n <> '') then if (d.FieldByName('i').AsString = n) then break;
if (o <> '') then if (d.FieldByName('o').AsString = o) then break;
if (nz <> '') then if (d.FieldByName('nzk').AsString = nz) then break;
d.Next;
end;
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
d.Delete;
d.PackTable;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
formm.Visible:=false;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
formm.Visible:=true;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
d.close;
end;
procedure TForm1.DBEdit1Change(Sender: TObject);
begin
end;
procedure TForm1.DBEdit3Change(Sender: TObject);
begin
end;
procedure TForm1.DBEdit4Change(Sender: TObject);
begin
end;
procedure TForm1.DBEdit7Change(Sender: TObject);
begin
end;
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
d.Close;
end;
procedure TForm1.formmClick(Sender: TObject);
begin
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
d.Close;
d.TableName:='stud.dbf';
d.Open;
d.FieldDefs.clear;
end;
end.
Form2 (Отчеты)
unit Unit2;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, dbf, DB, FileUtil, Forms, Controls, Graphics, Dialogs,
StdCtrls, ExtCtrls, Ipfilebroker, IpHtml;
type
{ TForm2 }
TForm2 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
code: TMemo;
d: TDbf;
f: TEdit;
i: TEdit;
o: TEdit;
h_panel: TPanel;
pr: TIpFileDataProvider;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure fChange(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
day:TDateTime;
end;
var
Form2: TForm2;
implementation
{$R *.lfm}
{ TForm2 }
procedure open_html();
var html:TIpHtmlPanel;
begin
html := TIpHtmlPanel(Form2.FindComponent('html'));
if (html <> nil) then html.Free;
html := TIpHtmlPanel.Create(Form2);
html.Name:='html';
html.Parent:=form2.h_panel;
html.Align:=alClient;
html.DataProvider:=Form2.pr;
html.SetHtmlFromStr(form2.code.Lines.Text);
form2.code.Lines.Clear;
end;
procedure TForm2.fChange(Sender: TObject);
begin
end;
procedure TForm2.Button5Click(Sender: TObject);
begin
Close;
end;
procedure TForm2.Button6Click(Sender: TObject);
begin
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
day := Now;
d.Open;
code.Lines.Add('<html><head>' +
'<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'
+ '</head><body><h1>Отчет по студенту для профкома'+
'</h1><br><hr width=100% size="2" color="#dd0000" />');
while not(d.EOF) do begin
if (f.Text = d.FieldByName('f').AsString) and
(i.Text = d.FieldByName('i').AsString) and
(o.Text = d.FieldByName('o').AsString)
then
code.Lines.Add('<br> ФИО: '+d.FieldByName('f').AsString+' '+
d.FieldByName('i').AsString+' '+
d.FieldByName('o').AsString+'<br> Пол: '+d.FieldByName('pol').AsString+
'<br> Возраст: '+d.FieldByName('voz').AsString+'<br> Образование: '+
d.FieldByName('obr').AsString+'<br> Телефон: '+d.FieldByName('tel').AsString+
'<br> Адрес: '+d.FieldByName('adres').AsString+
'<br> Форма обучения: '+d.FieldByName('f_o').AsString);
d.Next;
end;
d.Close;
code.Lines.Add('<br> <hr width=100% size="2" color="#dd0000" />'+
'Дата формирования: '+DateToStr(day)
+'</body></html>');
open_html();
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
day:=now;
d.close;
d.Open;
code.Lines.Add('<html><head>' +
'<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'
+ '</head><body><table border="1" width="100%"><tr>' +
'<td>НЗК</td><td>ФИО</td><td>Группа</td>'+
'<td>Форма обучения</td>' +
'</tr>');
while not(d.EOF) do begin
code.Lines.Add('<tr>'+
'<td>'+d.FieldByName('nzk').AsString+'</td>'+
'<td>'+d.FieldByName('f').AsString+' '+d.FieldByName('i').AsString+
' '+d.FieldByName('o').AsString+'</td>'+
'<td>'+d.FieldByName('grup').AsString+'</td>'+
'<td>'+d.FieldByName('f_o').AsString+'</td>'+
'</tr>');
d.Next;
end;
d.Close;
code.Lines.Add('</table>'+
'Дата формирования: '+DateToStr(day)
+'</body></html>');
open_html();
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
day:=now;
d.Open;
code.Lines.Add('<html><head>' +
'<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'
+ '</head><body><h1>Отчет по студенту для деканата'+
'</h1><br><hr width=100% size="2" color="#0000dd" /><table width="100%">');
while not(d.EOF) do begin
if (f.Text = d.FieldByName('f').AsString) and
(i.Text = d.FieldByName('i').AsString) and
(o.Text = d.FieldByName('o').AsString) then
code.Lines.Add('<tr>'+
'<tr><td align="left"> НЗК: '+d.FieldByName('nzk').AsString+'</td>'+
'<td align="left"> ФИО: '+d.FieldByName('f').AsString+' '+
d.FieldByName('i').AsString+' '+
d.FieldByName('o').AsString+'</td></tr><tr><td align="left"><br><br> Группа: '+
d.FieldByName('grup').AsString+'</td><td align="left"><br><br> Форма обучения: ' +
d.FieldByName('f_o').AsString+'</td></tr><tr><td align="left"><br><br> Адрес: </td>'+
'<td align="left"><br><br>'+ d.FieldByName('adres').AsString+'</td></tr>'+
'<tr><td align="left"><br><br> Телефон: </td><td align="left"><br><br>'+
d.FieldByName('tel').AsString+'</td></tr>');
d.Next;
end;
d.Close;
code.Lines.Add('</table><hr width=100% size="2" color="#0000dd" />'+
'Дата формирования: '+DateToStr(day)
+'</body></html>');
open_html();
end;
procedure TForm2.Button4Click(Sender: TObject);
begin
day:=now;
d.Open;
code.Lines.Add('<html><head>' +
'<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'
+ '</head><body><h1>Отчет по студенту для отдела кадров'+
'</h1><br><hr width=100% size="2" color="#00dd00" />');
while not(d.EOF) do begin
if (f.Text = d.FieldByName('f').AsString) or
(i.Text = d.FieldByName('i').AsString) or
(o.Text = d.FieldByName('o').AsString) then
code.Lines.Add('<br> ФИО: '+d.FieldByName('f').AsString+' '+
d.FieldByName('i').AsString+' '+
d.FieldByName('o').AsString+'<br> Пол: '+d.FieldByName('pol').AsString+
'<br> Возраст: '+d.FieldByName('voz').AsString+'<br> Образование: '+
d.FieldByName('obr').AsString+'<br> Телефон: '+d.FieldByName('tel').AsString+
'<br> Адрес: '+d.FieldByName('adres').AsString);
d.Next;
end;
d.Close;
code.Lines.Add('<br> </h1><br><hr width=100% size="2" color="#00dd00" />'+
'Дата формирования: '+DateToStr(day)
+'</body></html>');
open_html();
end;
end.
