Для студентов МГТУ им. Н.Э.Баумана по предмету Базовые компоненты интернет-технологийЛабы по БКИТ 1-6 с комментамиЛабы по БКИТ 1-6 с комментами
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. Вызовите один из методов класса с использованием рефлексии.
Характеристики лабораторной работы
Учебное заведение
Семестр
Просмотров
59
Покупок
0
Качество
Идеальное компьютерное
Размер
926,57 Kb
Список файлов
- C#
- 1
- .vs
- 1
- DesignTimeBuild
- .dtbcache.v2 59,06 Kb
- v16
- .suo 35 Kb
- 1
- 1.sln 1,08 Kb
- 1.csproj 217 b
- ClassDiagram1.cd 60 b
- ClassDiagram2.cd 60 b
- Program.cs 3,65 Kb
- Properties
- launchSettings.json 108 b
- bin
- Debug
- netcoreapp3.1
- 1.deps.json 395 b
- 1.dll 6 Kb
- 1.exe 170,5 Kb
- 1.pdb 1,22 Kb
- 1.runtimeconfig.dev.json 174 b
- 1.runtimeconfig.json 154 b
- obj
- 1.csproj.nuget.dgspec.json 1,87 Kb
- 1.csproj.nuget.g.props 1,09 Kb
- 1.csproj.nuget.g.targets 294 b
- Debug
- netcoreapp3.1
- .NETCoreApp,Version=v3.1.AssemblyAttributes.cs 190 b
- 1.AssemblyInfo.cs 1,1 Kb
- 1.AssemblyInfoInputs.cache 42 b
- 1.assets.cache 140 b
- 1.csproj.CoreCompileInputs.cache 42 b
- 1.csproj.FileListAbsolute.txt 1,13 Kb
- 1.csprojAssemblyReference.cache 424 b
- 1.dll 6 Kb
- 1.exe 170,5 Kb
- 1.genruntimeconfig.cache 42 b
- 1.pdb 1,22 Kb
- project.assets.json 1,83 Kb
- project.nuget.cache 282 b
- 2
- .vs
- 2
- DesignTimeBuild
- .dtbcache.v2 59,06 Kb
- v16