Автор работы: Пользователь скрыл имя, 28 Октября 2013 в 00:20, отчет по практике
В ходе прохождения квалификационной практики мне предстоит доработать мной ранее созданную универсальную тестовую оболочку Testing v.1.0.
Задачи:
1) ПП должен выбирать из базы без повтора 10 вопросов случайным образом.
2) ПП должен выводить выбранные вопросы пользователю в удобной форме.
3) ПП должен содержать разделы для редактирования базы тестировщиком.
4) ПП должен выводить вопросы с поддержкой многострочного отображения.
5) ПП должен выводить протокол прохождения теста.
Введение 4
Описание программного продукта. Структурная схема переходов между формами универсальной тестовой оболочки «Testing v. 1.1» 5
Описание первой формы 6
Описание объектов: 6
Листинг программного кода 7
Описание второй формы 14
Описание объектов: 14
Описание третьей формы 15
Описание объектов: 15
Описание четвертой формы 16
Описание объектов: 16
Описание пятой формы 17
Описание объектов 17
Листинг программного кода 18
Заключение ……………………………………………………………………………………22
Отчет по квалификационной практике, дисциплина ОАиП, Киселева Н. С., группы АСУ-412
Министерство образования и науки Российской Федерации
Федеральное государственное
автономное образовательное учреждение
высшего профессионального
«Уральский федеральный университет
имени первого Президента России Б.Н.Ельцина»
Филиал УрФУ в г.Среднеуральске
Специальность: 230103 «Автоматизированные системы управления и обработки информации при измерении и контроле»
Группа: АСУ-412
ОТЧЕТ
ПО УЧЕБНОЙ ПРАКТИКЕ
Дисциплина: «Основы алгоритмизации и программирования»
Студент: ________
Дата: «____»________
Преподаватель: ________
Дата: «____»________
г. Среднеуральск
2012 г.
2.Бланк задания
Содержание:
Введение 4
Описание программного продукта. Структурная схема переходов между формами универсальной тестовой оболочки «Testing v. 1.1» 5
Описание первой формы 6
Описание объектов: 6
Листинг программного кода 7
Описание второй формы 14
Описание объектов: 14
Описание третьей формы 15
Описание объектов: 15
Описание четвертой формы 16
Описание объектов: 16
Описание пятой формы 17
Описание объектов 17
Листинг программного кода 18
Заключение …………………………………………………
Введение
В настоящее время в школах и других образовательных учреждениях получили популярность компьютерные тесты для проверки усвоенных знаний у учеников. Универсальная тестовая оболочка Testing v.1.1 разработанная в среде ООП Delphi 7 предназначенная для тестирования в любой предметной области. С его помощью можно создавать тесты на любую тематику, а затем опрашивать неограниченное количество людей.
В ходе прохождения квалификационной практики мне предстоит доработать мной ранее созданную универсальную тестовую оболочку Testing v.1.0.
Задачи:
1) ПП должен выбирать из базы без повтора 10 вопросов случайным образом.
2) ПП должен выводить
выбранные вопросы
3) ПП должен содержать
разделы для редактирования
4) ПП должен выводить
вопросы с поддержкой
5) ПП должен выводить протокол прохождения теста.
Описание объектов
Form1- форма окна
Button1- кнопка «Результат»
Image1-вставка картинки
MainMenu1-главное меню окна
RadioGroup – управляющий элемент с зависящей фиксацией
Items – записываются варианты ответов
ItemIndex- выбранный элемент списка и его значение
TabbedNotebook-вкладки
Листинг программного кода
…
var
Form1: TForm1;
a:string; // объектная реализация примитивного типа строкового значения
f:textfile; // тип целое число
n:integer;
i:integer;
B:array[1..10] OF integer;
nst:integer;
z:real; // реальное значение Z
st:string;
q:integer;
k1,k2,k3,k4,k5,k6,k7,k8,k9,
y:integer;
implementation
uses Unit3, Unit2, Unit4, Unit6, Unit5, Unit8;
{$R *.dfm}
{$R windowsxp.res}
procedure TForm1.N2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
form3.show;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
form2.show;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Base.Free;
end;
procedure TForm1.FormCreate(Sender: TObject);
var st:TStringList;
s:string;
x,y,z,z1:Cardinal;
rg: TRadioGroup;
begin
s := Paramstr(0);
s := ExtractFileDir(s);
//Берем нашу директорию и загружаем файл base.ini в ней
Base := TiniFile.Create(s+'\base.ini')
st := TStringList.Create;
Qs := [];
//Читаем имена всех секций (вопросы)
Base.ReadSections(st);
Randomize;
for x:=1 to 10 do
begin
//Берем текущий RadioGroup (10шт)
rg := TRadioGroup(self.
repeat
y:=Random(st.Count); //Случайным образом выбираем вопрос
until not (y in Qs); //И делаем так пока его нет среди уже выбранных
include(Qs, y); //Добавляем его номер в список уже выбранных
Q[x]:=y;
Qa[x] := Base.ReadInteger(st[y], 'ans', 0); //Читаем варианты ответов
//Каждый вопрос (10 шт) выводим в заголовок RadioGroup
rg.Caption := st[y];
z:=1;
repeat
//Читаем все варианты ответов
if Base.ValueExists(st[y],'O'+
rg.items.add(Base.ReadString(
else break;
inc(z);
until false;
//Если есть картинка, то выводим ее
if Base.ValueExists(st[y],'image'
(self.FindComponent('Image'+
end;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
AssignFile(F,'baza.txt'); // соединение файловой переменной с текстовым файлом
reset(F);
nst:=0;
while not eof(F) do // Отображение содержимого файла
begin
readln(f,st);
nst:=nst+1;
end;
z:=(nst-1)/5;
form4.panel2.caption:=
form4.panel1.caption:=
nst:=0;
form4.Show;
closefile(f);
end;
Procedure TForm1.N5Click(Sender: TObject);
Да
начало
AssignFile(F,'baza.txt');
reset(F);
nst:=0;
z:=(nst-1)/5;
form4.panel2.caption:=
form4.panel1.caption:=
nst:=0;
form4.Show;
closefile(f);
while not eof(F) do
readln(f,st);
nst:=nst+1;
Нет
конец
procedure TForm1.Button1Click(Sender: TObject);
var
fam,name,date1,time1,ochen:
z:integer;
rg:TRadioGroup;
begin
Form6.Show;
RadioGroup1.Enabled:=false;
RadioGroup2.Enabled:=false;
RadioGroup3.Enabled:=false;
RadioGroup4.Enabled:=false;
RadioGroup5.Enabled:=false;
RadioGroup6.Enabled:=false;
RadioGroup7.Enabled:=false;
RadioGroup8.Enabled:=false;
RadioGroup9.Enabled:=false;
RadioGroup10.Enabled:=false;
y:=0;
if radiogroup1.ItemIndex=k1-1 then y:=y+1;
if radiogroup2.ItemIndex=k2-1 then y:=y+1;
if radiogroup3.ItemIndex=k3-1 then y:=y+1;
if radiogroup4.ItemIndex=k4-1 then y:=y+1;
if radiogroup5.ItemIndex=k5-1 then y:=y+1;
if radiogroup6.ItemIndex=k6-1 then y:=y+1;
if radiogroup7.ItemIndex=k7-1 then y:=y+1;
if radiogroup8.ItemIndex=k8-1 then y:=y+1;
if radiogroup9.ItemIndex=k9-1 then y:=y+1;
if radiogroup10.ItemIndex=k10-1 then y:=y+1;
y:=0;
//Подсчитываем кол-во правильных ответов
for z:=1 to 10 do
begin
rg := (self.FindComponent('
if (rg.ItemIndex+1)=Qa[z] then inc(y);
end;
If y=10 then form6.panel11.Caption:='5';
If y=9 then form6.panel11.Caption:='4';
If y=8 then form6.panel11.Caption:='4';
If y=7 then form6.panel11.Caption:='3';
If y=6 then form6.panel11.Caption:='3';
If y=5 then form6.panel11.Caption:='3';
If y=4 then form6.panel11.Caption:='3';
If y=3 then form6.panel11.Caption:='3';
If y=2 then form6.panel11.Caption:='2';
If y=1 then form6.panel11.Caption:='2';
If y=0 then form6.panel11.Caption:='2';
for z:=1 to 10 do
begin
if (self.FindComponent('
then
begin
(form6.FindComponent('Panel'+
(form6.FindComponent('Panel'+
end;
end;
{
if radiogroup1.ItemIndex=k1-1 then begin form6.Panel1.Caption:='Верно';
form6.Panel1.Font.Color:=
if radiogroup2.ItemIndex=k2-1 then begin form6.Panel2.Caption:='Верно';
form6.Panel2.Font.Color:=
if radiogroup3.ItemIndex=k3-1 then begin form6.Panel3.Caption:='Верно';
form6.Panel3.Font.Color:=
if radiogroup4.ItemIndex=k4-1 then begin form6.Panel4.Caption:='Верно';
form6.Panel4.Font.Color:=
if radiogroup5.ItemIndex=k5-1 then begin form6.Panel5.Caption:='Верно';
form6.Panel5.Font.Color:=
if radiogroup6.ItemIndex=k6-1 then begin form6.Panel6.Caption:='Верно';
form6.Panel6.Font.Color:=
if radiogroup7.ItemIndex=k7-1 then begin form6.Panel7.Caption:='Верно';
form6.Panel7.Font.Color:=
if radiogroup8.ItemIndex=k8-1 then begin form6.Panel8.Caption:='Верно';
form6.Panel8.Font.Color:=
if radiogroup9.ItemIndex=k9-1 then begin form6.Panel9.Caption:='Верно';
form6.Panel9.Font.Color:=
if radiogroup10.ItemIndex=k10-1 then begin form6.Panel10.Caption:='Верно'
}
form6.Label11.Caption:=
form6.Label12.Caption:=
end;
procedure TForm1.N6Click(Sender: TObject);
begin
form1.Button1.Visible:=true;
PageControl1.Visible:=true;
end;
procedure TForm1.H1Click(Sender: TObject);
begin
form8.show;
end;
end.
Описание объектов
Label1: Предназначен для ввода текста о программе
Image1: Изображение фон формы
Я изменял свойство Word Wrap перенос по словам
Описание объектов
Image1: -вставка фотографии разработчика
Picture: -загрузка фотографии (картинки)
Label1: -Сведения о разработчике
Я изменял свойство Word Wrap для переноса по словам
Описание объектов
label1, label2,…,label10 для названия вопросов
panel1, panel2,…panel10 объекты которые при окончание теста выводят на какой вопрос вы ответили правильно или не правильно.
Panel11 – выводит оценку.
Описание объектов
Label 1 – Вопрос
Label 2 – Ответы
Label 3 – Правильный ответ
ComboBox1 - используется для ввода и вывода данных в раскрывающемся поле со списком. По умолчанию элемент управления ComboBox отображается в виде двух частей: верхняя часть представляет собой текстовое поле, в которое пользователь может ввести элемент списка. Вторая часть представляет собой список элементов, один из которых пользователь может выбрать.
Т.е. служит для ввода и выбора вопроса.
Memo1 - окно редактирования многострочного текста. Т.е. служит для ввода ответов.
OpenPictureDialog1 - Компоненты OpenDialog — диалог «Открыть файл» используются чаще всего, в большинстве приложений. Т.е. служит для выбора картинки.
Edit представляет собой редактируемую строку
Button1 кнопка фото
Button2 кнопка Добавить фотографию
Button3 кнопка Добавить
Button4 кнопка Записать
Листинг программного кода
…
var
Form8: TForm8;
implementation
{$R *.dfm}
procedure TForm8.Button1Click(Sender: TObject);
var s:string;
x:integer;
begin
//При нажатии кнопки "Записать", запишем в базу?
s:= ComboBox1.Text;//сам вопрос
x:=0;
if Pos('image=', Memo1.Lines[0])<>0 then //Если есть картинка то и ее
begin
Base.WriteString(s, 'image', Copy(Memo1.Lines[0], Pos('=',Memo1.Lines[0])+1, Length(Memo1.Lines[0])));
inc(x);
end;
//И варианты ответов
for x:=x to Memo1.Lines.Count-1 do
Base.WriteString(s, 'O'+IntToStr(x+1), Memo1.Lines[x]);
//Ну и правильные ответы тоже
Base.WriteString(s, 'ans', Edit6.Text);
end;
procedure TForm8.Button2Click(Sender: TObject);
begin
//Добавим в ComboBox1 новую пустую запись
ComboBox1.Items.Add('');
ComboBox1.ItemIndex := ComboBox1.Items.Count-1;
ComboBox1Change(self);
end;
procedure TForm8.Button3Click(Sender: TObject);
var s:string;
ss:string;
begin
//Добавим картинку как вариант ответа
if not OpenPictureDialog1.Execute then exit;
s := ExtractFileName(
ss := 'images\' + s;
//Скопировав ее в свою папку
CopyFile(PChar(s), PChar(ss), false);
Memo1.Lines.Add(s);
end;
procedure TForm8.Button4Click(Sender: TObject);
var s:string;
ss:string;
begin
//Добавим картинку как приложение к вопросу
if not OpenPictureDialog1.Execute then exit;
s := ExtractFileName(
ss := 'images\' + s;
//Скопировав ее в свою папку
CopyFile(PChar(s), PChar(ss), false);
Memo1.Lines.Insert(0, 'image='+s);
end;
procedure TForm8.ComboBox1Change(Sender: TObject);
var s:string;
x:integer;
begin
// При выборе значения в ComboBox найдем этот вопрос в базе
s:= ComboBox1.Items[ComboBox1.
Memo1.Clear;
x:=1;
repeat
// и отобразим все варианты ответов
if Base.ValueExists(s,'O'+
Memo1.Lines.Add(Base.
else break;
inc(x);
until false;
//и покажем правильные ответы
Edit6.Text := Base.ReadString(s, 'ans','0');
end;
procedure TForm8.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Base.Free;
end;
procedure TForm8.FormShow(Sender: TObject);
Var
s : string;
begin
//При показе формы загрузим все вопросы в память
s := Paramstr(0);
s := ExtractFileDir(s);
Base := TiniFile.Create(s+'\base.ini')
//Имена секций (вопросы) занесем в ComboBox
Base.ReadSections(ComboBox1.
//В ComboBox отобразим 1-ю запись
ComboBox1.ItemIndex := 1;
ComboBox1Change(self);
end;
end.
Procedure TForm8.FormShow(Sender: TObject);
начало
s := Paramstr(0);
s := ExtractFileDir(s);
Base := TiniFile.Create(s+'\base.ini')
Base.ReadSections(ComboBox1.
ComboBox1.ItemIndex := 1;
ComboBox1Change(self);
конец
s : string;