- •Федеральное агентство по образованию
- •I. Объектно-ориентированное проектирование приложений
- •1.1. Технология проектирования ооп
- •1.1.1. Принципы ооп
- •1.1.2. Этапы разработки программных систем с использованием ооп
- •1.2.Mda-архитектура
- •1.2.1. Модель приложений и типы моделей
- •1.2.2. Этапы разработки mda-приложений
- •1.3. Унифицированный язык моделирования uml
- •1.4. Bold — реализация mda в Delphi
- •II. Разработка программного продукта
- •2.1. Проектирование приложения «Магазин бытовой техники»
- •2.1.1. Создание модели приложения
- •Описание классов модели приложения:
- •2.1.2. Импорт модели в BorlandMda
- •2.1.3. Создание графического интерфейса
- •2.2. Руководство пользователя
- •2.2.1. Установка и запуск
- •Установка программы «Магазин бытовой техники»
- •Запуск программы «Магазин бытовой техники»
- •2.2.2. Начало работы с приложением «Магазин бытовой техники»
- •2.2.3. Работа с программой
- •Заключение
- •Список литературы
- •Приложение Основной модуль приложения
- •Модуль описание классов бизнес-модели
- •Модуль регистрации пользователя как директора
- •Модуль смены пароля администратора
- •Модуль данных - связь бизнес-уровня и графического интерфейса
- •Модуль смены пароля администратора
- •Модуль редактирования информации о товаре, хранящегося на товарных базах
- •Модуль добавление новой товарной базы
- •Модуль отображения заставки
- •Модуль ввода количества заказываемого товара
- •Модуль отображения информации о программном продукте и разработчике
Модуль регистрации пользователя как директора
unit Ad_reg;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TRegistr = class(TForm)
Edit1: TEdit;
Label1: TLabel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Registr: TRegistr;
passw, in_pass:string;
function deshif(filename, pas: string):string; external 'shifr.dll';
implementation
uses Main;
{$R *.dfm}
//Завершение программы при отказе ввода
procedure TRegistr.SpeedButton2Click(Sender: TObject);
begin
Application.Terminate;
end;
//Проверка пароля
procedure TRegistr.SpeedButton1Click(Sender: TObject);
begin
if FileExists('password.psw') then
begin
passw:=deshif('password.psw','23031985');
if in_pass=passw then
begin
Registr.Visible:=false;
MainForm.Timer1.Enabled:=true;
MainForm.ShowModal;
end;
end
else MessageDlg('Файл с паролями не найден!',mtError,[mbok],0);
end;
//Отображение "*" вместо символов пароля
procedure TRegistr.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
SpeedButton1Click(registr)
else
if key<>#8 then
begin
in_pass:=in_pass+key;
key:='*';
end
else delete(in_pass,length(in_pass),1);
end;
//Создание формы
procedure TRegistr.FormCreate(Sender: TObject);
begin
in_pass:='';
end;
//Скрытие основной формы
procedure TRegistr.FormActivate(Sender: TObject);
begin
MainForm.Visible:=false;
end;
end.
Модуль смены пароля администратора
unit Ad_change_pass;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons;
type
TChangePass = class(TForm)
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
LabeledEdit3: TLabeledEdit;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
procedure shif(filename, pas, input: string); external 'shifr.dll';
function deshif(filename, pas: string):string; external 'shifr.dll';
var
ChangePass: TChangePass;
pass, new_pass: string;
implementation
{$R *.dfm}
//Закрытие формы
procedure TChangePass.SpeedButton2Click(Sender: TObject);
begin
ChangePass.Close;
end;
//Смена пароля
procedure TChangePass.SpeedButton1Click(Sender: TObject);
begin
pass:=deshif('password.psw','23031985');
if LabeledEdit1.Text<>'' then
if LabeledEdit1.Text=pass then
if (pass<>LabeledEdit2.Text) then
if (LabeledEdit2.Text=LabeledEdit3.Text)and(LabeledEdit2.Text<>'') then
begin
new_pass:=LabeledEdit2.Text;
shif('password.psw','23031985',new_pass);
MessageDlg('Пароль успешно изменен!',mtInformation,[mbok],0);
ChangePass.Close;
end
else MessageDlg('Новые пароли не совпадают, либо не заданы!',mtInformation,[mbok],0)
else MessageDlg('Новый пароль совпадает со старым!',mtInformation,[mbok],0)
else MessageDlg('Не верный пароль!',mtInformation,[mbok],0);
end;
end.