Обращение к программе руководство программиста. Техническая документация. Назначение и условия применения

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Руководство программиста

  • 1. Назначение и условия применения
  • 2. Характеристика программы
  • 3. Обращение к программе
  • 4. Полный перечень модулей и компонентов
  • 5. Сообщение пользователю

1 . Назначение и условия применения

Данный программный продукт может быть использован непосредственно для осуществления деятельности в организации «Проф&Элит», которая занимается установкой пластиковых конструкций, в том числе окон. программный пластиковый оконо

Программный продукт «Проф&Элит» служит для сбора информации о клиентах, сотрудниках, данных замеров для изготовления и производства изделий. Обеспечивает централизованное хранение данных. Продукт обладает простым и понятным интерфейсом, поэтому у пользователя не будет проблем в его освоении.

Проектирование данного программного продукта поможет автоматизировать работу менеджера по работе с дилерами.

Требования к аппаратному обеспечению:

· процессор Intel Pentium IV и выше;

· оперативная память 512 Мб и выше;

· видеокарта AGP/PCI Express 64 Мб и выше;

· свободное пространство на диске 12 Мб;

· видеомонитор с разрешением 1024x768;

· клавиатура;

· мышь;

· принтер для вывода на печать отчетов;

· операционная система Windows 98/2000/XP/Vista/7/8;

· Microsoft Access, Borland Delphi 7.

2 . Характеристика программы

В тестовом режиме был произведен запрос к форме ввода/вывода и введены данные в главную таблицу, что позволило оценить наглядно загруженность центрального процессора (ЦП) и использование выделенной (виртуальной) памяти с помощью «Диспетчера задач», как изображено на рис.Б.1 и рис.Б.2.

Рис.Б.2- Выделенная память и время загрузки

3 . Обращение к программе

Запуск приложения возможен по щелчку на иконке самой программы, находящейся в специальном каталоге. После запуска приложения на экране отображается главное окно, с помощью которого можно управлять всеми функциями приложения, описанными в разделе 4 данного руководства пользователя.

Запустить данную программу можно непосредственно через оболочку Delphi. Для этого требуется открыть файл проекта Project1.dbr, находящемся в каталоге с программой. Далее, нажав F9, скомпилировать и запустить приложение.

Возможен запуск программы через командную строку. Запустить командную строку «Пуск/Все программы/Стандартные/Командная строка» Далее в командной строке необходимо ввести полный путь к программе, далее написать название программы (Project1.exe) и нажать Enter. Программа запущена.

Еще один способ запуска программы: в меню «Пуск» выберите пункт «Выполнить». В результате на экране откроется окно «Выполнение программы». В поле «Открыть» окна «Выполнение программы» введите путь к файлу программы, которую требуется запустить.

Выход из приложения возможен при нажатии на кнопку «Закрыть» или с помощью пункта меню программы «Файл/Выход», а также можно воспользоваться сочетанием клавиш Alt+F4.

4 . Полный перечень модулей и компонентов

Основная форма содержит перечень всех используемых в программе модулей и несколько исполняемых операторов, обеспечивающих создание нужных окон и связь программы с ОС Windows. Вся основная работа программы управляется кодом, содержащимся в модулях.

В состав данного программного продукта входят следующие модули:

Unit1.pas - главный модуль программы, где непосредственно происходит заполнение данных по заказам;

Unit2.pas - отправка заказа дилеру (дилерский терминал);

Unit3.pas - модуль программы, где происходит заполнение данных по замерам изделия (окна);

Unit4.pas - модуль программы, где происходит заполнение данных по установке изделия (окна);

Unit5.pas - поиск, фильтрация, сортировка по заказам;

Unit6.pas - модуль «О программе».

В главной форме имеются компоненты, изображенные на рис.Б.3. На рисунке также изображено «дерево» всех компонентов формы (рис. Б.4).

Рисунок Б.3 - Компоненты главной формы

Компоненты главной формы:

TADOConnection - используется для указания базы данных и работы транзакциями;

TADOTable - таблица доступная через ADO;

DataSource обеспечивает механизм для связи компонентов доступа к данным (Table) с визуальными компонентами, которые отображают данные (DBGrid, DBEdit, DBListBox и т. д.)

TADOQuery - выполняет запрос (выборку) к базе данных;

TMainMenu - создает главное меню программы;

TDBGrid - осуществляет отображение данных из базы данных в виде таблицы;

TEdit - поле для ввода текстовых сообщений;

TButton - кнопка;

TComboBox - выпадающий список;

TDBCtrlGrid - используется для отображения таблицы в виде «кирпичиков»;

TLabel - надписи;

TGroupBox - панель, как отельный элемент с другими компонентами;

TDBNavigator - компонент для управления навигацией и редактированием данных;

TDBEdit - поле редактирования записи базы данных;

TDateTimePicker - выбор даты;

TSpeedButton - быстрая кнопка;

TBitBtn - кнопка, передающая действие форме;

TBevel - предназначен в приложении для простого обведения чего-либо рамкой.

Компоненты главной формы необходимы для вывода таблиц из базы данных, для изменения, добавления, удаления, фильтрации, поиска, перехода к другим форм и для иных действий.

Рисунок Б.4 - Структура компонентов

5 . Сообщение пользователю

Если пользователь ввёл неверные значения для фильтрации данных базы данных, то выводится сообщение, показанное на рис.Б.5.

Рис.Б.5 - Сообщение об ошибке

Если произошла ошибка при удалении данных, то выводиться сообщение об ошибке, показанное на рис.Б.6.

программный пластиковый окно

Рис.Б.6 - Сообщение об ошибке.

Пользователь забыл ввести номер накладной при сохранении заказа, то выводиться сообщение об ошибке, показанное на рис.Б.7.

Рис.Б.7 - Сообщение о ошибке

При попытке удаления выводится сообщение, показанное на рис.Б.8.

Рис.Б.8 - Диалог с пользователем

Если пользователь ввёл уже номер существующей накладной при сохранении заказа, выводится сообщение, показанное на рис.Б.9.

Рис.Б.9 - Диалог с пользователем

Размещено на Allbest.ru

...

Подобные документы

    Создание классов, реализующих работу со списками и применение их к задаче построения графических моделей. Использование языка С++ для реализации списковой структуры. Назначение и условия применения программы. Руководство для программиста и оператора.

    курсовая работа , добавлен 19.03.2010

    Использование основных свойств объектно-ориентированного языка программирования C ++ при написании программы по реализации списка футболистов разных амплуа. Руководство пользователя и руководство программиста. Работа со списком, программный интерфейс.

    курсовая работа , добавлен 20.07.2014

    Описание входной и выходной информации. Требования к комплексу технических средств и к интерфейсу конечного пользователя. Разработка форм представления входных и выходных данных. Проектирование программных модулей. Руководство пользователя и программиста.

    курсовая работа , добавлен 27.06.2015

    Особенности алгоритмов, критерии качества. Создание и применение программного продукта на языке Delphi. Тип операционной системы. Внутренняя структура программного продукта. Руководство пользователя и программиста, расчет себестоимости и цены программы.

    дипломная работа , добавлен 12.06.2009

    Delphi как программный продукт с феноменальными характеристиками. Компилятор в машинный код. Объектно-ориентированная модель программных компонентов. Масштабируемые средства для построения баз данных. Программный код.

    контрольная работа , добавлен 30.07.2007

    Разработка структурной схемы и интерфейса программного комплекса управления сайтом. Выбор языка программирования. Принципы тестирования программы. Разработка руководства оператора и системного программиста. Расчет сметы затрат на программный продукт.

    дипломная работа , добавлен 11.06.2012

    Назначение и область применения промышленных роботов. Разработка программы "Кинематическое движение" в среде Delphi для определения основных параметров кинематического движения. Описание работы и листинг программы. Руководство программиста и оператора.

    курсовая работа , добавлен 17.11.2014

    Техническое задание. Планы работы: первоначальный, поэтапный. Технический проект. Таблицы базы данных программы. Схема обмена данными. Тестирование программного продукта. Эксплуатационная документация. Руководство программиста. Руководство пользователя.

    курсовая работа , добавлен 07.12.2007

    Создание программного продукта по теме "Назначение и основные свойства палитры компонентов "Standard"", тестирующего знания студентов, в среде языка программирования Delphi. Особенности методики осуществления контроля знаний и состав тестовых заданий.

    курсовая работа , добавлен 17.04.2011

    Разработка программы на языке Visual Basic. Спецификация на программный модуль. Ввод, изменение и удаление данных по определенным требованиям. Руководство системного программиста, программиста и оператора. Ведение базы данных в виде таблицы Excel.

УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ И КИБЕРНЕТИКИ

Прикладное программное обеспечение для учета заявок и контроля их исполнения на примере ООО «Интегрированная транспортная сеть».

      1. Руководство программиста

  1. Аннотация

Приводится руководство программиста программного обеспечения для учета заявок и контроля их исполнения на примере ООО «Интегрированная транспортная сеть».

Программный продукт должен быть разработан для организации, предназначенное для автоматизации стратегий взаимодействия с клиентами, в частности, для повышения уровня продаж, улучшения обслуживания клиентов путём сохранения информации о клиентах и их персональных данных. Так же должна быть реализована email-рассылка пользователям данного продукта, статистика, где показано какое количество заявок завел пользователь за день, за месяц.

В руководстве программиста рассматриваются назначение, характеристики, условия, необходимые для выполнения программы

  1. Назначение программы

Программный продукт будет использован в компании NetTrans (ООО «Интегрированная транспортная сеть») в отделах технической поддержки, абонентском и строительства как модель взаимодействия, полагающая, что центром всей философии бизнеса является клиент, а основными направлениями деятельности являются меры по поддержке продаж и обслуживания клиентов. Данным программным обеспечением могут воспользоваться лишь зарегистрированные пользователи, регистрация в свою очередь осуществляет лишь администратор, путем добавления нового пользователя в базу данных, так же имеется возможность вести статистику операторов, составляющие заявки абонентов.

  1. 2. Условия, необходимые для выполнения программы

Для работы программного продукта необходима следующая программно-аппаратная конфигурация:

    Windows 7,Windows Server 2003 Service Pack 2,Windows Server 2008,Windows Server 2008 R2,Windows Vista, Windows Vista Service Pack 1,Windows XP Service Pack 2,Windows XP Service Pack 3;

    32-разрядные системы: компьютер, оборудованный процессором Intel или совместимым процессором с тактовой частотой 1 ГГц или выше (рекомендуется 2 ГГц или выше, поддерживается только один процессор);

    64-разрядные системы: процессор с тактовой частотой 1,4 ГГц или выше (рекомендуется 2 ГГц или выше, поддерживается только один процессор);

    1 ГБ свободного места на диске;

    наличие СУБД: MS SQL 2008;

  1. 3. Характеристики программы

  2. 3.1. Режим работы программы

Диалоговый. Web-интерфейс в браузере (с поддержкой HTML5).

    3.2.Средства проверки правильности выполнения программы

Проверка правильности работы программы осуществляется при выполнении конкретных примеров. Программа выдает сообщение при вводе некорректных данных (Рис. 2.20):

Рис. 2.20. Некорректный ввод номера телефона

    3.3. Функционирование программы после сбоев

В случае аварийного прекращения работы программы, вызванного внешними причинами, программа при устранении причины сбоя загружается вновь работоспособной. Все не сохраненные перед сбоем данные будут потеряны.

      Обращение к программе

Для запуска программы необходимо выполнить следующие действия:

    Запустить программу на ПК, с поддержкой Microsoft .NET Framework (или на удаленном сервере), если он еще не запущен;

    Откройте ваш любимый браузер (на пример chrome, internet explorer, mozilla firefox);

    Введите в адресную строку IP-адрес сервера, с заранее определенным портом;

    Откроется страница домашняя страница;

    Начать работу с клиентами.

Руководство пользователя составляют на основании ГОСТ 19.504-79. Руководство программиста разрабатывают в трех случаях:

– программный продукт по своему основному назначению является средой разработки или библиотекой (как Delphi или Qt);

– комплекс или программный продукт служит платформой для разработки программ или систем определенного типа (как 1С или Axapta);

– программа распространяется вместе с исходным кодом или постоянно модифицируется самими разработчиками.

Очевидная задача руководства программиста - снабдить разработчика информацией, которой ему будет достаточно для создания на базе разработанного программного продукта собственных программ или систем.

Руководство программиста должно объяснять:

– С какими объектами программист имеет дело, где они находятся, сколько времени существуют и как они взаимодействуют между собой. Какие из них он создает сам, а какие предоставлены ему изначально средой, фреймворком, библиотекой.

– Какие еще средства разработки (кроме разработанного программного продукта) необходимы для того, чтобы создать приложение или систему. Например, если разработанный программный продукт - библиотека, программисту потребуются компилятор, какая-то среда разработки и прочий инструментарий.

– В какой среде функционирует приложение или система. Какими будут его минимальные требования к системе. Понадобятся ли для его запуска какие-либо дополнительные программные средства: фреймворки, рантаймы, интерпретаторы.

– Что представляет собой минимальное работоспособное приложение или минимальная работоспособная система. Какие объекты и в какой последовательности необходимо создать, как соединить их друг с другом, чтобы приложение осуществило какой-то свой минимальный вывод.

– Как (по шагам) скомпилировать работоспособное приложение или развернуть работоспособную систему.

Кроме того руководство программиста должно содержать полные описания всех предусмотренных в программном продукте объектов. Если это функции, то должны быть приведены их синопсисы, если классы, то описания их интерфейсов и т. Д.

Если программный продукт предполагает использование оригинального языка программирования и снабжен собственным компилятором или интерпретатором, в руководство программиста необходимо включить его описание.

В тексте руководства обязательно должны быть соблюдены следующие правила:

– При вводе нового понятия следует опираться только на те понятия, которые были введены ранее или заведомо знакомы читателю.

– Ввод каждого понятия должен быть чем-то обоснован.

Основное требование при описании отдельных объектов - полнота описания каждого из них.


При описании объектов особое внимание следует уделять следующим аспектам:

– Что обязательно должно предшествовать созданию и использованию объекта.

– Каковы побочные эффекты обращения к объекту.

– Особенности интерпретации объектом передаваемых ему данных.

– Где «физически» (в каком файле, в какой библиотеке) находится объект.

– Желательно по каждому объекту привести примеры использования, небольшие фрагменты кода, демонстрирующие создание объекта (если перед использованием его необходимо создать), передачу объекту входных данных, получение выходных данных и их интерпретацию.

Возможно выполнение руководства программиста гипертекстовым.

Структура руководства программиста:

1. Назначение и условия применения программы.

2. Характеристика программы.

3. Обращение к программе.

4. Входные и выходные данные.

5. Сообщения.

Руководство программиста может комплектоваться различными схемами, например, схемами базы данных, диаграммами классов, графами вызова

В качестве примера представлено содержание руководства программиста Система e-port дилер. Клиент-серверный протокол.

Система «e-port дилер» предназначена для приема и проведения моментальных платежей при оплате услуг мобильной связи, доступа в Интернет и т. П. Центральный сервер системы принадлежит группе e-port, а пункт приема платежей может открыть любой желающий, установив у себя на компьютере (подключенном к Интернету) программу-клиент. Обмен данными между центральным сервером и программой-клиентом осуществляется по специальному протоколу. Протокол открытый, что позволяет различным организациям: банкам, розничным сетям, сетям платежных терминалов, осуществлять платежи непосредственно из собственных систем. Протокол разработан Группой e-port, а техническая документация «Философтом»по ее заказу.

ВВЕДЕНИЕ

Система e-port дилер: клиент-серверный протокол. Назначение и обзор возможностей

Задачи протокола

Основные преимущества использования протокола

1 Реализация протокола (шлюз)

1.1 Общие сведения

1.2 Структура приложения

2. Как работает шлюз

2.1 Регистрация и отчетность

2.1.1 Регистрация

2.1.2 Отчетность

2.2 Обмен данными с сервером

2.2.1 Структура пакета

2.2.2 Справочники

2.2.3 Порядок обмена пакетами

2.3 Цикл обработки операции

2.3.2 Очередь

2.3.3 Анализ ответа сервера

2.3.4 Нестандартные ситуации

3 Спецификация протокола

3.1 Структурные элементы пакета

3.2 Заголовок запроса

3.3 Заголовок ответа

3.4 Пополнение счета

3.5 Покупка PIN-кода

3.6 Прерывание процесса обработки операции

3.7 Транзакционные свойства операции

3.9 Справочник

3.11 Статус операции

3.11.1 Примеры сообщений о статусе операций

3.11.2 Коды состояния находящихся в обработке или завершенных операций

3.11 Уведомления системы

4 ГЛОССАРИЙ

ПРИЛОЖЕНИЯ

Приложение 1. DTD XML-запроса и комментарий

Руководство программиста относится к эксплуатационно-технической документации и требуется в тех случаях, когда система тем или иным образом предоставляет возможность написания, редактирования или использования программного кода.

Примерами могут служить:

– библиотека функций;

– платформа или среда для разработки ПО;

– ПО с открытым кодом.

Документ должен предоставлять всю необходимую информацию для того, чтобы разработчик мог воспользоваться возможностями системы. Для решения этой задачи содержание документа может включать в себя:

– назначение, структуру входных и выходных данных программных функций;

– возможности по созданию программного кода, особенности его интерпретации и компиляции;

– синтаксические особенности используемого языка программирования;

– возможные правила и ограничения при работе с программным кодом;

– различные инструкции по работе с программой.

Список возможных тем этим не ограничивается, все зависит от особенностей конкретной системы. Надо сказать, что руководство программиста бывает очень полезно и для разработчиков системы, являясь справочником по текущей реализации логики работы ПО.

Состав типового руководства программиста

В соответствии с требованиями ГОСТ руководство программиста должно содержать следующие разделы:

Назначение и условия применения программы , где указывают область применения ПО и технические требования, необходимые для его работы.

Характеристика программы , где описывают режим работы программы, показатели скорости ее работы и другие важные для использования характеристики.

Обращение к программе , где указывают способы и параметры запуска программы;

Входные и выходные данные , где описывают формат, способ организации и другие требования к входным и выходным данным;

Сообщения , где приводят тексты сообщений, выдаваемых программой в различных ситуациях и действия, которые необходимо при этом предпринять.

Различные примеры, иллюстрации и таблицы целесообразно приводить в приложениях к документу.

Стандарты для руководства программиста

ГОСТы регламентируют и этот документ, в данном случае это ГОСТ 19.504. (Приложение 1) В соответствии с ним определяется структура и содержание Руководства программиста.

Для разработки приложения я использовал Microsoft Visual Studio. Для начала разработки нажимаем Файл --- Создать --- Создать проект --- Приложение WPF. Откроется пустая форма. На форме я разместил фон (картинку для фона я предварительно загрузил в ресурсы будущей программы), компоненты Label (свойство content Приветственное сообщение), TextBox (сюда будет вводиться имя тестируемого), кнопки Button для вызова справки и начала теста. Группирую все компоненты формы в Canvas. По нажатию на кнопку «Справка» - вызывается форма справки, на которой расположен TextBox со справкой по использованию программы и кнопка возврата к стартовой форме.

Hello.Visibility = Visibility.Hidden;//Скрыть элементы стартовой формы

Spravka.Visibility = Visibility.Visible;//Показать окно справки

Hello.Visibility = Visibility.Visible;//показать окно стартовой формы

Spravka.Visibility = Visibility.Hidden;//скрыть элементы формы справка

При нажатии на кнопку «Начать тест», при условии, что заполнено поле ввода имени, открывается окно тестирования, на котором расположен TextBox, куда выводятся вопросы, ListBox, куда выводятся варианты ответов, и кнопки «Следующий вопрос» и «Предыдущий вопрос». Если поле ввода имени не заполнено, то выдаётся сообщение, о том, что необходимые поля не заполнены.

subjectName = User.Text;

if (!string.IsNullOrEmpty(subjectName) && !string.IsNullOrEmpty(testFilePath)) // проверяем заполнено ли поле

xmlLoad(); //подгружаем файл с вопросами

MessageBox.Show("Не заполнены необходимые поля");//вывод сообщения об ошибке

countSteps = qstns.Count();

Otvet.Items.Clear();

По окончании тестирования откроется форма результатов тестирования, на которой расположен TextBox с результатом тестирования, и кнопки «Начать заново» и «Выход».

if (_step == countSteps)

Prev.Content = "Выход";

Vopros.Text = message;

loadStep(_step, beforeStep);

Полный код программы с комментариями находится в Приложении 2


ЗАКЛЮЧЕНИЕ

Во время прохождения практики я расширил свои навыки в среде разработки языка программирования C#.

Все цели практики были достигнуты:

¾ расширение, углубление и систематизация знаний, полученных в процессе теоретического обучения;

¾ закрепление практических навыков по разработке и модификации информационных систем;

¾ формирование профессиональных компетенций.

Выполнил все задачи практики, а именно:

¾ Ознакомился с условиями работы предприятии и со своим рабочим местом, а именно с правилами внутреннего распорядка, требованиями по безопасности, физиолого-гигиеническими основами трудового процесса и требованиями санитарии;

¾ изучил нормативные и методические материалы, фундаментальной и периодической литературы в соответствии с индивидуальным заданием;

¾ использовал информационно-коммуникационные технологии;

¾ выбрал средство разработки программных продуктов;

¾ выполнил индивидуального задания (разработал тестирующую программу);

¾ оформил отчет по практике.


СПИСОК ИСТОЧНИКОВ

1. Джон Скит. C# для профессионалов: тонкости программирования, 3-е издание, новый перевод = C# in Depth, 3rd ed.. - М.: «Вильямс», 2014. - 608 с.

2. Кристиан Нейгел и др. C# 5.0 и платформа.NET 4.5 для профессионалов = Professional C# 5.0 and .NET 4.5. - М.: «Диалектика», 2013. - 1440 с.

3. Джозеф Албахари, Бен Албахари. C# 6.0. Справочник. Полное описание языка = C# 5.0 in a Nutshell: The Definitive Reference. - М.: «Вильямс», 2015. - 1008 с.

4. https://habrahabr.ru/

5. http://www.cyberforum.ru/


ПРИЛОЖЕНИЯ

ПРИЛОЖЕНИЕ 1

Г О С У Д А Р С Т В Е Н Н Ы Й С Т А Н Д А Р Т С О Ю З А С С Р

Единая система программной документации ГОСТ 19.504-79* (СТ СЭВ 2095-80)
РУКОВОДСТВО ПРОГРАММИСТА. ТРЕБОВАНИЯ К СОДЕРЖАНИЮ И ОФОРМЛЕНИЮ
United system for program documentation. Programmer"s guide. Requirements to contents and form of presentation

Постановлением Государственного комитета стандартов Совета Министров СССР от 12 января 1979 г. ¹ 74 срок введения установлен

С 01.01. 1980 г.

Настоящий стандарт устанавливает требования к содержанию и оформлению программного документа «Руководство программиста», определённого ГОСТ 19.101-77.

Стандарт полностью соответствует СТ СЭВ 2095-80.

ОБЩИЕ ПОЛОЖЕНИЯ

1.1. Структуру и оформление документа устанавливают в соответствии с ГОСТ 19.105-78.

Составление информационной части (аннотации и содержания) является обязательным.

1.2. Руководство программиста должно содержать следующие разделы:

· назначение и условия применения программ;

· характеристика программы;

· обращение к программе;

· входные и выходные данные;

· сообщения.

В зависимости от особенностей документы допускается объединять отдельные разделы или вводить новые.

2.1. В разделе «Назначение и условия применения программ» должны быть указаны назначение и функции, выполняемые программой, условия, необходимые для выполнения программы (объем оперативной памяти, требования к составу и параметрам

периферийных устройств, требования к программного обеспечению и т.п.).

2.2. В разделе «Характеристика программы» должно быть приведено описание основных характеристик и особенностей программы (временные характеристики, режим работы, средства контроля правильности выполнения и самовосстанавливаемости программы и т.п.).

2.3. В разделе «Обращение к программе» должно быть приведено описание процедур вызова программы (способы передачи управления и параметров данных и др.).

2.4. В разделе «Входные и выходные данные» должно быть приведено описание организации используемой входной и выходной информации и, при необходимости, ее кодирования.

2.5. В разделе «Сообщения» должны быть указаны тексты сообщений, выдаваемых программисту или оператору в ходе выполнения программы, описание их содержания и действий, которые необходимо предпринять по этим сообщениям.

2.6. В приложении к руководству программиста могут быть приведены дополнительные материалы (примеры, иллюстрации, таблицы, графики и т.п.).

* Переиздание (Ноябрь 1987 г.) с Изменением № 1, утвержденным в сентябре 1981 г (ИУС 11-81)


ПРИЛОЖЕНИЕ 2

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Navigation;

using System.Windows.Shapes;

using System.Xml;

using System.Xml.Linq;

namespace Самотестер

///

/// Логика взаимодействия для MainWindow.xaml

///

public partial class MainWindow: Window

string subjectName = "";//Переменная имени тестируемого

private int _step;// Локальная переменная шага тестирования

int countSteps;// Количество вопросов в тесте (получается динамически из выбранного файла тестирования)

XDocument mainXml = new XDocument(); // Инициализируем объект XML документа, для считывания файла теста

List questionsList = new List();// Список вопросов, наполняется из файла тестирования

List answers = new List();// Список ответов

List score = new List();// Кол-во набранных очков

//string testFilePath = "";

int step // Глобальная переменная шага

return _step;// Получаем значение локальной переменной шаг

var beforeStep = _step; // Устанавливаем предыдущий шаг

Step = value;// Устанавливаем текущий шаг

if (_step == countSteps + 1)// Проверка, равен ли текущий шаг общему кол-ву шагов, действие по кнопке начать заново

score.Clear();// Очищаем набранные очки

Otvet.Visibility = Visibility.Visible;// Показываем ListBox в который мы отображаем ответы текущего вопроса

Step = 0;//Снова переходим на нулевой шаг

if (_step == 0)// Проверяем, нулевой ли это у нас шаг

Prev.Content = "Выход";// Назначаем кнопке "Предыдущий вопрос" значение "Выход"

else if (_step < 0)// Проверяем шаг меньше ли нуля

Close();//Закрываем программу

Prev.Content = "Назад";// Назначение кнопке "Предыдущий вопрос", значения Назад "Предыдущий вопрос"

if (_step > 0)// Если шаг больше нулевого

var _answers = answers[_step - 1].Elements().ToList();// Записываем все варианты ответов на текущий вопрос в переменную

var selectedIndex = Otvet.SelectedIndex;// Смотрим какой вариант ответа был выбран в прошлом шаге

var index = beforeStep;

var val = (selectedIndex != -1) ? (_answers.Attribute("true-answer") != null && _answers.Attribute("true-answer").Value == "true") ? 1: 0: 0;// Проверяем был ли ответ правильным

if (score.Contains(_step))// Смотрим отвечали ли мы на вопрос ранее

score[_step] = val;// Устанавливаем для предыдущего вопроса ответили мы правильно

score.Add(val);// Устанавливаем для предыдущего вопроса ответили мы правильно

/*Выводим если ответили на последний вопрос результаты тестирования*/

if (_step == countSteps)

Next.Content = "Начать заново";

Prev.Content = "Выход";

string sum = score.Sum().ToString();

string numeric = GetDeclension(int.Parse(sum), "правильный ответ", "правильных ответа", "правильных ответов");

string message = "Уважаемый(ая) " + subjectName + ". Благодарим Вас за прохождение теста. Ваш результат " + sum + " " + numeric + " из " + countSteps;

Vopros.Text = message;

Otvet.Visibility = Visibility.Hidden;

loadStep(_step, beforeStep);

string testFilePath = "Resources/testTest.xml";

public MainWindow()

InitializeComponent();

Test.Visibility = Visibility.Hidden;

void loadStep(int _locStep, int beforeStep)

foreach (var curEl in mainXml.Root.Element("questions").Elements())

Vopros.Text = questionsList[_locStep];

Otvet.Items.Clear();

var currentAnswers = answers[_locStep];

foreach (var answer in currentAnswers.Elements())

Otvet.Items.Add(answer.Value);

public static string GetDeclension(int number, string nominativ, string genetiv, string plural)

number = number % 100;

if (number >= 11 && number <= 19)

var i = number % 10;

return nominativ;

private void prevButton_Click(object sender, RoutedEventArgs e)

if (Prev.Content.ToString().Trim() == "Выход")

private void nextButton_Click(object sender, RoutedEventArgs e)

mainXml = XDocument.Load(testFilePath);

var qstns = mainXml.Root.Element("questions").Elements();

countSteps = qstns.Count();

foreach (var question in qstns)

questionsList.Add(question.Element("text").Value);

answers.Add(question.Element("answers"));

private void Button_Click(object sender, RoutedEventArgs e)

subjectName = User.Text;

if (!string.IsNullOrEmpty(subjectName) && !string.IsNullOrEmpty(testFilePath))

Start.Visibility = Visibility.Hidden;

Test.Visibility = Visibility.Visible;

MessageBox.Show("Не заполнены необходимые поля");

private void spravkaButton_Click(object sender, RoutedEventArgs e)

Hello.Visibility = Visibility.Hidden;

Spravka.Visibility = Visibility.Visible;

private void closeSpravkaButton_Click(object sender, RoutedEventArgs e)

Hello.Visibility = Visibility.Visible;

Spravka.Visibility = Visibility.Hidden;