Новые технологии в программировании. ЛР1, ЛР2. Вариант 5. Система скидок с различными реализациями расчета скидок: процентная, по сертификату

Лабораторная работа
в среде программирования Visual С# .NET 2019



Если Вы считаете, что данная страница каким-либо образом нарушает Ваши авторские права, то Вам следует обратиться в администрацию нашего сайта по адресу info@kursovik.com либо через форму обратной связи

Среда программирования: Visual С# .NET 2019

Название работы: Новые технологии в программировании. ЛР1, ЛР2. Вариант 5. Система скидок с различными реализациями расчета скидок: процентная, по сертификату

Вид работы: Лабораторная работа

Описание: Новые технологии в программировании. ЛР1, ЛР2.

Лабораторная работа № 1. Бизнес-логика
Целью данной работы является реализация простого проекта в IDE
Visual Studio 2013 на языке C#.

Вариант 5. Система скидок с различными реализациями расчета скидок: процентная, по сертификату.

Задание на лабораторную работу
1. Создайте проект на языке C# в среде Microsoft Visual Studio. Назовите его в соответствии с вашим вариантом задания, в качестве исходного
проекта выберите проект динамической библиотеки (*.dll). Назовите его
либо согласно вашему варианту, либо просто Model. Данный проект будет
содержать в себе бизнес-логику приложения, т. е. ключевые структуры
данных и способы их взаимодействия.
2. Создайте сущность-интерфейс согласно вашему варианту. Опишите ключевые свойства и методы интерфейса. Не забудьте о правильном
именовании типов данных согласно RSDN. Подумайте, какие свойства и
методы будут являться общими (будут в интерфейсе), а какие должны
быть реализованы в конкретных классах.
3. Создайте 2 или более класса, реализующих данный интерфейс.
Классы обязательно должны иметь различные реализации методов интерфейса. При этом дочерние классы не должны иметь никаких ссылок друг на
друга, так же как и интерфейс не должен ничего знать о дочерних классах.
4. Реализуйте проверку правильности передаваемых свойствам данных (валидацию свойств) с помощью механизма обработки исключений —
если на вход приходят некорректные данные, выходящие за допустимые
16
пределы, свойство должно сгенерировать исключение соответствующего
типа с описанием ошибки. Например, если свойству Возраст пытаются
присвоить отрицательное значение, необходимо сгенерировать экземпляр
исключения IncorrectArgumentException. Внимательно продумайте все возможные некорректные варианты входных данных, в том числе ссылки на
null. В случае если механизмы валидации у всех свойств одинаковы, измените архитектуру: вместо реализации интерфейса используйте наследование от абстрактного класса, в котором будут реализованы механизмы валидации.
5. Добавьте в решение еще один проект, на этот раз консольное приложение, и назовите его «ConsoleLoader». В этом проекте будет проводиться первичное тестирование бизнес-логики приложения.
ПРИМЕЧАНИЕ: данный проект является временным и впоследствии
будет заменён на проект графического интерфейса Windows (WinForms
Application). Однако если вы уже можете продемонстрировать работу бизнес-логики на оконном пользовательском интерфейсе, можете сразу создать необходимый проект.
6. Продемонстрируйте корректную работу бизнес-логики. Создайте
переменную-ссылку на интерфейс и присваивайте в нее экземпляры реализуемых классов. Продемонстрируйте разную реализацию интерфейсных
свойств и методов. Для этого необходимо реализовать ввод с клавиатуры
значений, которыми будут инициализированы поля классов-наследников.

Лабораторная работа № 2. Пользовательский
интерфейс Целью данной работы является знакомство с разработкой оконных
приложений в среде Microsoft Visual Studio.

Вариант 5. Система скидок с различными реализациями расчета скидок: процентная, по сертификату.

Задание на лабораторную работу
1. Создайте в решении новый проект WinForms (WinForms
Application Project) и задайте ему соответствующее имя. Если проект бизнес-логики назван как Model, для проекта пользовательского интерфейса
логично дать название View. Данный подход в проектировании архитектуры приложения называется Model-View: когда бизнес-логика и пользовательский интерфейс разделены на разные сборки. В дальнейшем такой
подход облегчает ориентирование в рамках проекта. Обратите внимание,
что теперь данный проект должен быть стартовым, для этого установите
его запускаемым проектом по умолчанию.
ПРИМЕЧАНИЕ: ранее созданный проект ConsoleLoader теперь можно удалить. Удаление проекта из решения не приводит к его физическому
удалению с носителя, в отличие от классов проекта. Помните об этом при
удалении каких-либо компонентов проекта.
2. Добавьте в проект View новую форму. Название формы должно
отражать назначение формы и оканчиваться словом Form. Как и имена
других классов, имя формы оформляется в стиле Pascal.
3. Добавьте на форму элемент GridControl из панели инструментов.
Для повышения удобства пользовательского интерфейса лучше сначала
разместить на форме элемент GroupBox, в который поместить GridControl.
Это позволит поместить в заголовок GroupBox фразу, поясняющую назначение GridControl. Под GridControl разместите две кнопки Button. Назовите
кнопки Add Object и Remove Object, где вместо Object подставьте название
того объекта, который реализован в вашей бизнес-логике.
4. Создайте внутри формы поле, хранящее список (List) сущностей,
соответствующих вашему варианту. Список должен иметь возможность
хранения в себе всех дочерних классов вашей сущности (все виды геометрических фигур, все типы работников, все виды скидок и т. д.).
5. Необходимо реализовать следующую логику формы: GridControl
должен отображать (без возможности редактирования) все объекты созданного списка. Кнопка Add Object должна добавлять новый объект в
GridControl и в список объектов. Кнопка Remove Object должна удалять
выбранный в GridControl объект и удалять его из списка объектов.
6. Для добавления новых объектов в программу нужно разработать
специальную форму, которая вызывалась бы по нажатию клавиши Add
Object. В форме должна присутствовать возможность заполнения полей,
общих для всех дочерних классов, выбор в виде ComboBox или
RadioButton типа объекта и, в зависимости от типа объекта, должна появляться возможность заполнения полей данного типа объекта. Например,
если создается новый работник, то в форме обязательно есть поля ФИО и
даты принятия на работу, но в зависимости от RadioButton с типом оплаты
должны появляться поля либо почасовой оплаты, либо оплаты по ставке.
7. На форме создания нового объекта должны присутствовать кнопки
Ok и Cancel. Если пользователь нажмет кнопку Ok — в главной форме должен быть добавлен созданный объект. Если пользователь нажмет Cancel —
должна быть выполнена отмена добавления.
8. Форма создания нового объекта должна учитывать ограничения на
значения полей объекта (например, неотрицательный размер стороны геометрической фигуры). Фактически, здесь должна производиться обработка
исключений при попытке ввода неправильных значений.
9. Особое внимание обратите на визуальную аккуратность создаваемых вами пользовательских интерфейсов. Старайтесь выравнивать элементы по левому краю относительно друг друга, делать одинаковые отступы между элементами, правильно подписывать элементы, кнопки и заголовки. Грамотно рассчитывайте размеры элементов — если в TextBox
должно вводиться целое число со значением до 100, не имеет смысла делать его длиннее 50 пикселей. Также поля для фамилии должны быть подходящего размера, чтобы корректно отображать обычную фамилию, — не
слишком длинные, но и не слишком короткие. Аккуратность и удобство
пользовательского интерфейса может стать решающим фактором в выборе
именно вашей программы конечным пользователем.
10. При тестировании и отладке программы не очень удобно вручную
добавлять новые объекты — необходимость каждый раз вводить данные для
10 объектов может сильно пошатнуть психическое состояние разработчика
(или вашего преподавателя). Чтобы облегчить тестирование программы, а
значит, и собственную разработку, добавьте на форму создания нового объекта кнопку Create Random Data. По нажатию данной кнопки все поля будут
заполняться случайными правильными данными для объекта. Пользователю
останется только нажать кнопку Ok для добавления нового объекта на главную форму.
11. Кнопка Create Random Data является отладочной, и в версии, которая будет поставляться конечному пользователю, этой кнопки быть не должно — не будет же бухгалтерия создавать «случайных» работников со «случайными» зарплатами! Удалять же и заново создавать эту кнопку при необходимости нового установщика опять же не очень удобно — вы можете просто забыть это сделать. Используйте механизм условной компиляции.
12. Добавьте форму, на которой можно будет провести поиск объекта по каждому из полей общих для всех дочерних классов. Помните, что
результатом поиска может быть не один объект. Добавьте на главную
форму кнопку для вызова формы поиска.
13. Добавьте возможность сохранения и загрузки введенных пользователем данных, используя любой механизм сериализации, на ваше усмотрение. Сохранять данные необходимо в файл с расширением, которое будет характерно только для вашей программы (не надо использовать известные форматы, например *.doc, *.txt или *.xml).

Год: 2024

Данный заказ (лабораторная работа) выполнялся нашим сайтом в 2024-м году, в рамках этого заказа была разработана программа в среде программирования Visual С# .NET 2019. Если у Вас похожее задание на программу, которую нужно написать на Visual С# .NET 2019, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2024-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".

Купить эту работу

Тел.: +79374242235
Viber: +79374242235
Telegram: kursovikcom
ВКонтакте: kursovikcom
WhatsApp +79374242235
E-mail: info@kursovik.com
Skype: kursovik.com