5.3 Система помощи
В программе реализована всплывающая справка.
Заключение
Поставленная задача выполнена полностью. Разработанный электронный учебник можно успешно применять на практике, внедряя его в учебный процесс. Однако, как и в любом приложении в программе описанной выше имеются множество недостатков.
В частности у программы отсутствует возможность контроля знаний путем проведения тестирования, что не является плюсом представленного продукта.
Кроме того, пользовательский интерфейс продуман не достаточно профессионально, что вызвано отсутствием опыта у разработчика.
Несмотря на указанные недостатки, реализованное программное средство пригодно для использования в ходе учебного процесса и для самостоятельного изучения тем по предмету язык программирования C++. В дальнейшем при необходимости его можно легко модернизировать и доработать, так как при разработке соблюдался единый удобный для понимания стиль программирования.
Список использованных источников
1. Либерти, Джесс. Освой самостоятельно С++ за 21 день: 3-е изд, пер. с англ.: Уч. пос. — М.: Издательский дом «Вильямс», 2000. — 816 с.: ил. — Парал. тит. англ.
2. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. 2-е изд.: Пер. с англ. – М.: Издательство Бином, СПб.: Невский диалект, 1999.
3. Прата Стивен. Язык программирования C++. Лекции и упражнения.Учебник.: Пер. с англ. – М.: Издательство Диасофт, 2004.
Приложение А Текст программы
//файл с головной программой Project1.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
USEFORM("Unit1.cpp", Form1);
USEFORM("Unit2.cpp", Form2);
USEFORM("Unit3.cpp", Form3);
USEFORM("Unit4.cpp", Form4);
//---------------------------------------------------------------------------
#include "Unit1.h"
HRGN Rgn;
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->CreateForm(__classid(TForm3), &Form3);
Application->CreateForm(__classid(TForm4), &Form4);
{
Rgn=CreateEllipticRgn(0,0,Form1->Width,Form1->Height);
SetWindowRgn(Form1->Handle,Rgn,True);
}
Application->CreateForm(__classid(TForm2), &Form2);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
//---------------------------------------------------------------------------
// Заголовочный файл Unit1.H с объявлением класса формы Form1
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Menus.hpp>
#include <Buttons.hpp>
#include <ExtCtrls.hpp>
#include <ImgList.hpp>
#include <jpeg.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:// IDE-managed Components
TSpeedButton *SpeedButton1;
TSpeedButton *SpeedButton2;
TImage *logo;
void __fastcall SpeedButton1Click(TObject *Sender);
void __fastcall SpeedButton2Click(TObject *Sender);
void __fastcall SpeedButton1MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y);
void __fastcall FormMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y);
void __fastcall SpeedButton2MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y);
private:// User declarations
public:// User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
// Заголовочный файл Unit2.H с объявлением класса главной формы Form2
//---------------------------------------------------------------------------
#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Buttons.hpp>
#include <Menus.hpp>
#include <ComCtrls.hpp>
#include <Dialogs.hpp>
#include <ImgList.hpp>
#include <ExtCtrls.hpp>
#include <ToolWin.hpp>
//---------------------------------------------------------------------------
class TForm2 : public TForm
{
__published:// IDE-managed Components
TMainMenu *MainMenu1;
TMenuItem *N1;
TMenuItem *N2;
TMenuItem *N3;
TMenuItem *N4;
TSpeedButton *SpeedButton1;
TTreeView *TreeView1;
TMemo *Memo1;
TMenuItem *N5;
TMenuItem *N6;
TFontDialog *FontDialog1;
TSpeedButton *SpeedButton2;
TSpeedButton *SpeedButton3;
TFindDialog *FindDialog1;
TMenuItem *N7;
TMenuItem *N9;
TSpeedButton *SpeedButton4;
TSaveDialog *SaveDialog1;
void __fastcall SpeedButton1Click(TObject *Sender);
void __fastcall TreeView1DblClick(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall N6Click(TObject *Sender);
void __fastcall SpeedButton3Click(TObject *Sender);
void __fastcall SpeedButton2Click(TObject *Sender);
void __fastcall TreeView1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift);
void __fastcall Memo1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift);
void __fastcall N4Click(TObject *Sender);
void __fastcall N3Click(TObject *Sender);
void __fastcall N7Click(TObject *Sender);
void __fastcall FindDialog1Find(TObject *Sender);
void __fastcall N9Click(TObject *Sender);
void __fastcall SpeedButton4Click(TObject *Sender);
private:// User declarations
public:// User declarations
__fastcall TForm2(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm2 *Form2;
//---------------------------------------------------------------------------
#endif
// Заголовочный файл Unit3.H с объявлением класса формы Form3
//---------------------------------------------------------------------------
#ifndef Unit3H
#define Unit3H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <ImgList.hpp>
#include <Buttons.hpp>
//---------------------------------------------------------------------------
class TForm3 : public TForm
{
__published:// IDE-managed Components
TSpeedButton *SpeedButton1;
TLabel *Label1;
TLabel *Label2;
TLabel *Label3;
TLabel *Label4;
void __fastcall SpeedButton1Click(TObject *Sender);
private:// User declarations
public:// User declarations
__fastcall TForm3(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm3 *Form3;
//---------------------------------------------------------------------------
#endif
// Заголовочный файл Unit4.H с объявлением класса формы Form4
//---------------------------------------------------------------------------
#ifndef Unit4H
#define Unit4H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <ImgList.hpp>
#include <Buttons.hpp>
//---------------------------------------------------------------------------
class TForm4 : public TForm
{
__published:// IDE-managed Components
TSpeedButton *SpeedButton1;
TLabel *Label1;
TLabel *Label2;
TLabel *Label3;
TLabel *Label4;
TLabel *Label5;
void __fastcall SpeedButton1Click(TObject *Sender);
private:// User declarations
public:// User declarations
__fastcall TForm4(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm4 *Form4;
//---------------------------------------------------------------------------
#endif
// Файл Unit1.cpp для формы Form1
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int c,c1;
bool fl,fl2;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
Form2->Visible=true;
Form1->Visible=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
Application->Terminate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton1MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
fl=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
fl=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton2MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
Form1->Repaint();
}
//---------------------------------------------------------------------------
// Файл Unit2.cpp для главной формы Form2
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#include "Unit1.h"
#include "Unit3.h"
#include "Unit4.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
int i=0;
bool fg1,fg2;
int v1,v2,c2;
int SelPos;
AnsiString a;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::SpeedButton1Click(TObject *Sender)
{
Application->Terminate();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::TreeView1DblClick(TObject *Sender)
{
if (Form2->TreeView1->Selected->AbsoluteIndex==1)
{Form2->Memo1->Lines->LoadFromFile("pages/1.dat");
a=Form2->Memo1->Lines->Text;
};
if (Form2->TreeView1->Selected->AbsoluteIndex==2)
{Form2->Memo1->Lines->LoadFromFile("pages/2.dat");
a=Form2->Memo1->Lines->Text;
};
if (Form2->TreeView1->Selected->AbsoluteIndex==3)
{Form2->Memo1->Lines->LoadFromFile("pages/3.dat");
a=Form2->Memo1->Lines->Text;
};
if (Form2->TreeView1->Selected->AbsoluteIndex==4)
{Form2->Memo1->Lines->LoadFromFile("pages/4.dat");
a=Form2->Memo1->Lines->Text;
};
if (Form2->TreeView1->Selected->AbsoluteIndex==5)
{Form2->Memo1->Lines->LoadFromFile("pages/5.dat");
a=Form2->Memo1->Lines->Text;
};
if (Form2->TreeView1->Selected->AbsoluteIndex==6)
{Form2->Memo1->Lines->LoadFromFile("pages/6.dat");
a=Form2->Memo1->Lines->Text;
};
if (Form2->TreeView1->Selected->AbsoluteIndex==7)
{Form2->Memo1->Lines->LoadFromFile("pages/7.dat");
a=Form2->Memo1->Lines->Text;
};
if (Form2->TreeView1->Selected->AbsoluteIndex==8)
{Form2->Memo1->Lines->LoadFromFile("pages/8.dat");
a=Form2->Memo1->Lines->Text;
};
if (Form2->TreeView1->Selected->AbsoluteIndex==9)
{Form2->Memo1->Lines->LoadFromFile("pages/9.dat");
a=Form2->Memo1->Lines->Text;
};
if (Form2->TreeView1->Selected->AbsoluteIndex==10)
{Form2->Memo1->Lines->LoadFromFile("pages/10.dat");
a=Form2->Memo1->Lines->Text;
};
…………………………………………………………
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
Application->Terminate();
//---------------------------------------------------------------------------
void __fastcall TForm2::N6Click(TObject *Sender)
{ if (FontDialog1->Execute())
{Form2->Memo1->Font=Form2->FontDialog1->Font;
Form2->TreeView1->Font=Form2->FontDialog1->Font;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm2::SpeedButton3Click(TObject *Sender)
{
int z=Form2->TreeView1->Items->Owner->Selected->SelectedIndex;
if (z<Form2->TreeView1->Items->Count-1){
Form2->TreeView1->Items->Item[z+1]->Selected=true;
Form2->TreeView1->OnDblClick(Sender); }
}
//---------------------------------------------------------------------------
void __fastcall TForm2::SpeedButton2Click(TObject *Sender)
{
int z=Form2->TreeView1->Items->Owner->Selected->SelectedIndex;
if (z>0){
Form2->TreeView1->Items->Item[z-1]->Selected=true;
Form2->TreeView1->OnDblClick(Sender);}
}
//---------------------------------------------------------------------------
void __fastcall TForm2::TreeView1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if (Key==VK_RETURN){Form2->SpeedButton3->OnClick(Sender);}
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Memo1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if (Key==VK_RETURN){Form2->SpeedButton3->OnClick(Sender);}
}
//---------------------------------------------------------------------------
void __fastcall TForm2::N4Click(TObject *Sender)
{
Form3->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::N3Click(TObject *Sender)
{
Form4->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::N7Click(TObject *Sender)
{
Form2->FindDialog1->Execute();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FindDialog1Find(TObject *Sender)
{AnsiString d;
for (i=0;i<Form2->FindDialog1->FindTextA.Length();i++)
{d=d+i;}
if (Form2->FindDialog1->Options.Contains(frFindNext)) {
SelPos=a.Pos(Form2->FindDialog1->FindTextA);
if (SelPos>0){
Memo1->SelStart=SelPos-1;
Memo1->SelLength=Form2->FindDialog1->FindTextA.Length();
a.Delete(SelPos,Form2->FindDialog1->FindTextA.Length());
a.Insert(d,SelPos);
}
else {
ShowMessage("Текст '"+Form2->FindDialog1->FindTextA+"' не найден");
a=Form2->Memo1->Lines->Text;}
Form2->SetFocus();
Form2->Memo1->SetFocus();}
}
//---------------------------------------------------------------------------
void __fastcall TForm2::N9Click(TObject *Sender)
{
if (Form2->N9->Checked) {
Form2->N9->Checked=false;
Form2->SpeedButton1->ShowHint=false;
Form2->SpeedButton2->ShowHint=false;
Form2->SpeedButton3->ShowHint=false;
Form2->TreeView1->ShowHint=false;
}
else {Form2->N9->Checked=true;
Form2->SpeedButton1->ShowHint=true;
Form2->SpeedButton2->ShowHint=true;
Form2->SpeedButton3->ShowHint=true;
Form2->TreeView1->ShowHint=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm2::SpeedButton4Click(TObject *Sender)
{
if (SaveDialog1->Execute()) {
Memo1->Lines->SaveToFile(SaveDialog1->FileName);
}
ChDir(ExtractFilePath(Application->ExeName));
}
//---------------------------------------------------------------------------
// Файл Unit3.cpp для формы Form3
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
int c3;
//---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm3::SpeedButton1Click(TObject *Sender)
{
Form3->Close();
}
//---------------------------------------------------------------------------//
Файл Unit4.cpp для формы Form4
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit4.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm4 *Form4;
int c4;
//---------------------------------------------------------------------------
__fastcall TForm4::TForm4(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm4::SpeedButton1Click(TObject *Sender)
{
Form4->Close();
}
//---------------------------------------------------------------------------
Приложение Б
Диаграмма вариантов использования
... для обучения физике и математике, в силу их отсутствия на рынке. Исходя из вышеизложенных соображений, я считаю, что тема моей дипломной работы «Разработка электронного учебника по математике для студентов I курса отделения информатика-иностранный язык» является актуальной в силу того, что потребность в таком электронном учебнике несомненно есть, а самих учебников по данной теме либо совсем нет, ...
... Моделирование одежды», которые должны быть сформулированы у студентов в процессе изучения дисциплины. [26.6с.] 2.2 Подбор дидактического материала для разработки фрагмента электронного учебника по теме «Моделирование лифа» дисциплине «Моделирование лифа» В энциклопедии профессионального обучения дается следующее понятие дидактического материала: Дидактический материал – средство обучения, ...
... требование к качеству УМКД. Вышеуказанные аспекты определили актуальность исследования и явились причиной начала курсовой работы по теме «Проектирование и создание электронного учебника по дисциплине «Основы творческо-конструкторской деятельности». Мы считаем, что работа в данном направлении создаст предпосылки в решении выявленных проблем. Объектом исследования является образовательный ...
... ЭУ и начинается его подготовка к эксплуатации. Следует отметить, что подготовка к эксплуатации ЭУ может предполагать некоторые коррекции его содержательной и мультимедийной компонент. Принципы создания электронного учебника включают в себя: 1. Принцип квантования: разбиение материала на разделы, состоящие из модулей, минимальных по объему, но замкнутых по содержанию. 2. Принцип ...
0 комментариев