Министерство образования Российской Федерации ГОУ ВПО «Уральский государственный технический университет – УПИ»
РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Методические указания к курсовой работе по дисциплине «Информатика» для студентов всех форм обучения по направлениям: 552500 –Радиотехника (бакалавры); 654200 – Радиотехника для специальности 200700 – Радиотехника; 654700 – Информационные системы для специальности 071900 – Информационные системы и технологии
Екатеринбург 2003
УДК: 681.3.06 (072) Составитель В.Д.Нехорошев Научный редактор доц., канд. техн. наук В.А.Добряк Разработка программного обеспечения: Методические указания к курсовой работе по дисциплине «Информатика» / В.Д.Нехорошев. Екатеринбург: ГОУ ВПО УГТУ-УПИ, 2003. 30 с. Методические указания предназначены для выполнения курсовой работы по дисциплине «Информатика». Содержат варианты тем, рекомендации по выполнению работы, требования к оформлению и пример пояснительной записки. Библиогр.: 23 назв. Рис. 1. Прил. 1.
Подготовлено кафедрой «Радиоэлектроника информационных систем».
ГОУ ВПО «Уральский государственный технический университет – УПИ», 2003
ОГЛАВЛЕНИЕ 1. ЦЕЛИ И ЗАДАЧИ КУРСОВОЙ РАБОТЫ .......................................................4 2. ОСНОВНЫЕ ЭТАПЫ ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ ...................4 3. ВАРИАНТЫ ЗАДАНИЙ.....................................................................................5 4. ПРИМЕРЫ РЕШЕНИЯ ТИПОВЫХ ЗАДАЧ НА VISUAL BASIC 6.0........11 4.1. Выбор файла для чтения (записи) .............................................................11 4.2. Запись и чтение файла с последовательным доступом...........................12 4.3. Добавление системы меню.........................................................................13 4.4. Работа с цветными изображениями ..........................................................14 4.5. Работа со строками......................................................................................15 5. ИСПОЛЬЗОВАНИЕ МАСТЕРА ПРИЛОЖЕНИЯ VISUAL BASIC 6.0 ......16 6. СОЗДАНИЕ ДИСТРИБУТИВНОГО ПАКЕТА РАЗРАБОТАННОГО ПРИЛОЖЕНИЯ ................................................................................................18 7. ОФОРМЛЕНИЕ ПОЯСНИТЕЛЬНОЙ ЗАПИСКИ ........................................19 8. ЗАЩИТА КУРСОВОЙ РАБОТЫ ....................................................................21 БИБЛИОГРАФИЧЕСКИЙ СПИСОК..................................................................22 ПРИЛОЖЕНИЕ .....................................................................................................24
3
1. ЦЕЛИ И ЗАДАЧИ КУРСОВОЙ РАБОТЫ Курсовая работа по дисциплине «Информатика» выполняется студентами на заключительном этапе изучения курса и ставит следующие цели: ! овладение методикой разработки алгоритмов и программ; ! закрепление навыков применения персонального компьютера для решения повседневных учебных и профессиональных задач; ! развитие умения использовать справочные системы и техническую литературу. Курсовая работа заключается в самостоятельной разработке программного обеспечения в операционной среде Windows. В качестве основных средств разработки используются Microsoft Visual Basic и Visual C++. Допускается использование других средств разработки. Совместно со средствами разработки программного обеспечения могут использоваться офисные, математические и другие программные пакеты. 2. ОСНОВНЫЕ ЭТАПЫ ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ ! Выбор задания. Курсовая работа выполняется в соответствии с индивидуальным заданием. Варианты заданий для курсовой работы приведены в разделе 3. Студент может предлагать свою тему курсовой работы при условии, что её объем соответствует объему типового задания. ! Разработка обобщенного алгоритма решения задачи, выбор программных средств, определение требований к интерфейсу конечного пользователя, уточнение задания. ! Собственно программирование или создание программного кода. Выбор объектов, создание интерфейса пользователя и системы меню. Рекомендуется использовать готовые объекты (например, диалоговые окна). При написании кода используйте осмысленные имена переменных, форматируйте исходный текст и не забывайте про необходимость комментариев. ! Комплексная отладка на контрольном примере. Отладка позволяет проверить соответствие возможностей программного продукта заданным требованиям. Данные для контрольного примера могут быть произвольными. ! Создание дистрибутивного пакета разработанного приложения. Дистрибутивный пакет создается для возможности переноса приложения на любой другой компьютер с операционной системой Windows. Методика его создания рассмотрена в разделе 6. ! Оформление отчета. Все вопросы курсовой работы должны быть лаконично и грамотно изложены в пояснительной записке. Требования к оформлению пояснительной записки приведены в разделе 7. ! Защита курсовой работы. Защита курсовой работы производится с демонстрацией решения задачи на компьютере. Критерии оценки выполненной работы сформулированы в разделе 8.
4
3. ВАРИАНТЫ ЗАДАНИЙ Вариант 1. Шахматные часы Шахматные часы предназначены для контроля времени при игре в шахматы. Интерфейс программы должен содержать два циферблата, две кнопки. Предусмотреть установку времени на игру. При «падении флага» выдавать звуковой сигнал. Управление часами должно осуществляться не только «мышью», но и клавиатурой. Вариант 2. График двух функций в декартовых координатах Программа предназначена для построения графика двух функций по данным, находящимся в файле. Основные функции программы: выбор файла для загрузки, загрузка файла, построение графика с автоматическим выбором масштаба. Предусмотреть возможность увеличения выбранного участка графика. Для отладки программы создайте файл с данными. Файл с данными – это текстовый файл, содержащий произвольное число строк. Каждая строка содержит два вещественных числа, разделенных запятой. Вариант 3. График функции в декартовых и полярных координатах Программа предназначена для построения графика функции по данным, находящимся в файле. Основные функции программы: выбор файла для загрузки, загрузка файла, построение графика с автоматическим выбором масштаба. Предусмотреть возможность переключения систем координат: декартовой и полярной. Для отладки программы создайте файл с данными. Файл с данными – это текстовый файл, содержащий произвольное число вещественных чисел. Каждое число занимает отдельную строку файла. Вариант 4. База данных дней рождения студентов Программа предназначена для хранения списка студентов группы и их дней рождения. Записи с информацией о студентах сохраняются в файле с режимом произвольного доступа. Основные функции программы: выбор файла для загрузки, загрузка и отображение информации из файла, возможность добавления, редактирования и удаления записей, сохранение информации в файле. Ввести команду поиска студента, у которого дата рождения ближайшая к текущей дате. Вариант 5. База данных успеваемости студентов Программа предназначена для хранения списка студентов группы и их экзаменационных оценок. Записи с информацией о студентах сохраняются в файле с режимом произвольного доступа. Основные функции программы: выбор файла для загрузки, загрузка и отображение информации из файла, 5
возможность добавления, редактирования и удаления записей, сохранение информации в файле. Предусмотреть автоматический расчёт среднего балла в группе. Вариант 6. Перевод чисел из одной системы счета в другую Программа предназначена для преобразования чисел из одной системы счёта в другую. Например, единицы измерения длины (дюймы – миллиметры), температуры (градусы по Цельсию – Фаренгейту – Кельвину). Обеспечить удобный интерфейс. Предусмотреть вывод дополнительной справочной информации. Например, при переводе числа из дюймов в миллиметры сообщать, что 1 дюйм равен 25,40 мм. Вариант 7. Простейший текстовый редактор Программа предназначена для просмотра и несложного редактирования текста. Основные функции программы: выбор текстового файла для загрузки, загрузка файла и отображение содержания в текстовом окне, поддержка основных операций редактирования, сохранение текста в файле. Предусмотреть возможность поиска заданного слова в тексте. Вариант 8. Простейший графический редактор Программа предназначена для просмотра и несложного редактирования изображений. Основные функции программы: выбор графического файла для загрузки, загрузка файла и отображение содержания в графическом окне, поддержка основных операций рисования, сохранение изображения в файле. Обеспечить рисование с помощью «мыши» и вывод простых фигур: круг, прямоугольник. Вариант 9. Программа просмотра графических файлов Программа предназначена для просмотра графических файлов. Окно программы следует поделить на две части. В одной части должно отображаться дерево папок и список всех графических файлов выбранной папки, в другой – изображение из выделенного файла. Предусмотреть режим последовательного автоматического отображения графических файлов папки с заданным интервалом времени. Вариант 10. Построение настроечной таблицы для монитора Программа предназначена для вывода настроечной таблицы цветного монитора. За основу взять таблицу настройки цветных телевизоров. Программа не должна выводить на экран готовое изображение настроечной таблицы из файла, она должна это изображение нарисовать. Для построения изображения можно использовать либо объекты графических примитивов, либо графические методы формы. Изображение должно автоматически изменять масштаб при изменении размера окна. 6
Вариант 11. Программа выделения контуров цветного изображения Программа предназначена для выделения контуров цветного изображения. Основные функции программы: выбор графического файла для загрузки, загрузка файла и отображение в первом графическом окне, обработка изображения с целью выделения контуров и вывод результата во втором графическом окне, сохранение обработанного изображения в файле под другим именем. Обработка изображения заключается в выделении контуров, т.е. границ резкого изменения яркости. Алгоритм выделения границы изменения яркости выберите самостоятельно. Это может быть алгоритм, основанный на вычислении производной, или алгоритм нахождения градиента яркости, или любой другой. Вариант 12. Программа изменения контраста цветного изображения Программа предназначена для изменения контраста цветного изображения. Основные функции программы: выбор графического файла для загрузки, загрузка файла и отображение в первом графическом окне, обработка изображения с целью установления заданного контраста и вывод результата во втором графическом окне, сохранение обработанного изображения в файле под другим именем. Под контрастом цветного изображения будем понимать диапазон (размах) изменения яркости этого изображения. Вариант 13. Регулировка цветового баланса изображения Программа предназначена для регулировки цветового баланса изображения. Основные функции программы: выбор графического файла для загрузки, загрузка файла и отображение в первом графическом окне, обработка изображения с целью установления заданных уровней основных цветов и вывод результата во втором графическом окне, сохранение обработанного изображения в файле под другим именем. Обработка изображения заключается в изменении средних уровней основных цветов: красного, зеленого и синего. Средние уровни основных цветов задаются пользователем с помощью ползунковых регуляторов. Вариант 14. Построение гистограмм распределения интенсивности основных цветов изображения Программа предназначена для построения гистограмм распределения интенсивности основных цветов изображения. Основные функции программы: выбор графического файла для загрузки, загрузка файла и отображение в графическом окне, обработка изображения с целью построения гистограмм. Программа должна для выбранного изображения построить три гистограммы распределения интенсивности основных цветов: красного, зеленого и 7
синего. Для каждого цвета гистограмма строится следующим образом. Интенсивность основного цвета может изменяться в диапазоне целых чисел от 0 до 255. Диапазон делится на интервалы. Количество интервалов может выбираться в диапазоне от 2 до 256. Алгоритм построения гистограммы заключается в переборе всех пикселов изображения, выделении интенсивности основных цветов и вычислении частоты попадания интенсивности в эти интервалы. Графическое изображение гистограммы получают методом построения на каждом интервале прямоугольника, высота которого равна количеству попаданий значений в этот интервал. В окне программы должны отображаться анализируемое изображение и три графика гистограмм основных цветов. Предусмотреть задание количества интервалов гистограммы. Вариант 15. Обработка данных Программа предназначена для расчета статистических параметров данных, загружаемых из файла. Основные функции программы: выбор файла с данными для загрузки, загрузка данных, вычисление статистических параметров, отображение данных и вычисленных параметров. Для отладки программы создайте файл с данными. Файл с данными – это текстовый файл, содержащий произвольное число вещественных чисел. Каждое число занимает отдельную строку файла. Обработка данных заключается в вычислении статистических параметров: среднего значения, дисперсии и среднеквадратического отклонения. Для их вычисления используйте следующие формулы:
1 n ∑ Xk ; n k =1 1 n Dx = ( X k − X )2 ; ∑ n − 1 k =1 σ x = Dx , где X 1 , X 2 , … X n – вещественные числа; X =
n – количество чисел. Дополнительно к этим параметрам найдите максимальное и минимальное значения чисел. Вариант 16. Подсчет количества букв Программа предназначена для подсчета количества каждой буквы в текстовом файле. Основные функции программы: выбор текстового файла для загрузки, загрузка файла и отображение содержания в текстовом окне, подсчет количества каждой буквы, построение графика частоты повторений букв. При построении графика расположите буквы по алфавиту. Регистр букв не учитывать. 8
Вариант 17. Подсчет количества слов Программа предназначена для подсчета количества слов в текстовом файле. Основные функции программы: выбор текстового файла для загрузки, загрузка файла и отображение содержания в текстовом окне, выделение слов и подсчет числа их повторений, построение списка слов, встречающихся в тексте, в порядке убывания частоты повторений. Регистр букв не учитывать. Вариант 18. Сравнение текстовых файлов Программа предназначена для поиска различий в текстовых файлах. Основные функции программы: выбор текстовых файлов для загрузки, загрузка двух текстовых файлов и отображение их содержания в отдельных текстовых окнах, сравнение текстов и выделение отличающегося текста. Вариант 19. Поиск файла по имени Программа предназначена для поиска файла на компьютере. Основные функции программы: ввод имени файла, выбор диска или папки, поиск и отображение списка найденных файлов. Предусмотреть возможность поиска файла по шаблону. Вариант 20. Слежение за размером каталога Программа предназначена для слежения за размером каталога и выдачи предупреждения при превышении установленного уровня. Использовать файл конфигурации (ini-файл) для задания имени каталога и порогового уровня его размера. Программа должна периодически подсчитывать сумму размеров всех файлов, находящихся в указанном каталоге, и сравнивать ее с установленным уровнем. В случае превышения установленного уровня выводить окно с предупреждением. Вариант 21. Калькулятор Программа предназначена для выполнения вычислений. Достаточно реализовать только четыре арифметические операции: сложение, вычитание, умножение и деление. Обеспечить возможность отображения чисел в различных форматах: двоичном, восьмеричном, десятичном и шестнадцатеричном. При преобразовании нецелого десятичного числа в другую систему счисления его дробная часть отбрасывается. Вариант 22. Анаграммы Программа предназначена для построения по заданному с клавиатуры слову всех его анаграмм, т.е. слов (возможно, бессмысленных), состоящих из всех букв исходного слова, но расположенных в произвольном порядке. Например, «торг» и «грот» – анаграммы.
9
Вариант 23. Составление слов из букв введенного слова Программа предназначена для построения всех слов (возможно, бессмысленных), которые можно составить из букв введенного слова. Например, из букв слова «лук» можно составить слова: «кул», «укл», «улк», «лу», «ук», «лк» и т.д. Вариант 24. Шифрование и дешифрование текстовых сообщений Программа предназначена для шифрования и дешифрования текстовых сообщений, хранящихся в файлах. Основные функции программы: выбор текстового файла для загрузки, загрузка файла и отображение информации в первом текстовом окне, шифрование (дешифрование) и вывод результата во втором текстовом окне, сохранение результата в файле под другим именем. Программа должна автоматически определять, зашифрован текст во входном файле или нет. Алгоритм шифрования текстовых сообщений выберите самостоятельно. Вариант 25. Периодическая таблица химических элементов Программа предназначена для получения справочной информации о химических элементах. Требуется в окне программы отобразить периодическую таблицу химических элементов Д.И.Менделеева. Программа должна сообщать дополнительную информацию о выбранном элементе. Выбор элемента осуществляется с помощью курсора мыши. Вариант 26. Бегущая строка Программа предназначена для вывода на экран текстовых сообщений в виде бегущей строки. Сообщения берутся из текстового файла. Реализовать циклический вывод сообщений. Требуется добиться максимальной плавности движения. Предусмотреть возможность изменения скорости движения строки. Вариант 27. Клавиатурный тренажер Программа предназначена для тренировки быстрого набора текста на клавиатуре компьютера. Программа должна выдавать образцы текста для ввода, подсчитывать число ошибок при вводе. При превышении заданного количества ошибок или временного ограничения программа должна предлагать повторить задание. Вариант 28. Заставка экрана Заставка экрана предназначена для сохранения ресурса монитора. Заставка включается при отсутствии активности (использование клавиатуры, мыши) на компьютере заданное время. Существует множество программзаставок, поставляемых вместе с операционной системой Windows: «Сквозь 10
вселенную», «Геометрический вальс», «Бегущая строка», «Летящая эмблема Windows» и др. Вам предлагается самостоятельно сделать подобную программу. Вариант 29. Игра «Крестики-нолики» Программа предназначена для игры в крестики-нолики пользователя с компьютером. Требуется реализовать алгоритм игры на квадратном поле 5 на 5 клеток. Вариант 30. Перекодировщик текстовых файлов Программа предназначена для перекодировки текстовых файлов из формата кодовой таблицы 866 – MS-DOS в формат кодовой таблицы 1251 – MS-Windows и наоборот. Пользователь должен выбирать текстовый файл и направление перекодировки. 4. ПРИМЕРЫ РЕШЕНИЯ ТИПОВЫХ ЗАДАЧ НА VISUAL BASIC 6.0 4.1. Выбор файла для чтения (записи) При работе с файлами часто требуется выбрать в диалоговом окне файл для записи или чтения. Если вам требуются какие-то особые диалоговые окна для выбора файла, то их можно создать самостоятельно, используя управляющие элементы: DriveListBox, DirListBox, FileListBox. Однако в большинстве случаев вполне достаточно использовать стандартные диалоговые окна, которые создаются с помощью управляющего элемента CommonDialog. Исходно элемент CommonDialog отсутствует на панели элементов, поэтому перед использованием его нужно подключить. Делается это следующим образом: выполните команду «Project, Components» меню Visual Basic; в открывшемся окне со списком имеющихся дополнительных управляющих элементов поставьте галочку рядом с «Microsoft Common Dialog Control»; закройте окно нажатием на кнопку
. На панели элементов в виде пиктограммы дополнительно появится управляющий элемент CommonDialog. Перенесите этот элемент на форму вашего приложения. После этого вам становятся доступными стандартные диалоговые окна: открытия и сохранения файла, установок принтера, установки цвета и шрифта. Тип диалогового окна зависит от того, какой метод используется для его открытия (ShowOpen, ShowSave, ShowPrinter, ShowColor, ShowFont). Ниже приведен пример функции для выбора имени текстового файла для последующего чтения. В примере управляющий элемент CommonDialog имеет имя dlg и размещен на форме frmMain.
11
Public Sub OpenFile() 'выбор имени текстового файла With frmMain.dlg 'фильтры для отбора файлов .Filter = "(*.txt)|*.txt|(*.*)|*.*" .FilterIndex = 1 'исходно активен фильтр текстовых файлов .CancelError = False 'при отказе генерация ошибки не нужна .ShowOpen 'открытие диалогового окна If Len(.FileName) > 0 Then 'проверить, выбран ли файл 'здесь могут находиться операторы для чтения 'выбранного файла '……………………………………………… End If End With End Sub
4.2. Запись и чтение файла с последовательным доступом В файле с последовательным доступом данные сохраняются в виде символьных строк. Строки произвольной длины, записываются и считываются последовательно. Работа с файлом начинается с его открытия (Open), затем могут выполняться операторы записи (Write #) или чтения (Input #), в конце файл следует закрыть (Close). Ниже приведен пример функции, записывающей данные в файл, и функции, считывающей эти данные из файла в массивы. Private Sub btnWrite_Click() Dim numfile As Integer Dim i As Integer numfile = FreeFile ' Получение свободного номера файла Open "data.txt" For Output As numfile ' Открытие файла для ' записи. Если такой файл уже есть, он будет перезаписан For i = 0 To 10 ' Запись 11 строк с данными Write #numfile, Cos(1.57 * i), Sin(1.57 * i) Next i Close #numfile ' Закрытие файла End Sub Private Sub btnRead_Click() Dim numfile As Integer Dim i As Integer, N As Integer, k As Integer Dim A(10) As Double, B(10) As Double numfile = FreeFile' Получение свободного номера файла Open "data.txt" For Input As numfile' Открытие файла i = 0 Do While Not EOF(numfile) Input #numfile, A(i), B(i) i = i + 1 Loop N = i ' Количество считанных строк с данными 12
Close #numfile ' Здесь могут быть операторы, использующие прочитанные 'данные End Sub
Для записи в файл можно также использовать оператор Print #, который отличается от оператора Write # форматированием текста. Оператор Print # при записи данных использует региональные установки компьютера (формат даты, вид десятичного разделителя). Если выводится текстовая информация, то она не заключается в двойные кавычки. Данные, записанные с помощью оператора Print # , обычно читаются из файла с помощью оператора Input Line # . 4.3. Добавление системы меню Откройте форму, к которой вы хотите добавить систему меню, в режиме разработки. Выполните команду меню Visual Basic «Tools, Menu Editor». В результате откроется диалоговое окно «Menu Editor» (редактор меню), в котором собственно и разрабатывается меню. Для каждой опции меню вы должны задать значения двух полей: Caption и Name. Значение Caption будет отображаться при работе в строке меню. Значение Name определяет имя опции, по которому к нему можно обратиться в программном коде. На рисунке показан вид диалогового окна «Menu Editor» с примером системы меню.
Окно редактора меню
13
Для создания разделительной полосы нужно в поле Caption ввести один дефис (-). Для того чтобы дать пользователю возможность вызывать команды меню с клавиатуры, введите в поле Caption перед нужной буквой амперсанд (&). Во время работы эта буква будет подчёркнута, а команду можно выполнить, нажав одновременно на клавиатуре эту букву и . Кнопки-стрелки в редакторе меню используются для перемещений опций. Перемещение опции вправо означает перевод её во вложенное подменю. Допускается до четырёх уровней вложенных подменю. Кнопка – переход к следующей опции. Кнопка – добавление новой опции перед выбранной. Кнопка – удаление опции. Завершается разработка меню нажатием на кнопку . Диалоговое окно закрывается, и на форме в режиме разработки вы увидите функционирующую систему меню. Щелчок мышкой на какой-либо команде меню вызывает открытие окна программного кода с соответствующей заготовкой процедуры. 4.4. Работа с цветными изображениями Для отображения графических файлов: растров (.BMP), значков (.ICO), метафайлов (.WMF), файлов в формате JPEG (.JPG) и GIF (.GIF) – используются объекты Image и PictureBox. Объект Image может использоваться для отображения статических рисунков. PictureBox – более сложный объект, он может отображать рисунки и выполнять функцию контейнера для других объектов. В PictureBox можно рисовать при помощи различных графических методов. Если вы решаете задачу, связанную с обработкой изображений, используйте объект PictureBox. Любое изображение на экране монитора – это набор пикселов. Цвет отдельного пиксела изображения задается уровнями трех основных цветов: красного, зеленого и синего. В Visual Basic объект PictureBox имеет методы, позволяющие получить (Point) и установить (PSet) цвет отдельного пиксела. Однако, как показали эксперименты, эти методы работают очень медленно. Поэтому рекомендуется использовать функции динамических библиотек Windows API: GetPixel и SetPixel, которые выполняют те же операции, но работают быстрее. Функция GetPixel для указанного пиксела возвращает длинное целое, в котором закодированы основные цвета. Длинное целое содержит четыре байта. Первый (младший) байт содержит уровень красного (R), второй байт содержит уровень зеленого (G), третий байт содержит уровень синего (B), четвертый байт не используется. Уровень каждого основного цвета может принимать значение от 0 до 255. Функция SetPixel устанавливает цвет указанного пиксела. Цвет задается в виде длинного целого, в котором закодированы уровни основных цветов. Для кодировки используется функция RGB(R,G,B). Пример программы обработки изображений на Visual Basic приведен в приложении. 14
4.5. Работа со строками Рассмотрим наиболее часто используемые функции Visual Basic при работе со строками. Функция Str(number) – преобразование числа в строку. Возвращает строку, представляющую указанное число. Первый символ строки всегда резервируется для знака числа. Если число положительное, то первым символом будет пробел. В качестве верного десятичного разделителя распознается только точка (.). Пример: Dim sMyString As String sMyString = Str(459) sMyString = Str(-459.65) sMyString = Str(459.001)
' Возвращает " 459" ' Возвращает "-459.65" ' Возвращает " 459.001"
Функция Val(str) – преобразование строки в число. Возвращает числа, содержащиеся в строке, как числовое выражение. Функция прекращает чтение строки на первом символе, который не распознается как часть числа. Пробелы, знаки табуляции пропускаются. Распознает префиксы восьмеричной &O и шестнадцатеричной &H форм записи чисел. Пример: Dim dMyValue As Double dMyValue = Val("2457") ' Возвращает 2457. dMyValue = Val(" 2 45 7") ' Возвращает 2457. dMyValue = Val("24 and 57") ' Возвращает 24. dMyValue = Val("&HFFFF") ' Возвращает -1.
Функция Len(string) – возвращает число символов в указанной строке. Пример: Dim sMy As String, l As Long sMy = "Привет" l=Len(sMy) ' Возвращает 6
Функция Mid(string, start[, length]) – выделение указанной части строки в отдельную строку. Параметры: string – исходная строка; start – номер позиции в строке, с которой начинается выделение; length – число выделяемых символов (необязательный параметр). Если параметр length отсутствует, то выделяются все символы со стартовой позиции до конца исходной строки. Пример: Dim sMyString As String, sFirstWord As String Dim sLastWord As String, sMidWords As String sMyString = "Это пример функции" ' Исходная строка sFirstWord = Mid(sMyString, 1, 3) ' Возвращает "Это" sLastWord = Mid(sMyString, 12, 7) ' Возвращает "функции" sMidWords = Mid(sMyString, 5) ' Возвращает "пример функции"
15
Функция InStr([start, ]string1, string2[, compare]) – поиск одной строки в другой. В случае успешного поиска возвращает номер позиции найденного фрагмента в исходной строке. Параметры: start – номер позиции в исходной строке, с которой начинается поиск (необязательный параметр, при его отсутствии поиск начинается с начала строки); string1 – исходная строка, в которой будет проводиться поиск; string2 – строка, которая ищется; compare – тип сравнения символов (необязательный параметр). Параметр compare может принимать значения: 0 – бинарное сравнение (с учетом регистра), 1 – текстовое сравнение (без учета регистра). Если параметр compare отсутствует, то тип сравнения определяется оператором Option Compare, который может находиться в разделе описаний модуля. Пример: Dim sString As String, sSearch As String, iPos As Integer sString ="XXppXXppXXPPXXPP" ' Исходная строка sSearch = "PP" ' строка, которую требуется найти ' текстовое сравнение с позиции 5 iPos = Instr(5, sString, sSearch, 1) ' Возвращает 7 ' бинарное сравнение с позиции 1 iPos = Instr(1, sString, sSearch, 0) ' Возвращает 11 iPos = Instr(1, sString, "WW") ' Возвращает 0 (не найдена)
5. ИСПОЛЬЗОВАНИЕ МАСТЕРА ПРИЛОЖЕНИЯ VISUAL BASIC 6.0 Большинство Windows-приложений обладает стандартным интерфейсом. Стандартизация сокращает время обучения работе с приложением и повышает эффективность работы в нем. По этой причине рекомендуется при разработке собственных приложений придерживаться этих стандартов. Это касается состава меню, панели инструментов, «горячих» клавиш и т.д. Visual Basic 6.0 имеет замечательный инструмент «VB Application Wizard», позволяющий облегчить создание нового приложения. Этот мастер выполняет многие рутинные работы по созданию стандартного интерфейса. Остается только модифицировать полученную заготовку приложения под ваши нужды. Мастер «VB Application Wizard» запускается из диалогового окна «New Project», которое открывается при запуске Visual Basic, либо при выполнении команды меню «File, New Project». Выберите в этом окне значок и нажмите на кнопку . В ходе работы мастера приложений будут открываться следующие диалоговые окна: ! «Introduction» – позволяет задать файл установок, сохраненный при предыдущих запусках мастера приложений. Если вы не создавали ранее файла установок, то сразу переходите к следующему диалоговому окну, нажав кнопку . 16
! «Interface Type» – позволяет выбрать тип пользовательского интерфейса из трех вариантов: Multiple Document Interface (MDI), Single Document Interface (SDI), Explorer Style. MDI – многооконный тип интерфейса приложения, в котором имеется одно главное окно. В пределах главного окна может быть много подчиненных дочерних окон. Типичным примером MDI-приложения является текстовый процессор Microsoft Word. SDI – однооконный тип интерфейса приложения, в котором нет подчиненности окон «главное – дочернее». Explorer Style – тип интерфейса такой же, как у приложения «Проводник», т.е. окно разбивается на две части. В левой части окна отображается дерево каталогов, в правой части отображается содержимое выбранного каталога. Выбор за вами. Для большинства предлагаемых заданий на курсовую работу наиболее подходящий тип интерфейса SDI. В этом же диалоговом окне задайте имя приложения и переходите к следующему окну, нажав кнопку . ! «Menus» – позволяет построить систему меню из набора стандартных команд. При необходимости можно добавлять собственные команды. ! «Customize Toolbar» – предназначено для настройки панели инструментов вашего приложения. ! «Resources» – позволяет включить файл ресурсов в ваше приложение. В файл ресурсов выносятся все надписи приложения. Используется для создания многоязычного интерфейса приложения. Рекомендуется ответить «No». ! «Internet Connectivity» – позволяет включить в приложение ссылку на страницу в Internet. Рекомендуется ответить «No». ! «Standard Forms» – позволяет включить в приложения заготовки стандартных форм из следующего списка: o Splash screen at application start up – заставка приложения (окно, открывающееся при запуске приложения); o Login dialog to accept an ID and Password – диалоговое окно для ввода имени и пароля; o Options dialog for custom settings – диалоговое окно установок приложения; o About Box – окно с информацией о программе. ! «Data Access Forms» – позволяет создавать формы с информацией, полученной из запросов к базе данных. Рекомендуется не использовать данную возможность и сразу перейти к следующему окну. ! «Finished» – позволяет сохранить все сделанные установки в файле. Если вы не планируете повторное создание приложения с теми же установками, то их сохранять не нужно. Работа мастера завершается при нажатии на кнопку . В результате вы получите заготовку приложения с элементами интерфейса, реализованными на профессиональном уровне.
17
6. СОЗДАНИЕ ДИСТРИБУТИВНОГО ПАКЕТА РАЗРАБОТАННОГО ПРИЛОЖЕНИЯ Даже если создать выполняемый файл (EXE) приложения, нельзя считать работу законченной. Этот файл будет работать только на компьютерах, на которых установлен Visual Basic соответствующей версии. Чтобы приложение можно было перенести на любой другой компьютер с операционной системой Windows, необходимо создать дистрибутивный пакет с программой, устанавливающей ваше приложение и сопутствующие файлы на компьютер пользователя. Для этого в Visual Basic 6.0 предусмотрен специальный мастер – Package and Deployment Wizard. Эта удобная надстройка создает полноценную программу установки на основании всего нескольких простейших вопросов. Подключение мастера создания дистрибутивного пакета к интегрированной среде разработки Visual Basic осуществляется в следующей последовательности. Выполните команду «Add-Ins, Add-In Manager» в меню Visual Basic. В открывшемся диалоговом окне двойным щелчком выделите строку «Package and Deployment Wizard» так, чтобы напротив этого названия появилось слово «Loaded». После чего диалоговое окно закрыть, нажав на кнопку . В меню Add-Ins появится новая команда «Package and Deployment Wizard» для запуска мастера. Перед запуском мастера убедитесь, что загружен проект приложения и создан выполняемый файл. Напомним, что выполняемый файл создается командой меню «File, Make ….exe». Выполните команду «Add-Ins, Package and Deployment Wizard». В открывшемся диалоговом окне нажмите на кнопку <Package>, и мастер начнет создание дистрибутивного пакета, последовательно открывая следующие диалоговые окна: ! «Package Type» – предлагает выбрать тип пакета. Выберите «Standard Setup Package» и переходите к следующему шагу, нажав кнопку . ! «Package Folder» – позволяет выбрать папку, где будет сохранен дистрибутивный пакет. ! «Included Files» – отображается список файлов, включаемых в дистрибутивный пакет. При необходимости вы можете добавить в этот список другие файлы, нажав на кнопку . ! «Cab Options» – позволяет задать разбиение дистрибутивного пакета на части заданного размера (например, по размеру дискеты) либо оставить целым. ! «Installation Title» – позволяет задать заголовок приложения, который будет отображаться при установке программы. ! «Start Menu Items» – позволяет задать имя группы и команды меню, которые будут создаваться в главном меню «Windows» компьютера, на который устанавливается приложение.
18
! «Install Locations» – отображается место размещения файлов на компьютере, на который устанавливается приложение. Без особой необходимости не рекомендуется изменять предлагаемое место размещения файлов. ! «Shared Files» – в этом окне можно указать, какие файлы могут совместно использоваться с другими программами. Без необходимости не рекомендуется указывать совместное использование, поскольку в дальнейшем будет затруднено их удаление. ! «Finished!» – позволяет задать имя файла, в котором будут сохранены все сделанные установки для повторного использования. Работа мастера завершается при нажатии на кнопку . В результате работы мастера вы получите готовый дистрибутивный пакет приложения (setup.exe, setup.lst и один или несколько cab-файлов). Существует одна проблема при создании дистрибутива с помощью Package and Deployment Wizard в Visual Basic 6.0. Не исключено, что вы столкнётесь со следующей ситуацией: при попытке запуска пользователем setup.exe из созданного вами дистрибутива выдается ошибка: «Invalid line in setup information file!». Скорее всего, дело в следующем: на вашем компьютере (там, где запускался мастер) настройки разделителей даты/времени отличаются от оригинальных американских ('/' - для даты, ':' - для времени). Поскольку для России разделителем даты по умолчанию является точка ('.'), описанная проблема обнаруживается довольно быстро. Причина возникновения ошибки проста. При создании дистрибутива мастер генерирует текстовый файл setup.lst и сохраняет в нем информацию о дате и времени последней модификации распространяемых файлов. Дата и время сохраняются с учетом текущих системных разделителей. Программа установки setup.exe, запускаемая пользователем, выполняет разбор setup.lst и при этом ожидает, что дата сохранена в американском формате. Если формат даты не совпадает с ожидаемым, то возникает ошибка и процесс установки завершается неудачно. Для решения указанной проблемы можно предложить следующее: ! перед запуском мастера изменить системные настройки (разделители) таким образом, чтобы Short date style имел вид «mm/dd/yy» или «mm/dd/yyyy»; ! запустить мастер для генерации дистрибутива; ! восстановить настройки в Regional Settings. 7. ОФОРМЛЕНИЕ ПОЯСНИТЕЛЬНОЙ ЗАПИСКИ В общем случае разработка программного продукта сопровождается созданием следующей эксплуатационной документации: ! текст программы (запись программы с необходимыми комментариями) согласно ГОСТ 19.401-78; ! описание программы (сведения о логической структуре и функционировании программы) согласно ГОСТ 19.402-78; 19
! описание применения программы (сведения о назначении, области применения программы, используемых методах, классе решаемых задач, ограничениях для применения, минимальной конфигурации технических средств) согласно ГОСТ 19.502-78; ! руководство программиста (требуемые условия функционирования, характеристики, входные и выходные данные, сообщения программы) согласно ГОСТ 19.504-79; ! руководство пользователя – включает детальное описание функциональных возможностей и технологии работы с программным продуктом. Данный вид документации ориентирован на конечного пользователя и содержит необходимую информацию для самостоятельного освоения и нормальной работы пользователя. В данном случае при решении учебной задачи не требуется оформлять всю перечисленную документацию. Вам необходимо оформить пояснительную записку, в которую нужно включить только отдельные части из этой документации. Пояснительная записка должна содержать: ! титульный лист; ! оглавление; ! задание; ! описание методов решения задач, алгоритмов, структуры программы; ! руководство пользователя; ! список использованной литературы; ! приложение (исходные тексты программы). Рекомендуется создание пояснительной записки в текстовом редакторе Microsoft Word. Основной шрифт – Times New Roman, размер – 12 пунктов. Поля на странице: левое – 25 мм, правое – 10 мм, верхнее – 15 мм, нижнее – 20 мм. Одинарный междустрочный интервал. При составлении пояснительной записки часто возникает задача включения изображений, иллюстрирующих работу программы. Задача решается в следующей последовательности: захват изображения с экрана монитора; при необходимости редактирование его в одном из графических редакторов; включение в текст пояснительной записки в виде рисунка. Для захвата изображений с экрана монитора используются специальные программыутилиты. Если такие утилиты не установлены на компьютере, то можно воспользоваться встроенными средствами операционной системы. Так, при нажатии на кнопку , всё изображение экрана помещается в буфер обмена, а при одновременном нажатии в буфер помещается активное в данный момент окно. Из буфера обмена изображение можно либо сразу вставить в пояснительную записку, либо предварительно отредактировать в графическом редакторе Paint. В список литературы включаются ссылки только на реально использованные источники. Исходный текст программы должен быть отформатирован в соответствии с общепринятыми правилами и снабжён комментариями. 20
Рекомендуется перед выводом на печать показать пояснительную записку преподавателю. 8. ЗАЩИТА КУРСОВОЙ РАБОТЫ Заключительным этапом курсовой работы является защита. На защиту студент должен представить разработанное программное обеспечение и пояснительную записку. В ходе защиты студент демонстрирует работу программы на компьютере, кратко докладывает о путях выполнения задания, отмечая важные и оригинальные решения в работе, и отвечает на поставленные преподавателем вопросы. Критерии оценки работы следующие: ! Отличная оценка выставляется, если работа полностью соответствует требованиям к содержанию и качеству оформления, если в работе имеются оригинальные решения, если в процессе защиты студент проявил хорошие навыки владения компьютером, отличное понимание использованных алгоритмов, умение защищать принятые решения. ! Хорошая оценка выставляется, если работа в основном соответствует требованиям к содержанию и качеству оформления, но имеются некоторые недоработки, или в процессе защиты студент проявил недостаточно полное понимание использованных алгоритмов, недостаточно умело защищал принятые решения. ! Удовлетворительная оценка выставляется, если в работе имеются существенные недоработки по содержанию и качеству оформления или неполное понимание использованных алгоритмов. ! Неудовлетворительная оценка выставляется, если в работе имеются большие недоработки по содержанию и качеству оформления, если студент не понимает использованных алгоритмов и не может объяснить назначение примененных операторов.
21
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 1. Гарнаев А.Ю. Visual Basic 6.0: разработка приложений. – СПб.: ВХВПетербург, 2001. – 448 с. 2. Использование Visual Basic 6. Специальное издание: Пер. с англ. – М.; СПб.; Киев: Издательский дом «Вильямс», 1999. – 832 с. 3. Мак-Кинни Брюс. Крепкий орешек Visual Basic: Пер. с англ. – М.: Русская редакция, 1996. – 560 с. 4. Кондрашов Ю. Н. Программирование на Visual Basic для Windows 95. – М.: Радио и связь, 1997. – 251 с. 5. Назаров С.В., Мельников П.П. Программирование на MS Visual Basic: Учеб. пособие/ Под ред. С.В. Назарова. – М.: Финансы и статистика, 2002. – 320 с. 6. Браун С. Visual Basic 5 с самого начала: Пер. с англ.– СПб.: Питер, 1998. – 320 с. 7. Нелсон Р. Running Visual Basic 3 for Windows: Пер. с англ. – М.: Русская редакция, 1995. – 347 с. 8. Арушанов Х.Р. Visual Basic 3.0 и Visual Basic 4.0 для Windows. – М.: ABF, 1995. – 368 с. 9. Гуревич Н., Гуревич О. Visual Basic 5 (серия «Без проблем!»): Пер. с англ. – М.: БИНОМ, 1998. – 590 с. 10. Король В.И. Visual Basic.NET, Visual Basic 6.0, Visual Basic for Application 6.0. Языки программирования. Справочник с примерами. – М.: КУДИЦ-ОБРАЗ, 2002. – 496 с. 11. Крейг Д.К., Уэбб Д. Microsoft Visual Basic 5. 0. Мастерская разработчика. – М.: Русская редакция, 1998. – 590 с. 12. Visual Basic 5: Проектирование приложений для Windows 95 и Windows NT: Пер. с англ./ МакКелви М., Мартинсон Р., Веб Дж., Ризельман Б. – СПб.: BHV-Санкт-Петербург, 1998. – 976 с. 13. Подбельский В.В., Фомин С.С. Программирование на языке Си: Учебное пособие. – М.: Финансы и статистика, 1999. – 600 с. 14. Подбельский В.В. Язык Си++. – М.: Финансы и статистика, 1998. – 560 с. 15. Дэвис С. С++ для «чайников». – Киев: Диалектика, 1996. – 304 с. 16. Шилд Г. Самоучитель С++. СПб.: BHV-Санкт-Петербург, 1997. – 512 с. 17. Паппас К., Мюррей У. Visual C++: Руководство для профессионалов. – СПб.: BHV-Санкт-Петербург, 1996. – 912 с. 18. Денисов В. Word 97 с самого начала. – СПб.: Питер, 1997. – 320 с. 19. Вейскас Д.Л. Эффективная работа с Microsoft Access 97: Пер. с англ. – СПб.: Питер, 1999. – 976 с. 20. Ваша первая программа на Microsoft Visual Basic: Методические указания к лабораторной работе по курсу «Информатика»/ В.А. Добряк, В.Д. Нехорошев. – Екатеринбург: УГТУ, 1999. – 28 с. 22
21. Ваша первая программа на Visual C++: Методические указания к лабораторной работе по курсу «Информатика»/ В.Д. Нехорошев, В.А. Добряк. – Екатеринбург: УГТУ, 1999. – 23 с. 22. Табличный процессор Excel 97: Методические указания к лабораторной работе по курсу «Информатика»/ В.Д. Нехорошев. – Екатеринбург: УГТУ, 1999. – 19 с. 23. Ваша первая база данных в Microsoft Access 97: Методические указания к практическим занятиям по курсу «Информатика»/ В.Д. Нехорошев. – Екатеринбург: УГТУ-УПИ, 2000. – 34 с.
23
ПРИЛОЖЕНИЕ Пример пояснительной записки к курсовой работе Министерство образования Российской Федерации ГОУ ВПО «Уральский государственный технический университет – УПИ»
Пояснительная записка к курсовой работе по дисциплине «Информатика» на тему «Разработка программного обеспечения» Задание № ХХ Конвертер цветного изображения в полутоновое монохромное
Выполнил: студент группы ХХ Иванов Сергей Петрович Руководитель: доцент Нехорошев Виктор Дмитриевич
Екатеринбург 2003 24
Оглавление 1. Задание ……………………………………………………………………….. х 2. Методы решения и алгоритмы ……………………………………………… х 3. Руководство пользователя ……………………………………………………х Список использованной литературы …………………………………….…. х Приложение …………………………………………………………………. х 1. Задание Вариант ХХ. Конвертер цветного изображения в полутоновое монохромное Программа предназначена для преобразования цветного изображения в монохромное. Основные функции программы: выбор графического файла для загрузки, загрузка файла и отображение в графическом окне, обработка изображения с целью преобразования в монохромное. 2. Методы решения и алгоритмы Цвет отдельного пиксела изображения задается уровнями трех основных цветов: красного, зеленого и синего. Цвет пиксела получается монохромным, когда уровни основных цветов равны между собой. Таким образом, для того, чтобы преобразовать цветное изображение в монохромное нужно для каждого пиксела изображения установить единый уровень основных цветов. Наиболее логично выбрать этот уровень как среднее арифметическое уровней трех основных цветов пиксела. Алгоритм преобразования заключается в переборе всех пикселов изображения и в установке для каждого из них единого среднего уровня основных цветов. В Visual Basic объект PictureBox имеет методы, позволяющие получить (Point) и установить (PSet) цвет отдельного пиксела. Однако, как показали первые эксперименты, эти методы работают очень медленно. Поэтому было решено использовать функции динамических библиотек Windows API: GetPixel и SetPixel, которые выполняют те же функции, но работают быстрее. Функция GetPixel для указанного пиксела возвращает длинное целое, в котором закодированы основные цвета. Длинное целое содержит четыре байта. Первый (младший) байт содержит уровень красного (R), второй байт содержит уровень зеленого (G), третий байт содержит уровень синего (B), четвертый байт не используется. Уровень каждого основного цвета может принимать значение от 0 до 255. Функция SetPixel устанавливает цвет указанного пиксела. Цвет задается в виде длинного целого, в котором закодированы уровни основных цветов. Для кодировки используется функция RGB(R,G,B). Изображение до и после преобразования отображается с помощью одного объекта PictureBox. 25
3. Руководство пользователя Программа предназначена для преобразования цветных изображений в монохромные. Выбор файла с изображением осуществляется с помощью стандартного диалогового окна, которое открывается командой меню «Файл, Открыть» (рис. 1).
Рис. 1. Выбор файла для загрузки
Выбранное изображение отображается в окне программы. Преобразование цветов осуществляется при нажатии на кнопку «Преобразовать». Вернуться к исходному изображению можно только повторной загрузкой изображения. Сохранение преобразованного изображения в программе не предусматривается. На рис. 2 показан вид окна программы во время работы.
26
Рис. 2. Окно программы
Список использованной литературы 1. Ваша первая программа на Microsoft Visual Basic: Методические указания к лабораторной работе по курсу «Информатика»/ В.А. Добряк, В.Д. Нехорошев. – Екатеринбург: УГТУ, 1999. – 28 с. 2. Браун С. Visual Basic 5 с самого начала: Пер. с англ. – СПб.: Питер, 1998. – 320 с. Приложение Текст программы VERSION 5.00 Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX" Begin VB.Form frmProc Caption = "Преобразование в монохромное изображение" ClientHeight = 4605 ClientLeft = 165 ClientTop = 735 ClientWidth = 5700 LinkTopic = "Form1" ScaleHeight = 4605 ScaleWidth = 5700 StartUpPosition = 3 'Windows Default Begin MSComDlg.CommonDialog dlg Left = 3240 Top = 0 _ExtentX = 847 _ExtentY = 847 _Version = 393216 DialogTitle = "Выберите файл с изображением" Filter = "Picture (*.bmp, *.ico)|*.bmp;*.ico" 27
Flags
=
4
End Begin VB.CommandButton btnConvert Caption = "Преобразовать" Height = 495 Left = 1560 TabIndex = 1 Top = 0 Width = 1335 End Begin VB.PictureBox pic AutoRedraw = -1 'True AutoSize = -1 'True Height = 3315 Left = 120 ScaleHeight = 3255 ScaleWidth = 4110 TabIndex = 0 Top = 600 Width = 4170 End Begin VB.Menu mnuFile Caption = "Файл" Begin VB.Menu mnuFileOpen Caption = "Открыть" End Begin VB.Menu mnuSep Caption = "-" End Begin VB.Menu mnuFileExit Caption = "Выход" End End End Attribute Attribute Attribute Attribute Attribute
VB_Name = "frmProc" VB_GlobalNameSpace = False VB_Creatable = False VB_PredeclaredId = True VB_Exposed = False
Option Explicit 'объявление функций DLL Private Declare Function GetPixel Lib hdc As Long, ByVal x As Long, ByVal y Private Declare Function SetPixel Lib hdc As Long, ByVal x As Long, ByVal y crColor As Long) As Long
"gdi32" (ByVal _ As Long) As Long "gdi32" (ByVal _ As Long, ByVal _
Private Sub btnConvert_Click() 'процедура преобразования цветного изображения в монохромное Dim i As Integer, j As Integer Dim c As Long 28
Dim p As Integer 'заменяем курсор на символ ожидания – песочные часы frmProc.MousePointer = vbHourglass pic.ScaleMode = vbPixels 'система координат в пикселах 'далее перебираем все пикселы изображения For i = 0 To pic.ScaleWidth For j = 0 To pic.ScaleHeight 'получаем среднюю яркость пиксела p = grey(GetPixel(pic.hdc, i, j)) 'устанавливаем эту яркость для всех цветовых ' составляющих c = SetPixel(pic.hdc, i, j, RGB(p, p, p)) Next j Next i pic.Refresh ' обновляем изображение frmProc.MousePointer = vbDefault ' восстанавливаем курсор End Sub Public Function grey(ByVal c As Long) As Integer 'функция возвращает среднюю яркость пиксела grey = ((c And &HFF) + ((c / 256) And &HFF) + _ ((c / (256 * 256&)) And &HFF)) / 3 End Function Private Sub mnuFileOpen_Click() dlg.ShowOpen ' выбор файла pic.Picture = LoadPicture(dlg.FileName) 'загрузка файла End Sub Private Sub mnuFileExit_Click() Unload Me 'выход End Sub
29
РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Составитель
Нехорошев Виктор Дмитриевич
Редактор
И.В.Коршунова
ИД №06263 от 12.11.2001 г. Подписано в печать 28.01.2003 Бумага типографская Офсетная печать Уч.-изд. л. 1,40 Тираж 100
Формат 60 х 84 1/16 Усл. печ. л. 1,86 Заказ 183 Цена “С”
Редакционно-издательский отдел ГОУ ВПО УГТУ-УПИ 620002, Екатеринбург, ул. Мира, 19 Ризография НИЧ ГОУ ВПО УГТУ-УПИ 620002, Екатеринбург, ул. Мира, 19