Для студентов МГТУ им. Н.Э.Баумана по предмету Базовые компоненты интернет-технологийЛабы по БКИТ 1-6 с комментамиЛабы по БКИТ 1-6 с комментами
5,0051
2020-12-282020-12-28СтудИзба
Лабораторная работа: Лабы по БКИТ 1-6 с комментами
Описание
Лабораторная работа №1
Разработать программу для решения биквадратного уравнения
- 1. Программа должна быть разработана в виде консольного приложения на языке C#.
- 2. Программа осуществляет ввод с клавиатуры коэффициентов А, В, С, вычисляет дискриминант и корни уравнения (в зависимости от дискриминанта).
- 3. Если коэффициент А, В, С введен некорректно, то необходимо проигнорировать некорректное значение и ввести коэффициент повторно.
- 4. Первой строкой программа выводит ФИО разработчика и номер группы.
- 5. Корни уравнения выводятся зеленым цветом. Если корней нет, то сообщение выводится красным цветом.
- 6. ДОПОЛНИТЕЛЬНОЕ ТРЕБОВАНИЕ. Коэффициенты А, В, С задаются в виде параметров командной строки. Если они не указаны, то вводятся с клавиатуры в соответствии с пунктом 2. Проверка из пункта 3 в этом случае производится для параметров командной строки без повторного ввода с клавиатуры.
Лабораторная работа №2
Разработать программу, реализующую работу с классами.
- 1. Программа должна быть разработана в виде консольного приложения на языке C#.
- 2. Абстрактный класс «Геометрическая фигура» содержит виртуальный метод для вычисления площади фигуры.
- 3. Класс «Прямоугольник» наследуется от «Геометрическая фигура». Ширина и высота объявляются как свойства (property). Класс должен содержать конструктор по параметрам «ширина» и «высота».
- 4. Класс «Квадрат» наследуется от «Прямоугольник». Класс должен содержать конструктор по длине стороны.
- 5. Класс «Круг» наследуется от «Геометрическая фигура». Радиус объявляется как свойство (property). Класс должен содержать конструктор по параметру «радиус».
- 6. Для классов «Прямоугольник», «Квадрат», «Круг» переопределить виртуальный метод Object.ToString(), который возвращает в виде строки основные параметры фигуры и ее площадь.
- 7. Разработать интерфейс IPrint. Интерфейс содержит метод Print(), который не принимает параметров и возвращает void. Для классов «Прямоугольник», «Квадрат», «Круг» реализовать наследование от интерфейса IPrint. Переопределяемый метод Print() выводит на консоль информацию, возвращаемую переопределенным методом ToString().
Лабораторная работа №3
Разработать программу, реализующую работу с коллекциями.
- 1. Программа должна быть разработана в виде консольного приложения на языке C#.
- 2. Создать объекты классов «Прямоугольник», «Квадрат», «Круг».
- 3. Для реализации возможности сортировки геометрических фигур для класса «Геометрическая фигура» добавить реализацию интерфейса IComparable. Сортировка производится по площади фигуры.
- 4. Создать коллекцию класса ArrayList. Сохранить объекты в коллекцию. Отсортировать коллекцию. Вывести в цикле содержимое коллекции.
- 5. Создать коллекцию класса List<Figure>. Сохранить объекты в коллекцию. Отсортировать коллекцию. Вывести в цикле содержимое коллекции.
- 6. Модифицировать класс разреженной матрицы (проект SparseMatrix) для работы с тремя измерениями – x,y,z. Вывод элементов в методе ToString() осуществлять в том виде, который Вы считаете наиболее удобным. Разработать пример использования разреженной матрицы для геометрических фигур.
- 7. Реализовать класс «SimpleStack» на основе односвязного списка. Класс SimpleStack наследуется от класса SimpleList (проект SimpleListProject). Необходимо добавить в класс методы:
- public void Push(T element) – добавление в стек;
- public T Pop() – чтение с удалением из стека.
- 8. Пример работы класса SimpleStack реализовать на основе геометрических фигур.
Лабораторная работа №4
Разработать программу, реализующую работу с файлами.
- 1. Программа должна быть разработана в виде приложения Windows Forms на языке C#. По желанию вместо Windows Forms возможно использование WPF.
- 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. Добавить на форму поле ввода для поиска слова и кнопку поиска. При нажатии на кнопку поиска осуществлять поиск введенного слова в списке. Слово считается найденным, если оно входит в элемент списка как подстрока (метод Contains() класса string).
- 8. Добавить на форму список (ListBox). Найденные слова выводить в список с использованием метода «название_списка.Items.Add()». Вызовы метода «название_списка.Items.Add()» должны находится между вызовами методов «название_списка.BeginUpdate()» и «название_списка. EndUpdate()».
- 9. Вычислить время поиска с использованием класса Stopwatch. Вычисленное время вывести на форму в поле ввода (TextBox) или надпись (Label).
Лабораторная работа №5
Разработать программу, реализующую вычисление расстояния Левенштейна с использованием алгоритма Вагнера-Фишера.
- 1. Программа должна быть разработана в виде библиотеки классов на языке C#.
- 2. Использовать самый простой вариант алгоритма без оптимизации.
- 3. Дополнительно возможно реализовать вычисление расстояния Дамерау-Левенштейна (с учетом перестановок соседних символов).
- 4. Модифицировать предыдущую лабораторную работу, вместо поиска подстроки используется вычисление расстояния Левенштейна.
- 5. Предусмотреть отдельное поле ввода для максимального расстояния. Если расстояние Левенштейна между двумя строками больше максимального, то строки считаются несовпадающими и не выводятся в список результатов.
Лабораторная работа №6
Часть 1. Разработать программу, использующую делегаты.
(В качестве примера можно использовать проект «Delegates»).
- 1. Программа должна быть разработана в виде консольного приложения на языке C#.
- 2. Определите делегат, принимающий несколько параметров различных типов и возвращающий значение произвольного типа.
- 3. Напишите метод, соответствующий данному делегату.
- 4. Напишите метод, принимающий разработанный Вами делегат, в качестве одного из входным параметров. Осуществите вызов метода, передавая в качестве параметра-делегата:
- метод, разработанный в пункте 3;
- лямбда-выражение.
- 5. Повторите пункт 4, используя вместо разработанного Вами делегата, обобщенный делегат Func< > или Action< >, соответствующий сигнатуре разработанного Вами делегата.
Часть 2. Разработать программу, реализующую работу с рефлексией.
(В качестве примера можно использовать проект «Reflection»).
- 1. Программа должна быть разработана в виде консольного приложения на языке C#.
- 2. Создайте класс, содержащий конструкторы, свойства, методы.
- 3. С использованием рефлексии выведите информацию о конструкторах, свойствах, методах.
- 4. Создайте класс атрибута (унаследован от класса System.Attribute).
- 5. Назначьте атрибут некоторым свойствам классам. Выведите только те свойства, которым назначен атрибут.
- 6. Вызовите один из методов класса с использованием рефлексии.
Характеристики лабораторной работы
Учебное заведение
Семестр
Просмотров
60
Качество
Идеальное компьютерное
Размер
926,57 Kb
Список файлов
C#
1
1
DesignTimeBuild
.dtbcache.v2
v16
.suo
1
Properties
launchSettings.json
bin
Debug
netcoreapp3
1.deps.json
1.dll
1.exe
1.pdb
1.runtimeconfig.dev.json
1.runtimeconfig.json
obj
Debug
netcoreapp3
.NETCoreApp,Version=v3.1.AssemblyAttributes.cs
1.AssemblyInfo.cs
1.AssemblyInfoInputs.cache
1.assets.cache
1.csproj.CoreCompileInputs.cache
1.csproj.FileListAbsolute.txt
1.csprojAssemblyReference.cache
1.dll