Обработка результатов экзаменационной сессии
Введение
Данная курсовая работа ставит перед
собой задачу проверки знаний в изучении дисциплины «Программирования» на языке
высокого уровня С++ в графическом интерфейсе. Работа представляет
индивидуальное задание по разработке программы на изучаемом языке.
Заданием курсовой
работы является разработка программы «Обработка результатов экзаменационной
сессии». Эта программа считывает данные из исходных файлов и заносит их в
таблицу MS Excel, так же создается документ MS Word содержащий сообщения об
ошибках и список обработанных файлов. Проект интересен тем, что в нем
реализуется работа с файлами и взаимодействие с распространенным пакетом MS Office.
В курсовой работе будут рассмотрены
алгоритмы выполнения задач для работы с файлами, взаимодействием с пакетом MS Office. А так же алгоритмы
работы с таблицами и проверки правильности входной информации. Все решения
будут рассмотрены на языке С++.
Данная программа будет понятна в
использовании и представляет собой приложение с простым и удобным для
пользователя интерфейсом.
Постановка задачи
Курсовая работа выполняется с целью
закрепления теоретических знаний и получения практических навыков
проектирования приложений для операционной системы Windows на основе технологии
визуального программирования на языке С++.
В результате выполнения курсовой
работы необходимо разработать многооконное приложение в Microsoft Visual C++.
Данная программа предназначена для работы с текстовыми файлами и файлами MS Office и вводимыми
пользователем данными. Программа должна обеспечивать пользователю простоту и
понятность.
Пользователь указывает программе
исходные файлы, программа проверяет список файлов на предмет повторов и, в
случая их обнаружения, сообщает об этом пользователю.
Далее указываются места сохранения
конечных файлов и, если такие файлы уже существуют, то они перезаписываються.
После чего исходные файлы поочередно обрабатываются, и результат сохраняется в
книгу MS Excel в виде отдельного листа, а в документ MS Word записываются результаты
обработки.
Так же приложение имеет краткие
сведения о программе и HTML справку.
Проектирование структуры
программы
программа алгоритм файл информация
Опишем основные модули программы:
- модуль контроля
данных - отвечает за хранение списка входных данных и обеспечивает пользователю
интерфейс добавления и удаления записей;
- модуль обработки
данных - обеспечивает ввод данных из исходных файлов, проверку корректности
входных данных, их обработку и вывод в выходные файлы, а так же обработку
сообщений об ошибках;
- модуль интерфейса
программы - предоставляет основной пользовательский интерфейс программы;
Ниже разберем стандартные
компоненты, используемые в программе.
Приложение создано в Visual C++ при помощи интерфейса
программирования приложений (API) Windows Forms, которое отвечает за графический интерфейс пользователя и
является частью платформы Microsoft.NET Framework. Данный интерфейс упрощает
доступ к элементам интерфейса Microsoft Windows за счет создания обертки для существующего Win32 API в
управляемом коде. Причем управляемый код - классы, реализующие API для Windows
Forms, не зависят от языка разработки.
API интерфейс - это набор готовых классов, процедур, функций,
структур и констант, предоставляемых приложением для использования во внешних
программных продуктах. Используя программистами для написания всевозможных
приложений, API библиотеки функций и классов включает в себя описание сигнатур
и семантики функций. API определяет функциональность, которую предоставляет
программа (модуль, библиотека), при этом API позволяет абстрагироваться от
того, как именно эта функциональность реализована.
Программные компоненты
взаимодействуют друг с другом посредством API. При этом обычно компоненты
образуют иерархию - высокоуровневые компоненты используют API низкоуровневых
компонентов, а те, в свою очередь, используют API ещё более низкоуровневых
компонентов.
В данном приложении используются
следующие формы Windows Forms и их методы и свойства:
1. Button - представляет элемент управления Windows «Кнопка», в программе
используется обработчик события нажатия на кнопку «Click».
2. OpenFileDialog и SaveFileDialog представляют окна предлагающие пользователю соответственно
открыть или сохранить файл, а так же их метод ShowDialog собственно запускающий
диалоговое окно и возвращающий DialogResult:OK если пользователь нажимает
кнопку «ОК» в диалоговом окне или DialogResult: Cancel в противном случае. И
свойства:
Ø FileName
- предоставляющие путь до выбранного файла;
Ø FileNames - предоставляющие массив путей до
выбранных файлов;
Ø Multiselect
- разрешающие выбирать несколько файлов;
Ø SafeFileNames - предоставляющие
массив имен выбранных файлов.
. ListView предоставляет
элемент управления списком Windows, в представлении Details (табличное
представление). И его методы Items->Add - добавляющий элемент и Items->RemoveAt
- удаляющий элемент с указанным индексом.
. Индикатор выполнения Windows - ProgressBar со свойством Value
отображающие заполнение элемента.
5. Label - стандартная надпись Windows и ее свойство Text - предоставляющие текст надписи.
6. MenuStrip - предоставляющие стандартную систему меню для формы и
обработчики события Click по элементам меню.
Так же в приложении используется
основная сборка взаимодействия (PIA) MS Office облегчающие взаимодействие между управляемым кодом СОМ -
библиотеками Office.
СОМ-сборки взаимодействия позволяют
выполнять неуправляемый код (СОМ) из управляемого кода (.NET) при помощи
Microsoft.NET Framework и общеязыковой среды выполнения. СОМ-сборки
взаимодействия позволяют управляемым приложениям привязываться к неуправляемым
типам во время компиляции и затем передавать в общеязыковую среду выполнения
информацию о том, как в процессе выполнения должны группироваться неуправляемые
типы.
Хотя для каждой конкретной
библиотеки может существовать неограниченное число СОМ-сборок взаимодействия,
только одна из них может выступать в роли PIA.содержит официальное описание
неуправляемых типов, определяемых их издателем.
Используются следующие компоненты:
v библиотека Microsoft. Office. Interop. Excel.dll:
Ø интерфейс
Application - представляет приложение MS Excel:
§ свойство
DisplayAlerts - разрешает показ сообщений MS Excel;
§ метод Quit - завершает текущий
экземпляр MS Excel;
Ø интерфейс
Workbook - представляет книгу Excel:
§ метод SaveAs - сохраняет текущую
книгу;
Ø интерфейс
Workbooks - представляет коллекцию всех книг открытых в текущем приложении MS Excel:
§ метод Add - создает новую книгу;
§ метод Open - открывает
существующую книгу;
Ø интерфейс
_Worksheet - представляет лист книги Excel:
§ свойство Name - представляет имя
листа;
§ свойство Cells - представляет все
ячейки листа:
· свойство Item - представляет
определенную ячейку;
Ø интерфейс
Worksheets - представляет коллекцию листов книги Excel;
v библиотека Microsoft. Office. Interop. Word:
Ø интерфейс
Application - представляет приложение MS Word:
§ метод Quit - завершает текущий
экземпляр MS Word;
§ свойство Selection
- представляет текущий выбранный документ:
· метод TypeText - вставляет заданный
текст;
· метод TypeParagraph
- вставляет новый параграф;
§ свойство ActiveDocument - представляет
активный документ:
· метод SaveAs - сохраняет активный
документ;
Ø Documents - представляет
коллекцию документов открытых в MS Word:
§ метод Open - открывает
существующий документ;
§ метод Add - создает новый
документ;
Ø интерфейс
Document - представляет документ:
§ свойство Content -
представляет набор объектов характеризующий свойства текущего документа:
· свойство Font - представляет шрифт в
текущем документе:
¨ свойство Size - представляет размер
шрифта;
¨ свойство Name - представляет шрифт в текущем
документе;
Проектирование
пользовательского интерфейса
При разработке программы стояла
задача создания не только кода программы, но и проектирования понятного
интерфейса программы для пользователя.
Для решения этой задачи был создан
интерфейс программы включающий в себя одну форму.
Меню - это одна из наиболее заметных частей приложения. При создании
меню программы использовались традиционные пункты, такие как: «О программе»,
«Справка». Всего в меню содержится 2 пункта. Первый пункт «Файл» включает в
себя подпункты «Начать обработку», «Добавить исходные файлы», «Удалить»
дублирующие функции соответствующих кнопок и кнопку «Выход» завершающие
приложение. Второй пункт «Справка» содержащий два подпункта «Справка» и «О
программе».
Рисунок 1
Рисунок 2
Проектирование модулей
(функций) приложения
. Модуль контроля данных
Состоит из следующих обработчиков:
Ø but_add_Click
- обработчик события Click по кнопке «Добавить исходные файлы». Вызывает OpenFileDialog с фильтром на текстовые файлы (.txt). После чего
проверяется корректный выбор файла и проверка на его наличие в массиве входных
файлов, в случае его обнаружения пользователь получает сообщение, что файл уже
выбран, в противном случае добавляет его в массив входных файлов и в ListBox
стандартными методами.
Ø Del_button_Click
- обработчик события Click по кнопке «Удалить» удаляющий указанный файл из массива входных
файлов и ListBox стандартными методами.
Ø Form1_Load
- обработчик загрузки обеспечивает инициализацию компонентов.
Полные блок схемы этих обработчиков
изображены в «ПРИЛОЖЕНИИ А».
. Модуль обработки данных
Состоит из:
Ø обработчика
button1_Click - обработчика события Click по кнопке «Начать обработку». Вызывает два SaveFileDialog запрашивающих
места сохранения выходных файлов, если эти файлы уже существуют удаляет их
после чего вызывает основную функцию обработки fprocess. В процессе обработки
выводиться сообщение «Идет обработка. Пожалуйста подождите…» и заполняеться progressBar. Полная блок схема изображена
в «ПРИЛОЖЕНИИ Б».
Ø функции
fprocess - обрабатывающий указанной файл и сохраняющей результат по полученным
путям. Функция проверяет корректность номера группы в файле (первая строка),
после чего создается экземпляр MS Excel без видимого окна и проверяется существование выходного файла,
если он существует то в него добавляется новый лист в против ном случае
создается новая книга MS Excel с единственным листом после чего при помощи циклов на лист
выводиться содержимое всех строк файла. При возникновении ошибок в структуре
данных вызывается функция log которой передаться код ошибки и путь до файла MS Word после чего работа
завершается. В случае успешного выполнения результат сохраняется и вызывается
функция log которой передается номер обработанной группы код успешного
завершения и путь до файла MS Word. Полная блок схема изображена в «ПРИЛОЖЕНИИ В».
Ø функция
log
- создает экземпляр MS Word без видимого окна, после чего проверяется существование выходного
файла, если файл существует то информация записывается в его конец, в противном
случае он создается. В зависимости от кода ошибки в файл записываться
соответствующая строка и добавляется символ переноса строки после чего файл
сохраняется, закрывается MS Word и функция завершает свою работу. Полная блок схема изображена в
«ПРИЛОЖЕНИИ Г».
. Модуль интерфейса программы
Состоит из обработчиков:
Ø выходToolStripMenuItem_Click
- обработчик события Click по подпункту меню «Файл» «Выход» обеспечивает завершение
приложения.
Ø справкаToolStripMenuItem1_Click
- обработчик события Click по подпункту меню «Справка» «Справка» обеспечивает вывод справки.
Ø оПрограммеToolStripMenuItem_Click
- обработчик события Click по подпункту меню «О программе» «Справка» обеспечивает вывод
информации о разработчике.
Ø Form1_KeyDown
- обработчик события нажатий на клавиши клавиатуры. Обеспечивает вывод справки
при нажатии F1.
Полные блок схемы этих обработчиков
изображены в «ПРИЛОЖЕНИИ Д».
Тестирование программы
Существует множество подходов к
решению задачи тестирования и верификации ПО, но эффективное тестирование
сложных программных продуктов - это процесс в высшей степени творческий, не
сводящийся к следованию строгим и чётким процедурам или созданию таковых.
Опишем несколько тестов для нашего
приложения.
. Создадим текстовый файл
содержащий правильно сформированные данные и обработаем его программой. В
результате должен получиться файл MS Excel содержащий данные исходного файла и документ Word с записью об успешной
обработке.
Тест пройден. Результат
положительный.
. Обработаем программой файл
с неправильно записанными данными. В результате должен получиться документ MS Word содержащий сообщение об
ошибке.
Тест пройден. Результат
положительный.
. Добавим в список обработке
два файла с одинаковыми номерами групп. В результате должна получиться книга MS Excel содержаший данные
первого файла документ MS Word содержащий сообщение об ошибке.
Тест пройден. Результат
положительный.
. Удалим исходный файл после
добавления его в список. В результате должен получиться документ MS Word содержащий сообщение об
ошибке.
Тест пройден. Результат
положительный.
Таким образом, после полного
тестирования разработанного программного продукта мы однозначно убеждаемся, что
он работает адекватно и без ошибок.
Разработка справочной
системы приложения
Для написания HTML справки была
использована программа «HTML Help Workshop», при помощи которой был создан и
скомпилировал *chm файл справки.
Формат CHM - это скомпилированный
файл справки, пришедший на смену более старому формату HLP. Преимущества его в
том, что он состоит из html-страниц, а это значит, что доступны все технологии,
которыми изобилует html (css-оформление и т.д.). Кроме того, вся эта «сборка»
очень хорошо сжимается, что в конечном итоге даёт меньший размер, чем суммарный
всех html-файлов.
Сначала были созданы HTM файлы представляющие
отдельные страницы справки:
Страница описывающая входные файлы:
<! DOCTYPE HTML PUBLIC «- //IETF
//DTD HTML //EN»>
<HTML>
<HEAD>
<meta name=
«GENERATOR» content= «Microsoft® HTML Help Workshop 4.1»>
<Title>Входные файлы</Title>
</HEAD>
<BODY>
Входные файлы програмы представляют
собой текстовые файлы (.txt с кодировкой ANSI) на первой строке которых
содержиться номер группы первые шесть символов которого - цифры. Номер группы
не может содержать символы: «\», «/»,»:», «[»,»]»,» «», «*».
Остальные строки файла содержат
фамилии и инициалы студентов и через пробел их оценки.
</BODY>
</HTML>
Страница описывающая ошибки которые
могут возникнуть при работе программы и способы их устранения:
<! DOCTYPE HTML
PUBLIC «- //IETF //DTD HTML //EN»>
<HTML>
<HEAD>
<meta name=
«GENERATOR» content= «Microsoft® HTML Help Workshop 4.1»>
<Title>ошибки</Title>
</HEAD>
<BODY>
Ошибки:
. Ошибки при запуске<BR>
Решение: Установите MS.NET Framework
4.0 и MS office 2007 или старше.<BR>
. «Нет доступа к файлу…«<BR>
Решение: Закройте все программы
использующие указанный файл или разрешите программе перезапись файла.<BR>
. «Файл… не найден»<BR>
Решение: Указано неверное имя
исходного файла или файл не существует, укажите правильный путь к файлу.
<BR>
. «Невозможно обработать… файл
содержить неверные данные»<BR>
Решение: Исправте содержимое файла
согласну разделу входные файлы.<BR>
. «Невозможно обработать… группа с
таким номером уже обработана»<BR>
Решение: исключите один из
конфликтующих файлов из списка обработки или обработайте его
отдельно.<BR>
</HTML>
Страница описывающая использование
программы:
<! DOCTYPE HTML
PUBLIC «- //IETF //DTD HTML //EN»>
<HTML>
<HEAD>
<meta name=
«GENERATOR» content= «Microsoft® HTML Help Workshop 4.1»>
<Title>гланая</Title>
</HEAD>
<BODY>
Программа предназначена для
обработки результатов экзаменационной сессии. Для работы с программой
пользователю нужно нажать кнопку «Добавить исходные файлы» после чего указать
обрабатываемые файлы, когда все обработанные файлы будут добавлены необходимо
нажать кнопку «Начать обработку» и указать место сохранения выходных файлов
(книга excel содержит обработанные результаты, документ Word список
обработанных групп и сообщения об ошибках). Для удаления файлов из списка
обрабатываемых используется кнопка удалить.
</BODY>
</HTML>
Потом был создан новый проект и
добавлено содержание для него в которое были внесены исходные htm файлы и проект был
скомпилирован.
Создание инсталлятора
Для создания инсталлятора была
использована программа Smart Install Market.
Сначала укажем имя продукта и его
версию (Рисунок 3), после чего добавим в проект все необходимые файлы (Рисунок
4).
Рисунок 3
Рисунок 4
Добавим ярлык на рабочий стол (Рисунок 5) и компилируем проект
(Рисунок 6).
Рисунок 5
Рисунок 6
Рекомендации по
использованию программного продукта
Пользователь приложения имеет
возможность выполнять следующие действия:
Ø Добавлять в файлы в список обработки нажатием кнопки «Добавить
исходные файлы» или выбором пункта меню «Файл» «Добавить исходные файлы» после
чего необходимо указать один или несколько добавляемых файлов и нажать кнопку
«ОК».
Ø Удалять файлы из списка обработки выбором нужного пункта в списке
и нажатием кнопки «Удалить» или выбором пункта меню «Файл» «Удалить».
Ø Запускать обработку выбранных файлов нажатием кнопки «Начать
обработку» или выбором пункта меню «Файл» «Начать обработку».
Ø Выходить из программы выбором пункта меню «Файл» «Выход».
Ø Получать справку выбором пункта меню «Справка» «Справка».
Ø Получать информацию о программе выбором пункта меню «Справка» «О
программе».
Пример использования программы:
создадим текстовый файл dat с номером группы на первой строке и списком с несколькими
студентами на других (Рисунок 7), добавим это файл в список обработки (Рисунок
8) и обработаем его (Рисунок 9), после чего убедимся в результате (Рисунок 10).
Рисунок
7
Рисунок 8
Рисунок 9
Рисунок 10
Заключение
В процессе разработки данной
программы была интеграция MS Office и платформы.NET Framework.
В процессе разработки возник ряд
трудностей из за отсутствия описания некоторых методов в официальной
документации. Но они были преодолены привлечением сторонних описаний.
Из сделанных выводов видно, что
интеграция приложения с Microsoft Office дает возможность более эффективного
решения самого широкого спектра задач.
Приложение А
Обработчик but_add_Click
Обработчик Del_button_Click
Обработчик Form1_Load
Приложение Б