Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
трпп курсач.doc
Скачиваний:
5
Добавлен:
16.09.2019
Размер:
276.99 Кб
Скачать

2.2 Функциональная спецификация на разработку проекта по тестированию знаний студентов

Интерфейс данных

Назначение интерфейса

Для вывода информации пользователю используется язык программирования Object Pascal в среде Borland Delphi 7.

Интерфейс теста: определяет правильность ответов и их количество, подсчитывает общий бал.

Интерфейс пользователя (студента): вывод вопросов, вывод ответов, выбор правильных ответов.

Структура данных интерфейса

Структура входных данных

Название

Тип

Ввод имени/фамилии студента

Текстовый

Ввод группы студента

Текстовый

Выбор правильного ответа

Логический

Структура выходных данных

Название

Тип

Вывод вопросов

Текстовый

Вывод ответов

Текстовый

Вывод результатов тестирования

Текстовый/Числовой

2.3 Этап проектирования пп

Алгоритм работы

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

Ввод данных

Обработка данных (проверка правильности ответов, подсчет общего бала)

Вывод данных (Вывод результатов тестирования)

Таблица вопросов в БД Microsoft Access для программы

Таблица ответов в БД Microsoft Access для программы

Схема данных в БД Microsoft Access

SQL запрос на вывод вопроса:

SELECT *From Вопросы where №_вопроса =1

SQL запрос на вывод ответа:

SELECT *From Ответы where №_ответа =1

2.4 Разработка программного продукта

Цель и задачи

Цель - Автоматизация процесса контроля знаний учащихся по языку программирования delphi (язык sql).

Задачи:

  1. Спроектировать информационную систему;

  2. Выбрать средства программирования;

  3. Разработать программу;

Необходимо:

а) создать списки контрольных вопросов;

б) создать процесс обработки результатов и выставления оценок;

в) создать тестирующую программную оболочку.

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

Требования

Тест должен удовлетворять требованиям:

  1. Стандартизацию заданий и условий их выполнения;

  2. Предложенный блок тестов должен быть валидным (валидность - степень соответствия блока теста его назначению);

  3. Текст каждого теста должен быть ясным для понимания;

  4. Ответы на приведённые тесты не должны являться "подсказкой" для решения других тестов;

  5. Тестовые блоки должны удовлетворять всем обще дидактическим принципам, т.е. научности, доступности, наглядности;

  6. Определенность.

После прочтения заданий каждый учащийся понимает, какие действия он должен выполнить, какие знания продемонстрировать. Если учащийся после прочтения задания правильно действует и отвечает менее 70% учащихся, то его необходимо проверить на определенность.

  1. Простота. Формулировка заданий и ответы должны быть четкими и краткими. Показателем простоты является скорость выполнения задания.

  2. Однозначность. Задание должно иметь единственный правильный ответ – эталон.

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

  1. Листинг первой формы:

unit Nachalo;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, ComCtrls, Menus, DBCtrls;

type

TForm1 = class(TForm)

ADOConnection1: TADOConnection;

ADOQuery1: TADOQuery;

DataSource1: TDataSource;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

TabSheet3: TTabSheet;

DBText1: TDBText;

DBText2: TDBText;

ADOQuery2: TADOQuery;

DataSource2: TDataSource;

ADOQuery3: TADOQuery;

DataSource3: TDataSource;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

RadioButton4: TRadioButton;

RadioButton5: TRadioButton;

RadioButton6: TRadioButton;

TabSheet4: TTabSheet;

TabSheet5: TTabSheet;

TabSheet6: TTabSheet;

TabSheet7: TTabSheet;

TabSheet8: TTabSheet;

TabSheet9: TTabSheet;

TabSheet10: TTabSheet;

Label2: TLabel;

TabSheet11: TTabSheet;

DBText3: TDBText;

ADOQuery4: TADOQuery;

DataSource4: TDataSource;

DBText4: TDBText;

DBText5: TDBText;

DataSource5: TDataSource;

ADOQuery5: TADOQuery;

DBText6: TDBText;

DBText7: TDBText;

ADOQuery6: TADOQuery;

DataSource6: TDataSource;

DataSource7: TDataSource;

ADOQuery7: TADOQuery;

DBText8: TDBText;

DBText9: TDBText;

ADOQuery8: TADOQuery;

ADOQuery9: TADOQuery;

ADOQuery10: TADOQuery;

DataSource8: TDataSource;

DataSource9: TDataSource;

DataSource10: TDataSource;

DBText10: TDBText;

DBText11: TDBText;

RadioButton7: TRadioButton;

RadioButton8: TRadioButton;

RadioButton9: TRadioButton;

RadioButton10: TRadioButton;

RadioButton11: TRadioButton;

RadioButton12: TRadioButton;

RadioButton13: TRadioButton;

RadioButton14: TRadioButton;

RadioButton15: TRadioButton;

RadioButton16: TRadioButton;

RadioButton17: TRadioButton;

RadioButton18: TRadioButton;

RadioButton19: TRadioButton;

RadioButton20: TRadioButton;

RadioButton21: TRadioButton;

RadioButton22: TRadioButton;

RadioButton23: TRadioButton;

RadioButton24: TRadioButton;

RadioButton25: TRadioButton;

RadioButton26: TRadioButton;

RadioButton27: TRadioButton;

RadioButton28: TRadioButton;

RadioButton29: TRadioButton;

RadioButton30: TRadioButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

Button8: TButton;

Button9: TButton;

Button10: TButton;

Button11: TButton;

Button12: TButton;

TabSheet12: TTabSheet;

Label1: TLabel;

Button1: TButton;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

procedure Button1Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Button10Click(Sender: TObject);

procedure Button11Click(Sender: TObject);

procedure Button12Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

End

var

Form1: TForm1;

i:integer;

c: TextFile;

k,h: string;

implementation

uses Nachalo2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

i:=0;

if radiobutton1.Checked = true then

i:=i+1;

Label1.Caption:=IntToStr(i);

If radiobutton6.Checked =true then

i:=i+1;

Label1.Caption:=IntToStr(i);

If radiobutton8.Checked =true then

i:=i+1;

Label1.Caption:=IntToStr(i);

If radiobutton10.Checked =true then

i:=i+1;

Label1.Caption:=IntToStr(i);

If radiobutton15.Checked =true then

i:=i+1;

Label1.Caption:=IntToStr(i);

If radiobutton17.Checked =true then

i:=i+1;

Label1.Caption:=IntToStr(i);

If radiobutton20.Checked =true then

i:=i+1;

Label1.Caption:=IntToStr(i);

If radiobutton22.Checked =true then

i:=i+1;

Label1.Caption:=IntToStr(i);

If radiobutton27.Checked =true then

i:=i+1;

Label1.Caption:=IntToStr(i);

If radiobutton30.Checked =true then

i:=i+1;

Label1.Caption:=IntToStr(i);

case i of

0: label1.caption:='Неудовл';

1: label11.caption:='Неудовл';

2: label11.caption:='Неудовл';

3: label11.caption:='Неудовл';

4: label11.caption:='Неудовл';

5: label11.caption:='Неудовл';

6: label11.caption:='Удовл';

7: label11.caption:='Удовл';

8: label11.caption:='Хорошо';

9: label11.caption:='Хорошо';

10: label11.caption:='Отлично';

end;

begin

AssignFile(c, 'file.txt');

Rewrite(c);

h:='__';

k:=Edit1.Text+h+edit2.Text+h+edit3.Text+h+label7.Caption+Label1.Caption+h+Label12.Caption+h+Label11.Caption;

WriteLn(c,k);

CloseFile(c)

end;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

Form2.Show;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

tabsheet1.TabVisible:=false;

tabsheet2.TabVisible:=True;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

tabsheet2.TabVisible:=false;

tabsheet3.TabVisible:=True;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

tabsheet3.TabVisible:=false;

tabsheet4.TabVisible:=True;

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

tabsheet4.TabVisible:=false;

tabsheet5.TabVisible:=True;

end;

procedure TForm1.Button6Click(Sender: TObject);

begin

tabsheet5.TabVisible:=false;

tabsheet6.TabVisible:=True;

end;

procedure TForm1.Button7Click(Sender: TObject);

begin

tabsheet6.TabVisible:=false;

tabsheet7.TabVisible:=True;

end;

procedure TForm1.Button8Click(Sender: TObject);

begin

tabsheet7.TabVisible:=false;

tabsheet8.TabVisible:=True;

end;

procedure TForm1.Button9Click(Sender: TObject);

begin

tabsheet8.TabVisible:=false;

tabsheet9.TabVisible:=True;

end;

procedure TForm1.Button10Click(Sender: TObject);

begin

tabsheet9.TabVisible:=false;

tabsheet10.TabVisible:=True;

end;

procedure TForm1.Button12Click(Sender: TObject);

begin

tabsheet11.TabVisible:=false;

tabsheet12.TabVisible:=True;

Label5.Caption:=Edit1.Text + ' ' + Edit2.Text;

Label6.Caption:=Edit3.Text;

end;

procedure TForm1.Button11Click(Sender: TObject);

begin

tabsheet10.TabVisible:=false;

tabsheet11.TabVisible:=True;

end;

end.

  1. Листинг второй формы:

unit Nachalo2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, jpeg;

type

TForm2 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Image1: TImage;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

{$R *.dfm}

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]