- •Проект для тестирования знаний студентов по проектированию базы данных (по разделу язык sql)
- •230105,51 Программное обеспечение вычислительной техники и автоматизированных систем
- •Содержание
- •Глава I. Средства для разработки пп 5
- •Глава II. Разработка проекта по тестированию знаний студентов 9
- •Введение
- •Глава I. Средства для разработки пп
- •1.1 Среда программирования Delphi.
- •1.2 Язык программирования Object Pascal
- •1.3 Реляционная субд - Microsoft Access
- •Глава II. Разработка проекта по тестированию знаний студентов
- •2.1 Техническое задание на разработку проекта по тестированию студентов Введение
- •1. Основания для разработки
- •2. Назначение разработки
- •3. Требования к программе
- •2.2 Функциональная спецификация на разработку проекта по тестированию знаний студентов
- •2.3 Этап проектирования пп
- •2.4 Разработка программного продукта
- •2.5 Тестирование программы
- •2.6 Инструкция пользователя программы
- •Заключение
- •Список используемой литературы
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).
Задачи:
Спроектировать информационную систему;
Выбрать средства программирования;
Разработать программу;
Необходимо:
а) создать списки контрольных вопросов;
б) создать процесс обработки результатов и выставления оценок;
в) создать тестирующую программную оболочку.
В результате проведенного анализа существующих инструментальных средств разработки приложений был выбран продукт фирмы Borland Delphi 7.0, что обусловлено очень богатыми возможности среды программирования (работа с файлами, графикой, различными СУБД и т.д.) и простотой в использовании.
Требования
Тест должен удовлетворять требованиям:
Стандартизацию заданий и условий их выполнения;
Предложенный блок тестов должен быть валидным (валидность - степень соответствия блока теста его назначению);
Текст каждого теста должен быть ясным для понимания;
Ответы на приведённые тесты не должны являться "подсказкой" для решения других тестов;
Тестовые блоки должны удовлетворять всем обще дидактическим принципам, т.е. научности, доступности, наглядности;
Определенность.
После прочтения заданий каждый учащийся понимает, какие действия он должен выполнить, какие знания продемонстрировать. Если учащийся после прочтения задания правильно действует и отвечает менее 70% учащихся, то его необходимо проверить на определенность.
Простота. Формулировка заданий и ответы должны быть четкими и краткими. Показателем простоты является скорость выполнения задания.
Однозначность. Задание должно иметь единственный правильный ответ – эталон.
Листинг программы
Листинг первой формы:
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.
Листинг второй формы:
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.