Проектирование информационных систем

Описание назначения библиотек динамической компоновки и этапы их создания. Написание программы, содержащей конструктор с параметрами для создания динамических строковых объектов. Создание методов, работающих с полями класса. Добавление метода-свойства.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 25.04.2015
Размер файла 942,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

1. Опишите назначение библиотек динамической компоновки и этапы их создания

Рассмотрим ряд аспектов создания и использования библиотек DLL:

§ как статически подключать библиотеки DLL;

§ как динамически загружать библиотеки DLL;

§ как создавать библиотеки DLL;

§ как создавать расширения МFC библиотек DLL.

Использование DLL

Практически невозможно создать приложение Windows, в котором не использовались бы библиотеки DLL. В DLL содержатся все функции Win32 API и несчетное количество других функций операционных систем Win32.

Вообще говоря, DLL - это просто наборы функций, собранные в библиотеки. Однако, в отличие от своих статических родственников (файлов. lib), библиотеки DLL не присоединены непосредственно к выполняемым файлам с помощью редактора связей. В выполняемый файл занесена только информация об их местонахождении. В момент выполнения программы загружается вся библиотека целиком. Благодаря этому разные процессы могут пользоваться совместно одними и теми же библиотеками, находящимися в памяти. Такой подход позволяет сократить объем памяти, необходимый для нескольких приложений, использующих много общих библиотек, а также контролировать размеры ЕХЕ-файлов.

Иногда при запуске какой-либо программы появляется сообщение, что не найден файл*.dll. Для операционных систем Microsoft Windows, большая часть функциональных возможностей операционной системы обеспечивается библиотеками динамической компоновки (DLL). Кроме того, некоторые возможности программ могут быть реализованы в библиотеках DLL. Например некоторые программы могут содержать много различных модулей и при работе использовать только часть из них. Таким образом операционная система и программы загружаются быстрее, работают быстрее и занимают меньше места на диске компьютера.

Что такое DLL -- это библиотека, содержащая код и данные, которые могут использоваться несколько программами одновременно. Например, в операционных системах Windows, библиотекаComdlg32.dllвыполняет общие функции, связанные с диалоговыми окнами. Таким образом каждая программа может использовать функцию, которая содержится в этой библиотеке для реализации диалогового окна Открыть. Это позволяет повысить уровень повторного использования кода и эффективного использования памяти. С помощью библиотек можно реализовать модульность для программы, в виде отдельных компонентов. Например, бухгалтерскую программу можно продать по модулям. Каждый модуль может быть загружен в основной программе во время выполнения установки. Отдельные модули загружается только при запросе функций, заложенных в них, поэтому загрузка программы выполняется быстрее. Кроме того обновления легче применить для каждого модуля, не влияя на другие части программы. Например, имеется программа по зарплате и надо изменить налоговые ставки за каждый год. Когда эти изменения изолированы в библиотеке, можно применить обновления без необходимости построения или установки программы целиком. Давайте рассмотрим пример создания библиотеки с самыми простыми математическими методами, такие как произведение, деление, сумма и разность. Для начала, создадим новый проект, для этого запустите Microsoft Visual Studio и перейдите в меню Файл -> Создать -> Проект…или выполните сочетание клавиш Ctrl+Shift+N.

В открывшемся диалоговом окне выберете версию Framework, а в левой части «Установленные шаблоны» выберете «Visual C#», в центральной части вам будет представлен список шаблонов, выберете «Библиотека классов» и введите имя библиотеки, можно оставить по умолчанию.

Рисунок 1

У вас откроется вкладка с классом по умолчанию.

Рисунок 2

По умолчанию создается классClass1, переименуем его в класс Calculator. Для этого перейдите в меню Вид - > Классы или выполните сочетание клавиш Ctrl + W, с последующем нажатием клавиши C.

Рисунок 3

В правой части программы у вас откроется вкладка «Окно классов».

Выберете по умолчанию созданный класс Class1, сделайте клик правой клавишей мыши по нему и выберете «Переименовать…».

Рисунок 4

В открывшемся окне введите новое имя класса Calculator и нажмите кнопку OK, обратите внимание, что данное окно позволяет переименовать класс во всем проекте.

Рисунок 5

После нажатия клавиши OK, вам будет предложено просмотреть список изменений, которые будут внесены в проект, а также просмотр изменений кода.

Рисунок 6

Добавим в класс Calculator несколько методов и добавим к ним описание.

namespace ClassLibrary1

{

/// <summary>

/// Математический класс

/// </summary>

public class Calculator

{

/// <summary>

/// Метод возвращает сумму двух целых чисел

/// </summary>

/// <param name="firstNumber">/// <param name="secondNumber">/// <returns></returns>

public static int Summ(int firstNumber, int secondNumber)

{

return firstNumber + secondNumber;

}

/// <summary>

/// Метод возвращает разность двух целых чисел

/// </summary>

/// <param name="firstNumber">/// <param name="secondNumber">/// <returns></returns>

public static int Division(int firstNumber, int secondNumber)

{

return firstNumber - secondNumber;

}

/// <summary>

/// Метод возвращает произведение двух чисел

/// </summary>

/// <param name="x">/// <param name="y">/// <returns></returns>

public static long Multiply(long x, long y)

{

return (x * y);

}

/// <summary>

/// Метод возвращает деление двух чисел

/// </summary>

/// <param name="firstNumber">/// <param name="secondNumber">/// <returns></returns>

public static int Residual(int firstNumber, int secondNumber)

{

return (firstNumber / secondNumber);

}

}

По умолчанию для всех проектов стоит режим построения Debug (режим отладки), переведем проект в режим построения конечной версии (Release). Для этого перейдите в обозреватель решений и сделав клик правой клавишей мыши по названию проекта, выберете в открывшемся контекстном меню пункт «Свойства».

Рисунок 7

В открывшемся окне «Страницы свойств Решение “ClassLibrary1”» выберете везде конфигурацию Release, как показано на скриншоте ниже.

Рисунок 8

Наверно все замечали, что при наборе кода, появляется подсказка к методам или функциям. Мы задали такую подсказку в тегах. Но если сейчас просто выполнить построение библиотеки, то при подключении к другим проектам никаких подсказок видно не будет. Что бы устранить данную проблему, нам необходимо сформировать XML файл документации к проекту. Для этого в обозревателе решений выполните клик правой клавишей мыши по названию библиотеки и в открывшемся контекстном меню выберете пункт «Свойства».

Рисунок 9

После этих действий у вас откроется новая вкладка со свойствами проектаClassLibrary1. Выберете в вкладку «Построение» и найдите раздел «Вывод», там вам будет предложено ввести путь куда будет выполнено построение конечной версии библиотеки и пункт необходимый нам для построения xml файла документации, тут вам необходимо просто поставить галочку как показано на скриншоте ниже. Тут важно чтобы библиотека и файл документации находились в одном месте, поэтому проверьте чтобы их путь вывода совпадал.

Рисунок 10

Остались последние шаги и мы получим готовую для использования библиотеку. И так продолжим, вам необходимо в верхней части программы выбрать режим конфигурацииReleaseкак показано на скриншоте ниже.

Рисунок 11

После этого, выполним построение решения. Нажав на клавиатуре клавишуF6.

Рисунок 11

Как только программа закончит построение, можно перейти в директорию с проектом и посмотреть что получилось. На этом этапе закончилось создание библиотеки.

Рисунок 12

Для проверки работоспособности библиотеки создадим тестовый проект. ВыполнитеФайл -> Создать -> Проект…

Рисунок 13

Выберете из предложенных шаблонов, шаблон «Приложение Windows Forms Visual C#». Задайте имя проекта и нажмите кнопку OK.

Рисунок 14

После создания проекта, в обозревателе решений сделайте клик правой клавишей мыши по разделу «Ссылки» и выберете в появившемся контекстном меню пункт «Добавить ссылку…».

Рисунок 15

Выберете вкладку «Обзор» и укажите вашу библиотеку.

Рисунок 16

Если вы все успешно выполнили, в разделе «Ссылки» у вас появится название вашей библиотеки.

Рисунок 17

Сделайте клик правой клавишей мыши по главной форме вашего проекта и в открывшемся контекстном меню выберете пункт «Свойства».

Рисунок 18

В боковой панели откроются «Свойства» формы. Найдите метод Loadи сделайте двойной клик левой клавишей мыши по нему, у вас откроется новая вкладка с добавленным методомForm1_Load.

Рисунок 19

Добавим пространство имен с названием нашей библиотеки.

Рисунок 20

Пропишите вызов нескольких методов из библиотеки и вывод результата в диалоговом окне «MessageBox». Обратите внимание что при выборе методом из библиотеки у вас показывается подсказка, которую мы прописывали. Если такого не происходит то, xml файл документации отсутствует в директории с библиотекой. Пример подсказок вы можете посмотреть на скриншоте ниже.

Рисунок 21

программа конструктор библиотека динамический

Запустите проект, нажав клавишу F5. И вы увидите результат выполнения методов, прописанных в библиотеке, с параметрами, которые вы передали при вызове.

2. Для предложенной структуры данных разработайте класс. В классе реализуйте несколько конструкторов. Создайте методы, работающие с полями класса. Добавьте методы-свойства

Создайте несколько объектов и вызовите методы. Отобразите работу программы на экране.

ЭКЗАМЕН: ФИО студента, дата, оценка, перечень вопросов.

namespace Q2_1

{

class Program

{

public class Exam//создаем класс

{

public Exam()//конструктор без параметров

{//задаем начальные значения

this.fio = "";

this.date = "15.02.2015";

this.ocenka = 9;

Questions=new List<string>();

}

public Exam(string _FIO, string _Date, int _Ocenka, List<string> _Questions)//конструктор с параметрами

{//задаем полям класса переданные значения

this.fio = _FIO;

this.date = _Date;

this.ocenka = _Ocenka;

Questions=new List<string>(_Questions);

}

public string fio//методы для ФИО

{

get { return FIO; }

set { FIO = value; }

}

private string FIO;//закрытая переменная ФИО

public string date//методы для даты

{

get { return Date; }

set { Date = value; }

}

private string Date;//закрытая переменная дата

public int ocenka//метод для оценки

{

get { return Ocenka; }

set { Ocenka = value; }

}

private int Ocenka;//закрытая переменная оценка

public List<string> Questions; //вопросы

public void GetInfo()//функция получения информации о студенте

{

Console.WriteLine("Студент: {0} \nДата сдачи: {1}\nОценка:{2}",this.fio,this.date,this.ocenka);

Console.WriteLine("Вопросы:");

foreach (var a in Questions)

{

Console.WriteLine(a);

}

}

}

static void Main(string[] args)

{

var First = new Exam();//создаем объект класса с пустым конструктором

First.fio = "Степанов Федор Иванович";//задаем поля вручную

First.date = "12.01.2015";

First.ocenka =9;

First.Questions.Add("Понятие Класс");

First.Questions.Add("Абстрактные методы");

First.GetInfo();//вызываем функцию получения информации о студенте

Console.WriteLine

List<string> qu=new List<string>();

qu.Add("ООП");

qu.Add("Виртуальные методы");

var Second = new Exam("Иванов Иван Иванович","13.01.2015",8,qu);//создаем объект класса, передавая в конструктор начальные значения

Second.GetInfo();//вызываем функцию получения информации о студенте

Console.ReadKey();//ждем нажатия клавиши

}

3. Напишите программу, которая должна содержать:

- базовый класс, включающий:

- два элемента в виде строк символов S1 и S2;

- конструктор с параметрами для создания динамических строковых объектов;

- виртуальный метод просмотра текущего состояния объекта;

- производный класс, включающий:

- элемент в виде строки символов S3;

- конструктор с параметрами для создания динамических строковых объектов, передающий данные конструктору базового класса;

- переопределенный метод просмотра текущего состояния объектов;

- метод, реализующий следующую задачу:

определите, какая из строк S1, S2 и S3 содержит самое длинное слово (считайте, что такое слово одно);

- функцию Main, в которой создаются объекты, демонстрируется работа методов классов.

namespace Q2_2

{

class Program

{

public class BaseClass//базовый класс

{

public BaseClass(string str1, string str2)//конструктор с заданием начальных значений

{

s1 = str1;

s2 = str2;

}

public virtual void GetInf()//метод для получения текущего состояния объекта

{

Console.WriteLine("Строка №1: {0}\nСтрока №2: {1}",this.s1,this.s2);

}

private string S1;//первая строковая переменная

public string s1

{

get { return S1; }

set { S1 = value; }

}

private string S2;//вторая строковая переменная

public string s2

{

get { return S2; }

set { S2 = value; }

}

}

public class ChildClass:BaseClass

{

public ChildClass(string str1, string str2,string str3)//конструктор с параметрами

base(str1, str2)//использующий базовый конструктор

{

s3 = str3;

}

private string S3;//третья строковая переменная

public string s3

{

get { return S3; }

set { S3 = value; }

}

public override void GetInf()//переопределенный метод получения информации об объекте

{

Console.WriteLine("Строка №1: {0}\nСтрока №2: {1}\nСтрока №3: {2}", this.s1, this.s2, this.s3);

}

public void isNum()//метод реализующий задачу

{

string[] slova1 = s1.Split(' ');

string[] slova2 = s2.Split(' ');

string[] slova3 = s3.Split(' ');

string maxslovo = slova1[0];

int num = 1;

foreach (var s in slova1)

{

if (s.Length>maxslovo.Length)

{

maxslovo = s;

}

}

foreach (var s in slova2)

{

if (s.Length > maxslovo.Length)

{

axslovo = s;

num = 2;

}

}

foreach (var s in slova3)

{

if (s.Length > maxslovo.Length)

{

maxslovo = s;

num = 3;

}

}

Console.WriteLine("Самое длинное слово: {0}, в строке №{1}",maxslovo,num);

}

}

static void Main(string[] args)

{

string s1,s2,s3;//создаем строковые переменные

Console.WriteLine("Введите 1-е строку для объекта 1");//просим ввести строку

s1 = Console.ReadLine();//считываем строку

Console.WriteLine("Введите 2-е строку для объекта 1");//просим ввести строку

s2 = Console.ReadLine();//считываем строку

BaseClass Class1 = new BaseClass(s1, s2);//создаем объект базового класса

Class1.GetInf();//вызываем метод получения состояния объекта

Console.WriteLine("Введите 1-е строку для объекта 2");//просим ввести строку

s1 = Console.ReadLine();//считываем строку

Console.WriteLine("Введите 2-е строку для объекта 2");//просим ввести строку

s2 = Console.ReadLine();//считываем строку

Console.WriteLine("Введите 3-е строку для объекта 3");//просим ввести строку

s3 = Console.ReadLine();//считываем строку

ChildClass Class2 = new ChildClass(s1,s2,s3);//создаем объект производного класса

Class2.GetInf();//вызываем переопределенный метод получения состояния объекта

Class2.isNum();//вызываем метод, выполняющий задачу

Console.ReadKey();//ждем нажатия клавиши

}

}

}

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

1. Пауэрс, Л. Microsoft Visual Studio 2008 /Л. Пауэрс, М. Снелл. -СПб.: БХВ-Питербург, 2009. - 1200 с.

2. Рихтер. Дж. Via C#. Программирование на платформе Microsoft.NET Framework 2.0 на языке С#. Мастер-класс. / Дж. Рихтер. - СПб.: Питер, - 2007. -- 656 стр.

3. Хаф, Л. Проектирование информационных систем. / Л. Хаф. - Москва: Бином, 2006 - 728

Размещено на Allbest.ru

...

Подобные документы

  • Описание возможностей языка программирования Turbo Pascal. Написание программы создания файлов с прямым доступом, которая также будет обрабатывать наборы данных с определенными полями и ограничениями. Контрольный пример работы поисковой программы.

    курсовая работа [563,6 K], добавлен 22.01.2016

  • Этапы создания презентации: знакомство с программой, добавление графиков и диаграмм, рисование и вставка графических и анимационных объектов. Добавление графических клипов из Clip Gallery. Создание и запуск слайд-фильма. Настройка программы Power Point.

    контрольная работа [27,2 K], добавлен 07.12.2010

  • Основные функции библиотеки динамической компоновки (DLL) в операционной системе Windows. Характеристика механизмов связывания в среде Windows. Описание функций, использующихся в программах. Анализ примеров реализации DLL. Процесс использования ресурсов.

    курсовая работа [365,3 K], добавлен 18.05.2014

  • Создание и организация автоматизированных информационных систем (АИС). Основные компоненты и технологические процессы АИС. Стадии и этапы создания АИС с позиции руководства организации. Разработка комплексов проектных решений автоматизированной системы.

    реферат [286,6 K], добавлен 18.10.2012

  • Стандартная библиотека для всех 32-разрядных операционных систем - OpenGL. Структурная схема программы. Описание разработанного класса, реализации технологии Com, динамических библиотек. Средства использования сервисов, предоставляемых Microsoft Office.

    курсовая работа [4,3 M], добавлен 14.11.2010

  • Изучение моделирования и визуализации трехмерных динамических сцен в пакете 3Ds Max на примере создания анимированной сцены, содержащей мышь, стул, чашку, чайную ложку и море. Создание материалов, камер и анимации, постановка света и визуализация сцены.

    курсовая работа [1,2 M], добавлен 26.02.2012

  • Значение вербальных и знаковых информационных моделей для исследования объектов, процессов, явлений. Роль метода формализации в процессе создания компьютерной модели. Использование программы AutoCAD для трехмерного моделирования и визуализации объекта.

    курсовая работа [866,5 K], добавлен 08.01.2015

  • Описание технологии создания таблиц в режиме "Конструктор" в программной среде Microsoft Access. Сортировка и фильтрация данных в таблицах, создание полей с подстановкой. Пример структуры многотабличного запроса и пример создания итогового запроса.

    лабораторная работа [1,6 M], добавлен 17.02.2013

  • Разработка кода на С++, реализующего простой интерфейс СОМ без динамической компоновки, результаты работы программы. Объявление интерфейсов IX, IY, IZ и IUnknown. Добавление подсчета ссылок с помощью реализации двух методов IUnknown – AddRef и Release.

    контрольная работа [1,6 M], добавлен 14.11.2010

  • Создание программы, которая создает набор данных в динамической памяти компьютера и позволяет корректировать его. Описание программного комплекса. Обзор особенностей реализации программы с использованием модулей. Добавление данных в конец текущего набора.

    курсовая работа [455,2 K], добавлен 28.08.2017

  • Разработка структуры web-сайта новостей, наполнение его содержательной информацией. Выбор платформы для создания сайта, его обоснование. Установка и редактирование шаблона, создание разделов и категорий. Добавление материала на сайт, его тестирование.

    дипломная работа [1,5 M], добавлен 24.01.2016

  • Теоретические аспекты реляционных баз данных. Проектирование информационных систем "Ломбард" в Microsoft Access. Структура таблиц в программе. Заполнение базы данных, оперирование данными. Запросы с вычисляемыми полями. Создание форм и макросов.

    курсовая работа [1,4 M], добавлен 16.09.2017

  • Изучение методики и технологий создания гипертекстовых справочных систем - электронных справочников, в которых хорошо реализована система навигации и поиска. Способы создания Web-страниц и применение языка HTML. Технология создания динамических страниц.

    презентация [144,4 K], добавлен 01.01.2011

  • Средства создания динамических структур данных. Формат описания ссылочного типа. Структура памяти во время выполнения программы. Линейные списки, стек, очередь. Организация списков в динамической памяти. Пример создания списка в обратном порядке.

    лабораторная работа [788,2 K], добавлен 14.06.2009

  • Компиляция программ на языке C/C++. Компиляция нескольких файлов. Библиотеки объектных файлов. Создание статической и динамической библиотеки. Функции работы. Создание динамической библиотеки для решения системы линейных уравнений.

    курсовая работа [27,4 K], добавлен 07.08.2007

  • Характеристика формы как объекта базы данных, предназначенного для ввода и отображения информации. Этапы создания форм в Access, использование режимов Мастер форм и Конструктор. Видовое разделение элементов управления по способу заполнения их данными.

    реферат [190,6 K], добавлен 24.07.2011

  • Архитектурное построение современных информационных систем. Типовые функциональные компоненты информационной системы. Изучение способов подключения внешних библиотек к проекту в среде Netbeans. Добавление библиотеки, которая не входит в сборку среды.

    контрольная работа [1,6 M], добавлен 07.12.2013

  • Исследование свойств и поведения динамических объектов, описываемых системами обыкновенных нелинейных дифференциальных уравнений. Описание методов, программ и алгоритмов решения систем линейных и нелинейных алгебраических уравнений в системе MathCAD.

    контрольная работа [255,1 K], добавлен 16.01.2009

  • Принцип работы компиляторов. Синтаксически-неоpиентиpованные алгоритмы, достоинства этого класса. Метод нисходящего разбора - рекурсивный спуск, суть данного метода. Преобразования программы компилятором с реализацией работы с процедурами с параметрами.

    курсовая работа [31,6 K], добавлен 25.03.2011

  • Реализация программы, разработанной в среде Turbo C++. Обработка динамической структуры данных, содержащей сведения об авторах книг. Моделирование работы со структурой как с базой данных. Метод сортировки и описание работы пользовательских подпрограмм.

    курсовая работа [124,3 K], добавлен 23.12.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.