Смекни!
smekni.com

Основы разработки электронного учебника (стр. 3 из 4)

Для перехода к предыдущему или следующему разделу предусмотрены кнопки "Предыдущая", "Следующая" при нажатии которых вызывается событие TForm2::SpeedButton2Click и TForm2::SpeedButton3Click соответственно.

В программе предусмотрены функции выбора шрифта, поиска, отображения всплывающих подсказок, а так же сохранение выбранной темы в *.txt фаил.

Для изменения шрифта следует выбрать Опции -> Шрифт после чего запускается стандартное окно выбора шрифта FontDialog в котором можно выбрать шрифт, стиль, размер, видоизменение и цвет текста отображаемого на главной форме.

Для поиска следует выбрать Опции -> Поиск после чего запускается стандартное окно поиска FindDialog в котором можно задать текст для поиска (поиск осуществляется в открытом в данный момент разделе).

Отображение всплывающих подсказок может быть включено и отключено, которое осуществляется при выборе Опции -> Всплывающие подсказки.

Сохранение осуществляется путём выбора нужной темы(отобразить на экране) и нажать в правом нижнем углу кнопку сохранить. Далее выбрать путь сохранения файла.

При закрытии главной формы вызывается событие TForm2::FormClose, которое вызывает функцию Application->Terminate().

4.3 Модули реализации

В разработанный проект входят одиннадцать модулей – файл проекта (головная программа – файл Project1.cpp), заголовочный файл пригласительной формы (описание класса TForm1— файл Unit1.h), файл с реализацией функций-членов класса TForm1 (файл Unit1.cpp),заголовочный файл главной формы (описание класса TForm2— файл Unit2.h), файл с реализацией функций-членов класса TForm2 (файл Unit2.cpp), заголовочный файл формы об авторе (описание класса TForm3— файл Unit3.h), файл с реализацией функций-членов класса TForm3 (файл Unit3.cpp), заголовочный файл формы о программе (описание класса TForm4— файл Unit4.h), файл с реализацией функций-членов класса TForm4 (файл Unit4.cpp).

4.4 Взаимосвязь модулей

Наиболее распространенная связь, которая может существовать между двумя модулями, - компиляционная зависимость. В C++ такая зависимость указывается директивой #include (файл Form2.cpp содержит директиву #include ко всем модулям программы)

4.5 Тестирование

Тестирование программы проводилось в процессе разработки программы и по завершению этой разработки. В ходе тестирования проверялась работоспособность каждой операции, которую выполняет программа, моделировались все возможные действия пользователей и проверялась реакция программы на них.


5 Описание применения

5.1 Назначение программы

Данная программа представляет собой программно-педагогическое средство и предназначена для изучения материалов по предмету C++.

5.2 Область применения

Разработанный программный продукт может применяться как одиночным пользователем в целях самостоятельной проработки материала по языку С++, так и в учебных заведениях в качестве вспомогательного средства в учебном процессе.

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,