Устройство современного персонального компьютера

Автор работы: Пользователь скрыл имя, 05 Апреля 2012 в 10:19, курсовая работа

Краткое описание

Данная программа написана на основе языков визуального программирования и адаптирована под современные операционные системы Microsoft. Эта работа представляет собой проект, выполненный на языке программирования Delphi 7, с использованием дополнительных набор программ. Программа имеет приятный и интуитивно понятный интерфейс и реализована в виде приложения, которое устанавливается с дистрибутива в удобное для пользователя место на жестком диске.

Содержимое работы - 1 файл

Устройство компьютера.docx

— 349.55 Кб (Скачать файл)

Программный код программы теста с описанием действий:

 

//

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(FileName : TFilename; WriteText : string): boolean;

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.ExeName)+'\';

 

{Создаю (открываю) Ini-файл  в котором вопросы}

Ini := TIniFile.Create(PrgDir+'Test.ini');

 

{Получаю название теста}

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.Exename);

//запись в файл времени начала теста

   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(QuestNum>0) then {Проверяю не закончен ли тест}

  begin

  a:=scores;

 

 

   ShowMessage('Тест закончен, пригластие учителя'+#13);

   panel1.Visible:=true;

   label4.Caption:='Время начала  теста:  '+edit1.text+#13+'Время оканчания  теста:  '+timetostr(now)+#13+'Всего вопросов:   '+ inttostr(QuestCount) +#13   +'вы ответили  на:  ' +inttostr(a);

 

 

//Выведения оценки

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.Exename);

 

   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('Вопрос №'+inttostr(QuestNum),

              'Количество кнопок',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('Вопрос №'+inttostr(QuestNum),

              'Правильный вариант',-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. Поэтому для создания своего электронного учебника я выбрал именно эту среду программирования, ведь она дает практически безграничные возможности и большую платформу для развития вашего творчества.


Информация о работе Устройство современного персонального компьютера