- •1) Специальная часть
- •1.1) Задача
- •1.1.1) Постановка задачи
- •1.1.2 )Нормализация базы данных
- •1.2) Технология разработки программы
- •1.2.1) Описание среды программирования
- •1.2.2) Входные и выходные данные
- •1.2.3) Структурное проектирование задачи
- •1.2.4) Методы решения задачи
- •1)Добавление.
- •2)Редактирование.
- •3)Удаление данных.
- •1.2.5) Аномалии
- •1.2.6) Реализация защитного программирования.
- •1.2.7)Оптимизация программы.
- •1.3)Отладка программы.
- •1.4)Тестирование
- •2)Экономическая часть.
- •2.1)Исходные данные
- •2.1.1) Данные о затратах по разработке по «Тестер» (инвестициях):
- •2.1.2) Данные о реализации по «Тестер».
- •2.1.3) Данные об использовании по внутри организации.
- •2.2) Расчёт затрат на разработку
- •2.2.1) Материальные затраты
- •2.2.2) Основная заработная плата разработчиков
- •2.2.3) Дополнительная заработная плата
- •2.2.4) Страховой взнос
- •2.2.5) Накладные расходы
- •2.3) Расчёт коммерческой эффективности
- •2.3.1) Расчёт суммы необходимых инвестиций
- •2.3.2) Расчёт остаточной стоимости и налога на имущество
- •2.3.3) Расчёт денежных потоков
- •2.3.4 Расчёт основных показателей эффективности
- •2.3.5 Расчёт уровня безубыточности проекта
- •2.3.6) Вывод о коммерческой эффективности проекта
- •2.4) Расчёт экономической эффективности применения базы данных в организации
- •2.4.1) Расчёт денежных потоков
- •2.4.2) Расчёт основных показателей эффективности
- •2.4.3 Расчёт экономической эффективности применения по «Тестер»
- •Заключение
- •Список литературы.
- •Приложение а.
1.2.4) Методы решения задачи
Для получения указанных выходных данных по приведённым входным параметрам программа должна выполнить следующие функции:
1)Добавление.
Добавление записи представлено на примере «Добавление теста»
procedure TForm4.BitBtn3Click(Sender: TObject);
begin
if (combobox1.Text<>'') and (edit2.Text<>'') and (edit3.Text<>'') then
begin
datamodule2.IBQuery4.Params.ParamByName('PREDM').Value:=combobox1.Text;
datamodule2.IBQuery4.Params.ParamByName('TEMA').Value:=edit2.Text;
datamodule2.IBQuery4.Params.ParamByName('NAZV_TESTA').Value:=edit3.Text;
datamodule2.IBQuery4.Params.ParamByName('KOLVO_VOPR').Value:=0;
try
datamodule2.IBQuery4.ExecSQL;
except
ShowMessage ('Ошибка при добавлении записи!');
datamodule2.IBTransaction1.RollbackRetaining;
end;
DataModule2.IBTransaction1.CommitRetaining;
datamodule2.IBQuery1.Close;
datamodule2.IBQuery1.Open;
end;
end;
2)Редактирование.
Редактирование записей заключается в изменении значений полей. Редактируется текущая запись, поэтому перед действиями, связанными с редактированием, обычно выполняется операция по поиску и перемещению на требуемую запись. Например для редактирования вопросов выбранного теста использовался следующий код:
procedure TForm3.BitBtn1Click(Sender: TObject);
var n:integer;str33:string;
begin
str33:='';
if (edit4.text<>'') and (edit5.text<>'') and (edit6.text<>'') and (edit7.text<>'') and (edit8.text<>'') and ((checkbox1.Checked=true) or (checkbox2.Checked=true) or (checkbox3.Checked=true) or (checkbox4.Checked=true)) then
begin
datamodule2.IBStoredProc3.StoredProcName:='PROC_TEST2_EDIT';
datamodule2.IBStoredProc3.Prepare;
datamodule2.IBQuery3.Locate('T_NOMER_VOPR',strtoint(label5.Caption),[]);
n:=datamodule2.IBQuery3.fieldbyname('ID_TEST').AsInteger;
datamodule2.IBStoredProc3.ParamByName('param').AsInteger:=n;
datamodule2.IBStoredProc3.ParamByName('otv1').AsString:=edit5.Text;
datamodule2.IBStoredProc3.ParamByName('otv2').AsString:=edit6.Text;
datamodule2.IBStoredProc3.ParamByName('otv3').AsString:=edit7.Text;
datamodule2.IBStoredProc3.ParamByName('otv4').AsString:=edit8.Text;
datamodule2.IBStoredProc3.ParamByName('vopr').AsString:=edit4.Text;
if checkbox1.Checked=true then str33:=str33+'&1';
if checkbox2.Checked=true then str33:=str33+'&2';
if checkbox3.Checked=true then str33:=str33+'&3';
if checkbox4.Checked=true then str33:=str33+'&4';
datamodule2.IBStoredProc3.ParamByName('pr_otv').AsString:=str33;
datamodule2.IBStoredProc3.ExecProc;
DataModule2.IBTransaction1.CommitRetaining;
datamodule2.IBQuery3.Filtered:=false;
datamodule2.IBQuery3.Close; datamodule2.IBQuery3.Open;
datamodule2.IBQuery3.Filtered:=true; end; end;
3)Удаление данных.
Удаление записи из таблицы осуществляется методом Delete.Для удаления теста необходимо выбрать нужный тест и нажать кнопку «Удалить»
procedure TForm6.BitBtn1Click(Sender: TObject);
var n:integer;
begin
if (combobox1.Text<>'') and (combobox2.Text<>'') and (combobox3.Text<>'') then
begin
datamodule2.IBStoredProc1.StoredProcName:='PROC_SALE_DEL';
datamodule2.IBStoredProc1.Prepare;
datamodule2.IBQuery1.Close;
datamodule2.IBQuery1.Open;
datamodule2.IBQuery1.Locate('P_PREDM;P_TEMA;P_NAZV_TESTA',VarArrayOf([combobox1.Text,combobox2.Text,combobox3.Text]),[]);
n:=datamodule2.IBQuery1.fieldbyname('id_PREDM').AsInteger;
datamodule2.IBStoredProc1.ParamByName('param1').AsInteger:=n;
datamodule2.IBStoredProc1.ExecProc;
DataModule2.IBTransaction1.CommitRetaining;
form6.Close;
end else
showmessage('выберите название теста который хотите удалить');
end;