Автор работы: Пользователь скрыл имя, 05 Апреля 2012 в 10:19, курсовая работа
Данная программа написана на основе языков визуального программирования и адаптирована под современные операционные системы Microsoft. Эта работа представляет собой проект, выполненный на языке программирования Delphi 7, с использованием дополнительных набор программ. Программа имеет приятный и интуитивно понятный интерфейс и реализована в виде приложения, которое устанавливается с дистрибутива в удобное для пользователя место на жестком диске.
Программный код программы теста с описанием действий:
//
private
QuestNum : Integer; {Номер
текущего показываемого
QuestCount : Integer; {Всего вопросов}
PrgDir : String; {Каталог в котором программа}
Ini: TiniFile;
Btn : Array of TradioButton; {Объявляю массив кнопок}
Scores: Integer; {Количество набранных баллов}
public
procedure Clear; {Удаление всех кнопок}
procedure Insert(Num: Integer); {Добавляю кнопку с номером Num}
procedure ShowQuestion; {Вывожу вопрос}
end;
var
MainForm: TMainForm;
a: integer;
//Функция для записи
результатов теста на
function AppendOrWriteTextToFile(
var
f : Textfile;
begin
Result := False;
AssignFile(f, FileName);
try
if FileExists(FileName) = False then
Rewrite(f)
else
begin
Append(f);
end;
Writeln(f, WriteText);
Result := True;
finally
CloseFile(f);
end;
end;
//Процедура очистки формы
procedure TMainForm.Clear;
var
i : Integer;
a: integer;
begin
{Уничтожаю кнопки}
for i:=0 to length(Btn)-1 do
Btn[i].Hide;
{Освобождаю память}
SetLength(Btn,0);
end;
//При загрузки приложения
procedure TMainForm.FormCreate(Sender: TObject);
var
dir, log : string;
begin
{получаю каталог в котором программа}
PrgDir := ExtractFileDir(Application.
{Создаю (открываю) Ini-файл в котором вопросы}
Ini := TIniFile.Create(PrgDir+'Test.
{Получаю название теста}
Caption := Ini.ReadString('Тест', 'Название теста', 'Тест без названия');
{Вопросов еще нет}
QuestNum :=0;
Scores := 0; {Количество набранных баллов}
QuestCount := Ini.ReadInteger('Тест',
'Количество Вопросов ', -2);
if QuestCount<-1 then {при удалении Ini-файла, он сам себя создает}
Ini.WriteInteger('Тест', 'Количество Вопросов ', -1);
label2.Hide;
QuestNum := 1;
ShowQuestion;
dir := ExtractFilePath(Application.
//запись в файл времени начала теста
log := 'Время начала теста: ' + TimeToStr(now);
AppendOrWriteTextToFile(dir + '\logfile.txt', log) ;
Edit1.Text:=TimeToStr(now);
end;
//при закрытии программы
procedure TMainForm.FormDestroy(Sender: TObject);
begin
Clear;
Ini.Free; {Закрываю (Уничтожаю) Ini-Файл}
end;
//при выбора ответа пользователем
procedure TMainForm.Insert(Num: Integer);
begin
Btn[Num-1] := TradioButton.Create(Self);
Btn[Num-1].Caption := Ini.ReadString('Вопрос №'+inttostr(QuestNum),
'Текст кнопки '+inttostr(Num),inttostr(Num))
Btn[Num-1].Top := (Num-1)*(Btn[Num-1].Height + 4);
Btn[Num-1].Width := groupBox1.Width-4;
Btn[Num-1].Parent := groupBox1; {Вывожу кнопку на ScrollBox}
{У всех кнопок один и тот же обаботчик события}
Btn[Num-1].OnClick := ButtonClick;
Btn[Num-1].Tag := Num;
end;
//Отображения кнопок и выведение результата
procedure TMainForm.ShowQuestion;
var
dir, log : string;
a: integer;
Count,i : Integer;
r:integer;
begin
Clear;
if (QuestNum>QuestCount)and(
begin
a:=scores;
ShowMessage('Тест закончен, пригластие учителя'+#13);
panel1.Visible:=true;
label4.Caption:='Время начала
теста: '+edit1.text+#13+'Время
//Выведения оценки
if a=(0)
then
r:=2;
if a=(1)
then
r:=2;
if a=(2)
then
r:=2;
if a=(3)
then
r:=(3);
if a=(4)
then
r:=4;
if a=(5)
then
r:=5 ;
label7.Caption:=inttostr(r);
//Запись в лог-файл
dir := ExtractFilePath(Application.
log := 'Время оканчания теста: ' + TimeToStr(now);
AppendOrWriteTextToFile(dir + '\logfile.txt', log) ;
log := 'Правильных ответов '+ inttostr(a);
AppendOrWriteTextToFile(dir + '\logfile.txt', log) ;
log := '----'+#13
+'+++';
AppendOrWriteTextToFile(dir + '\logfile.txt', log) ;
Exit;
end;
Label1.Caption := Ini.ReadString('Вопрос №'+inttostr(QuestNum),
'Текст вопроса', 'Вопрос отсутствует');
{количество кнопок}
Count := Ini.ReadInteger('Вопрос №'+
'Количество кнопок',0);
if Count=0 then Exit;
SetLength(Btn, Count);{Создаю массив кнопок}
for i:=1 to Count do
Insert(i); {Добавляю кнопку}
end;
procedure TMainForm.ButtonClick(Sender: TObject);
var
Answer : Integer; {Правильный ваиант ответа}
a:integer;
begin {Обработчик события нажатия на кнопке}
{Надо проверить вызван ли обработчик события кнопкой}
if not(Sender is TradioButton) then Exit; {Если нет то выхожу из обработчика}
{Узнаю какой правильный вариант ответа}
Answer := Ini.ReadInteger('Вопрос №'+
'Правильный вариант',-1);
if Answer<0 then Exception.Create('В файле
с вопросами ненаписан
{Проверяю кокая кнопка была нажата}
if (Sender as TradioButton).Tag=Answer then
begin {Нажали правильную кнопку}
{Здесь можно написать реакцию на выбор правильного ваианта теста
например : увеличение переменной правлиьных ответов}
inc(Scores);
ShowMessage('Правильный ответ');
a:=scores;
end
else
begin {Нажали не ту кнопку}
ShowMessage('Неправильный ответ');
end;
{Переход к следующему вопросу}
inc(QuestNum);
ShowQuestion;
end;
Заключение.
Система программирования Delphi 7 – наиболее популярная, очень удобная и быстрая среда для визуального проектирования Windows-приложений с развитыми механизмами повторного использования программного кода. Существенной чертой Delphi является компонентная модель разработки программных продуктов. Суть модели заключается в поддержки системой расширяемого набора объектных компонентов, из которых и строится программа. Delphi 7 предоставляет огромные возможности пользователю для создание собственных приложений, любого направление, так как имеет гибкую систему компонентов, которые по мере необходимости возможно добавлять в среду Delphi. Поэтому для создания своего электронного учебника я выбрал именно эту среду программирования, ведь она дает практически безграничные возможности и большую платформу для развития вашего творчества.
Информация о работе Устройство современного персонального компьютера