Автор: Пользователь скрыл имя, 02 Мая 2012 в 20:43, дипломная работа
Ключевыми категориями в дидактике, как известно, являются обучение и образование. Дистанционное обучение (ДО) и дистанционное образование – это новое явление. Исследования содержания научной- педагогической и учебно-педагогической литературы, нормативно-правовых документов, касающихся образования, а также текстов журнальных статей и многочисленных выступлений, на конференциях и семинарах , показали, что отсутствует единое толкование сущности и содержания этих понятий даже применительно к традиционному образовательному процессу, не говоря уже о ДО. Дистанционное образование- это система в которой реализуется процесс дистанционного обучения и осуществляется индивидуумом достижение и подтверждение образовательного ценза.
Введение ………………………………………………………………………….3
1 Становление программно дистанционного комплекса обучения ……...........7
1.1 Развитие ПКДО в мире…………………………………………….....7
1.2 Потребители ПКДО………………………………………………....10
1.3 Особенности дистанционного обучения ………………………......14
2 Построение программно дистанционного комплекса обучения ………......19
2.1 Этап первый. Техническое задание ……………………………..…19
2.2 Этап второй. Методы тестирования и отладки ……………..…….32
2.3 Этап третий. Выбор операционной системы …………………..….34
3 Разработка программного комплекса дистанционного обучения …….……Х
3.1 Представление, описание и области применения Тест – программы ……………………………………………………………………….37
3.2 Алгоритм решения поставленной задачи…………….……………38
3.3 Описание интерфейса программного продукта…………………...39
4 Организационно - экономическая часть…..…………………………………45
4.1 Предварительная оценка научно-технической результативности разработки ПП …………………………………………………………………..45
4.2 Краткая характеристика разрабатываемого программного продукта и этапов разработки …...……………………………………………..46
4.3 Определение трудоемкости разработки ПП ………………………47
4.4 Распределение трудоемкости по этапам разработки и определение состава исполнителей ……………………………………………………………48
4.5 Расчет сметной стоимости и договорной цены разработки программного продукта……………………………………………………...…..50
4.6 Анализ конкурентоспособности разрабатываемого программного продукта……………………………………………………………….…………57
4.6.1 Анализ технической прогрессивности разрабатываемого программного продукта………………………………………………………....58
4.6.2 Анализ изменения функциональных возможностей разрабатываемого ПП……………………………………………………………59
4.6.3 Анализ соответствия разрабатываемого ПП нормативам………60
4.6.4 Оценка годовых эксплутационных издержек пользователя программного продукта………………………………………………………....61
4.6.5 Анализ экономических параметров………………………………63
4.6.6 Срок окупаемости программного продукта……………………..64
5 Безопасность и экологичность………………………………………………..66
5.1 Анализ опасных и вредных факторов, воздействующих на абитуриента при работе с тестирующей программой………………………...66
5.2 Опасность повышенного уровня напряженности электромагнитного поля…………………………………………………...........67
5.3 Воздействие шума на абитуриента. Защита от шума……………..69
5.4 Выбор цветовой гаммы в аудиториях……………………………...70
5.5 Освещение рабочего места………………………………………....71
5.6 Микроклимат рабочей зоны абитуриента…………………………73
5.7 Электробезопасность. Статическое электричество……………….73
5.7.1Обеспечение электробезопасности техническими способами и средствами……………………………………………………………………….75
5.7.2 Организационные и технические мероприятия по обеспечению электробезопасности...............................................……………………………..76
5.8 Оценка условий труда……………………………………………….76
5.9 Пожаробезопасность………………………………………………...79
5.9.1 Причины возникновения пожара…………………………………80
5.9.2 Профилактика пожара……………………………………………..81
Заключение………………………………………………………………84
Список использованной литературы……………………
try
SQLConPassLogon.Params.Values[
SQLConPassLogon.Params.Values[
SQLConPassLogon.Params.Values[
SQLConPassLogon.Params.Values[
//запоминаем значения
//UserHost знаем из ts.ini
UserName:= EditUserLogon.Text;
UserPassword:= EditPasswordLogon.Text;
//пытаемся соединиться
SQLConPassLogon.Connected:=
except
on EDataBaseError do
begin
MessageDlg('Ошибка подключения,'+#13+' повторите ввод',mtWarning,[mbOk],0);
logonError:=True;
{
после нескольких неудачных поытках подключения
-- спросить: уверены ли вы в правильности вводимых данных
-- перейти к LogonMore
}
end; {on EDataBaseError do}
end; {try}
SQLConPassLogon.Connected:=
if (not logonError) //если пользователь законнектился
then
begin
//сохраняем данные пользователя в sapphire.ini
CurrentFolder_ := ExtractFilePath(Application.
if (not FileExists(CurrentFolder_ + 'ts.ini')) //если файл не существует - создаем его
then
begin
AssignFile(F,CurrentFolder_+'
Rewrite(F);
CloseFile(F);
end;
IniFile:= TIniFile.Create(CurrentFolder_
IniFile.WriteString('main','
IniFile.WriteString('main','
IniFile.Free;
end; {if (not logonError)}
if (not logonError) then frmLogon.Close;
end;{if (key = VK_RETURN)}
end;
procedure TfrmLogon.FormShow(Sender: TObject);
//при показе загружаем данные из sapphire.ini
var CurrentFolder: string;
IniFileLogon: TIniFile;
begin
logonError:=True;
CurrentFolder := ExtractFilePath(Application.
//На всякий случай проверяем его существование
if FileExists(CurrentFolder+'ts.
then
begin
IniFileLogon:= TIniFile.Create(CurrentFolder+
UserHost:= IniFileLogon.ReadString('main'
EditUserLogon.text:=
beep;
IniFileLogon.Free;
end;
StatusBarfrmLogon.Panels[0].
StatusBarfrmLogon.Panels[1].
end;
end.
unit QuestionsUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls;
type
TFormQuestions = class(TForm)
StatusBarQuestions: TStatusBar;
GroupBoxQuestions: TGroupBox;
LabelSubject: TLabel;
LabelSection: TLabel;
LabelTema: TLabel;
LabelPart: TLabel;
LabelQuestion: TLabel;
EditQuestion: TEdit;
LabelAnswer_a: TLabel;
LabelAnswer_b: TLabel;
LabelAnswer_c: TLabel;
LabelAnswer_d: TLabel;
EditAnswer_a: TEdit;
EditAnswer_b: TEdit;
EditAnswer_c: TEdit;
EditAnswer_d: TEdit;
ButtonOk: TButton;
ButtonAdd: TButton;
RadioGroup: TRadioGroup;
ComboBoxSubject: TComboBox;
ComboBoxSection: TComboBox;
ComboBoxTema: TComboBox;
ComboBoxPart: TComboBox;
procedure FormShow(Sender: TObject);
procedure ButtonOkClick(Sender: TObject);
procedure ButtonAddClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormQuestions: TFormQuestions;
implementation
uses UnitDataModule;
{$R *.dfm}
procedure TFormQuestions.FormShow(
begin
ComboBoxSubject.Text:= '';
ComboBoxSection.Text:= '';
ComboBoxTema.Text:= '';
ComboBoxPart.Text:= '';
EditQuestion.Text:= '';
EditAnswer_a.Text:= '';
EditAnswer_b.Text:= '';
EditAnswer_c.Text:= '';
EditAnswer_d.Text:= '';
RadioGroup.ItemIndex:= -1;
if DataModuleTs.
then
begin
//заполняем ComboBoxSubject.items
DataModuleTs.
while not DataModuleTs.
do
begin
ComboBoxSubject.Items.Add(
DataModuleTs.
end;{while}
//заполняем ComboBoxSection.items
DataModuleTs.
while not DataModuleTs.
do
begin
ComboBoxSection.Items.Add(
DataModuleTs.
end;{while}
//заполняем ComboBoxTema.items
DataModuleTs.
while not DataModuleTs.
do
begin
ComboBoxTema.Items.Add(
DataModuleTs.
end;{while}
//заполняем ComboBoxPart.items
DataModuleTs.
while not DataModuleTs.
do
begin
ComboBoxPart.Items.Add(
DataModuleTs.
end;{while}
end;{begin}
end;
procedure TFormQuestions.ButtonOkClick(
begin
FormQuestions.Close;
end;
procedure TFormQuestions.ButtonAddClick(
var scriptAdd: string;
a,b,c,d :string;
begin
a:= EditAnswer_a.Text;
b:= EditAnswer_b.Text;
c:= EditAnswer_c.Text;
d:= EditAnswer_d.Text;
//проверка правильного ответа
case RadioGroup.ItemIndex of
0: a:='@@'+a;
1: b:='@@'+b;
2: c:='@@'+c;
3: d:='@@'+d;
else
MessageDlg('не выбран правильный ответ',mtError,[mbCancel],0);
end;
if RadioGroup.ItemIndex<> -1
then
begin
scriptAdd:= 'insert into ts.questions ('+
'Subject,Section,Tema,Part,
'Answer_a,Answer_b,Answer_c,
' ('''+ComboBoxSubject.Text+''',
''','''+ComboBoxTema.Text+''',
''','''+a+''','''+b+''','''+c+
runSQLScript(scriptAdd,'Ts',''
DataModuleTs.
FormQuestions.FormShow(Sender)
end;
end;
end.
program TS;
uses
Forms,
SysUtils,
TSUnitmain in 'TSUnitmain.pas' {TSmain},
LogonUnit in 'LogonUnit.pas' {frmLogon},
LogonMoreUnit in 'LogonMoreUnit.pas' {frmLogonMore},
NewUserUnit in 'NewUserUnit.pas' {frmNewUser},
UnitDataModule in 'UnitDataModule.pas' {DataModuleTs: TDataModule},
QuestionsUnit in 'QuestionsUnit.pas' {FormQuestions},
FormTestUnit in 'FormTestUnit.pas' {FormTest},
QuestionUnit in 'QuestionUnit.pas' {FormQuestion};
var yes_ini:boolean;
{$R *.res}
begin
//проверка существования файла ts.ini
if FileExists(ExtractFilePath(
then yes_ini := true //да - существует
else yes_ini := False;
//end if
try
if yes_ini
then //если мы обнаружили ts.ini
begin
frmLogon := TfrmLogon.Create(Application);
frmLogon.Update;
frmLogon.ShowModal;
end
else //если нет
begin
frmLogonMore := TfrmLogonMore.Create(
frmLogonMore.Update;
frmLogonMore.ShowModal;
end;
if not logonError //пользователь прошел проверку
then
begin
Application.Initialize;
Application.CreateForm(
Application.CreateForm(
Application.CreateForm(
Application.CreateForm(
Application.CreateForm(
Application.CreateForm(
end
else //пользователь не прошел проверку
begin
if yes_ini
then
begin
frmLogon.Hide;
frmLogon.Free;
end
else
begin
frmLogonMore.Hide;
frmLogonMore.Free;
end;
Halt(0);
end;
if yes_ini
then frmLogon.Hide
else frmLogonMore.Hide;
finally
if yes_ini
then frmLogon.Free
else frmLogonMore.Free;
end;
Application.Run;
end.
unit UnitDataModule;
interface
uses
SysUtils, Classes, DBXpress, DB, Dialogs, SqlExpr, FMTBcd, DBClient, Provider;
type
TDataModuleTs = class(TDataModule)
mySQLConnectionScripts: TSQLConnection;
SQLConnectionTs: TSQLConnection;
mySQLTableUsers: TSQLTable;
DataSetProviderUsers: TDataSetProvider;
ClientDataSetUsers: TClientDataSet;
DataSourceUsers: TDataSource;
ClientDataSetUsersUsersId: TIntegerField;
ClientDataSetUsersUserOrganiza
ClientDataSetUsersUserAtribute
ClientDataSetUsersUserCourse: TStringField;
ClientDataSetUsersUserGroup: TStringField;
ClientDataSetUsersUserSubgroup
ClientDataSetUsersUserName: TStringField;
ClientDataSetUsersUserToleranc
ClientDataSetUsersUserUpDate: TDateField;
ClientDataSetUsersUserMaster: TStringField;
mySQLQueryScripts: TSQLQuery;
mySQLTableQuestions: TSQLTable;
DataSetProviderQuestions: TDataSetProvider;
ClientDataSetQuestions: TClientDataSet;
DataSourceQuestions: TDataSource;
mySQLQueryTest: TSQLQuery;
DataSetProviderTest: TDataSetProvider;
ClientDataSetTest: TClientDataSet;
DataSourceTest: TDataSource;
private
{ Private declarations }
public
{ Public declarations }
end;
function DateToMySQL(dateStr: string):string;
procedure runSQLScript(script,DataBase,
procedure runSQLScriptQuery(script:
procedure runSQLConnectionTs;
var
DataModuleTs: TDataModuleTs;
implementation
uses TSUnitmain;
{$R *.dfm}
function DateToMySQL(dateStr: string):string;
var d,m,y : string;
begin
//переводим дату в формат MySql
// 08.11.2004 -> 2004-11-08
d:= copy(dateStr,0,2);
m:= copy(dateStr,4,2);
y:= copy(dateStr,7,4);
Result :=y+'-'+m+'-'+d;
end;
procedure runSQLConnectionTs;
begin
try
DataModuleTs.SQLConnectionTs.
DataModuleTs.SQLConnectionTs.
DataModuleTs.SQLConnectionTs.
DataModuleTs.SQLConnectionTs.
//пытаемся соединиться
DataModuleTs.SQLConnectionTs.
DataModuleTs.mySQLTableUsers.
DataModuleTs.
DataModuleTs.
DataModuleTs.
except
on EDataBaseError do MessageDlg('Ошибка подключения',mtWarning,[mbOk],
end; {try}
end;
procedure runSQLScriptQuery(script:
begin
if script<>''then
begin
DataModuleTs.
DataModuleTs.
DataModuleTs.
DataModuleTs.
DataModuleTs.
if DataModuleTs.
then UserAtribute:= DataModuleTs.
end;
end;
procedure runSQLScript(script,DataBase,
begin
DataModuleTs.
DataModuleTs.
DataModuleTs.
DataModuleTs.
DataModuleTs.
DataModuleTs.
if script<>''then DataModuleTs.
DataModuleTs.
end;
end.
unit LogonMoreUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, DBXpress, DB, SqlExpr, inifiles;
type
TfrmLogonMore = class(TForm)
GroupBox: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
EditHostLogonMore: TEdit;
UserPasswordBox: TGroupBox;
Label3: TLabel;
Label5: TLabel;
LabelUser: TLabel;
LabelPassword: TLabel;
EditUserLogonMore: TEdit;
EditPasswordLogonMore: TEdit;
StatusBar1: TStatusBar;
ButtonOk: TButton;
SQLConPassLogonMore: TSQLConnection;
procedure ButtonOkClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmLogonMore: TfrmLogonMore;
implementation
uses TSUnitmain;
{$R *.dfm}
procedure TfrmLogonMore.ButtonOkClick(
var CurrentFolder_: string;
IniFile: TIniFile;
F: File;
begin
logonError:=false;
try
SQLConPassLogonMore.Params.
SQLConPassLogonMore.Params.
SQLConPassLogonMore.Params.
SQLConPassLogonMore.Params.
//запоминаем значения
UserHost:= EditHostLogonMore.Text;
UserName:= EditUserLogonMore.Text;
UserPassword:= EditPasswordLogonMore.Text;
//пытаемся соединиться
SQLConPassLogonMore.Connected:
except
on EDataBaseError do
begin
MessageDlg('Ошибка подключения;'+#13+' повторите ввод',mtWarning,[mbOk],0);
logonError:=True;
end;
end; {try}
SQLConPassLogonMore.Connected:
//если пользователь законнектился-> сохраняем эти данные в sapphire.ini
if (not logonError)
then
begin
CurrentFolder_ := ExtractFilePath(Application.
//если файл не существует - создаем его
if (not FileExists(CurrentFolder_ + 'ts.ini'))
then
begin
AssignFile(F,CurrentFolder_+'
Rewrite(F);
CloseFile(F);
end;
IniFile:= TIniFile.Create(CurrentFolder_
IniFile.WriteString('main','
IniFile.WriteString('main','
IniFile.Free;
end; {if (not logonError)}
if (not logonError) then frmLogonMore.Close;
end;
procedure TfrmLogonMore.FormShow(Sender: TObject);
begin
logonError:=True;
end;
end.
unit NewUserUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TfrmNewUser = class(TForm)
LabelUserOrganization: TLabel;
LabelUserAtribute: TLabel;
LabelUserCourse: TLabel;
LabelUserGroup: TLabel;
LabelUserSubgroup: TLabel;
LabelUserName: TLabel;
CheckBoxUserTolerance: TCheckBox;
StatusBar1: TStatusBar;
ButtonOk: TButton;
GroupBox: TGroupBox;
ComboBoxUserAtribute: TComboBox;
EditUserPassword: TEdit;
LabelUserPassword: TLabel;
ComboBoxUserOrganization: TComboBox;
ComboBoxUserCourse: TComboBox;
ComboBoxUserGroup: TComboBox;
EditUserName: TEdit;
ComboBoxUserSubgroup: TComboBox;
procedure ButtonOkClick(Sender: TObject);
Информация о работе Программный комплекс дистанционного обучения