Отчет по практике в ООП Delphi 7
Отчет по практике, 28 Октября 2013, автор: пользователь скрыл имя
Описание работы
В ходе прохождения квалификационной практики мне предстоит доработать мной ранее созданную универсальную тестовую оболочку 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
Файлы: 1 файл
Отчет по практике ОАИП 4 КУРС.docx
— 294.60 Кб (Скачать файл)Отчет по квалификационной практике, дисциплина ОАиП, Киселева Н. С., группы АСУ-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- форма окна
- Caption – изменение текста в строке заголовка
- Width – ширина окна в пикселях
- Left – расстояние от левого края формы к правому краю формы
- Top – расстояние от верхнего края экрана до верхнего края формы
Button1- кнопка «Результат»
Image1-вставка картинки
MainMenu1-главное меню окна
RadioGroup – управляющий элемент с зависящей фиксацией
Items – записываются варианты ответов
ItemIndex- выбранный элемент списка и его значение
TabbedNotebook-вкладки
- Edit-изменить название
- Pages-добавление вкладок
Листинг программного кода
…
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 для названия вопросов
- Caption – изменение текста в строке заголовка
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;