Создание электронно-обучающего пособия по программированию
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
оки\crt.htm);node.StateIndex = 73 then.Navigate(ProgramPath+уроки\graph.htm);node.StateIndex = 74 then.Navigate(ProgramPath+уроки\sreda_tp.htm);;TForm2.FormCreate(Sender: TObject);:=ExtractFilePath(Application.ExeName);;TForm2.TreeView1DblClick(Sender: TObject);.ShowModal;;TForm2.N8Click(Sender: TObject);
begin(Эта программа предназначена для самостоятельного изучения студентами языка Pascal, учебник содержит примеры задач, тесты, а также теорию по языку Pascal. Удачного Вам обучения!);;TForm2.N6Click(Sender: TObject);;;.
Приложение Б
Модуль: Тестовая программа
unit Unit3;
interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, CheckLst, ComCtrls, ToolWin;=^TQuestion;=record: String[255];:Integer;: array[0..10] of String[255];: array[0..10] of boolean;;= class(TForm): TToolBar;: TToolButton;: TToolButton;: TToolButton;: TStaticText;: TCheckListBox;: TButton;: TOpenDialog;FormShow(Sender: TObject);FormDestroy(Sender: TObject);ToolButton1Click(Sender: TObject);ToolButton2Click(Sender: TObject);Button1Click(Sender: TObject);ToolButton3Click(Sender: TObject);
{ Private declarations }:TList;, QuestionNumber, FalseNumber: Integer;: String;NextQuestion;LoadFile;
{ Public declarations };: TForm3;
{$R *.dfm}TForm3.FormShow(Sender: TObject);:=TList.Create;;TForm3.FormDestroy(Sender: TObject);.Free;;TForm3.ToolButton1Click(Sender: TObject);
//Показать окно открытия файлаnot OpenDialog1.Execute then exit;:=OpenDialog1.FileName;.Enabled:=true;;TForm3.ToolButton2Click(Sender: TObject);;:=0;:=0;.Enabled:=true;;;TForm3.LoadFile;:TFileStream;, Count:Integer;:String[5];:String[255];:PQuestion;.Clear;
//Открыть файл для чтения:=TFileStream.Create(FileName, fmOpenRead);
//Перейти в начало файла и прочитать заголовок
fs.Seek(0,soFromBeginning);.read(Str, SizeOf(Str));
//Если заголовок равен тексу "Тест", значит это "вопрос-
//варианты ответов".Str=Тест then
begin
//Прочитать имя проекта.Read(ProjectName, sizeof(ProjectName));
Caption:=ProjectName;
//Прочитать количество вопросов
fs.Read(Count, sizeof(Count));
//Запустить цикл чтения вопросовi:=0 to Count-1 do
//Создаю новую структуру в памяти для вопроса
NewQuest:=New(PQuestion);
//Читаю структуру.Read(NewQuest^, sizeof(TQuestion));
//Добавляю структуру в контейнер
QuestionList.Add(NewQuest);
end;
QuestionCheckList.Checked[i] then:=false;OK=false then(FalseNumber);.Delete(Question);QuestionNumberQuestionCheckList.Checked[i] then:=false;OK=false then(FalseNumber);.Delete(Question);QuestionNumber<5 then.MessageBox(PChar(Вы закончили тест с количеством ошибок = +IntToStr(FalseNumber)), Внимание!!!);.Enabled:=false;;;TForm3.ToolButton3Click(Sender: TObject);;;.
Приложение В
Модуль Главное окно тестового редактора.
unit MainUnit;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Menus, ComCtrls, ToolWin, ImgList, ExtCtrls;= class(TForm): TImageList;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TControlBar;: TToolBar;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TStatusBar;: TSaveDialog;: TOpenDialog;AboutButtonClick(Sender: TObject);ExitButtonClick(Sender: TObject);FormShow(Sender: TObject);NewButtonClick(Sender: TObject);SaveButtonClick(Sender: TObject);SaveAsMenuClick(Sender: TObject);OpenButtonClick(Sender: TObject);
{ Private declarations }ShowHint(Sender: TObject);SaveTest1;
{ Public declarations };: TTestEditorForm;AboutUnit, NewTestWizardUnit, QuestionResultUnit;
mrOKthenexit;NewTestForm.TestTypeBox.ItemIndex=0then:=TQuestionResultForm.Create(Owner);.ProjectName:=NewTestForm.TestNameEdit.Text;.Caption:=QuestionResultForm.Caption+:+QuestionResultForm.ProjectName;;;TTestEditorForm.SaveButtonClick(Sender:TObject);">{$R *.dfm}TTestEditorForm.AboutButtonClick(Sender: TObject);.ShowModal;;TTestEditorForm.ExitButtonClick(Sender: TObject);;;TTestEditorForm.ShowHint(Sender: TObject);.Panels.Items[0].Text := Application.Hint;;TTestEditorForm.FormShow(Sender: TObject);.OnHint := ShowHint;;TTestEditorForm.NewButtonClick(Sender: TObject);.ShowModal;NewTestForm.ModalResult<>mrOK then exit;NewTestForm.TestTypeBox.ItemIndex=0 then:=TQuestionResultForm.Create(Owner);.ProjectName:=NewTestForm.TestNameEdit.Text;.Caption:=QuestionResultForm.Caption+ : +QuestionResultForm.ProjectName;;;TTestEditorForm.SaveButtonClick(Sender: TObject);
begin
//(нет активных окон), то выход
if ActiveMDIChild=nil then exit;
//Если окно имеет имя QuestionResultForm, то это
//вопрос-варианты ответов и вызываем для сохранения
//процедуру SaveTest1.ActiveMDIChild.Name=QuestionResultForm then;;TTestEditorForm.SaveTest1;:TFileStream;:Integer;:String[5];
//Если у активного окна в свойстве FileName пусто,
//то нет имени файла и нужно вызвать обработчик события
//меню "Сохранить как...", чтобы появилось окно ввода
//имени файлаTQuestionResultForm(ActiveMDIChild).FileName= then(nil);;;
//Создаю новый файл. Если он уже существовал, то его
//содержимое будет уничтожено:=TFileStream.Create(TQuestionResultForm(ActiveMDIChild).FileName, fmCreate);
//Сохраняю в начале файла текст "Тест", чтобы по нему потом
//определить к чему относиться данный файл.
Str:=Тест;.Write(Str, SizeOf(Str));
//Сохранить имя проекта.Write(TQuestionResultForm(ActiveMDIChild).ProjectName, sizeof(TQuestionResultForm(ActiveMDIChild).ProjectName));
//Сохранить количество вопросов.Write(TQuestionResultForm(ActiveMDIChild).QuestionList.Count, sizeof(TQuestionResultForm(ActiveMDIChild).QuestionList.Count));
//Запускаю цикл, в котором сохраняються все вопросы.
for i:=0 to TQuestionResultForm(ActiveMDIChild).QuestionList.Count-1 do.Write(PQuestion(TQuestionResultForm(ActiveMDIChild).QuestionList[i])^, sizeof(TQuestion));
//Закрыть файл.Free;;;TTestEditorForm.SaveAsMenuClick(Sender: TObject);SaveDialog1.Execute then(ActiveMDIChild).FileName:=SaveDialog1.FileName;(nil);;;TTestEditorForm.OpenButtonClick(Sender: TObject);:TFileStream;, Count:Integer;:String[5];:PQuestion;
//Показать окно открытия файлаnot OpenDialog1.Execute then exit;
//Открыть файл для чтения:=TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
//Перейти в начало файла и прочитать заголовок
fs.Seek(0,soFromBeginning);.read(Str, SizeOf(Str));
//Если заголовок равен тексу "Тест", значит это "вопрос-
//варианты ответов".
if Str=Тест then
begin
//Создать новое окно теста:=TQuestionResultForm.Create(Owner);
//Сохранить имя открытого файла в объекте окна
QuestionResultForm.FileName:=OpenDialog1.Filename;
//Прочитать имя проекта.Read(QuestionResultForm.ProjectName, sizeof(QuestionResultForm.ProjectName));
try
//Прочитать количество вопросов
fs.Read(Count, sizeof(Count));
//Запустить цикл чтения вопросовi:=0 to Count-1 do
//Создаю новую структуру в памяти для вопроса
NewQuest:=New(PQuestion);
//Читаю структуру.Read(NewQuest^, sizeof(TQuestion));
//