s
Sesiya.ru

Средства разработки ПО для работы с БД

Информация о работе

Тема
Средства разработки ПО для работы с БД
Тип Курсовая работа
Предмет Программирование
Количество страниц 18
Язык работы Русский язык
Дата загрузки 2014-06-26 01:18:47
Размер файла 200.96 кб
Количество скачиваний 4
Скидка 15%

Поможем подготовить работу любой сложности

Заполнение заявки не обязывает Вас к заказу


Скачать файл с работой

Помогла работа? Поделись ссылкой

МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное
учреждение высшего профессионального образования
«ДАГЕСТАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
ДГУ

Факультет Информатики и Информационных технологий
-----------------------------------------------------------------------------------------------
(наименование факультета)

Информационные Системы и Технологии
-----------------------------------------------------------------------------------------------
(наименование кафедры)

КУРСОВОЙ ПРОЕКТ (РАБОТА)
по дисциплине

«Объектно-ориентированное программирование»
(наименование дисциплины)

Тема курсового проекта (работы) «Средства разработки ПО для работы с БД с использованием технологии ООП»
(наименование темы)


Студент группыИнформационные Системы и ТехнологииАбдуллаев З.А.
(наименование группы)

Руководитель курсового проекта ____________________
(должность, звание, ученая степень)

Рецензент (при наличии) ____________________
(должность, звание, ученая степень)


Работа представлена к защите «___»_____201__г. ___________________
(подпись студента)

«Допущен к защите» «___»_____201__г. ___________________
(подпись руководителя)


Махачкала 2014 г.
Содержание


Глава 1. Теория по С# и среда разработки
1.1 Объектно-ориентированное программирование 3
1.2 История языка С# 7
1.3VisualStudio.NET 9
Глава 2. Пазл на С#
1.1 История игры 10
1.2 Цель игры 11
1.3 Демонстрация игры 17
Список литературы
























Глава 1. Теория по С# и среда разработки

Объектно-ориентированное программирование

Объектно-ориентированное программирование (ООП) — это способ организации кода в программе путем его группировки в виде объектов, то есть отдельных элементов, которые включают информацию (значения данных) и функции. Объектно-ориентированный подход к организации программы позволяет группировать определенные фрагменты информации (например, музыкальную информацию, такую как название альбома, название трека или имя исполнителя) вместе с часто используемыми функциями или действиями, связанными с этой информацией (например, «добавить трек в список воспроизведения» или «воспроизвести все песни этого исполнителя»). Эти элементы объединяются в один элемент, так называемый объект (например, «Album» или «MusicTrack»). Возможность связать вместе эти значения и функции дает несколько преимуществ. Например, нужно отслеживать только одну переменную, а не несколько; можно сгруппировать вместе связанные между собой функции; можно организовать структуру программы так, чтобы она больше соответствовала реальным потребностям.На практике объектно-ориентированное программирование делится на две части. Одна часть включает стратегии и приемы для разработки программ (илиобъектно-ориентированного дизайна). Это большая тема, и поэтому мы не будет обсуждать ее в этой главе. Вторая часть ООП — это собственно структуры программирования, доступные в данном языке программирования для создания программы с использованием объектно-ориентированного подхода. В этой главе описываются следующие общие операции в ООП:
 определение классов;
 создание свойств, методов, а также методов доступа get и set;
 управление доступом к классам, свойствам, методам и методам доступа;
 создание статических свойств и методов;
 создание структур с перечислением;
 определение и использование интерфейсов;
 работа с наследованием, включая переопределение элементов класса.

Объектно-ориентированное программирование является относительно новым подходом к созданию компьютерных приложений, который призван устранить многие из проблем, существующих в традиционных методиках программирования. Вид программирования, с которым мы пока имели дело, называется функциональным (или процедурным) программированием и часто приводит к созданию так называемых монолитных приложений, все функции которых сконцентрированы в нескольких модулях кода (а то и вовсе в одном). В ООП обычно используется гораздо больше модулей, каждый из которых обеспечивает конкретные функции и может быть изолирован или даже полностью отделен от всех остальных. Такое модульное программирование обеспечивает гораздо большую гибкость и возможности для многократного использования кода.
Чтобы нагляднее показать, о чем идет речь, представьте, что высокопроизводительное компьютерное приложение является мощным гоночным автомобилем. При создании с помощью традиционных приемов программирования этот автомобиль будет представлять собой одно целое. Если понадобится что-то улучшить в этом автомобиле, его придется заменить целиком, т.е. отправить обратно изготовителю для переделки профессиональным механиком или вообще купить новый автомобиль. А технология ООП позволяет, например, купить у изготовителя новый двигатель и самостоятельно заменить его, следуя инструкциям изготовителя и не углубляясь в тонкости проведения ремонтных работ. В традиционном приложении поток выполнения обычно прост и линеен. Приложения загружаются в память, начинают выполняться в точке А, завершают работу в точке Б и затем выгружаются из памяти. Попутно могут использоваться и другие разнообразные сущности, вроде файлов на носителе данных или возможностей видеокарты, но основная 196 Часть I. Язык C# часть обработки выполняется все-таки в одном месте. Сама обработка данных обычно несложная, использует различные математические и логические средства, а для построения более сложных представлений данных применяются простые типы вроде целочисленных или логических. В ООП подобная линейность встречается редко. Результаты достигаются те же, но способ их получения зачастую выглядит совершенно по-другому. В ООП основной акцент делается на структуру и смысл данных, а также на взаимодействие этих данных с другими данными. Это обычно требует больше усилий на этапах проектирования приложения, но обеспечивает возможность его расширения. После принятия решения о представлении конкретных типов данных это представление может применяться в последующих версиях данного приложения и даже в совершенно новых приложениях. Наличие подобного соглашения может значительно сократить время разработки. Этим можно объяснить пример с гоночным автомобилем, где таким соглашением является структурирование кода “двигателя”, который позволяет легко подставлять новый код (новый двигатель), не возвращая его изготовителю. Помимо этого, двигатель после создания можно использовать и для других целей — например, в другом автомобиле или вовсе в подводной лодке.ООП часто упрощает программирование с помощью соглашений по представлению и применению более абстрактных объектов. Например, соглашение может приниматься не только по формату данных, используемых для отправки выходных данных на устройство вроде принтера, но и по методам обмена данными с этим устройством, т.е. инструкциям, которые оно должно понимать, и т.д. В автомобилестроении такое соглашение касалось бы способа подключения двигателя к топливной системе, трансмиссии и т.п. Как видно из названия этой технологии, достигается это все с помощью объектов.
Что такое объект. Объект — это “строительный блок” в ООП-приложении. Такой строительный блок инкапсулирует часть приложения — процесс, порцию данных или какой-то более абстрактный объект. Простейшие объекты могут быть очень похожи на знакомый нам тип структуры, который содержит члены типа переменных и функций. Содержащиеся переменные представляют хранимые в объекте данные, а содержащиеся функции обеспечивают доступ к возможным действиям этого объекта. Чуть более сложные объекты могут вообще не содержать данных, а представлять процесс и содержать только реализующие этот процесс функции. Примером такого объекта может служить принтер с функциями управления (распечатка документа, вывод тестовой страницы и т.д.). Объекты в языке C# создаются из типов, как и хорошо знакомые составные переменные. Для типа объекта в ООП имеется специальное название — класс. Определения классов позволяют создавать объекты — т.е. реальные именованные экземпляры класса. Понятия “экземпляр класса” и “объект” эквивалентны, но термины “класс” и “объект” означают совершенно разные вещи. Термины “класс” и “объект” часто путают, поэтому очень важно понимать, чем они отличаются. Помочь в этом может наша аналогия с гоночным автомобилем. Классом можно считать чертежи для изготовления автомобиля, а объектом — сам автомобиль, сделанный по этим чертежам. В настоящей главе для работы с классами и объектами используется язык UML (UnifiedModelingLanguage — унифицированный язык моделирования). Этот язык был специально разработан для моделирования программных систем — от объектов, из которых они состоят, и операций, которые они выполняют, до предполагаемых способов их использования. Здесь применяются и объясняются только базовые возможности языка UML, без более сложных аспектов, которым посвящены целые книги.























История языка С#

Язык C# появился на свет в июне 2000 г. в результате кропотливой работы большой группы разработчиков компании Microsoft, возглавляемой Андерсом Хейлсбергом (AndersHejlsberg). Этот человек известен как автор одного из первых компилируемых языков программирования для персональных компьютеров IBM -- TurboPascal. Наверное, на территории бывшего Советского Союза многие разработчики со стажем, да и просто люди, обучавшиеся в той или иной форме программированию в вузах, испытали на себе очарование и удобство использования этого продукта. Кроме того, во время работы в корпорации Borland Андерс Хейлсберг прославился созданием интегрированной среды Delphi (он руководил этим проектом вплоть до выхода версии 4.0).
Появление языка C# и инициативы .NET отнюдь не случайно пришлось на начало лета 2000 г. Именно к этому моменту компания Microsoft подготовила промышленные версии новых компонентных технологий и решений в области обмена сообщениями и данными, а также создания Internet-приложений (COM+, ASP+, ADO+, SOAP, BiztalkFramework). Несомненно, лучшим способом продвижения этих новинок является создание инструментария для разработчиков с их полноценной поддержкой. В этом и заключается одна из главных задач нового языка C#. Кроме тогоMicrosoft не могла больше расширять все те же инструменты и языки разработки, делая их все более и более сложными для удовлетворения конфликтующих между собой требований поддержки современного оборудования и обеспечения обратной совместимости с теми продуктами, которые были созданы в начале 1990-х гг. во время первого появления Windows. Наступает момент, когда необходимо начать с чистого листа для того, чтобы создать простой, но имеющий сложную структуру набор языков, сред и средств разработки, которые позволят разработчику легко создавать современные программные продукты.
С# и .NET являются той самой отправной точкой. Если говорить упрощенно, то .NET представляет собой новую платформу, новый API для программирования в Windows, а С# е новый язык, созданный с нуля, для работы с этой платформой, а также для извлечения всех выгод из прогресса сред разработки и нашего понимания принципов объектно-ориентированного программирования в течение последних 20 лет.
Необходимо отметить, что обратная совместимость не потеряна. Существующие программы будут выполняться, а платформа .NET была спроектирована таким образом, чтобы она могла работать с имеющимся программным обеспечением. Связь между компонентами в Windows сейчас почти целиком осуществляется при помощи СОМ. С учетом этого .NET обладает способностью (а) создавать оболочки (wrappers) вокруг существующих компонентов СОМ, так что компоненты .NET могут общаться с ними, и (б) создавать оболочки вокруг компонентов .NET, что позволяет им выглядеть как обычные СОМ-компоненты.
Авторы C# стремились создать язык, сочетающий простоту и выразительность современных объектно-ориентированных языков (вроде Java) c богатством возможностей и мощью C++. По словам Андерса Хейлсберга, C# позаимствовал большинство своих синтаксических конструкций из C++. В частности, в нем присутствуют такие удобные типы данных, как структуры и перечисления (другой потомок C++ -- Java -- лишен этих элементов, что создает определенные неудобства при программировании). Синтаксические конструкции С# унаследованы не только от C++, но и от VisualBasic. Например, в С#, как и в VisualBasic, используются свойства классов. Как C++, С# позволяет производить перегрузку операторов для созданных вами типов Java не поддерживает ни ту, ни другую возможность). С# — это фактически гибрид разных языков. При этом С# синтаксически не менее (если не более) чист, чем Java, так же прост, как VisualBasic, и обладает практически той же мощью и гибкостью.

Особенности С#:
Полный и хорошо определенный набор основных типов.
Встроенная поддержка автоматической генерации XML-документации. Автоматическое освобождение динамически распределенной памяти.
Возможность отметки классов и методов атрибутами, определяемыми пользователем. Это может быть полезно при документировании и способно воздействовать на процесс компиляции (например, можно пометить методы, которые должны компилироваться только в отладочном режиме).
Полный доступ к библиотеке базовых классов .NET, а также легкий доступ к Windows API (если это действительно необходимо).
Указатели и прямой доступ к памяти, если они необходимы. Однако язык разработан таким образом, что практически во всех случаях можно обойтись и без этого.
Поддержка свойств и событий в стиле VB.
Простое изменение ключей компиляции. Позволяет получать исполняемые файлы или библиотеки компонентов .NET, которые могут быть вызваны другим кодом так же, как элементы управления ActiveX (компоненты СОМ).
Возможность использования С# для написания динамических web-страниц ASP.NET.
Одной из областей, для которых не предназначен этот язык, являются критичные по времени и высокопроизводительные программы, когда имеет значение, занимать исполнение цикла 1000 или 1050 машинных циклов, и освобождать ресурсы требуется немедленно. C++ остается в этой области наилучшим из языков низкого уровня. В С# отсутствуют некоторые ключевые моменты, необходимые для создания высокопроизводительных приложений, в частности подставляемые функции и деструкторы, выполнение которых гарантируется в определенных точках кода.


VisualStudio.NET

MicrosoftVisualStudio — линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии WindowsForms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых MicrosoftWindows, WindowsMobile, Windows CE, .NET Framework, Xbox, WindowsPhone .NET CompactFramework и MicrosoftSilverlight.
VisualStudio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. VisualStudio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как например, Subversion и VisualSourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования или инструментов для прочих аспектов процесса разработки программного обеспечения (например, клиент TeamExplorer для работы с TeamFoundationServer).













Глава 2. Пазл на С#

История игры

Пазл, складная картинка, мозаика (англ. jigsawpuzzle) — игра-головоломка, в которой требуется составить мозаику из множества фрагментов рисунка различной формы.
По мнению психологов, собирание пазлов способствует развитию образного и логического мышления, произвольного внимания, восприятия, в частности, различению отдельных элементов по цвету, форме, размеру и т. д.; учит правильно воспринимать связь между частью и целым.
В настоящее время существует большое количество различных видов и модификаций пазлов. Цель при их сборе одна — получить из отдельных элементов единую картину. Пазлы делятся по размеру элементов и по размеру единой картины. Сложность пазла в пределах одного числа элементов определяется рисунком, а главным критерием является само число элементов — чем оно выше, тем пазл больше и сложнее.
Классическое количество элементов в маленьком пазле — 54 (пазлы примерно до 260 элементов считаются детскими). Размеры пазлов колеблются от небольших (около 50 см²), до очень больших (несколько м²). Например, стандартный размер пазла из 500 элементов — 47×33 см.
Существуют пазлы большого размера из небольшого числа элементов специально для маленьких детей. На детских пазлах чаще всего изображают вымышленных персонажей, автомобили, кадры из мультфильмов.
Пазлы с количеством элементов, превышающим 260, ориентированы больше на взрослую аудиторию. Соответственно, на них могут быть изображены пейзажи, эротические и фантастические сцены. Бывают пазлы с рекламными картинками.[1] На очень больших пазлах (свыше 6 тыс. элементов) обычно изображаются сцены из Библии, картины известных художников, старинные географические карты. На их сборку требуется довольно много времени. Помимо классических, существуют трёхмерные (3D-пазлы), «мягкие» (предназначенные для детей) и компьютерные пазлы. Выступы элементов пазлов могут быть различных видов. Самые распространённые имеют прямоугольную форму (с выступами и выемками), но встречаются элементы треугольной, круглой, овальной и других форм.

Кодигры


namespaceKursova
{
public partial class Form1 : Form
{

// 4х4 - размер игрового поля
constintnw = 4, nh = 4;

// графическая поверхность формы
System.Drawing.Graphics g;

// картинка
Bitmappics;

// размер (ширина и высота) клетки
intcw, ch;

// игровое поле: хранит номера фрагментов
// картинки
int[,] field = new int[nw, nh];

// координаты пустой клетки
intex, ey;

// признак отображения номера фишки
BooleanshowNumbers = false;
public Form1()
{
InitializeComponent();
try
{
// загружаемфайлкартинки
pics = new Bitmap("puzzle.bmp");
}
catch (Exception exc)
{
MessageBox.Show("Файл puzzle.bmp ненайден.
",
"Соберикартинку",
MessageBoxButtons.OK,
MessageBoxIcon.Error);


this.Close();
return;
}
// определяем высоту и ширину клетки (фишки)
cw = (int)(pics.Width / nw);
ch = (int)(pics.Height / nh);

// установить размер клиентской (внутренней) области формы
this.ClientSize =
newSystem.Drawing.Size(cw * nw + 1, ch * nh + 1 + menuStrip1.Height);
// рабочая графическая поверхность
g = this.CreateGraphics();

this.newGame();
}
// новаяигра
privatevoidnewGame()
{ // располагаем фишки в правильном порядке
for (int j = 0; j <nh; j++)
for (inti = 0; i<nw; i++)
field[i, j] = j * nw + i + 1;

// последняяфишка - пустая
field[nw - 1, nh - 1] = 0;
ex = nw - 1; ey = nh - 1;

this.mixer(); // перемешиваем фишки
this.drawField(); // выводим игровое поле

}
// перемешивает фишки
privatevoidmixer()
{
intd; // положение (относительно пустой) перемещаемой
// клетки: 0 - слева; 1 - справа; 2 - сверху; 3 - снизу.

int x, y; // перемещаемая клетка

// генератор случайных чисел
Random rnd = new Random();

for (inti = 0; i<nw * nh * 10; i++)


// nw * nh * 10 - кол-во перестановок
{
x = ex;
y = ey;

d = rnd.Next(4);
switch (d)
{
case 0: if (x > 0) x--; break;
case 1: if (x <nw - 1) x++; break;
case 2: if (y > 0) y--; break;
case 3: if (y <nh - 1) y++; break;
}
// здесь определили фишку, которую
// нужно переместить в пустую клетку
field[ex, ey] = field[x, y];
field[x, y] = 0;

// запоминаем координаты пустой фишки
ex = x; ey = y;
}
}
// отрисовывает поле
private void drawField()
{
// содержимоеклеток
for (inti = 0; i<nw; i++)
for (int j = 0; j <nh; j++)
{
if (field[i, j] != 0)
// выводим фишку с картинкой:
// ( ((field[i,j] - 1) % nw) * cw,
// (int)((field[i,j] - 1) / nw) * ch ) -
// координаты левого верхнего угла
// области файла-источника картинки
g.DrawImage(pics,
new Rectangle(i * cw, j * ch + menuStrip1.Height, cw, ch),
new Rectangle(
((field[i, j] - 1) % nw) * cw,
((field[i, j] - 1) / nw) * ch,
cw, ch),
GraphicsUnit.Pixel);
else
// выводимпустуюфишку
g.FillRectangle(SystemBrushes.Control,
i * cw, j * ch + menuStrip1.Height, cw, ch);
// рисуемграницу
g.DrawRectangle(Pens.Black,
i * cw, j * ch + menuStrip1.Height, cw, ch);

// номерфишки
if ((showNumbers) && field[i, j] != 0)
g.DrawString(Convert.ToString(field[i, j]),
new Font("Tahoma", 10, FontStyle.Bold),
Brushes.Black, i * cw + 5, j * ch + 5 + menuStrip1.Height);
}
}
// проверяет, расположены ли фишки в правильном порядке
private Boolean finish()
{
// координатыклетки
inti = 0;
int j = 0;

intc; // число в клетке

// фишки расположены правильно, если
// числа в них образуют матрицу:
// 1 2 3 4
// 5 6 7 8
// 9 10 11 12
// 13 14 15

for (c = 1; c <nw * nh; c++)
{
if (field[i, j] != c) return false;

// к следующей клетке
if (i<nw - 1) i++;
else { i = 0; j++; }
}
returntrue;
}
// перемещает фишку, на которой сделан щелчок,
// в соседнюю пустую клетку:
// (cx, cy) - клетка, в которой сделан щелчок,
// (ex, ey) - пустаяклетка
private void move(int cx, int cy)
{
// проверим, возможен ли обмен
if (!(((Math.Abs(cx - ex) == 1) && (cy - ey == 0)) ||
((Math.Abs(cy - ey) == 1) && (cx - ex == 0))))
return;
// обмен. переместим фишку из (x, y) в (ex, ey)
field[ex, ey] = field[cx, cy];
field[cx, cy] = 0;

ex = cx; ey = cy;

// отрисоватьполе
this.drawField();

if (this.finish())
{
field[nw - 1, nh - 1] = nh * nw;
this.drawField();

// игра закончена. сыграть еще раз?
// No - завершить работу программы,
// Yes - новая игра
if (MessageBox.Show("Поздравляю! Вы справились с поставленной задачей!
" +
"Еще раз?", "Собери картинку",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question)
== System.Windows.Forms.DialogResult.No)
this.Close();
elsethis.newGame();
}
}
// обработкасобытия Paint
private void Form1_Paint(object sender, PaintEventArgs e)
{
drawField();

}
// щелчок кнопкой мыши на игровом поле
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
// преобразуем координаты мыши в координаты клетки
move(e.X / cw, (e.Y - menuStrip1.Height) / ch);

}


// командаНоваяигра
private void новаяИграToolStripMenuItem1_Click(object sender, EventArgs e)
{
newGame();
}



private void оПрограмеToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.ShowDialog();

}




}
}




























Демонстрация игры




На скриншоте показано состояние игры после нажатия кнопки «Новая игра».
Картинка разбивается на 15 ячеек которые необходимо собрать воедино.
16 ячейка добавится автоматически после установки всех ячеек на свои места.












На данном скриншоте показана игра после удачного соединения всех ячеек.
При нажатии на кнопку «да» картинка вновь разобьется на 15 ячеек (Случайно).
После нажатия на кнопку «нет» игра закроется.




Заключение

В ходе работы с С# и VisualStudio.NET я убедился в том что C# — элегантный, объектно-ориентированный язык, предназначенный для разработки разнообразных безопасных и мощных приложений, выполняемых в среде .NET Framework. С помощью языка C# можно создавать обычные приложения Windows на подобии моей игры, XML-веб-службы, распределенные компоненты, приложения "клиент-сервер", приложения баз данных и т. д. Visual C# предоставляет развитый редактор кода, конструкторы с удобным пользовательским интерфейсом, встроенный отладчик и множество других средств, упрощающих разработку приложений на базе языка C# и .NET Framework. Так же важно знать что для того чтобы работать с С#, пользователь должен уже иметь общие представления о программировании.




Список литературы

Ru. Wikipedia.org
Google.com
http://msdn.microsoft.com
Агуров П. C#. Разработка компонентов в MS VisualStudio 2005/2008. – СПб.: БХВ-петербург, 20011. – 480с
Дрейер Мартин. C# для школьников. 2009, 126 стр..
Лабор В. Visual C# Создание приложений для Windows. 2003, 385 стр..

© Copyright 2012-2020, Все права защищены.