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