Тестирующая программа для проверки остаточных знаний

Автор работы: Пользователь скрыл имя, 06 Декабря 2012 в 02:01, практическая работа

Описание работы

Цель работы: Написание программы в соответствии с общепринятыми этапами разработки программных продуктов.
При работе над практической работой использовался компьютер со следующей конфигурацией:
Процессор Intel Pentium D CPU 2.80GH2
Мат. Плата: n Force4 Elite Group №FORCE4-A754
Оперативная память DDR 512Mb
Видеокарта Palit GeForce 9600GSO - PCI-E, 768Mb (DDR3,192bit)
Привод DVD+RW/CDRW LiteOn LH-20A4P-06C
Жесткий диск: 35"SATA 1200 Gb ЖК
Монитор BENQ
Клавиатура Genius KB-29e Calculator
Мышь А4 tech Optical
Принтер EPSON SIYLUSTM PHOTO P 300 Sevies
Корпус Inwin ЕА-016 Black/ Silver, 400W.

Содержание работы

Цель работы 3
Использованное оборудование 4
Постановка задачи
3.1 Назначение программы 5

3.2 Исходные данные 6
3.3 Связь с другими программами, использование
промежуточных результатов другими программами; 6
3.4 Используемая ОС
3.5 Используемое ПО 7
3.6 Используемые стандартные функции (sin, cos и т.д.); 8
3.7 Входные и выходные данные; 9
3.8 Код задачи (согласно классификатора подсистем и задач); 9
3.9 Результат выполнения программы при неполном объёме
входной информации. 9
Выбор и обоснование метода решения задачи 10
Исходные данные; 10
Решение задачи; 11
Вывод результатов. 12
Разработка алгоритма по выбранному методу 13
Блок – схема программы; 14-15
Описание блок – схемы. 16-17
Составление программы на языке Delphi 18
Листинг программы; 18-23
Результат выполнения. 23
Отладка и испытание программы 24
Допущенные ошибки при составлении программы; 24
Выявление ошибок; 28-29
8 Контрольный пример. 25
8. 1 Прохождение теста 25-29
9 Вывод 30

Файлы: 1 файл

Практическая по ляпневу всё 5.doc

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

Вопрос №4

Суффиксами какой части речи являются суффиксы –лив-, -чив-?

1. имени прилагательного

2. деепричастия

3. имени существительного

4. причастия

Вопрос №5

Какого вида связи в сложном  предложении не существует?

1. подсочинительной

2. сочинительной

3. сложноподсочиненной

4. бессоюзной

 

2.2 Решение задачи

Решение задачи –  это поиск  точного описания требуемого объекта, при этом часть свойств целевого объекта описывается в условии задачи в явном виде, а другая задается симметрично.

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


Для того чтобы  открыть тестирующею программу, нажмите кнопку «Продолжить», находящуюся в правом нижнем углу титульной формы. Для завершения программы нажмите кнопку «Выход». При нажатии кнопки  «Продолжить» в появившемся диалоговом окне введите личные данные и нажмите кнопку «Принять», затем, если всё заполнено верно становится активной кнопка «Далее» и после щелчка по ней перейдем непосредственно к тестированию. Выберете один из 4-х предложенных вариантов ответа, после чего нажмите кнопку «Далее» для продолжения теста. Если не один из вариантов ответа не выбран кнопка «Далее» будет не активна. По завершению теста откроется дополнительное окно со статистикой прохождения теста. Для закрытия окно «Статистика» нажмите кнопку  «Закрыть», в появившемся перед вами окне введите код после чего нажмите кнопку  «Ок». При попытки завершения работы программы или при нажатии на кнопку «Начать тест заново» так же нужно будет ввести код и нажать кнопку «Ок». На данный момент программа содержит 5 вопросов. Программа выставляет оценку в соответствии с количеством правильных ответов. На данный момент программа содержит 5 вопросов.

90%-100% правильных ответов – оценка 5

80%-89% правильных ответов – оценка 4

60%-79%правильных ответов – оценка 3

Меньше 60% правильных ответов – оценка 2

    Для того что бы  добавить, удалить или от редактировать  вопросы теста откройте меню «Файл» выберете пункт «Редактировать тест». Для продолжения операции введите

пароль  и нажмите  «Ок». Выберете файл, который требуется от редактировать и нажмите кнопку «Сохранить». Для добавления вопроса заполните форму, отметьте правильный ответ точкой находящейся слева от поля соответствующего ответа  и нажмите кнопку  «Принять». Так же для редактирования теста воспользуйтесь текстовым полем «Тест». Для сохранения текста изменений в тесте нажмите кнопку  «Сохранить». Для завершения операции  нажмите кнопку «Закрыть». После чего нажмите кнопку «Начать тест заново».

2.3 Вывод результатов

При проверки тестирующей программы были выбраны правильные ответы на все 5 вопросов, после чего программа выставила оценку 5, были выбраны правильные ответы  на 4 вопроса, после чего программа выставила оценку 4, на 3 вопроса оценка 3, на 2

 вопроса, оценка 2, был выбран правильный ответ на 1 вопрос, оценка 2, также были выбраны неправильные ответы на все 5 вопросов, после чего программа выставила оценку 2 следовательно, программа работает верно.

 

3 Разработка алгоритма по выбранному  методу


Алгоритмом называется система четких однозначных указаний, которая определяет последовательность действий над некоторыми объектами и после конечного числа шагов приводит к получению требуемого результата.

Блок-схема – это графическое  представление алгоритма. Каждый пункт  алгоритма отображается на схеме  некоторой геометрической фигурой  – блоком и дополняется элементами словесной записи.

Алгоритмы разделяют на следующие:

1. Линейные – Алгоритм, в котором команды выполняются в порядке их записи, то есть друг за другом, называется линейным.

  2. Разветвляющиеся –  В отличие от линейных алгоритмов, в которых команды выполняются последовательно одна за другой, в разветвляющиеся алгоритмы входит условие, в зависимости от выполнения или невыполнения которого выполняется та или иная последовательность команд (серий).

В качестве условия в разветвляющемся алгоритме может быть использовано любое понятное исполнителю утверждение, которое может соблюдаться (быть истинно) или не соблюдаться (быть ложно). Такое утверждение может быть выражено как словами, так и формулой. Таким образом, команда ветвления состоит из условия и двух последовательностей команд.

 3. Циклический алгоритм - это такой алгоритм, действия которого многократно повторяются. Перед операцией цикла осуществляются операции присваивания начальных значений тем объектам, которые используются в теле цикла.

Блок-схема – это графическое  представление алгоритма.

 

 

3.1 Блок – схема программы 

 

 

 

 

 

 

 

 




 


 



 

 


 

 

 

 


 

 



 



 









 


 

 

 








 

 

 


 

 

 

 

 

 



 

 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.2 Описание блок – схемы.

Блок

Название блока

Описание

Блок начало.

 

1

Блок ввода- вывода

Вывод на экран титульного листа

2

Блок присваивания

Этот  блок служит для выполнения арифметических операций. Переменной count_VO присваивается значение 0

3

Блок присваивания

Этот  блок служит для выполнения арифметических операций. Переменной Tek_VO присваивается значение 0

4

Блок присваивания

Этот  блок служит для выполнения арифметических операций. Переменной Ocenka присваивается значение 0

5

Блок ввода- вывода

Вводит вопросы из заданного  файла

6

Блок ввода- вывода

Выводится на экран текст вопроса 1

7

Блок ввода- вывода

Выводится первый вариант ответа

8

Блок ввода- вывода

Выводится второй вариант ответа

9

Блок ввода- вывода

Выводится третий вариант ответа

10

Блок ввода- вывода

Выбирается вариант ответа

11

Блок  условия

Проверяется условие RadioGroup1.Items[0]=

VO[Tek_VO].Pravelniy, если верно, то переход к блоку 12 иначе 13

12

Блок присваивания

Переменной Ocenka присваивается значение выражения Ocenka+1

13

Блок  условия

Проверяется условие RadioGroup1.Items[1]=

VO[Tek_VO].Pravelniy, если верно, то переход к блоку 14 иначе 15

14

Блок присваивания

Переменной Ocenka присваивается значение выражения Ocenka+1

15

Блок  условия

Проверяется условие RadioGroup1.Items[2]=

VO[Tek_VO].Pravelniy, если верно, то переход к блоку 16 иначе 17

16

Блок присваивания

Переменной Ocenka присваивается значение выражения Ocenka+1

17

Блок присваивания

Переменной Tek_VO присваивается значение Tek_VO +1

18-63

 

Описываются подобно блокам  6-17

63

Блок присваивания

Переменной persent присваивается значение выражения Ocenka/Count_VO*100

64

Блок  условия

Проверяется условие persent >=90, если верно, то переход к блоку 65 иначе 66

65

Блок присваивания

Переменной Ocenka присваивается значение 5

66

Блок  условия

Проверяется условие persent >=80 and persent < 90 , если верно, то переход к блоку 67 иначе 68

67

Блок присваивания

Переменной Ocenka присваивается значение 4

68

Блок  условия

Проверяется условие persent >=60 and persent < 80 , если верно, то переход к блоку 69 иначе 70

69

Блок присваивания

Переменной Ocenka присваивается значение 3

70

Блок присваивания

Переменной Ocenka присваивается значение 2

71

Блок ввода-вывода

Выводится запрос ввода пароля

Блок завершения

 

 

4 Составление программы на языке  Delphi

 

4.1 Листинг программы 

 

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Menus, ExtCtrls, ActnList, Mask, jpeg, ExtDlgs,Unit3,Unit2,

  XPMan, ComCtrls;

 

type

  TForm1 = class(TForm)

    RadioGroup1: TRadioGroup;

    Button1: TButton;

    MainMenu1: TMainMenu;

    Panel1: TPanel;

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Label2: TLabel;

    Button4: TButton;

    Label3: TLabel;

    Panel2: TPanel;

    MaskEdit1: TMaskEdit;

    Button3: TButton;

    Label1: TLabel;

    Button5: TButton;

    Memo1: TMemo;

    SaveTextFileDialog1: TSaveTextFileDialog;

    Button7: TButton;

    RadioGroup2: TRadioGroup;

    Button8: TButton;

    Button9: TButton;

    Button10: TButton;

    af1: TMenuItem;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    Panel3: TPanel;


    Memo2: TMemo;

    Button2: TButton;

    Label5: TLabel;

    Panel4: TPanel;

    Label4: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Label8: TLabel;

    BalloonHint1: TBalloonHint;

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure Button5Click(Sender: TObject);

    procedure Button9Click(Sender: TObject);

    procedure Button8Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure RadioGroup1Click(Sender: TObject);

    procedure Button10Click(Sender: TObject);

    procedure Button7Click(Sender: TObject);

    procedure N1Click(Sender: TObject);

    procedure N3Click(Sender: TObject);

    procedure RadioGroup2Click(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

 

type

V_O = record

Vopros : string;


var_1: string;

var_2: string;

var_3: string;

Pravelniy: string;

end;

 

var

  Form1: TForm1;

  VO: array [0..100] of V_O;

  Count_VO,Tek_VO,Ocenka: integer;

 

implementation

 

{$R *.dfm}

procedure TForm1.Button10Click(Sender: TObject);

begin

Panel2.Visible:=false;

RadioGroup1.Visible:=true;

Button9.Visible:=true;

Button1.Visible:=true;

Button8.Visible:=true;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

persent : real;

begin

 

Form2.StringGrid1.Cells[0,0]:='Номер вопроса';

Form2.StringGrid1.ColWidths[0]:=100;

Form2.StringGrid1.Cells[1,0]:='Правельные ответы пользователя';

Form2.StringGrid1.ColWidths[1]:=200;

Form2.StringGrid1.RowHeights[0]:=20;

Form2.StringGrid1.Cells[2,0]:='Номер выбраного ответа';

Form2.StringGrid1.ColWidths[2]:=160;

if RadioGroup1.Buttons[0].Checked=true then

  begin


  Form2.StringGrid1.Cells[2,Tek_VO+1]:='1';

  if RadioGroup1.Items[0]=VO[Tek_VO].Pravelniy then

    begin

    Ocenka:=Ocenka+1;

    Form2.StringGrid1.Cells[1,Tek_VO+1]:='+';

    end;

  end;

if RadioGroup1.Buttons[1].Checked=true then

  begin

  Form2.StringGrid1.Cells[2,Tek_VO+1]:='2';

  if RadioGroup1.Items[1]=VO[Tek_VO].Pravelniy then

    begin

    Ocenka:=Ocenka+1;

    Form2.StringGrid1.Cells[1,Tek_VO+1]:='+';

    end;

  end;

if RadioGroup1.Buttons[2].Checked=true then

  begin

  Form2.StringGrid1.Cells[2,Tek_VO+1]:='3';

  if RadioGroup1.Items[2]=VO[Tek_VO].Pravelniy then

    begin

    Ocenka:=Ocenka+1;

    Form2.StringGrid1.Cells[1,Tek_VO+1]:='+';

    end;

  end;

 

Form2.StringGrid1.Cells[0,Tek_VO+1]:='Вопрос №'+IntToStr(Tek_VO+1);

Tek_VO:=Tek_VO+1;


RadioGroup1.Caption:=VO[Tek_VO].Vopros;

RadioGroup1.Items[0]:=VO[Tek_VO].var_1;

RadioGroup1.Items[1]:=VO[Tek_VO].var_2;

RadioGroup1.Items[2]:=VO[Tek_VO].var_3;

persent:=Ocenka/Count_VO*100;

if Tek_VO=Count_VO then

  begin

  form2.Label1.Caption:=FloatToStr(persent)+'%';

  RadioGroup1.Enabled:=false;

  Button9.Caption:='Начать тест заного';

  Form2.Show;

  if persent>=90 then

  form2.label3.Caption:='5';

  if (persent>=80) and (persent<90) then

  form2.Label3.Caption:='4';

Информация о работе Тестирующая программа для проверки остаточных знаний