Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchet_Bityukov.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1 Мб
Скачать
☆

Приложение 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.

36

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]