Лабораторная работа №1
Первая лабораторная работа является основой всех лабораторных работ в данном семестре. Каждый вариант представляет собой задание для программной реализации на Qt, которое в итоге выполняется в рамках последней лабораторной. Вам необходимо разделиться на подгруппы по 2 человека и выбрать 1 вариант задачи (из предложенных ниже) таким образом, чтобы они не повторялись в Вашей группе. Сообщить вариант преподавателю. Затем выполнить следующее задание в форме письменного отчета. Выполнение работ должно соответствовать лекционному материалу.
Провести этапы проблемно-центрированного дизайна для разработки приложения, помогающего пользователю в решении выбранной Вами задачи:
1) Найти двух человек, которые могут быть заинтересованы в решении предложенной задачи и, возможно, использовали бы Ваше приложение. Дайте их краткое описание (возраст, образование, профессия, навыки в выбранной сфере, навыки владения компьютером).
2) Перечислить все задачи и подзадачи, решение которых будет поддерживать разрабатываемая программа, включая основной и дополнительный функционал.
3) Найдите в интернете подобные приложения (или их авторские описания), приведите ссылку на источник, описание программы. Выберите и напишите, что именно Вы будете заимствовать из данных приложений.
4) Опишите черновой вариант дизайна словами и графически (иллюстрации с пояснениями). Черновой вариант должен отражать все внешние элементы интерфейса и их назначение, для каждого окна приложения, в том числе и окна сообщений (об ошибках, подсказках и т. д.).
5) Описать возможный состав команды разработчиков, аргументируя свой выбор.
6) Сформулировать основные требования практичности (не менее трех). Например, требования могут звучать так: 1) «Расширить функционал программы-аналога (указать аналог, упомянутый в пункте 3), путем добавления …. (указать).» 2) «Улучшить быстродействие функции поиска материала на 10% по сравнению с аналогом (указать аналог)». 3) «Добавить уникальную возможность…. (придумать)». Другими словами, если вы сами положительно ответите на вопрос «стал бы я пользоваться такой программой? », то требования практичности сформулированы верно.
Варианты заданий:
1) Люди, которые редко готовят пищу, обычно не знают рецептов и не имеют под рукой необходимых ингредиентов. Тем не менее, иногда возникает необходимость что-то приготовить, и это превращается в большую проблему. Необходимо разработать программу, которая помогает пользователю решать эту проблему. Основной (минимальный) функционал: ü База пошаговых рецептов в картинках (не менее 20), ü Разделение на категории по типам блюд (не менее трех), ü Поиск рецептов по названию, ü Поиск рецептов по ингредиенту, ü Выбор оптимального рецепта, исходя из тех ингредиентов, которые имеются в данный момент у пользователя. ü Выбор рецептов по времени приготовления. ü Добавление в избранное, удаление, сохранение. ü Сохранение в файл и печать любого рецепта. |
2) Некоторые люди, не будучи профессионалами в этой сфере, вынуждены из экономии средств производить строительство дачного домика своими силами (включая фундамент, стены, крышу, отделку). Необходимо разработать программу, которая помогает пользователю решать эту проблему. Основной (минимальный) функционал: ü Выбор планировки домика из готовых вариантов (не менее 5), ü Пошаговое руководство по строительству (основные этапы, не менее 10), ü Предложение материалов для строительства по каждому этапу, возможность выбора материалов различных по стоимости и качеству (выбор не менее 2 по каждому материалу). ü Расчет количества и примерной стоимости всех расходных материалов. ü Сохранение в файл и вывод на печать полного руководства по строительству, включая план и материалы в удобочитаемой форме. |
3) Некоторые люди, не будучи профессионалами в соответствующей сфере, вынуждены из экономии средств делать ремонт жилого помещения своими силами (включая потолок, стены, пол, окна, двери). Необходимо разработать программу, которая помогает пользователю решать эту проблему. Основной (минимальный) функционал: ü Ввод пользователем размера помещения, в котором будет производиться ремонт, ü Предложение готовых вариантов отделки (пол+потолок+стены+окна+двери) с иллюстрациями (не менее 7 вариантов), с указанием всех затрат для помещения заданного размера и типа используемых материалов, ü Создание своего варианта отделки заданного помещения «с нуля», с выбором по каждому материалу не менее 5 типов, и для каждого типа не менее 3 видов. ü Пошаговый ремонт для выбранного варианта отделки, ü Сохранение и печать окончательного варианта отделки заданного помещения, с указанием материалов, стоимости, соответствующими иллюстрациями. |
4) Человек, который стремится, помимо работы, уделять внимание домашнему хозяйству, иногда не может правильно спланировать некоторые дела из-за отсутствия времени и, когда возникает свободный для уборки день, он просто не знает с чего начать. Разработать программу, которая поможет справиться с этой проблемой. Основной (минимальный) функционал: ü Выбор пользователем вида помещения для текущей уборки. Выбор из 5 вариантов. ü Выбор пользователем наполнения заданного помещения для уборки. Наличие как минимум 7 позиций. ü План уборки выбранного помещения с заданным наполнением, с расчетом временных затрат, советами в картинках. ü Вывод оптимального плана уборки для заданного пользователем времени. ü Сохранение и печать окончательного плана уборки. |
5) Для человека, который не часто путешествует, сбор вещей в дорогу оказывается сложной проблемой, отнимающей много времени и нервов. Во-первых, нужно решить, что с собой брать, затем собрать необходимые вещи и, наконец, правильно их упаковать. В результате всё равно что-то остаётся забытым. Необходимо разработать программу, облегчающую решение пользователем указанных проблем. Предлагается следующий тип поездки: деловая командировка. Основной (минимальный) функционал: ü Заполнение анкеты вида: Имя (для обращения и сохранения файлов), пол, количество дней, погодные условия, вид транспорта, дата и время вылета/выезда. ü Формирование списка вещей в дорогу, разделенного на категории в виде иерархического списка с возможностью редактирования, добавления, удаления и отметками положил/не положил/необходимо купить. ü Выдача минимального готового списка вещей с учетом анкетных данных. ü Наличие вкладки «Важное» с информацией о документах, рабочих целях, билетах, времени, контактах, с возможностью редактирования. ü Сохранение и печать списка и вкладки «важное» на любом этапе. |
6) В наше время частный бизнес в форме содержания заведений общественного питания пользуется большой популярностью. У каждого владельца такого заведения возникает необходимость автоматизировать некоторые действия. Необходимо разработать программу, которая позволит вести учет работы официантов в заведении ресторанного типа. Основной (минимальный) функционал: ü Заполнение карточки заведения: название, владелец, время работы, количество мест, количество официантов, имена официантов. ü Наглядная схема заведения с указанием всех мест для посетителей, текущей датой и временем, данными карточки. ü Бронирование мест, указание занятых/ожидающих/свободных мест в цветовом обозначении. ü Формирование заказов с указанием счета и обслуживающего официанта. ü Сохранение и печать истории всего рабочего дня, в конце которого указана выручка и количество посетителей. |
7) Многие молодые пары желают спланировать свою свадьбу самостоятельно, учесть все особенности торжества и ничего не забыть. При этом они порой не знают даже с чего начать. Разработать приложение, которое поможет жениху и невесте спланировать свою свадьбу. Основной (минимальный) функционал: ü Предложить несколько готовых планов свадьбы (минимум три), с указанием всех мероприятий и расходов. ü План свадьбы должен иметь вид страничного документа. На каждой странице/вкладке в принятом порядке подробно в картинках отображается текущий этап планирования и проведения свадьбы. ü Создание индивидуального плана свадьбы, с возможностью редактирования информации на каждой странице плана. ü Привязка плана к заданному бюджету свадьбы. ü Печать любой страницы плана. |
8) У большинства занятых разными видами деятельности людей возникает необходимость в использовании еженедельника. Причем довольно часто электронный вариант оказывается более предпочтительным. Но из возможных вариантов не всегда есть тот самый, удобный. Разработать удобный еженедельник. Основной (минимальный) функционал: ü Формирование недели: выбор цветовой гаммы, указание рабочих и выходных дней, дата понедельника. ü Пользователь может заполнять таблицу каждого дня недели: время, запись. Может выделять жирным и цветным шрифтом свои записи. ü Пользователь может просматривать всю неделю на одном экране, а также выбирать для просмотра любой день в развернутом виде, доступном для редактирования. ü Установка таймера – напоминания. ü Сохранение и печать недели и любого дня в отдельности. |
9) Люди, которые имеют нестандартную фигуру, порой не могут подобрать себе одежду по вкусу. И тогда возникает желание сшить ее самостоятельно или заказать в ателье. Разработать программу, которая позволит любому неопытному человеку сшить себе одежду по фигуре. Основной (минимальный) функционал: ü Заполнение данных: пол, рост, вес, основные параметры фигуры в сантиметрах. ü Подсчет индекса массы тела, определение типа фигуры (минимум 5 типов), характеристика. ü База вариантов гардероба для каждого типа фигуры (не менее 3 вещей для каждого типа). ü Для каждой выбранной вещи должна быть инструкция по составлению выкройки в картинках, расчет количества ткани, которую необходимо приобрести данному пользователю со своими параметрами. ü Сохранение и печать всех введенных данных по конкретному человеку, характеристику фигуры и выбранные вещи с инструкцией. |
10) Часто молодые люди задаются целью вести свою семейную бухгалтерию, чтобы учитывать все свои расходы и доходы и как-то спланировать свой бюджет. Разработать систему ведения домашней бухгалтерии. Основной (минимальный) функционал: ü Внесение начальных данных в базу: имя, наличная сумма в рублях, сумма в «копилке». ü Внесение доходов (сумма, источник) на каждый день по календарю с динамическим изменением наличных средств и учетом по месяцам. ü Внесение расходов по категориям (не менее 10 категорий) на каждый день, автоматическое заполнение для повторяющихся расходов с возможностью редактирования. Показ остатка наличных и учет по месяцам. ü Функция внесения средств в «копилку». ü Сохранение всех введенных данных в файл и загрузка при каждом запуске. |
11) Люди, которые занимаются продажей собственных изделий, обычно сталкиваются с проблемой распределения заказов, установкой сроков выполнения, учета затрат на изготовление. Разработать приложение, помогающее в ведении домашнего малого бизнеса. Основной (минимальный) функционал: ü Установка начальных данных: название бизнеса (их может быть несколько, данные записываются в отдельный файл), создание категорий сложности и соответствующих сроков выполнения в днях (минимум 3 категории), создание списка материалов и соответствующих цен за единицу для учета затрат. ü Внесение заказов по календарю: пользователь создает заказ, который отмечается на календаре в виде «занятых» дней в зависимости от указанной категории сложности. На календаре должна отображаться краткая информация по заказу. ü Анкета заказа должна открываться в отдельном окне и содержать: название заказа, цену, категорию сложности, выбор необходимых материалов с указанием их количества, вывод суммы расхода и чистой прибыли, загрузку фотографий по заказу. ü Заказы можно удалять, сохранять в файл и печатать. |
12) Вы можете предложить свой вариант задания, предоставив его преподавателю в письменном виде. |
Лабораторная работа №2
Вторая лабораторная работа содержит две части: первая часть выполняется подгруппой, вторая часть индивидуальная для каждого студента. Отчет должен содержать обе части в скрепленном виде.
1) Провести CWT анализ интерфейса, разработанного в первой лабораторной, на примере двух задач. Отчет должен содержать формулировку задачи, анализ и результат, в соответствии с лекционным материалом.
2) Выбрать одну любую «плохую» программу с интерфейсом, которую Вы разрабатывали когда-то в процессе обучения. Задание выполняется каждым студентов в отдельности. Провести CWT анализ интерфейса на примере одной задачи, состоящей как минимум из 5 действий. Отчет должен содержать описание программы со скриншотами, формулировку задачи, анализ и результат.
Лабораторная работа №3
Третья лабораторная работа содержит три части: первые две части выполняются подгруппой, третья часть индивидуальная для каждого студента. Отчет должен содержать три части в скрепленном виде. Прежде Вы должны обязательно иметь «+» в журнале по первым двум лабораторным.
1) Разработать макет интерфейса, взяв за основу улучшенный черновой вариант интерфейса после CWT анализа. Макет должен быть приведен в виде скриншотов реального интерфейса Вашей программы.
2) Провести GOMS анализ Вашего интерфейса на примере двух задач (рассмотреть две «цели», содержащие не менее трех подцелей). Отчет по данной части должен содержать:
а) формулировку конкретной цели, подцелей, методов, операций,
б) расчет времени в секундах,
в) поиск проблем (лишние действия, нуждающиеся в оптимизации и т. д.), минимум 1.
г) исправление (доработка) проблемной части интерфейса,
д) конечный улучшенный результат в секундах и скриншот доработанной вследствие анализа части макета.
3) Взять «плохую» программу с интерфейсом, которую Вы использовали уже во второй лабораторной. Задание выполняется каждым студентов в отдельности. Провести GOMS анализ интерфейса на примере одной задачи (цель должна содержать не менее трех подцелей). Отчет по данной части должен содержать: а) формулировку конкретной цели, подцелей, методов, б) расчет времени в секундах, в) перечислить найденные проблемы (минимум одну).
Лабораторная работа №4
Четвертая лабораторная работа содержит две части: первая часть выполняется подгруппой, вторая часть индивидуальная для каждого студента. Отчет должен содержать обе части в скрепленном виде.
1) Провести подробный анализ интерфейса на соответствие а)Правилам Нильсена-Молиха; б) правилам организации графического интерфейса. Анализ проводится по макету, полученному в предыдущей лабораторной. Найденные проблемы несоответствий (желательно их все-таки найти) нужно сформулировать и решить, привести изображение исправленного макета.
2) Выбрать одну любую «плохую» программу с интерфейсом, которую Вы разрабатывали когда-то в процессе обучения. Задание выполняется каждым студентов в отдельности. Провести подробный анализ интерфейса на соответствие а)Правилам Нильсена-Молиха; б) правилам организации графического интерфейса. Сформулировать найденные проблемы несоответствия, предложить пути решения в письменном виде.
Лабораторная работа №5
Данные задания рассчитаны на получение элементарных навыков работы с Qt. Необходимо выполнить 1 из предложенных вариантов. Номер варианта соответствует Вашему выбранному номеру из первой лабораторной. (Для удобства).
1. На форме разместить 2 объекта PushButton и 1 Label. По нажатию на первую кнопку в label должна появляться одна картинка, по нажатию на другую – вторая.
Для вставки картинки использовать:
QPixmap Имя_Объекта("название файла");
ui->Имя_метки->setPixmap(Имя_Объекта);
2. На форме разместить spinBox и progressBar. Использовать менеджер размещения. При изменении значения в spinBox должно меняться соответственно значение в progressBar.
3. На форме разместить textEdit, в свойствах снять галочку ReadOnly. Поместить на форму checkBox. При установке галочки выводить в textEdit фамилию и группу (с помощью метода append), а при снятии галочки очищать текстовое поле.
4. На форме разместить объект Label во весь размер формы. Разместить на нем объект Calendar и кнопку PushButton. В Label поместить рисунок с помощью:
QPixmap Имя_Объекта("название файла");
ui->Имя_метки->setPixmap(Имя_Объекта);
По нажатию на кнопку календарь должен закрываться.
5. На форме разместить groupBox с тремя переключателями radioButton, разместить TextEdit. При выборе каждого переключателя в TextEdit должен выводиться разный текст (с помощью метода append). Использовать менеджер размещения.
6. На форме разместить Label и checkBox. При выборе галочки в Label должна появляться картинка, при снятии галочки – текст. Для вставки картинки использовать:
QPixmap Имя_Объекта("название файла");
ui->Имя_метки->setPixmap(Имя_Объекта);
7. На форме разместить объект Calendar и Label. При выборе месяца «декабрь» в Label должна появляться соответствующая картинка.
Для вставки картинки использовать:
QPixmap Имя_Объекта("название файла");
ui->Имя_метки->setPixmap(Имя_Объекта);
8. На форме разместить объект textEdit и 2 кнопки PushButton. По нажатию на первую кнопку в поле textEdit должна производиться вставка текста из буфера, а при нажатии на вторую кнопку поле должно очищаться.
9. На форме разместить объекты comboBox и Label. Добавить в comboBox несколько элементов выбора. В Label помещать разные изображения в зависимости от выбора элемента в comboBox. Использовать менеджер размещения.
Для вставки картинки использовать:
QPixmap Имя_Объекта("название файла");
ui->Имя_метки->setPixmap(Имя_Объекта);
10. На форме разместить LCD Number и spinBox. При изменении значения в spinBox в LCD Number должно отображаться то же значение. Поместить на форму кнопку, которая будет обнулять значения счетчиков. Использовать менеджер размещения.
Лабораторная работа №6
Разработать приложение на QT в соответствии с наработанным макетом. Обязательно наличие в журнале «+» по ВСЕМ предыдущим лабораторным. Работу программы необходимо продемонстрировать преподавателю, а также подготовить руководство пользователя в печатном виде.
Руководство пользователя должно содержать:
1) минимальные системные требования;
2) инструкцию по установке программы с иллюстрациями;
3) руководство по использованию программы с иллюстрациями;
4) информацию об авторах (должна соответствовать предложенному составу команды разработчиков из первой лабораторной, с указанием ваших реальных ФИО и вымышленных ФИО и должностей остальных людей в команде).
Руководство по использованию программы (отдельно пункт 3) должно открываться из меню программы «Помощь».
После того, как программа и руководство одобрены преподавателем, необходимо передать в электронном виде готовое приложение для последующего тестирования (выслать на адрес Katerina. *****@***ru с указанием группы и фамилий в теме письма). Программа должна инсталлироваться с запросом пути установки. На рабочем столе, по запросу при установке, должен быть создан ярлык с индивидуальной «фирменной» иконкой и названием. Также должен открыться readme, который содержит пункты 1, 2, 4. Все окна программы должны иметь свое осмысленное название.
Рекомендуемая литература:
1. А. Человеко-машинное взаимодействие. Учебное пособие. Солон, 2008. 96 с.
2. С., М., А. Человеко-машинное взаимодействие: теория и практика. Учебное пособие. Феникс, 2006. 285 с.
3. Примеры программ на Qt, учебное пособие: http://doc. crossplatform. ru/qt/4.6.x/examples. html
Основные порталы (построено редакторами)
