Программный модуль учебного назначения по разделу математики "Многогранники"
Разработка и внедрение информационного и программного обеспечения для изучения темы "Многогранники" по геометрии; принципы проектирования учебно-методического комплекса; технология реализации интерфейса модуля; визуализация материала, контроль знаний.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 30.06.2012 |
Размер файла | 3,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Рис. 20
Рис. 21
Изменять данные в открывшемся окне с последующим сохранением не предусмотрено, так как это окно вызывается данной процедурой именно для вывода результатов, с возможность сохранения и распечатки. Если необходимо, какие-то данные откорректировать, то нужно воспользоваться процедурой открытия БД, для этого необходимо нажать в главной форме кнопку «Открыть базу данных». Поиск в БД производится по средствам вызова макроса, встроенного в Excel книгу. Этот макрос прилагается (Приложение 1). В дальнейшем пользователь, имеющий соответственные знания по работе с макросами, может настроить работу этого макроса так, как ему нужно, но нельзя изменять имя данного макроса, так как вызов его происходит по имени. Открыть данную книгу Excel невозможно без утилиты «Teacher», так как она имеет пароль на открытие. Этот пароль заложен в самой программе, и никто кроме разработчика его не знает и не может изменить.
1.3) Редактирование вопросов теста
Модуль учебного назначения по разделу математики «Многогранники», содержит так же тест (Приложение 3). Для изменения вопросов теста также необходимо использовать эту утилиту. В утилите имеется встроенный редактор теста. Для вызова которого достаточно нажать на кнопку «Редактор» в главном окне программы. Редактор теста представляет собой окно, похожее на окно программы «Блокнот». В нем имеется встроенная справка, поясняющая как редактировать вопросы теста. Тест хранится в зашифрованном виде, но при открытии с помощью утилиты «Teacher», он расшифровывается. Функция кодирования, декодирования прилагается (Приложение 2). Это говорит о том, что человек, не имеющий доступ к этой программе, не сможет изменить вопрос или узнать правильный ответ. Утилита позволяет использовать подсветку текста вопросов для более комфортной работы. Окно этого редактора с загруженными вопросами изображено на рис. 22.
Рис. 22
Пример файлов вопросов в зашифрованном виде показан на рис. 23.
Рис. 23
Все эта защита вопросов теста гарантирует то, что человек, не имеющий соответствующего доступа, не сможет изменить или узнать правильные ответы на вопросы.
1.4) Параметры запуска приложения
Для того чтобы запретить запуск программного модуля учебного назначения по разделу математики «Многогранники» необходимо щелкнуть левой кнопкой мыши по кнопке «Параметры» в главном окне утилиты. Откроется окно изображено на рис. 24.
Рис. 24
В открывшемся окне «Параметры» нужно поставить галочку напротив надписи «Запретить запуск учебного модуля» и нажать на кнопку «OK». После чего при попытке запустить учебный модуль будет выдано сообщение «Запуск модуля запрещен преподавателем». Запустить учебный модуль каким-либо другим способом будет невозможно, пока преподаватель не изменит соответствующую настройку, то есть не снимет галочку в окне «Параметры».
1.5) Защита компонентов программы
Для защиты того или иного компонента программы нужно выбрать соответствующую кнопку в меню «Защита» главного окна «Teacher». После чего появится соответствующее окно, в которое необходимо ввести пароль. Пример окна защиты программы изображен на рис. 25.
Рис. 25
Рекомендуется первоначально установить пароль для защиты программы, а потом уже для защиты других ее компонентов. Так как, если даже программа запущена, то злоумышленник не сможет сменить ни один из паролей, не зная пароль для запуска программы. Это гарантирует высокую защиту программы и ее компонентов.
2) Настройка содержания
Программный модуль учебного назначения по разделу математики «Многогранники» является динамическим, то есть имеет возможность изменяться. Очень часто написанные программы учебного назначения не имеют функции добавления или удаления темы, раздела. Данный модуль по разделу математики «Многогранники» имеет встроенные функции для изменения содержания, пути к той или иной теме, а так же возможность автоматического построения содержания, что во много раз упрощает работу с модулем. Для настройки содержания нужно открыть папку «Многогранники», которая находится в папке с программой. В папке «Многогранники» содержатся все темы, вспомогательные библиотеки необходимые для работы учебного модуля по Многогранникам. В этой папке нужно запустить файл «Contents.xls», в котором определены все темы. Файл «Contents.xls» представляет собой таблицу, состоящую из столбцов: индекс, название темы и пути к этой теме. Примерное содержимое файла «Contents.xls» показано на рис. 26.
Рис. 26
Нужно учесть, что путь указывается от программы до html-страницы, содержащей необходимую тему. А сам файл содержания, как и все темы, находится в папке «Многогранники». Также в файле «Contents.xls» можно задать параметр автоматического создания содержания. Для этого в поле «Автоматически создавать содержание» нужно написать «Да» на русском или английском языке. Чтобы запретить автоматически создавать содержание, нужно оставить это поле пустым или написать «Нет».
Для защиты содержимого файла «Contents.xls» от несанкционированных изменений нужно выполнить следующие действия:
1) в главном меню выбрать пункт «Сервис»;
2) в пункте «Сервис» выбрать пункт «Защита»;
3) в открывшемся подменю выбрать пункт «Защитить лист…»:
4) в открывшемся окне «Защита листа» установить пароль.
Данное руководство по защите листа Excel подходит для продуктов Microsoft Office 2003, в продуктах других версий могут быть отличия в защите листа. Так как файл «Contents.xls» представляет собой книгу Excel, то для более тонкой работы с ним нужно иметь знания о работе в Excel. Наличие таких знаний от преподавателя не требуется, они необходимы только для внесения изменений в структуру самого файла «Contents.xls», что может привести к неработоспособности программы.
После внесения всех изменений в файл «Contents.xls» при выходе из него необходимо произвести операцию сохранения.
3.3.3 Руководство по инсталляции и сопровождению
Для обеспечения нормальной работы программы должна быть использована следующая конфигурация компьютера:
1) центральный процессор класса Pentium III 433 МГц;
2) объём оперативной памяти не менее 128 Мб;
3) минимальная ёмкость жесткого диска 1,5 Гб;
4) стандартный манипулятор «мышь»;
5) стандартная клавиатура;
6) стандартный SVGA монитор.
Программный продукт, оперирует с достаточно большим объёмом информации. Данное обстоятельство накладывает дополнительные требования для компьютера, где будет установлена эта программа. Одним из таких требований является быстродействие системы в целом. При достаточно быстром обмене информации между процессором и памятью компьютера можно существенно сократить сроки поиска требуемой информации. Данное быстродействие можно достигнуть, используя современные процессор и модули памяти, которые работают на одной тактовой частоте системной шины не ниже 100 МГц. Для достижения требуемого быстродействия требуется наличие процессора класса Pentium III с тактовой частотой 433 МГц и объём оперативной памяти порядка 128 Мб. Так как в состав программы входит база данных, то одним из факторов, влияющим на быстродействие программного продукта, является ёмкость жесткого диска. В процессе работы с программой происходит постепенное накапливание информации, что приводит к неизбежному уменьшению емкости жесткого диска. Кроме этого, на диске находятся другие программы, которые также требуют определённого места на носителе. С учётом выше приведенных факторов требуется выбирать жесткий диск такого объёма, чтобы обеспечить оптимальную работу всей системы в целом. Для оптимальной работы программного продукта требуется минимальное наличие жесткого диска объёмом 1,5 Гб. Программа использует элементы графики, не требующие больших возможностей от видеокарты, поэтому видеосистема компьютера должна удовлетворять минимальным требованиям для обеспечения работы операционной системы. В качестве видеоадаптера можно использовать стандартный SVGA адаптер, а монитор должен обеспечивать разрешающую способность экрана 1280х1024 точек при частоте обновления экрана 85 Гц. Не допускается изменять имена папок, файлов, входящих в структуру программы и приложений, в противном случае действия программы могут не соответствовать функциональным характеристикам.
Заключение
В процессе работы над дипломным проектом была изучена предметная область, проанализированы существующие электронные, печатные учебники, содержащие информацию по разделу геометрии «Многогранники».
По результатам изучения предметной области была сформулирована постановка задачи, формализованы основные функции разработанного программного продукта, конкретизирована выходная информация и исходя из этого входная информация.
Проанализирован и осуществлен выбор технологии разработки программно-информационного компонента, позволяющего получить практическую реализацию поставленной задачи. В качестве технологии программирования используется объектно-ориентированное программирование.
Также проанализированы среды программирования, позволяющие использовать новые технологии, имеющие широкие возможности для предоставления разработчику соответствующего инструментария для скоростной разработки приложений. В качестве основной среды разработки была выбрана Delphi 2007, так как эта среда является первоклассным инструментом для быстрого и качественного создания приложений под Windows, в том числе Web-ориентированных приложений, за счет современного объектно-ориентированного языка, комплексной поддержки различных технологий и высокопроизводительного компилятора.
Реализованный программный продукт содержит следующие функции:
1) предоставление справочной информации по компонентам программы;
2) вывод текстовой и графической информации;
3) контекстный поиск;
4) сохранение информации;
5) вывод на печать, как теоретического материала, так и результатов тестирования;
6) тестирование;
7) защита компонентов программы.
Разработанная обучающе-тестирующая программа «Многогранники» может быть использована в учебном процессе и для самостоятельного обучения. Она способствует повышению мотивации учебно-познавательной деятельности, развитию логического и пространственного мышления студентов.
Таким образом, этот программный продукт полностью реализует поставленные задачи и готов к использованию.
Данный программный продукт прошел апробацию в МОУ гимназии №23. Программный модуль учебного назначения по разделу математики «Многогранники» успешно использовался, как на уроках математики, так и на факультативных занятиях. Акт внедрения прилагается.
программный учебный модуль геометрия
Список используемых источников
1. Архангельский А.Я. Delphi 2006. Справочное пособие: Язык Delphi, классы, функции Win32 и .NET. -- М.: ООО «Бином-Пресс», 2006 г. -- 1152с.
2. Боровский А.Н. Программирование в Delphi 2005. -- СПб.: БХВ-Петербург, 2005. - 448 с.
3. Дарахвелидзе П.Г., Марков Е.П. Программирование в Delphi 2007. - СПб: БХВ - Петербург, 2003.-748 с.
4. Кнут Д.Э. Искусство программирования для ЭВМ. Т 1, 2. - М.: Мир, 2001.
5. Лабор В.В. Л 39 Си Шарп: Создание приложений для Windows/ В.В.
6. Лабор.-- Мн.: Харвест, 2003. - 384 с.
7. Педагогические технологии дистанционного обучения /под ред. Е.С. Полат. М.: Академия, 2006.
8. Нурмухамедов Г.М. О подходах к созданию электронного учебника // Информатика и образование. 2006. № 5.
9. ФЦП «Развитие единой образовательной информационной среды на 2001-2005 годы»
10. ФЦП «Электронная Россия (2002-2010 годы)»
11. Никонова Н.В. Программные средства для обучения математике Информатика и образование. 2006. № 5.
12. Роберт И.В. Современные информационные технологии в образовании: дидактические проблемы; перспективы использования. М.: Школа-Пресс, 1994.
13. Мартиросян Б.П. Оценка инновационной деятельности школы. М.: СпортАкадем-Пресс, 2003.
14. Карпова Е.А. Информатизация образовательного учреждения: Ростов-на-Дону, 2006 г.
15. http://www.delphikingdom.com/
16. http://www.delphiworld.narod.ru/
17. http://www.wikipedia.org
18. http://www.infojournal.ru
19. Л.С. Атанасян, В.Ф. Бутузов, С.Б. Кадомцев // Геометрия, 10-11: учеб. Для общеобразовательных учреждений// и 14-е изд.-М.: Просвещение, 2005.-206 с.: ил.
20. Коротков А.М., Петров А.В. Системный подход к обучению в дидактических компьютерных средах. http://www.vspu.ru/-tmepi/
Приложение 1
Вызов макроса из программы происходит по его имени «VB_Morozkin_2008», поэтому при изменении макроса его имя должно оставаться прежним. Далее представлен код макроса, написанного на Visual Basic for Application (VBA) с необходимыми комментариями.
Sub VB_Morozkin_2008()
Dim x, x1, x2 As String
Dim i, j, z, y, y1, y2, y3 As Integer
y = 0
y1 = 0
y2 = 0
y3 = 0
Следующий оператор выполняет поиск, если заполнены все поля поиска: «Дата», «Группа», «ФИО».
If (Sheets("Search").Cells(2, 1).Value <>"")_
And (Sheets("Search").Cells(2, 2).Value <> "") _
And (Sheets("Search").Cells(2, 6).Value <> "") Then
x = Cells(2, 1)
x1 = Cells(2, 2)
x2 = Cells(2, 6)
i = 2
j = 2
For i = 2 To 600
If (Sheets("Data").Cells(i, 6).Value = x2) And (Sheets("Data").Cells(i,
1).Value = x)_
And (Sheets("Data").Cells(i, 2).Value = x1) Then
Sheets("Search").Cells(j, 1).Value = Sheets("Data").Cells(i, 1).Value
Sheets("Search").Cells(j, 2).Value = Sheets("Data").Cells(i, 2).Value
Sheets("Search").Cells(j, 3).Value = Sheets("Data").Cells(i, 3).Value
Sheets("Search").Cells(j, 4).Value = Sheets("Data").Cells(i, 4).Value
Sheets("Search").Cells(j, 5).Value = Sheets("Data").Cells(i, 5).Value
Sheets("Search").Cells(j, 6).Value = Sheets("Data").Cells(i, 6).Value
j = j + 1
Else
End If
Next i
End If
Следующий оператор выполняет поиск, если заполнены следующие поля поиска: «Дата», «Группа».
If (Sheets("Search").Cells(2, 1).Value<> "")_
And (Sheets("Search").Cells(2, 2).Value = "") _
And (Sheets("Search").Cells(2, 6).Value <> "") Then
x = Cells(2, 1)
x2 = Cells(2, 6)
i = 2
j = 2
For i = 2 To 600
If (Sheets("Data").Cells(i, 6).Value = x2) And (Sheets("Data").Cells(i,
1).Value = x)_
Then
Sheets("Search").Cells(j, 1).Value = Sheets("Data").Cells(i, 1).Value
Sheets("Search").Cells(j, 2).Value = Sheets("Data").Cells(i, 2).Value
Sheets("Search").Cells(j, 3).Value = Sheets("Data").Cells(i, 3).Value
Sheets("Search").Cells(j, 4).Value = Sheets("Data").Cells(i, 4).Value
Sheets("Search").Cells(j, 5).Value = Sheets("Data").Cells(i, 5).Value
Sheets("Search").Cells(j, 6).Value = Sheets("Data").Cells(i, 6).Value
j = j + 1
Else
End If
Next i
End If
Следующий оператор определяет группу (класс) учащихся, необходимую для вывода в отчет.
Sheets("Chart").Cells(1, 2).Value = Sheets("Search").Cells(2, 1).Value
Следующий оператор определяет количество оценок и выводит их в отчет в виде таблице.
For i = 2 To 60
If Sheets("Search").Cells(i, 4).Value = 5 Then
y = y + 1
Else
If Sheets("Search").Cells(i, 4).Value = 4 Then
y1 = y1 + 1
Else
If Sheets("Search").Cells(i, 4).Value = 3 Then
y2 = y2 + 1
Else
If Sheets("Search").Cells(i, 4).Value = 2 Then
y3 = y3 + 1
End If
End If
End If
End If
Next i
Следующий оператор определяет средний балл успеваемости.
If (y <> 0) Or (y1 <> 0) Or (y2 <> 0) Or (y3 <> 0) Then
z = ((y * 5) + (y1 * 4) + (y2 * 3) + (y3 * 2)) / (y + y1 + y2 + y3)
End If
Следующий оператор выводит средний балл в ячейку таблицы.
Sheets("Chart").Cells(11, 2).Value = z
Следующий оператор выводит количество баллов в таблицу.
Sheets("Chart").Cells(6, 2).Value = y
Sheets("Chart").Cells(7, 2).Value = y1
Sheets("Chart").Cells(8, 2).Value = y2
Sheets("Chart").Cells(9, 2).Value = y3
Следующий оператор строит гистограмму успеваемости.
Range("B6:B9").Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Chart").Range("B6:B9"),
PlotBy:= _
xlColumns
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Values = "=Chart!R6C2"
ActiveChart.SeriesCollection(1).Name = "=""Количество пятёрок"""
ActiveChart.SeriesCollection(2).Values = "=Chart!R7C2"
ActiveChart.SeriesCollection(2).Name = "=""Количество четвёрок"""
ActiveChart.SeriesCollection(3).Values = "=Chart!R8C2"
ActiveChart.SeriesCollection(3).Name = "="" Количество троек"""
ActiveChart.SeriesCollection(4).Values = "=Chart!R9C2"
ActiveChart.SeriesCollection(4).Name = "="" Количество двоек"""
ActiveChart.Location Where:=xlLocationAsObject, Name:="Chart"
With ActiveChart
HasAxis(xlCategory, xlPrimary) = False
HasAxis(xlValue, xlPrimary) = True
End With
ActiveChart.Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic
With ActiveChart.Axes(xlCategory)
HasMajorGridlines = False
HasMinorGridlines = False
End With
With ActiveChart.Axes(xlValue)
HasMajorGridlines = False
HasMinorGridlines = False
End With
ActiveChart.SeriesCollection(1).Select
With Selection.Border
Weight = xlThin
LineStyle = xlAutomatic
End With
Selection.Shadow = False
Selection.InvertIfNegative = False
Selection.Fill.OneColorGradient Style:=msoGradientHorizontal, Variant:=3,
_
Degree:=0.231372549019608
With Selection
Fill.Visible = True
Fill.ForeColor.SchemeColor = 4
End With
ActiveChart.SeriesCollection(2).Select
With Selection.Border
Weight = xlThin
LineStyle = xlAutomatic
End With
Selection.Shadow = False
Selection.InvertIfNegative = False
Selection.Fill.TwoColorGradient Style:=msoGradientHorizontal, Variant:=3
With Selection
Fill.Visible = True
Fill.ForeColor.SchemeColor = 5
Fill.BackColor.SchemeColor = 41
End With
ActiveChart.SeriesCollection(3).Select
With Selection.Border
Weight = xlThin
LineStyle = xlAutomatic
End With
Selection.Shadow = False
Selection.InvertIfNegative = False
Selection.Fill.OneColorGradient Style:=msoGradientHorizontal, Variant:=3,
_
Degree:=0.231372549019608
With Selection
Fill.Visible = True
Fill.ForeColor.SchemeColor = 8
End With
ActiveChart.SeriesCollection(4).Select
With Selection.Border
Weight = xlThin
LineStyle = xlAutomatic
End With
Selection.Shadow = False
Selection.InvertIfNegative = False
Selection.Fill.OneColorGradient Style:=msoGradientHorizontal, Variant:=3,
_
Degree:=0.231372549019608
With Selection
Fill.Visible = True
Fill.ForeColor.SchemeColor = 3
End With
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).ApplyDataLabels AutoText:=True,
LegendKey:= _
False, ShowSeriesName:=False, ShowCategoryName:=False,
ShowValue:=True, _
ShowPercentage:=False, ShowBubbleSize:=False
ActiveChart.SeriesCollection(2).Select
ActiveChart.SeriesCollection(2).ApplyDataLabels AutoText:=True,
LegendKey:= _
False, ShowSeriesName:=False, ShowCategoryName:=False,
ShowValue:=True, _
ShowPercentage:=False, ShowBubbleSize:=False
ActiveChart.SeriesCollection(3).Select
ActiveChart.SeriesCollection(3).ApplyDataLabels AutoText:=True,
LegendKey:= _
False, ShowSeriesName:=False, ShowCategoryName:=False,
ShowValue:=True, _
ShowPercentage:=False, ShowBubbleSize:=False
ActiveChart.SeriesCollection(4).Select
ActiveChart.SeriesCollection(4).ApplyDataLabels AutoText:=True,
LegendKey:= _
False, ShowSeriesName:=False, ShowCategoryName:=False,
ShowValue:=True, _
ShowPercentage:=False, ShowBubbleSize:=False
Следующий оператор открывает первую страницу книги Excel.
Sheets("Search").Select
Следующий оператор делает лист базы данных невидимым.
Sheets("Data").Visible = 0 - xlSheetHidden
End Sub
Приложение 2
function Decode(bCode: boolean; s:string):string;
const
// Крайние символы для кодирования
chBigFirstLetterRus: char = 'А';
chBigLastLetterRus: char = 'Я';
chFirstLetterRus: char = 'а';
chLastLetterRus: char = 'я';
chBigFirstLetterEng: char = 'A';
chBigLastLetterEng: char = 'Z';
chFirstLetterEng: char = 'a';
chLastLetterEng: char = 'z';
chFirstNumber='0';
chLastNumber='9';
var
iMinOrd: integer; // Код символа с наименьшим кодом
iMaxOrd: integer; // Код символа с наибольшим кодом
i: integer; // Для цикла
iTempOrd: integer; // Код подставляемого символа
ch: char; // Каждый символ текста
s1: string; // Преобразуемый текст
begin
s1 := Trim(form2x.RichEdit1.Text);
if s1 <> '' then // Если есть текст
for i := 1 to Length(s1) do // Проходит каждый символ
begin
ch := s1[i];
// Если очередной символ нужно кодировать
if ch in [chBigFirstLetterRus .. chBigLastLetterRus] then
// Заглавные буквы русского алфавита
begin
iMinOrd := Ord(chBigFirstLetterRus);
iMaxOrd := Ord(chBigLastLetterRus);
end
else
if ch in [chFirstLetterRus .. chLastLetterRus] then
// Строчные буквы русского алфавита
begin
iMinOrd := Ord(chFirstLetterRus);
iMaxOrd := Ord(chLastLetterRus);
end
else
if ch in [chBigFirstLetterEng .. chBigLastLetterEng] then
// Заглавные буквы английского алфавита
begin
iMinOrd := Ord(chBigFirstLetterEng);
iMaxOrd := Ord(chBigLastLetterEng);
end
else
if ch in [chFirstLetterEng .. chLastLetterEng] then
// Строчные буквы английского алфавита
begin
iMinOrd := Ord(chFirstLetterEng);
iMaxOrd := Ord(chLastLetterEng);
end
else
if ch in [chFirstNumber..chLastNumber] then // цифры
begin
iMinOrd := Ord(chFirstNumber);
iMaxOrd := Ord(chLastNumber);
end
else // Символ кодировать не нужно
continue;
if bCode then // Закодировать
begin
iTempOrd := Ord(ch) + n; // Получаем потенциальную позицию
if iMaxOrd - iTempOrd < 0 then
// Если символ зашел за границу предельного
ch := Chr(iMinOrd + abs(iMaxOrd - iTempOrd) - 1)
// Возьмем символ с другого конца круга
else // Если нет
ch := chr(iTempOrd); //все нормально
end
else // Раскодировать
begin
iTempOrd := Ord(ch) - n; // Получаем потенциальную позицию
if iMinOrd - iTempOrd > 0 then
// Если символ зашел за границу предельного
ch := Chr(iMaxOrd - (iMinOrd - iTempOrd - 1))
// Возьмем символ с другого конца круга
else // Если нет..
ch := chr(iTempOrd); //все нормально
end;
s1[i] := ch;
end;
Decode:= s1;
end;
Приложение 3
// масштабирование иллюстрации
Procedure ScaleImage(Image1:TImage);
var
w,h:integer; // максимально допустимые размеры картинки
scaleX:real; // коэф. масштабирования по X
scaleY:real; // коэф. масштабирования по Y
scale:real; // общий коэф. масштабирования
begin
// вычислить максимально допустимые размеры картинки
w:=Form1x.ClientWidth-10;
h:=Form1x.ClientHeight
- Form1x.Panel1.Height -5
- Form1x.Label5.Top
- Form1x.Label5.Height - 5;
if Form1x.Label1.Caption <> ''
then h:=h-Form1x.Label1.Height-5;
if Form1x.Label2.Caption <> ''
then h:=h-Form1x.Label2.Height-5;
if Form1x.Label3.Caption <> ''
then h:=h-Form1x.Label3.Height-5;
if Form1x.Label4.Caption <> ''
then h:=h-Form1x.Label4.Height-5;
// определить масштаб
if w>Image1.Picture.Bitmap.Width
then scaleX:=1
else scaleX:=w/Image1.Picture.Bitmap.Width;
if h>Image1.Picture.Bitmap.Height
then scaleY:=1
else scaleY:=h/Image1.Picture.Bitmap.Height;
if ScaleY<ScaleX
then scale:=scaleY
else scale:=scaleX;
// здесь масштаб определен
Image1.Top:=Form1x.Label5.Top+Form1x.Label5.Height+5;
Image1.Width:=Round(Image1.Picture.Bitmap.Width*scale);
Image1.Height:=Round(Image1.Picture.Bitmap.Height*scale);
end;
// вывод вопроса на экран
Procedure VoprosToScr(var f:TextFile;frm:TForm1x;var vopros:integer);
var
i:integer;
code:integer;
s,buf:string;
b, ifn:string; // файл иллюстрации
begin
b:='Многогранники/Image/';
vopros:=vopros+1;
str(vopros:3,s);
frm.caption:='Вопрос' + s;
//Выведем текст вопроса
buf:='';
repeat
readln(f,s);
s:=Decode(false,s);
if (s[1] <> '$') and (s[1] <> '\')
then buf:=buf+s+' ';
until (s[1] ='$') or (s[1] ='\');
frm.Label5.caption:=buf;
if s[1] <> '\'
then Form1x.Image1.Tag:=0
else // к вопросу есть иллюстрация
begin
Form1x.Image1.Tag:=1;
ifn:=copy(s,2,length(s));
try
Form1x.Image1.Picture.LoadFromFile(b+ifn);
except
on E:EFOpenError do
frm.tag:=0;
end;
end;
// Читаем варианты ответов
i:=1;
repeat
buf:='';
repeat // читаем текст варианта ответа
readln(f,s);
s:=Decode(false,s);
if (s[1]<>'}') and (s[1] <> ',')
then buf:=buf+s+' ';
until (s[1]=',')or(s[1]='}');
// прочитан альтернативный ответ
val(s[2],score[i],code);
case i of
1: frm.Label1.caption:=buf;
2: frm.Label2.caption:=buf;
3: frm.Label3.caption:=buf;
4: frm.Label4.caption:=buf;
end;
i:=i+1;
until s[1]='}';
// здесь прочитана иллюстрация и альтернативные ответы
// текст вопроса уже выведен
if Form1x.Image1.Tag =1 // есть иллюстрация к вопросу
then begin
ScaleImage(Form1x.Image1);
Form1x.Image1.Visible:=TRUE;
end;
// вывод альтернативных ответов
if Form1x.Label1.Caption <> ''
then begin
if Form1x.Image1.Tag =1
then frm.Label1.top:=frm.Image1.Top+frm.Image1.Height+5
else frm.Label1.top:=frm.Label5.Top+frm.Label5.Height+5;
frm.RadioButton1.top:=frm.Label1.top;
frm.Label1.visible:=TRUE;
frm.RadioButton1.visible:=TRUE;
end;
if Form1x.Label2.Caption <> ''
then begin
frm.Label2.top:=frm.Label1.top+ frm.Label1.height+5;
frm.RadioButton2.top:=frm.Label2.top;
frm.Label2.visible:=TRUE;
frm.RadioButton2.visible:=TRUE;
end;
if Form1x.Label3.Caption <> ''
then begin
frm.Label3.top:=frm.Label2.top+ frm.Label2.height+5;
frm.RadioButton3.top:=frm.Label3.top;
frm.Label3.visible:=TRUE;
frm.RadioButton3.visible:=TRUE;
end;
if Form1x.Label4.Caption <> ''
then begin
frm.Label4.top:=frm.Label3.top+ frm.Label3.height+5;
frm.RadioButton4.top:=frm.Label4.top;
frm.Label4.visible:=TRUE;
frm.RadioButton4.visible:=TRUE;
end;
end;
Размещено на Allbest.ru
Подобные документы
Выбор базовых программных средств для разработки оригинального программного обеспечения. Компоненты программно-методического комплекса проектирования токарных операций. Программное обеспечение для организации интерфейса программно-методического комплекса.
дипломная работа [2,8 M], добавлен 14.05.2010Структурная диаграмма программного модуля. Разработка схемы программного модуля и пользовательского интерфейса. Реализация программного модуля: код программы; описание использованных операторов и функций. Вид пользовательской формы с заполненной матрицей.
курсовая работа [215,3 K], добавлен 01.09.2010Особенности разработки и реализации модулей двухмерной и трехмерной визуализации. Основные задачи трехмерного модуля управления. Анализ функций модуля управления ParamColorDrawer. Характерные особенности схемы функционирования программного средства.
реферат [2,2 M], добавлен 07.03.2012Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.
курсовая работа [81,7 K], добавлен 18.08.2014Знакомство с особенностями создания электронного учебно-методического комплекса по предмету информатика на примере 9 класса. Общая характеристика среды Turbo Pascal 7.0. Анализ приоритетных направлений процесса информатизации современного общества.
дипломная работа [3,7 M], добавлен 23.04.2015Цементирование обсадных колонн нефтяных скважин. Состав информационного обеспечения программного комплекса автоматизированного проектирования. Реализация инфологической модели и организация взаимодействия программного обеспечения с базой данных.
дипломная работа [2,3 M], добавлен 22.07.2013Разработка и реализация программного комплекса для обеспечения возможности проведения тестирования в образовательной среде. Разработка структура системы, базы данных, алгоритмов, интерфейса пользователя. Технико-экономическое обоснование проекта.
дипломная работа [3,3 M], добавлен 03.09.2012Требования на входные данные. Разработка диаграммы вариантов использования. Генерация учебно-тренировочных задач на основе текста учебного материала. Интерфейс программного средства. Реализация информационного обеспечения и функциональности подсистемы.
курсовая работа [576,6 K], добавлен 28.08.2012Разработка программного модуля, программного обеспечения для компьютерных систем средствами C++ Builder. Разработка карты и интерфейса сайта. Алгоритмы реализации интерактивных функций программы. Пропускная способность линии связи. Программный код сайта.
отчет по практике [1,2 M], добавлен 16.09.2012Набор требований к программному продукту "Калькулятор". Тестовые сценарии для модульного тестирования. Использование системы визуального проектирования. Разработка программного кода. Вычисление цикломатического числа и построение графы каждого модуля.
контрольная работа [170,4 K], добавлен 04.11.2014