Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Папшев И.С., Черненький М.В., Гапанюк Ю.Е. - Методические указания к лабораторным работам

Папшев И.С., Черненький М.В., Гапанюк Ю.Е. - Методические указания к лабораторным работам, страница 2

PDF-файл Папшев И.С., Черненький М.В., Гапанюк Ю.Е. - Методические указания к лабораторным работам, страница 2 Базовые компоненты интернет-технологий (17617): Книга - 3 семестрПапшев И.С., Черненький М.В., Гапанюк Ю.Е. - Методические указания к лабораторным работам: Базовые компоненты интернет-технологий - PDF, страница 2 (2018-01-10СтудИзба

Описание файла

PDF-файл из архива "Папшев И.С., Черненький М.В., Гапанюк Ю.Е. - Методические указания к лабораторным работам", который расположен в категории "". Всё это находится в предмете "базовые компоненты интернет-технологий" из 3 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "базовые компоненты интернет-технологий" в общих файлах.

Просмотр PDF-файла онлайн

Текст 2 страницы из PDF

Класс долженсодержать конструктор по длине стороны.5. Класс «Круг» наследуется от класса «Геометрическая фигура». Радиусобъявляется как свойство (property). Класс должен содержать конструкторпо параметру «радиус».76. Дляклассов«Прямоугольник»,«Квадрат»,«Круг»переопределитьвиртуальный метод Object.ToString(), который возвращает в виде строкиосновные параметры фигуры и ее площадь.7. Разработать интерфейс IPrint. Интерфейс содержит метод Print(), которыйне принимает параметров и возвращает void. Для классов «Прямоугольник»,«Квадрат», «Круг» реализовать наследование от интерфейса IPrint.Переопределяемый метод Print() выводит на консоль информацию,возвращаемую переопределенным методом ToString().6.3 Лабораторная работа 3Разработать программу, реализующую работу с коллекциями.1.

Программа должна быть разработана в виде консольного приложения наязыке C#.2. Создать объекты классов «Прямоугольник», «Квадрат», «Круг».3. Для реализации возможности сортировки геометрических фигур для класса«Геометрическая фигура» добавить реализацию интерфейса IComparable.Сортировка производится по площади фигуры.4. Создать коллекцию класса ArrayList. Сохранить объекты в коллекцию.Отсортировать коллекцию. Вывести в цикле содержимое коллекции.5. Создать коллекцию класса List<Figure>.

Сохранить объекты в коллекцию.Отсортировать коллекцию. Вывести в цикле содержимое коллекции.6. Модифицировать класс разреженной матрицы Matrix (представлен вразделе «Вспомогательные материалы для выполнения лабораторныхработ») для работы с тремя измерениями – x,y,z. Вывод элементов в методеToString() осуществлять в том виде, который Вы считаете наиболееудобным. Разработать пример использования разреженной матрицы длягеометрических фигур.7. Реализовать класс «SimpleStack» на основе односвязного списка.

КлассSimpleStack наследуется от класса SimpleList (представлен в разделе8«Вспомогательные материалы для выполнения лабораторных работ»).Необходимо добавить в класс методы: public void Push(T element) – добавление в стек; public T Pop() – чтение с удалением из стека.8. Пример работы класса SimpleStack реализовать на основе геометрическихфигур.6.4 Лабораторная работа 4Разработать программу, реализующую работу с файлами.1. Программа должна быть разработана в виде приложения Windows Forms наязыке C#. По желанию вместо Windows Forms возможно использованиеWPF (Windows Presentation Foundation).2. Добавить кнопку, реализующую функцию чтения текстового файла всписок слов List<string>.3. Для выбора имени файла используется класс OpenFileDialog, которыйоткрывает диалоговое окно с выбором файла.

Ограничить выбор толькофайлами с расширением «.txt».4. Для чтения из файла рекомендуется использовать статический методReadAllText() класса File (пространство имен System.IO). Содержимоефайла считывается методом ReadAllText() в виде одной строки, далееделится на слова с использованием метода Split() класса string. Словасохраняются в список List<string>.5.

ПрисохранениисловвсписокList<string>дубликатысловнезаписываются. Для проверки наличия слова в списке используется методContains().6. Вычислить время загрузки и сохранения в список с использованием классаStopwatch (пространство имен System.Diagnostics). Вычисленное времявывести на форму в поле ввода (TextBox) или надпись (Label).7. Добавить на форму поле ввода для поиска слова и кнопку поиска. Принажатии на кнопку поиска осуществлять поиск введенного слова в списке.9Слово считается найденным, если оно входит в элемент списка какподстрока (метод Contains() класса string).8. Добавить на форму список (ListBox). Найденные слова выводить в список сиспользованием метода «название_списка.Items.Add()».

Вызовы метода«название_списка.Items.Add()» должны находится между вызовами методов«название_списка.BeginUpdate()» и «название_списка. EndUpdate()».9. Вычислить время поиска с использованием класса Stopwatch. Вычисленноевремя вывести на форму в поле ввода (TextBox) или надпись (Label).6.5 Лабораторная работа 5Разработать программу, реализующую вычисление расстояния Левенштейнас использованием алгоритма Вагнера-Фишера.1. Программа должна быть разработана в виде библиотеки классов на языкеC#.2. Использовать самый простой вариант алгоритма без оптимизации.3. Дополнительно возможно реализовать вычисление расстояния ДамерауЛевенштейна (с учетом перестановок соседних символов).4. Модифицировать предыдущую лабораторную работу, вместо поискаподстроки используется вычисление расстояния Левенштейна.5.

Предусмотреть отдельное поле ввода для максимального расстояния. Еслирасстояние Левенштейна между двумя строками больше максимального, тостроки считаются несовпадающими и не выводятся в список результатов.6.6 Лабораторная работа 6Часть 1. Разработать программу, использующую делегаты.1. Программа должна быть разработана в виде консольного приложения наязыке C#.2. Определите делегат, принимающий несколько параметров различных типови возвращающий значение произвольного типа.3. Напишите метод, соответствующий данному делегату.104.

Напишите метод, принимающий разработанный Вами делегат, в качествеодного из входным параметров. Осуществите вызов метода, передавая вкачестве параметра-делегата: метод, разработанный в пункте 3; лямбда-выражение.5. Повторите пункт 4, используя вместо разработанного Вами делегата,обобщенный делегат Func< > или Action< >, соответствующий сигнатуреразработанного Вами делегата.Часть 2. Разработать программу, реализующую работу с рефлексией.1. Программа должна быть разработана в виде консольного приложения наязыке C#.2. Создайте класс, содержащий конструкторы, свойства, методы.3.

С использованием рефлексии выведите информацию о конструкторах,свойствах, методах.4. Создайте класс атрибута (унаследован от класса System.Attribute).5. Назначьте атрибут некоторым свойствам классам. Выведите только тесвойства, которым назначен атрибут.6. Вызовите один из методов класса с использованием рефлексии.7 Вспомогательныематериалыдлявыполнениялабораторных работ7.1 Лабораторная работа 17.1.1 Фрагмент программы, реализующий консольный ввод-выводclass Program{static void Main(string[] args){float f;Console.Write("Введите число: ");string str = Console.ReadLine();//Преобразование строки в число 111Console.WriteLine("Преобразование строки в число 1");bool ConvertResult = float.TryParse(str, out f);if (ConvertResult){Console.WriteLine("Вы ввели число " + f.ToString("F5"));}else{Console.WriteLine("Вы ввели не число");}//Преобразование строки в число 2Console.WriteLine("Преобразование строки в число 2");try{f = float.Parse(str);Console.WriteLine("Вы ввели число " + f.ToString("F5"));}catch (Exception e){Console.WriteLine("Вы ввели не число: " + e.Message);Console.WriteLine("\nПодробное описание ошибки: " + e.StackTrace);}//Вывод параметров командной строкиCommandLineArgs(args);Console.WriteLine("++++++++++++++++++++++++++++++++++++++++++++++++++++++++");double a = ReadDouble("Введите коэффициент А: ");Console.WriteLine("Вы ввели коэффициент А = " + a);Console.ReadLine();}/// <summary>/// Вывод параметров командной строки/// </summary>/// <param name="args"></param>static void CommandLineArgs(string[] args){/*Необходимо установить параметры командной строки (несколько словчерез пробел)в пункте меню "Project", "название проекта Properties"вкладка "Debug", поле ввода "Command Line Arguments"*///Вывод параметров командной строки 1Console.WriteLine("\nВывод параметров командной строки 1:");for (int i = 0; i < args.Length; i++){Console.WriteLine("Параметр [{0}] = {1}", i, args[i]);}12//Вывод параметров командной строки 2Console.WriteLine("\nВывод параметров командной строки 2:");int i2 = 0;foreach (string param in args){Console.WriteLine("Параметр [{0:F5}] = {1}", i2, param);i2++;}}/// <summary>/// Ввод вещественного числа с проверкой корректности ввода/// </summary>/// <param name="message">Подсказка при вводе</param>/// <returns></returns>static double ReadDouble(string message){string resultString;double resultDouble;bool flag;do{Console.Write(message);resultString = Console.ReadLine();//Первый способ преобразования строки в числоflag = double.TryParse(resultString, out resultDouble);//Второй способ преобразования строки в число/*try{resultDouble = double.Parse(resultString);//resultDouble = Convert.ToDouble(resultString);flag = true;}catch{//Необходимо присвоить значение по умолчанию из-за ошибкикомпилятораresultDouble = 0;flag = false;}*/if (!flag){Console.WriteLine("Необходимо ввести вещественное число");}}while (!flag);return resultDouble;}13}7.2 Лабораторная работа 27.2.1 Абстрактный класс «Геометрическая фигура»usingusingusingusingSystem;System.Collections.Generic;System.Linq;System.Text;namespace FigureCollections{/// <summary>/// Класс фигура/// </summary>abstract class Figure : IComparable{/// <summary>/// Тип фигуры/// </summary>public string Type{get{return this._Type;}protected set{this._Type = value;}}string _Type;/// <summary>/// Вычисление площади/// </summary>/// <returns></returns>public abstract double Area();/// <summary>/// Приведение к строке, переопределение метода Object/// </summary>/// <returns></returns>public override string ToString(){return this.Type + " площадью " + this.Area().ToString();}/// <summary>/// Сравнение элементов (для сортировки списка)/// </summary>/// <param name="obj"></param>/// <returns></returns>public int CompareTo(object obj)14{Figure p = (Figure)obj;if (this.Area() < p.Area()) return -1;else if (this.Area() == p.Area()) return 0;else return 1; //(this.Area() > p.Area())}}}7.2.2 Интерфейс IPrintusingusingusingusingSystem;System.Collections.Generic;System.Linq;System.Text;namespace FigureCollections{interface IPrint{void Print();}}7.2.3 Класс «Прямоугольник»usingusingusingusingSystem;System.Collections.Generic;System.Linq;System.Text;namespace FigureCollections{class Rectangle : Figure, IPrint{/// <summary>/// Высота/// </summary>double height;/// <summary>/// Ширина/// </summary>double width;/// <summary>/// Основной конструктор/// </summary>/// <param name="ph">Высота</param>/// <param name="pw">Ширина</param>public Rectangle(double ph, double pw){this.height = ph;this.width = pw;15this.Type = "Прямоугольник";}/// <summary>/// Вычисление площади/// </summary>public override double Area(){double Result = this.width * this.height;return Result;}public void Print(){Console.WriteLine(this.ToString());}}}7.2.4 Класс «Квадрат»usingusingusingusingSystem;System.Collections.Generic;System.Linq;System.Text;namespace FigureCollections{class Square : Rectangle, IPrint{public Square(double size): base(size, size){this.Type = "Квадрат";}}}7.2.5 Класс «Круг»usingusingusingusingSystem;System.Collections.Generic;System.Linq;System.Text;namespace FigureCollections{class Circle : Figure, IPrint{/// <summary>/// Ширина/// </summary>double radius;/// <summary>16/// Основной конструктор/// </summary>/// <param name="ph">Высота</param>/// <param name="pw">Ширина</param>public Circle(double pr){this.radius = pr;this.Type = "Круг";}public override double Area(){double Result = Math.PI * this.radius * this.radius;return Result;}public void Print(){Console.WriteLine(this.ToString());}}}7.3 Лабораторная работа 37.3.1 Фрагмент основной программыstatic void Main(string[] args){Rectangle rect = new Rectangle(5, 4);Square square = new Square(5);Circle circle = new Circle(5);Console.WriteLine("\nArrayList");ArrayList al = new ArrayList();al.Add(circle);al.Add(rect);al.Add(square);foreach (var x in al) Console.WriteLine(x);Console.WriteLine("\nArrayList - сортировка");al.Sort();foreach (var x in al) Console.WriteLine(x);Console.WriteLine("\nList<Figure>");List<Figure> fl = new List<Figure>();fl.Add(circle);fl.Add(rect);fl.Add(square);foreach (var x in fl) Console.WriteLine(x);Console.WriteLine("\nList<Figure> - сортировка");fl.Sort();17foreach (var x in fl) Console.WriteLine(x);Console.WriteLine("\nМатрица");Matrix3D<Figure> cube = new Matrix3D<Figure>(3, 3, 3, null);cube[0, 0, 0] = rect;cube[1, 1, 1] = square;cube[2, 2, 2] = circle;Console.WriteLine(cube.ToString());Console.WriteLine("\nСписок");SimpleList<Figure> list = new SimpleList<Figure>();list.Add(square);list.Add(rect);list.Add(circle);foreach (var x in list) Console.WriteLine(x);list.Sort();Console.WriteLine("\nСортировка списка");foreach (var x in list) Console.WriteLine(x);Console.WriteLine("\nСтек");SimpleStack<Figure> stack = new SimpleStack<Figure>();stack.Push(rect);stack.Push(square);stack.Push(circle);while (stack.Count > 0){Figure f = stack.Pop();Console.WriteLine(f);}Console.ReadLine();}7.3.2 Класс «разреженная матрица» (Matrix)usingusingusingusingSystem;System.Collections.Generic;System.Linq;System.Text;namespace SparseMatrix{public class Matrix<T>{/// <summary>/// Словарь для хранения значений/// </summary>Dictionary<string, T> _matrix = new Dictionary<string, T>();/////////int<summary>Количество элементов по горизонтали (максимальное количество столбцов)</summary>maxX;18/////////int<summary>Количество элементов по вертикали (максимальное количество строк)</summary>maxY;/// <summary>/// Пустой элемент, который возвращается если элемент с нужнымикоординатами не был задан/// </summary>T nullElement;/// <summary>/// Конструктор/// </summary>public Matrix(int px, int py, T nullElementParam){this.maxX = px;this.maxY = py;this.nullElement = nullElementParam;}/// <summary>/// Индексатор для доступа к данных/// </summary>public T this[int x, int y]{get{CheckBounds(x, y);string key = DictKey(x, y);if (this._matrix.ContainsKey(key)){return this._matrix[key];}else{return this.nullElement;}}set{CheckBounds(x, y);string key = DictKey(x, y);this._matrix.Add(key, value);}}/// <summary>/// Проверка границ/// </summary>void CheckBounds(int x, int y){if (x < 0 || x >= this.maxX) throw new Exception("x=" + x + " выходитза границы");19if (y < 0 || y >= this.maxY) throw new Exception("y=" + y + " выходитза границы");}/// <summary>/// Формирование ключа/// </summary>string DictKey(int x, int y){return x.ToString() + "_" + y.ToString();}/// <summary>/// Приведение к строке/// </summary>/// <returns></returns>public override string ToString(){//Класс StringBuilder используется для построения длинных строк//Это увеличивает производительность по сравнению с созданием исклеиванием//большого количества обычных строкStringBuilder b = new StringBuilder();for (int j = 0; j < this.maxY; j++){b.Append("[");for (int i = 0; i < this.maxX; i++){if (i > 0) b.Append("\t");b.Append(this[i, j].ToString());}b.Append("]\n");}return b.ToString();}}}7.3.3 Класс «простой односвязный список» (SimpleList)usingusingusingusingSystem;System.Collections.Generic;System.Linq;System.Text;namespace FigureCollections{/// <summary>/// Элемент списка/// </summary>public class SimpleListItem<T>{20/// <summary>/// Данные/// </summary>public T data { get; set; }/// <summary>/// Следующий элемент/// </summary>public SimpleListItem<T> next { get; set; }///конструкторpublic SimpleListItem(T param){this.data = param;}}/// <summary>/// Список/// </summary>public class SimpleList<T> : IEnumerable<T>where T : IComparable{/// <summary>/// Первый элемент списка/// </summary>protected SimpleListItem<T> first = null;/// <summary>/// Последний элемент списка/// </summary>protected SimpleListItem<T> last = null;/// <summary>/// Количество элементов/// </summary>public int Count{get { return _count; }protected set { _count = value; }}int _count;/// <summary>/// Добавление элемента/// </summary>/// <param name="element"></param>public void Add(T element){SimpleListItem<T> newItem = new SimpleListItem<T>(element);this.Count++;//Добавление первого элементаif (last == null){this.first = newItem;this.last = newItem;21}//Добавление следующих элементовelse{//Присоединение элемента к цепочкеthis.last.next = newItem;//Просоединенный элемент считается последнимthis.last = newItem;}}/// <summary>/// Чтение контейнера с заданным номером/// </summary>public SimpleListItem<T> GetItem(int number){if ((number < 0) || (number >= this.Count)){//Можно создать собственный класс исключенияthrow new Exception("Выход за границу индекса");}SimpleListItem<T> current = this.first;int i = 0;//Пропускаем нужное количество элементовwhile (i < number){//Переход к следующему элементуcurrent = current.next;//Увеличение счетчикаi++;}return current;}/// <summary>/// Чтение элемента с заданным номером/// </summary>public T Get(int number){return GetItem(number).data;}/// <summary>/// Для перебора коллекции/// </summary>public IEnumerator<T> GetEnumerator(){SimpleListItem<T> current = this.first;//Перебор элементовwhile (current != null){22//Возврат текущего значенияyield return current.data;//Переход к следующему элементуcurrent = current.next;}}//Реализация обощенного IEnumerator<T> требует реализации необобщенногоинтерфейса//Данный метод добавляется автоматически при реализации интерфейсаSystem.Collections.IEnumeratorSystem.Collections.IEnumerable.GetEnumerator(){return GetEnumerator();}/// <summary>/// Cортировка/// </summary>public void Sort(){Sort(0, this.Count - 1);}/// <summary>/// Реализация алгоритма быстрой сортировки/// </summary>/// <param name="low"></param>/// <param name="high"></param>private void Sort(int low, int high){int i = low;int j = high;T x = Get((low + high) / 2);do{while (Get(i).CompareTo(x) < 0) ++i;while (Get(j).CompareTo(x) > 0) --j;if (i <= j){Swap(i, j);i++; j--;}} while (i <= j);if (low < j) Sort(low, j);if (i < high) Sort(i, high);}/// <summary>/// Вспомогательный метод для обмена элементов при сортировке/// </summary>private void Swap(int i, int j){SimpleListItem<T> ci = GetItem(i);SimpleListItem<T> cj = GetItem(j);23T temp = ci.data;ci.data = cj.data;cj.data = temp;}}}7.4 Лабораторная работа 47.4.1 Фрагмент кода формыusingusingusingusingusingusingusingusingusingusingusingSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.IO;System.Diagnostics;EditDistanceProject;namespace WindowsFormsFiles{public partial class Form1 : Form{public Form1(){InitializeComponent();}/// <summary>/// Список слов/// </summary>List<string> list = new List<string>();private void buttonLoadFile_Click(object sender, EventArgs e){OpenFileDialog fd = new OpenFileDialog();fd.Filter = "текстовые файлы|*.txt";if (fd.ShowDialog() == DialogResult.OK){Stopwatch t = new Stopwatch();t.Start();//Чтение файла в виде строкиstring text = File.ReadAllText(fd.FileName);//Разделительные символы для чтения из файлаchar[] separators = new char[] {'','.',',','!','?','/','\t','\n'};string[] textArray = text.Split(separators);24foreach (string strTemp in textArray){//Удаление пробелов в начале и конце строкиstring str = strTemp.Trim();//Добавление строки в список, если строка не содержится вспискеif (!list.Contains(str)) list.Add(str);}t.Stop();this.textBoxFileReadTime.Text = t.Elapsed.ToString();this.textBoxFileReadCount.Text = list.Count.ToString();}else{MessageBox.Show("Необходимо выбрать файл");}}private void buttonExact_Click(object sender, EventArgs e){//Слово для поискаstring word = this.textBoxFind.Text.Trim();//Если слово для поиска не пустоif (!string.IsNullOrWhiteSpace(word) && list.Count > 0){//Слово для поиска в верхнем регистреstring wordUpper = word.ToUpper();//Временные результаты поискаList<string> tempList = new List<string>();Stopwatch t = new Stopwatch();t.Start();foreach (string str in list){if (str.ToUpper().Contains(wordUpper)){tempList.Add(str);}}t.Stop();this.textBoxExactTime.Text = t.Elapsed.ToString();this.listBoxResult.BeginUpdate();//Очистка спискаthis.listBoxResult.Items.Clear();25//Вывод результатов поискаforeach (string str in tempList){this.listBoxResult.Items.Add(str);}this.listBoxResult.EndUpdate();}else{MessageBox.Show("Необходимо выбрать файл и ввести слово дляпоиска");}}private void buttonApprox_Click(object sender, EventArgs e){//Слово для поискаstring word = this.textBoxFind.Text.Trim();//Если слово для поиска не пустоif (!string.IsNullOrWhiteSpace(word) && list.Count > 0){int maxDist;if(!int.TryParse(this.textBoxMaxDist.Text.Trim(), out maxDist)){MessageBox.Show("Необходимо указать максимальное расстояние");return;}if (maxDist < 1 || maxDist > 5){MessageBox.Show("Максимальное расстояние должно быть вдиапазоне от 1 до 5");return;}//Слово для поиска в верхнем регистреstring wordUpper = word.ToUpper();//Временные результаты поискаList<Tuple<string, int>> tempList = new List<Tuple<string,int>>();Stopwatch t = new Stopwatch();t.Start();foreach (string str in list){//Вычисление расстояния Дамерау-Левенштейнаint dist = EditDistance.Distance(str.ToUpper(), wordUpper);//Если расстояние меньше порогового, то слово добавляется врезультатif (dist <= maxDist){tempList.Add(new Tuple<string, int>(str, dist));26}}t.Stop();this.textBoxApproxTime.Text = t.Elapsed.ToString();this.listBoxResult.BeginUpdate();//Очистка спискаthis.listBoxResult.Items.Clear();//Вывод результатов поискаforeach (var x in tempList){string temp = x.Item1 + "(расстояние=" + x.Item2.ToString() +")";this.listBoxResult.Items.Add(temp);}this.listBoxResult.EndUpdate();}else{MessageBox.Show("Необходимо выбрать файл и ввести слово дляпоиска");}}private void buttonExit_Click(object sender, EventArgs e){this.Close();//Application.Exit();}private void buttonSaveReport_Click(object sender, EventArgs e){//Имя файла отчетаstring TempReportFileName = "Report_" +DateTime.Now.ToString("dd_MM_yyyy_hhmmss");//Диалог сохранения файла отчетаSaveFileDialog fd = new SaveFileDialog();fd.FileName = TempReportFileName;fd.DefaultExt = ".html";fd.Filter = "HTML Reports|*.html";if (fd.ShowDialog() == DialogResult.OK){string ReportFileName = fd.FileName;//Формирование отчетаStringBuilder b = new StringBuilder();b.AppendLine("<html>");b.AppendLine("<head>");27b.AppendLine("<meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/>");b.AppendLine("<title>" + "Отчет: " + ReportFileName + "</title>");b.AppendLine("</head>");b.AppendLine("<body>");b.AppendLine("<h1>" + "Отчет: " + ReportFileName + "</h1>");b.AppendLine("<table border='1'>");b.AppendLine("<tr>");b.AppendLine("<td>Время чтения из файла</td>");b.AppendLine("<td>" + this.textBoxFileReadTime.Text + "</td>");b.AppendLine("</tr>");b.AppendLine("<tr>");b.AppendLine("<td>Количество уникальных слов в файле</td>");b.AppendLine("<td>" + this.textBoxFileReadCount.Text + "</td>");b.AppendLine("</tr>");b.AppendLine("<tr>");b.AppendLine("<td>Слово для поиска</td>");b.AppendLine("<td>" + this.textBoxFind.Text + "</td>");b.AppendLine("</tr>");b.AppendLine("<tr>");b.AppendLine("<td>Максимальное расстояние для нечеткогопоиска</td>");b.AppendLine("<td>" + this.textBoxMaxDist.Text + "</td>");b.AppendLine("</tr>");b.AppendLine("<tr>");b.AppendLine("<td>Время четкого поиска</td>");b.AppendLine("<td>" + this.textBoxExactTime.Text + "</td>");b.AppendLine("</tr>");b.AppendLine("<tr>");b.AppendLine("<td>Время нечеткого поиска</td>");b.AppendLine("<td>" + this.textBoxApproxTime.Text + "</td>");b.AppendLine("</tr>");b.AppendLine("<tr valign='top'>");b.AppendLine("<td>Результаты поиска</td>");b.AppendLine("<td>");b.AppendLine("<ul>");foreach (var x in this.listBoxResult.Items){b.AppendLine("<li>" + x.ToString() + "</li>");}b.AppendLine("</ul>");b.AppendLine("</td>");b.AppendLine("</tr>");28b.AppendLine("</table>");b.AppendLine("</body>");b.AppendLine("</html>");//Сохранение файлаFile.AppendAllText(ReportFileName, b.ToString());MessageBox.Show("Отчет сформирован.

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