Главная » Просмотр файлов » maran program engineering

maran program engineering (830029), страница 18

Файл №830029 maran program engineering (Маран Программная инженерия) 18 страницаmaran program engineering (830029) страница 182021-02-16СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 18)

Также это упрощаетповторное использование реализованных алгоритмов.Разделение алгоритмов и интерфейса можно выполнить на трех уровнях:• В состав стандартного класса, реализующего интерфейс, добавим своифункции, реализующие алгоритм.96• В эту область имен добавим собственные классы. Имейте в виду: собственные классы должны располагаться ПОСЛЕ стандартных.• Создание отдельных библиотек классов, которые будут подключены.Рассмотрим здесь использование дополнительного класса в существующем проекте. Третий подход рассмотрим в следующем параграфе.

Дополнительный класс может быть создан «с нуля» в самом проекте или можно подключить к проекту ранее созданный класс. Рассмотрим второй подход и подключим к проекту, рассмотренному в п. 5.4.4, класс MyClass, созданный нами вп. 4.8. Для этого поставим курсор мыши на имя проекта и из контекстного меню выберем по очереди Добавить — Существующий элемент. После этого найдем проект, при выполнении которого требуемый класс был сгенерирован(в нашем случае Mod48), сгенерированные классы находятся там в папкеMod48Lib, а в этой папке имеется папка GeneratedCode, где мы и найдем требуемый класс и подключим его к проекту. Приведем текст добавленного класса.

Часть класса, которая не используется в данном примере, закомментированаи здесь не приводится. Оставим только функцию суммирования одномерногомассива.public class MyClass : ClassX{public double [] mas;public MyClass(double[] mas){this.mas = new double[mas.Length];for (int i = 0; i < mas.Length; i++)this.mas[i] = mas[i];}/*Пропущенная часть*/public double Sum12(){return mas.Sum();}}Интерфейс приложения был представлен на рис. 5.3.

В п. 5.4.4 осталасьнереализованной кнопка «Класс», реализация которой приведена ниже. С помощью прикрепленного класса находим сумму строки, номер которого задан.private void СlCl2_Click(object sender, EventArgs e){int kol;double[] arr;double z;MyClass my;97//объявим переменную типа класс MyClasskol = Convert.ToInt32(NumRow.Text);if (kol < 0 || kol > n - 1) kol = 0;//проверим, находится ли номер строки//в допустимых пределахarr = new double[dataGridView1.Columns.Count];//создаем массив для размещения строки исходногоfor (int i = 0; i < arr.Length; i++)arr[i] = Convert.ToDouble(dataGridView1.Rows[kol].Cells[i].Value);//заполняем массив элементами заданной строкиmy = newMyClass(arr);//запускаем конструктор классаz = my.Sum12();Cl1.Text = z.ToString("F3");}5.4.

Работа с библиотекой классовРассмотрим создание отдельной библиотеки классов, которую можноподключить к любому проекту. Для этого создадим проект, который так и называется «Библиотека классов». Эту библиотеку можно создать «с нуля» илипутем добавления туда заранее сгенерированных классов из проекта моделирования. Выберем первый путь (подключение сгенерированных классов былорассмотрено в предыдущем параграфе) и создадим библиотеку ClassLibrary1.При создании библиотеки классов надо соблюдать следующие требования:• Классы, которые должны быть доступны за пределами создаваемой библиотеки, должны иметь атрибут доступа public.• Для обеспечения универсальности создаваемой библиотеки желательноисходные данные передавать в функции через параметры, а результатыих работы получать тоже через параметры или в виде возвращаемых значений.

Желательно избегать использование средств консольного вводо/вывода и обращения к формам (хотя это НЕ запрещено).Пусть у нас имеется следующая библиотека:namespace ClassLibrary1{/// <summary>/// Это базовый класс/// </summary>public class Class1{protected double[] mas;/// <summary>/// Конструктор/// </summary>/// <param name="mas">Исходный массив</param>98public Class1 (double []mas){this.mas=new double [mas.Length];mas.CopyTo(this.mas,0);}/// <summary>/// Это свойство - количество положительных элементов/// </summary>public int KolPol{get {return mas.Where(p => p > 0).Count();}}public int KolNeg{get {return mas.Where(p => p < 0).Count();}}}/// <summary>/// Это класс-наследник/// </summary>public class Class2:Class1{protected double c1, c2;double sum = -10000;/// <summary>/// </summary>/// <param name="temp"></param>public Class2(double []temp):base(temp){}/// <summary>/// Ввод данных в класс/// </summary>/// <param name="c1">Нижняя граница</param>/// <param name="c2">/// Верхняя граница/// </param>public void inpt(double c1,double c2){this.c1 = c1; this.c2 = c2;}/// <summary>99/// Функция с возвращаемым значением/// </summary>/// <returns>Сформированный массив</returns>public double [] NewMas(){return mas.Where(p => p > c1 && p < c2).ToArray();}/// <summary>/// Функция без возвращаемого значения/// </summary>/// <param name="d1">Граница</param>/// <param name="cnt">/// Результат/// </param>public void fun1(double d1,out int cnt){cnt = 0;foreach (double x in mas)if (x > d1) cnt++;}}}Структура классов и их функций предельно проста и не нуждается вразъяснениях.

Желательно включить в библиотеку классов XML-комментарии,что сильно облегчает использование библиотеки в будущем (XML — eXtensibleMarkup Language — расширенный язык разметки). Напомним: признаком XMLкомментария в C# является ///. В библиотеке классов XML-комментарии целесообразно ставить перед классами и перед функциями (конструктор тожефункция). В таком случае будет автоматически создан каркас комментария:summary для общей характеристики класса или функции, param для каждогоформального параметра при их наличии, returns для возвращаемого значенияпри его наличии. Остается лишь писать необходимый текст, при этом недопустимо нарушить структуру комментария: любой текст должен быть между знаками, например <summary> .

. . </summary> , нарушение этого правила считается синтаксической ошибкой.Для завершения создания библиотеки:• Поставим курсор мыши на имя созданной библиотеки (ClassLibrary1) ивыберем из контекстного меню пункт «Свойства», в открывающемся окнесвойств пункт «Сборка (Build)». В нижней его части можно определитьпапку размещения создаваемой библиотеки (по умолчанию bin\debug впапке проекта).• Ставим «галочку» при XML.• После этого из меню Visual Studio выберем Сборка — Построить (Build —Build Solution) ClassLibrary1.

Если в библиотеке были допущены синтаксические ошибки, то появятся диагностика, если их нет — библиотекабудет создана в виде файла с расширением *.dll.100Powered by TCPDF (www.tcpdf.org)Использование созданной библиотеки. Для простоты создадим консольноеприложение useClassLibr1. Для подключения созданной библиотеки в обозревателе решения найдем пункт References и из его контекстного меню выберемдобавление ссылки.

Откроется диалоговое окно, с помощью кнопки Обзор найдем нужную папку (если все было сделано правильно, то там должен быть файлClassLibrary1.dll) и добавим ссылку. Чтобы освободиться от необходимости писать при обращении к компонентам библиотеки полные имена, можно добавитьusing ClassLibrary1;После этого можем работать с классами из библиотеки точно так, как работаемс классами, созданными в текущем проекте:static void Main(string[] args){double[] mas,res;int n,mpol,motr,k;Class2 my;// ввод masmy = new Class2(mas);mpol = my.KolPol;k=my.fun1()my.inpt(1, 5);my.fun1(2.3, out k);//и т.д.}5.5. Реализация взаимодействия с базой данных5.5.1. Структура базы данныхПрактически во всех задачах необходимы условно-постоянные данные,которые используются многократно и которые должны храниться в базе данных.

Рассмотрим в этом пункте использование баз данных в программах на C#в Microsoft Visual Studio. Пусть база данных создана с использованием системыуправления базами данных Microsoft SQL Server. Созданию баз данных посвящена обширная литература, поэтому мы не будем на этом останавливаться.Пусть наша база данных состоит из двух таблиц.Groups — учебные группы (номер группы — ключ и специальность).Students — данные о студентах (табельный номер — ключ, фамилия, имя,группа, рост, вес, дата рождения). Автор, конечно, отдает себе отчет о том, чторост и вес неважные показатели, но нужны простые числовые данные! Типы101данных видны из рисунка. Между таблицами установлена связь по полямGrNum и Gr с включением режима защиты ссылочной целостности: ни одинстудент не может учиться в несуществующей группе.

Напомним, что в базахданных не допускается повторение значений в ключевом поле. Кроме того, существует представление FamSpec, созданное на основе двух таблиц и содержащее поля фамилия, имя, специальность. В программах на C# представления могут быть обработаны аналогично таблицам, за исключением внесения изменений в данные. Кроме того, в базе данных имеются хранимые процедуры ифункции. Рассмотрим создание приложения «клиент — сервер», где данные,хранимые процедуры и функции хранятся и выполняются на сервере. Клиентдолжен осуществлять их вызов и пользоваться результатами, возможно, с дальнейшей обработкой.Хранимые процедуры и функции написаны на языке T-SQL, ограничимсяпростейшими средствами этого языка (-- это комментарии на T-SQL).Хранимые процедуры. Извлечение данных.CREATE PROCEDURE dbo.CountStudents(@par1 int = 150,-- входной параметр со значением по умолчанию@par2 int OUTPUT ) -- результат процедурыASSET @par2=( --найти количество студентов,-- ростом выше заданногоSelect COUNT(*)From StudentsWhere Rost>@par1)RETURN )Удаление данных.

Характеристики

Тип файла
PDF-файл
Размер
6,76 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6505
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее