Проектирование информационных систем
Описание назначения библиотек динамической компоновки и этапы их создания. Написание программы, содержащей конструктор с параметрами для создания динамических строковых объектов. Создание методов, работающих с полями класса. Добавление метода-свойства.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 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