Разработка приложения colorpicker
Проектирование структуры программы и разработка макета интерфейса. Этапы и принципы проектирования алгоритма. Принципы получения и вывода цвета пикселя с любой точки на экране на форму, рисование линейного градиента. Тестирование программы в трее.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 05.04.2014 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Введение
программа интерфейс пиксель трей
При разработке графического интерфейса любой программы важными аспектами являются удобство и многофункциональность. Однако цветовая гамма, использованная на форме, тоже играет немаловажную роль для улучшения ее внешнего вида. Еще важнее подборка цветовых гамм в сфере web-дизайна, где она является одним из ключей к успеху сайта или приложения. При работе с уже существующими приложениями может возникнуть необходимость дублирования цветов с любой области окна, какой-либо страницы открытой в браузере, иконки рабочего стола. В такой момент и приходит осознание удобства программы получения цветов с любой точки(пикселя) экрана, так называемого Colorpicker'а. Создание данной программы и стало темой моего курсового проекта.
Записка курсового проекта имеет 4 раздела. Структура и описание данных разделов:
1) «Постановка задачи» - в данном разделе находятся цели курсового проекта с описанием поставленных задач;
2) «Техническая спецификация» - в данном разделе описывается разработка программного продукта: разработка интерфейса программы, схемы алгоритмов, архитектура приложения;
3) «Описание программы» - в данном разделе описана программная реализация приложения, перечислены основные функции программы, а также приведены коды реализации с их описанием;
4) «Тестирование программы» - в данном разделе описана работа программы, проведена проверка на правильность работы функций.
1. Постановка задачи
Целью данного курсового проекта является создание приложения, осуществляющего взятие цвета пикселя в любой точке экрана. Приложение должно обладать следующим функционалом:
- При наведении на объект вне формы colorpicker должен по-прежнему оставаться поверх других окон. Это позволит всегда видеть цвет под курсором на панели текущего цвета в приложении.
- Программа должна иметь два поля, которые будут транслировать текущий цвет под курсором в RGB и Hex - кодировках.
- Пользователь должен иметь возможность оперативно переключаться между полями цветов, используя клавишу Tab, а также на форме должны присутствовать кнопки, позволяющие выполнить копирование из этих полей.
- На форме может присутствовать панель, содержащая линейный градиент, которая содержит некий диапазон цветов для быстрого подбора (при верстке шаблонов на скорую руку).
- Программа должна сворачиваться в область уведомлений, чтобы не занимать лишнее место на панели задач, пока в colorpicker'е нет нужды.
- В приложении должно быть предусмотрено меню, в котором есть пункты «о программе» и «выход», а так же могут присутствовать дополнительные функции, как, например, создание скриншота.
- Приложение должно состоять из exe-файла, который не требует инсталляции на компьютер.
Условия разработки приложения:
- Операционная система - Microsoft Windows Seven;
- Среда разработки - Microsoft Visual Studio 2010;
- Язык разработки - С#, использование Win32 API-функций.
Язык C# прост, типобезопасен и объектно-ориентирован. Благодаря множеству нововведений C# обеспечивает возможность быстрой разработки приложений, но при этом сохраняет выразительность и элегантность, присущую С-подобным языкам.
В работе также должен использоваться импорт API-функций. API - это аббревиатура названия Application Programming Interface (интерфейс прикладного программирования). API представляет собой совокупность функций и инструментов, позволяющих программисту создавать приложения, работающие в некоторой среде.
2. Техническая спецификация
2.1 Проектирование структуры программы
Спроектированная структура программы имеет вид, показанный на рисунке 2.1.
Рисунок 2.1 - Общая структура программы
Программа заключает в себе partial class frmMain: Form и public class Win32. Класс формы содержит в себе реализацию колорпикера и сворачивания программы в трей, функции создания градиента (void DrawHorizontalGradient(), void DrawVerticalGradient()), создания скриншота (TakeScreenShot(Screen currentScreen), private void TakeScreenShotAndSaveToFile()).
2.2 Макет интерфейса
Интерфейс данной формы объединяет множество элементов управления, каждый из которых связан с соответствующим его назначению обработчиком событий. На рисунке 2.2 представлен макет интерфейса главного окна программы.
Рисунок 2.2 - Макет интерфейса главного окна программы
1 - элемент MenuStrip, в котором содержатся команды About и Exit;
2 - элемент MenuStrip, в котором содержится команда ScreenShot;
3 - элемент, отображающий текущий цвет под курсором;
4 - кнопки копирования цветов RGB и Hex;
5 - элементы edit в которых отображаются текущие цвета RGB и Hex;
6 - панель линейного градиента;
2.3 Проектирование алгоритмов
Алгоритм получения и вывода цвета пикселя с любой точки на экране на форму. В процессе работы используются функции, импортируемые из dll-библиотек системы. Схема алгоритма работы этой функции приводится на рисунке 2.3.
Рисунок 2.3 - Алгоритм получения и вывода цвета пикселя
Функция DrawHorizontalGradient() отображает горизонтальную (цвета радуги) часть градиента (рис. 2.4а), а функция DrawVerticalGradient() отображает вертикальную часть градиента (рис 2.4б)
Рисунок 2.4 (а, б) - Алгоритмы рисования линейного градиента
3. Описание программы
3.1 Физическая структура проекта
Разработанный проект состоит из приложения «colorpicker.exe». Приложение включается в работу и сворачивается в трей до востребования. Инсталляции не требует.
3.2 Разработанный интерфейс приложения
Графический интерфейс приложения имеет вид, представленный на рисунках 3.1, 3.2, 3.3.
Рисунок 3.1 - Вид окна приложения (взятие цвета с области градиента)
Рисунок 3.2 - Вид окна приложения (взятие цвета с области вне формы)
Рисунок 3.3 - Вид иконки в трее
3.3 Алгоритм получения и вывода цвета пикселя с любой точки на экране на форму
Для получения x- и y-координат точки была создана функция GetCurrentPosition(), которая извлекает позицию курсора в экранных координатах.
Эту функцию вызывает GetPixelColor(), которая получает и возвращает цвет пикселя в текущей позиции.
Эти пользовательские функции, а так же импортированные функции находятся в файле Win32.cs и вызываются в классе формы.
На форме устанавливается таймер, который позволяет при каждом перемещении мышки транслировать текущий цвет на панель. Реализация алгоритма находится в приложении.
3.4 Алгоритм рисования линейного градиента
Для прорисовки линейного градиента были созданы функции DrawHorizontalGradient() и DrawVerticalGradient(). Первая функция осуществляет горизонтальную прорисовку радужного градиента на панели. Вторая функция осуществляет вертикальную прорисовку черный - прозрачный - белый.
4. Тестирование программного обеспечения
Тестирование разработанного приложения выполнялось в среде 32-разрядной операционной системы Windows Seven при использовании процессора Intel® Core™ i5 CPU M 460 @ 2.53 GHz (ОЗУ 4 Гб).
4.1 Описание алгоритма тестирования
Тестирование не требует инсталляции приложения. Чтобы активировать колорпикер, необходимо поместить файл colorpicker.exe в любую доступную директорию. Размер приложения - 481 КБ. Запуск осуществляется двойным кликом. Приложение начинает работу сразу после запуска - перемещение мыши на любую точку экрана меняет цвет на панели на текущий. Для сворачивания программы в трей необходимо свернуть программу, как если бы это делалось для свертывания в панель задач. Чтобы развернуть приложение, нужно кликнуть по иконке приложения(палитре) в трее. Чтобы получить какой-либо цвет с объекта, нужно навести на него курсор и выбрать с помощью клавиши Tab одно из двух полей, и воспользоваться горячими клавишами для копирования цвета в буфер. Копирование осуществляется так же при переборе кнопок Copy напротив соответствующих полей. Информацию о программе можно получить через меню File-About, а сделать скриншот и попутно сохранить его через меню Edit-ScreenShot.
4.2 Получение цвета объекта
Процесс взятия цвета вне формы отображен на рисунке 4.1 в сравнении с результатом онлайн приложения http://www.colorpicker.com/. Для проведения теста в сторонней программе был открыт рандомный цвет, шестнадцатеричный код которого выводила программа. Попутно было запущенно разработанное приложение, и курсором был получен аналогичный цвет.
Сравнив результаты, полученные при помощи онлайн-программы и при использовании приложения, можно сделать вывод, что отображение цвета производится корректно.
Рисунок 4.1 - Результаты взятия цвета вне формы
4.3 Тестирование программы в трее
Сообщение о помещении в трей приложения изображено на рисунке 4.2а, вид программы в трее приведен на рис. 4.2б.
Рисунок 4.2 а, б - Сообщение при сворачивании программы в трее(а), программа в трее(б)
4.4 Результаты тестирования
Приложение успешно прошло тестирование и не показало отклонений от поставленной задачи. Так же, оно показало точный результат, аналогичный результату сторонней программы при проверке выводимых значений на корректность. Тестирование программы при сворачивании в область уведомлений так же прошло успешно, была добавлена функция вывода сообщения при сворачивании в трей, что оказалось весьма удобным: пользователь получает явную информацию о том, где находится программа в данный момент. Это не позволит ему решить, что программа закрылась, так как на панели задач больше не будет значка палитры.
Заключение
В результате выполнения данного курсового проекта было создано функциональное приложение, которое дает возможность получать цветовые коды, наведя курсор на любую точку экрана. Приложение Colorpicker позволяет оперативно и быстро подобрать цветовую гамму при разработке графического интерфейса, и оно не занимает лишнее место в области задач, что не позволит пользователю случайно закрыть его во время работы. Colorpicker - это довольно полезный инструмент в работе дизайнера или веб-мастера, а так же всех людей, которые заняты в сфере визуального оформления или интересуются ею.
Разработанное приложение успешно прошло тестирование, что указывает на его соответствие поставленной задаче.
Список использованной литературы
1 Ганеев, Р.М. Проектирование интерфейса пользователя средствами WIN32 API. / Р.М. Ганеев - М.: Горячая линия - Телеком, 2002. - 338 с.
2 Владимир Соковиков. Первые шаги - эл. ресурс http://www.firststeps.ru/mfc/ winapi/win/r.php? 96
3 Климов, А. Русский_проект: Функции Windows Api. / А. Климов - Санкт-Петербург: Питер, 1999-2000. - 552 с.
4 http://forcoder.ru/c-sharp/functional-programming-in-c-classic-programming-techniques-for-modern-projects-1194
5 Сорока, Т. Русский справочник по Win 32 API / Т. Сорока. - Санкт-Петербург: BHV, 2001-2002. - 345 с.
Приложение
Листинг проекта
Код frmMain.cs:
namespace colorpicker
{
using System;
using System. Collections. Generic;
using System. ComponentModel;
using System. Drawing. Drawing2D;
using System. Data;
using System. Drawing;
using System. Linq;
using System. Text;
using System. Drawing. Imaging;
using System. Windows. Forms;
public partial class frmMain: Form
{
/* - Основная часть -*/
private ColorConverter _colorConverter;
public frmMain()
{
InitializeComponent();
// привязываем контекстное меню к иконке в трее
_nfIcon. ContextMenuStrip = _cMenuStrip;
}
private void frmMain_Load (object sender, EventArgs e)
{
this._colorConverter = new ColorConverter();
Win32. SetWindowPos (this. Handle, Win32.HWND_TOPMOST, 0, 0, 0, 0, Win32.TOPMOST_FLAGS);
// дескриптор окна, дескриптор порядка размещения, позиция по горизонтали, позиция по вертикали,
// ширина, высота, флажки позиционирования окна
// теперь окно сохраняет свою самую верхнюю позицию даже тогда, когда оно неактивное.
}
private void tmrMousePosition_Tick (object sender, EventArgs e)
{
Color color = Win32. GetPixelColor();
this.picPreview. BackColor = color;
this.txtHex. Text = ColorTranslator. ToHtml(color);
this.txtRgb. Text = _colorConverter. ConvertToString(color);
}
private void cmdCopyRgb_Click (object sender, EventArgs e)
{
Clipboard. SetText (this.txtRgb. Text);
}
private void aboutToolStripMenuItem_Click (object sender, EventArgs e)
{
string AboutColorPicker = «Добрый день! Вас приветствует приложение colorpicker.\n \n Для того, чтобы получить цвет объекта, просто наведите на него курсор.\n(с) Санько Е. гр 107220»;
MessageBox. Show (string. Format (AboutColorPicker, Environment. NewLine, DateTime. Now. Year), this. Text);
}
private void exitToolStripMenuItem1_Click (object sender, EventArgs e)
{
Application. Exit();
}
private void cmdCopyHex_Click (object sender, EventArgs e)
{
Clipboard. SetText (this.txtHex. Text);
}
/* - Часть с градиентом -*/
void DrawHorizontalGradient()
{
// параметры: область рисования (панель), начальный цвет, конечный цвет, угол, какой-то параметр угла
LinearGradientBrush brush = new LinearGradientBrush (panel1. ClientRectangle, Color. Black, Color. Black, 0, false);
// объект для смешения цветов
ColorBlend colorBlend = new ColorBlend();
// позиции цветов радуги (0, 1/6, 2/6, 3/6… 1)
colorBlend. Positions = new[] {0, 1 / 6f, 2 / 6f, 3 / 6f, 4 / 6f, 5 / 6f, 1};
// цвета радуги (Каждый Охотник…)
colorBlend. Colors = new[] {Color. Red, Color. Orange, Color. Yellow, Color. Green, Color. Blue, Color. Indigo, Color. Violet};
// устанавливаются параметры кисти
brush. InterpolationColors = colorBlend;
// рисуем на панели
panel1. CreateGraphics().FillRectangle (brush, panel1. ClientRectangle);
}
void DrawVerticalGradient()
{
// параметры: область рисования (панель), начальный цвет, конечный цвет, угол, какой-то параметр угла
LinearGradientBrush brush = new LinearGradientBrush (panel1. ClientRectangle, Color. Black, Color. Black, 0, false);
// объект для смешения цветов
ColorBlend colorBlend = new ColorBlend();
// в этот раз нужно нарисовать трехцветный градиент (черный-прозрачный-белый)
//colorBlend. Positions = new[] {0, 1 / 80f, 1 / 8f, 20 / 50f, 1}; {0, 1 / 100f, 3 / 5f, 1/ 1000f, 1};
// цвета
//colorBlend. Colors = new[] {Color. Black, Color. Transparent, Color. White};
// устанавливаются параметры кисти
colorBlend. Positions = new[] {0, 2 / 80f, 1 / 8f, 2 / 3f, 1};
colorBlend. Colors = new[] {Color. Black, Color. Black, Color. Transparent, Color. White, Color. White};
brush. InterpolationColors = colorBlend;
// поворачиваем кисть на 90 градусов
brush. RotateTransform(90);
// рисуем на панели
panel1. CreateGraphics().FillRectangle (brush, panel1. ClientRectangle);
}
private void Form1_Paint (object sender, PaintEventArgs e)
{
DrawHorizontalGradient();
DrawVerticalGradient();
}
/* - Часть с треем-*/
void _nfIcon_MouseClick (object sender, System. Windows. Forms. MouseEventArgs e)
{
if (e. Button == MouseButtons. Left)
{
if (WindowState == FormWindowState. Normal)
{
WindowState = FormWindowState. Minimized;
Hide();
}
else
{
Show();
WindowState = FormWindowState. Normal;
}
}
}
// Обработчик события изменения размера
private void ForTrey_Resize (object sender, EventArgs e)
{
// если окно «свернуто», то скрываем его
if (FormWindowState. Minimized == WindowState)
{
Hide();
// показ всплывающего окна с сообщением из трея
_nfIcon. ShowBalloonTip (500, «Message», «I am minimized», ToolTipIcon. None);
}
}
// обработчик клика на Exit в меню
private void exitToolStripMenuItem_Click (object sender, EventArgs e)
{
Application. Exit();
}
// чтобы форма при загрузке сразу пряталась в трей
private void ForTrey_Load (object sender, EventArgs e)
{
ForTrey_Resize (sender, e);
}
// Снимок экрана
private Bitmap TakeScreenShot (Screen currentScreen)
{
Bitmap bmpScreenShot = new Bitmap (currentScreen. Bounds. Width,
currentScreen. Bounds. Height,
PixelFormat. Format32bppArgb);
Graphics gScreenShot = Graphics. FromImage(bmpScreenShot);
gScreenShot. CopyFromScreen (currentScreen. Bounds.X,
currentScreen. Bounds.Y,
0, 0,
currentScreen. Bounds. Size,
CopyPixelOperation. SourceCopy);
return bmpScreenShot;
}
private void TakeScreenShotAndSaveToFile()
{
Screen currentScreen = Screen. FromControl(this);
Bitmap bmpScreenShot = TakeScreenShot(currentScreen);
SaveFileDialog dialog = new SaveFileDialog();
if (dialog. ShowDialog() == DialogResult.OK)
{
bmpScreenShot. Save (dialog. FileName);
}
}
private void screenShotToolStripMenuItem_Click (object sender, EventArgs e)
{
TakeScreenShotAndSaveToFile();
}
}
}
Код Win32.cs
namespace colorpicker
{
using System;
using System. Drawing;
using System. Runtime. InteropServices;
public class Win32
{
public static IntPtr HWND_TOPMOST = new IntPtr(-1);
public const uint SWP_NOSIZE = 0x0001;
public const uint SWP_NOMOVE = 0x0002;
public const uint TOPMOST_FLAGS = SWP_NOMOVE | SWP_NOSIZE; // сохраняет текущую позицию (игнорирует X и Y параметры),
// сохраняет текущий размер (игнорирует cx и cy параметры)
[DllImport («user32.dll»)]
private static extern bool GetCursorPos (ref Point lpPoint);
[DllImport («user32.dll»)]
private static extern IntPtr GetDC (IntPtr hwnd); // извлекает дескриптор дисплейного контекста устройства (DC)
[DllImport («user32.dll»)]
private static extern Int32 ReleaseDC (IntPtr hwnd, IntPtr hdc); // освобождает контекст устройства (DC) для использования другими приложениями
[DllImport («gdi32.dll»)]
private static extern uint GetPixel (IntPtr hdc, int nXPos, int nYPos); // получает цвет указанного пикселя
private static Point GetCurrentPosition()
{
Point p = new Point(); // определяет x- и y-координаты точки
GetCursorPos (ref p); // извлекает позицию курсора, в экранных координатах.
return p;
}
[DllImport («user32.dll»)]
public static extern bool SetWindowPos (IntPtr hWnd,
IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags); // изменяеv размер, позицию и Z-последовательность
public static Color GetPixelColor()
{
Point currentPoint = GetCurrentPosition();
IntPtr hdc = GetDC (IntPtr. Zero); // Доступное только для чтения поле, которое предоставляет дескриптор, иниц с нулевым значением
uint pixel = GetPixel (hdc, currentPoint.X, currentPoint.Y);
ReleaseDC (IntPtr. Zero, hdc);
Color color = Color. FromArgb((int) (pixel & 0x000000FF), // cоздает структуру Color из указанных
(int) (pixel & 0x0000FF00) >> 8, // 8-разрядных значений компонентов ARGB (альфа, красный, зеленый и синий).
(int) (pixel & 0x00FF0000) >> 16);
return color;
}
}
}
Размещено на Allbest.ru
...Подобные документы
Разработка "Web-браузера". Программное средство для просмотра web-сайтов, их обработки, вывода и перехода от одной страницы к другой. Проектирование программы и ее интерфейса, разработка алгоритма. Тестирование программы и анализ проведенных расчетов.
курсовая работа [17,7 M], добавлен 19.12.2010Разработка и тестирование программы на языке Pascal для поиска, вывода на экран и сохранения в файл списка книг с фамилиями авторов в алфавитном порядке, изданных после 2012 года. Разработка алгоритма и его описание. Инструкции по эксплуатации приложения.
курсовая работа [903,0 K], добавлен 13.06.2013Подбор игрового движка и описание его основных характеристик. Разработка структуры, алгоритма и интерфейса программы. Проектирование иерархии классов. Выделение типового приема визуализации. Тестирование правильности работы программного обеспечения.
курсовая работа [3,1 M], добавлен 19.01.2017Разработка клиент-серверного приложения, позволяющего взаимодействовать друг с другом с использованием доступа к базам данных. Проектирование связи сервера с базой данных с помощью технологии ODBC. Разработка интерфейса программы, ее тестирование.
курсовая работа [352,0 K], добавлен 24.08.2016Разработка технологии обработки информации, а также структуры и формы представления данных. Подбор алгоритма и программы решения задачи. Определение конфигурации технических средств. Специфика процесса тестирования и оценки надежности программы.
курсовая работа [959,1 K], добавлен 12.12.2011Описание приложения в виде пользовательского сценария. Проектирование обмена сообщениями между модулями. Разработка общей структуры приложения. Обзор структуры файлов. Разработка получения данных со страницы. Характеристика результата работы программы.
дипломная работа [1,5 M], добавлен 22.03.2018Разработка алгоритма и программы управления поворотной платформой лифта при помощи языка программирования Java Script. Проектирование приложения к браузеру в среде Adobe Dreamweaver CS5. Схема алгоритма, текст программы для двухмерной модели лифта.
курсовая работа [353,1 K], добавлен 18.05.2013Исследование теоретических аспектов разработки программы посредством использования Visual Basic. Анализ достоинств и недостатков данного языка программирования. Изучение особенностей создания интерфейса приложения. Основные этапы реализации программы.
практическая работа [460,6 K], добавлен 22.01.2013Разработка графического интерфейса проекта (панель инструментов имеет 6 кнопок). Процедуры разделов программы: документа ThisDocument, программного модуля Module1 и пользовательских форм UserForm1, UserForm2 и Деление_амёбы. Тестирование программы.
курсовая работа [29,5 K], добавлен 14.12.2010Проектирование Windows-приложения, которое позволяет проводить тестирование знаний по разделу математики "Логарифмы". Создание дополнительного класса диалоговых окон, нового пользовательского интерфейса программы. Требования к техническому обеспечению.
курсовая работа [1,9 M], добавлен 02.07.2011Обоснование необходимости разработки программы для игры "Тетрис". Математическая и графическая части алгоритма. Выбор языка и среды программирования. Отладка текста программы, разработка интерфейса пользователя. Тестирование, руководство пользователя.
курсовая работа [1,5 M], добавлен 17.01.2011Проектирование модульной структуры программы сетевого мессенджера, назначение модуля "frmMsg". Разработка главной формы и интерфейса пользователя программы. Проектирование модуля формы "About". Разработка методики тестирования и отладка программы.
курсовая работа [606,7 K], добавлен 19.01.2012Определение необходимых модулей программы, структуры файла базы данных. Описание разработки программы, отладка и тестирование. Разработка приложения Organizer.exe, меню и руководство пользователя. Алгоритм обработки событий главного меню (расписания).
курсовая работа [901,8 K], добавлен 11.02.2014Этапы процедуры принятия решений. Разработка математического алгоритма. Блок-схема алгоритма работы программы. Разработка программы на языке программирования С++ в среде разработки MFC. Текст программы определения технического состояния станка с ЧПУ.
курсовая работа [823,0 K], добавлен 18.12.2011Разработка технологии обработки информации, структуры и формы представления данных. Проектирование программных модулей. Блок-схема алгоритма и исходный код программы анализа арифметического выражения, синтаксического анализа простой программы на языке С.
курсовая работа [2,4 M], добавлен 12.12.2011Анализ применения информационных технологий в организации обучения. Особенности проектирования автоматизированных информационно-справочных систем. Обзор средств создания приложения. Разработка пользовательского интерфейса программы, ее тестирование.
курсовая работа [1,2 M], добавлен 09.04.2015Разработка программы в среде Delphi, показывающей на экране возможные варианты выбранной шахматной фигуры для хода. Спецификация исходных данных и функций программы, тексты разработанных классов приложения и их ключевые методы, тестирование программы.
курсовая работа [69,4 K], добавлен 19.10.2010Разработка программы для рисования различных правильных многоугольников с помощью объектно-ориентированного языка программирования. Использование для разработки среды C++ Builder 6 и библиотеки VCL. Разработка интерфейса приложения и алгоритма его работы.
курсовая работа [616,4 K], добавлен 18.10.2010Разработка алгоритма решения задачи численного интегрирования методом трапеции. Словесное описание и блок-схема разработанного алгоритма программы. Описание интерфейса, главного окна и основных форм программы. Проверка работоспособности программы.
курсовая работа [1,4 M], добавлен 16.03.2012Разработка программы проверки знаний для тестирования студентов по программированию с кодом на языке Delphi. Проектирование визуального интерфейса и словесный алгоритм работы программы. Алгоритмы разработанных процедур и функций, инструкция пользователя.
курсовая работа [506,5 K], добавлен 21.02.2011