Учебная практика для студентов 2 курса. Методические указания к проведению учебной практики для студентов 2 курса
.pdfДвойные кавычки – "\"".
Метод IsNullOrEmpty() возвращает True, если значение строки равно null, либо когда она пуста (значение равно ""):
static void Main(string[] args) { string s1 = null, s2 = "", s3 = "Hello"; String.IsNullOrEmpty(s1); // True String.IsNullOrEmpty(s2); // True String.IsNullOrEmpty(s3); // False
}
Метод IsNullOrWhiteSpace() работает как и метод IsNullOrEmpty(),
только возвращает True еще и тогда, когда строка представляет собой набор символов пробела и/или табуляции ("\t"):
static void Main(string[] args) {
string s1 = null, s2 = "\t", s3 = " ", s4 = "Hello"; String.IsNullOrWhiteSpace(s1); // True String.IsNullOrWhiteSpace(s2); // True String.IsNullOrWhiteSpace(s3); // True String.IsNullOrWhiteSpace(s4); // False
}
Для сравнения строк используется метод Compare(). Суть сравнения строк состоит в том, что проверяется их отношение относительно алфавита.
Строка "a" "меньше" строки "b", "bb" "больше" строки "ba". Если обе строки равны - метод возвращает "0", если первая строка меньше второй – "-1", если первая больше второй – "1":
static void Main(string[] args) { String.Compare("a", "b"); // возвращает -1 String.Compare("a", "a"); // возвращает 0 String.Compare("b", "a"); // возвращает 1 String.Compare("ab", "abc"); // возвращает -1
String.Compare("Romania", "Russia"); // возвращает -1 String.Compare("Rwanda", "Russia"); // возвращает 1 String.Compare("Rwanda", "Romania"); // возвращает 1
}
11
Чтобы игнорировать регистр букв, в метод нужно передать, как третий
аргумент true.
String.Compare("ab", "Ab"); // возвращает -1
String.Compare("ab", "Ab", true); // возвращает 0
Для того чтобы перевести всю строку в верхний/нижний регистр
используются методы ToUpper() и ToLower():
static void Main(string[] args) { string s = "Hello, World";
Console.WriteLine(s.ToUpper()); // выводит "HELLO, WORLD" Console.WriteLine(s.ToLower()); // выводит "hello, world"
Console.ReadLine();
}
Для проверки содержания подстроки в строке используется метод Contains(). Данный метод принимает один аргумент – подстроку.
Возвращает True, если строка содержит подстроку, в противном случае –
False. Пример:
static void Main(string[] args)
{
string s = "Hello, World"; if (s.Contains("Hello"))
Console.WriteLine("Содержит");
Console.ReadLine();
}
Данная программа выводит слово "Содержит", так как "Hello, World"
содержит подстроку "Hello".
Метод IndexOf() возвращает индекс первого символа подстроки,
которую содержит строка. Данный метод принимает один аргумент – подстроку. Если строка не содержит подстроки, метод возвращает "-1".
Пример:
static void Main(string[] args) { string s = "Hello, World";
12
Console.WriteLine(s.IndexOf("H")); // 0 Console.WriteLine(s.IndexOf("World")); // 7 Console.WriteLine(s.IndexOf("Zoo")); // -1 Console.ReadLine();
}
Для того чтобы узнать начинается/заканчивается ли строка указанной подстрокой используются соответственно методы StartsWith() и EndsWith(),
которые возвращают логическое значение. Пример:
static void Main(string[] args) { string s = "Hello, World";
Console.WriteLine(s.StartsWith("Hello")); // True Console.WriteLine(s.StartsWith("World")); // False Console.WriteLine(s.EndsWith("World")); // True Console.ReadLine();
}
Метод Insert() используется для вставки подстроки в строку, начиная с указанной позиции. Данный метод принимает два аргумента – позиция и подстрока. Пример:
static void Main(string[] args) { string s = "Hello World";
Console.WriteLine(s.Insert(5,",")); // вставляет запятую на 5 позицию Console.ReadLine();
}
Метод Remove() принимает один аргумент – позиция, начиная с которой
обрезается строка:
static void Main(string[] args) { string s = "Hello, World";
Console.WriteLine(s.Remove(5)); // удаляем все символы, начиная с 5
позиции, на экран выведется "Hello"
Console.ReadLine();
}
13
В метод Remove() можно передать и второй аргумент – количество обрезаемых символов. Remove(3, 5) – удалит из строки пять символов,
начиная с 3-го.
Чтобы получить подстроку из строки, начиная с указанной позиции используется метод Substring(). Он принимает один аргумент – позиция, с
которой будет начинаться новая подстрока:
static void Main(string[] args) { string s = "Hello, World";
Console.WriteLine(s.Substring(7)); // получаем строку начиная с 7 позиции,
выведет "World"
Console.ReadLine();
}
В метод Substring(), как в метод Remove() можно передать и второй аргумент – длина подстроки. Substring (3, 5) – возвратит подстроку длиной в 5
символов, начиная с 3-й позиции строки.
Метод Replace() принимает два аргумента – подстрока, которую нужно заменить и новая подстрока, на которую будет заменена первая:
static void Main(string[] args) { string s = "Hello, World, Hello";
Console.WriteLine(s.Replace("Hello", "World")); //выведет "World, World,
World"
Console.ReadLine();
}
Метод ToCharArray() возвращает массив символов указанной строки:
static void Main(string[] args)
{
string s = "Hello, World";
char[] array = s.ToCharArray(); // элементы массива – 'H', 'e', 'l', 'l'…
}
Метод Split() принимает один аргумент - символ, по которому будет разбита строка. Возвращает массив строк. Пример:
14
static void Main(string[] args) {
string s = "Arsenal,Milan,Real Madrid,Barcelona";
string[] array = s.Split(','); // элементы массива – "Arsenal", "Milan", "Real Madrid", "Barcelona"
}
Стоит знать, что объекты класса String представляют собой неизменяемые (Immutable) последовательности символов Unicode. Когда вы используете любой метод по изменению строки (например Replace()), он возвращает новую измененную копию строки, исходные же строки остаются неизменными. Это сделано потому, что операция создания новой строки гораздо менее затратна, чем операции копирования и сравнения, что повышает скорость работы программы.
4.4.Построение графиков с использованием сторонних средств
(DisLin, Google Chart Sharp, MS Chart Controls, NPlot, OxyPlot, ZedGraph,
WebChart, OpenMinded)
DisLin – бесплатная (для некоммерческого использования)
кроссплатформенная библиотека. Она может просто отображать графики,
и/или сразу их сохранять в файлы. Возможно использование с такими языками как fortran, c/c++,Perl,Python, Java, .Net.
Для работы с библиотекой ее нужно добавить в проект:
добавить в References файл disnet.dll;
добавить в проект файл dislin.cs;
в папку проекта положить библиотеку dislnc.dll.
Пример работы с библиотекой
Большое количество примеров работы с данной библиотекой представлены на сайте http://www.mps.mpg.de/dislin/examples.html. Ниже представлен пример построения обычного двумерного графика.
public class App {
public static void Main() {
15
int n = 301;
float [] xray = new float [n]; float [] y1ray = new float [n]; float [] y2ray = new float [n]; int i, ic;
float x, step, fpi;
fpi = 3.1415926f / 180; step = 360.0f / (n - 1); for (i = 0; i < n; i++)
{xray[i] = i * step;
x = xray[i] * fpi;
y1ray[i] = (float) Math.Sin (x); y2ray[i] = (float) Math.Cos (x); }
dislin.scrmod ("revers"); dislin.metafl ("xwin"); dislin.disini (); dislin.pagera (); dislin.complx (); dislin.axspos (450, 1800); dislin.axslen (2200, 1200); dislin.name ("X-axis", "X"); dislin.name ("Y-axis", "Y"); dislin.labdig (-1, "X"); dislin.ticks (10, "Y"); dislin.ticks (9, "X");
dislin.titlin ("Demonstration of CURVE", 1); dislin.titlin ("SIN(X), COS(X)", 3);
ic = dislin.intrgb (0.95f, 0.95f, 0.95f); dislin.axsbgd (ic);
dislin.graf (0.0f, 360.0f, 0.0f, 90.0f, -1.0f, 1.0f, -1.0f, 0.5f); dislin.setrgb (0.7f, 0.7f, 0.7f);
dislin.grid (1, 1); dislin.color ("fore"); dislin.height (50); dislin.title (); //построение кривых dislin.color ("red"); dislin.curve (xray, y1ray, n); dislin.color ("green"); dislin.curve (xray, y2ray, n);
16
dislin.disfin ();
}
}
Google Chart Sharp - обертка над Google Chart API для С#. Бесплатный
(с ограничением 50000 тыс. вызовов в день), работает достаточно быстро,
присутствуют основные параметры для кастомизации. Преимущества:
возможность использовать везде, где есть подключение к интернету,
независимость от используемого языка или ОС. Основной минус - это дополнительный round-trip данных по сети, что замедляет процесс.
Сервис очень прост в использовании – необходимо сформировать URL,
чтобы построить график.
Пример использования данного сервиса
Для начала работы необходимо подключить используемые файлы:
<script type="text/javascript"src="https://www.gstatic.com/charts/loader.js"> </script>
Затем выбрать тип визуализации:
google.charts.load('current', {'packages':['annotationchart']}); google.charts.setOnLoadCallback(drawChart);
Вместо annotationchart можно поместить geochart – карту, Orgchart –
дерево, Map – карту, Corechart – диаграмму, Gauge – спидометр.
Затем создаем функцию drawChart(). Указываем параметры визуализации. В массив нужно поместить своеобразную «таблицу» данных: в
одной ячейке определен параметр, в другой - данные, которые проявятся при hover эффекте.
var data = google.visualization.arrayToDataTable([ ['Country', 'Popularity'],
['Sweden', 300], ['United States', 300], ['France', 400], ['Canada', 500],
17
['Spain', 500], |
|
['RU', 900] |
]); |
По такому принципу строятся все эффекты визуализации GCT API.
Microsoft Chart Controls - нативный функционал от Microsoft, который был представлен общественности в 2008 году. К тому времени уже существовал ряд решений от сторонних разработчиков, но это не помешало
Ms Chart Controls быстро завоевать популярность среди разработчиков. И не удивительно, ведь они поставлялись с .NET framework, имели удачную архитектуру, были легко настраиваемыми и привлекательными на вид. По скорости уступают остальным, но, тем не менее, работают эффективно.
Пример работы с библиотекой
1. В WebForms приложении на страницу добавляется элемент управления Chart, при этом в web.config автоматически Visual Studio
прописывает необходимую конфигурацию.
Обработчик, отвечающий за генерацию изображений ChartImg.axd:
< httpHandlers>
<add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
validate="false" /> </httpHandlers>
Регистрация сборки и пространства имен, в котором размещен элемент
управления Chart:
< pages> <controls>
<add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</controls>
</pages>
Параметры конфигурации элемента управления Chart:
18
< appSettings>
<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" /> </appSettings>
Кроме того, разработчик регистрируется и в секции конфигурации веб-
сервера, которая используется Internet Information Services.
<handlers>
<remove name="ChartImageHandler" />
<add name="ChartImageHandler" preCondition="integratedMode"
verb="GET,HEAD,POST" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</handlers>
2.Настройка элемента управления Chart – для этого доступен Smart Tag, можно воспользоваться окном свойств (клавиша F4).
3.Данные можно связывать с элементом управления в коде, или использовать декларативную связку с источником данных (DataSource).
Например, добавим ObjectDataSource и свяжем с ним элемент управления
Chart (сначала добавляем DataSource, потом связываем с Chart, потом в
Start Tag или свойствах Chart задаем данные для осей X и Y).
Получим следующую разметку страницы:
< asp:Chart ID="Chart1" runat="server" DataSourceID="ObjectDataSource1"> <Series>
<asp:Series Name="Series1" XValueMember="X" YValueMembers="Y"> </asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartArea1"> </asp:ChartArea>
</ChartAreas>
</asp:Chart>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
19
SelectMethod="GetData"
TypeName="WebApplication1.DataSource"></asp:ObjectDataSource>
Непосредственно в коде изображение можно сохранить в файл для дальнейшего использования (например, передачи удаленному сервису,
вставки в документ и т.п.) вызовом метода Chart1.SaveImage(fileName);
Приложение должно иметь достаточно прав на запись в директорию, в
которую изображение будет сохранено.
NPlot - open source библиотека.
Пример использования библиотекой благодаря приложению ASP.Net
Шаг 1. Скачать библиотеку по ссылке http://sourceforge.net/projects/nplot/files/nplot/0.9.10.0/.
Шаг 2. Создаем новый веб-сайт, называем nplotGraph.
Шаг 3. Добавить библиотеку в проект и создать ссылку на него.
Шаг 4. Для того, чтобы использовать NPlot с WinForm необходимо добавить NPlot.Окна.PlotSurface2D управления на панель инструментов. Для этого в панели инструментов перейти в контекстное меню -> выбрать элементы -> обзор -> NPlot.dll -> Ok. Теперь можно использовать данный элемент на форме.
private void CreateLineGraph()
{
NPlot.Bitmap.PlotSurface2D npSurface = new NPlot.Bitmap.PlotSurface2D(700, 500);
NPlot.LinePlot npPlot1 = new LinePlot(); NPlot.LinePlot npPlot2 = new LinePlot(); NPlot.LinePlot npPlot3 = new LinePlot();
// Определение шрифта
Font TitleFont = new Font("Arial", 12); Font AxisFont = new Font("Arial", 10); Font TickFont = new Font("Arial", 8);
//Задание легенды
NPlot.Legend npLegend = new NPlot.Legend(); DateTime[] X1 = new DateTime[50]; DateTime[] X2 = new DateTime[50];
20
