Программное обеспечение для расчета утечки звука из помещения
Уравнения, определяющие параметры звука. Методы защиты помещений от утечки акустической (речевой) информации. Расчет показателя защищенности акустической речевой информации. Технико-экономическое обоснование разработки данного программного обеспечения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 27.06.2012 |
Размер файла | 906,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Оцениваем качества аналога и разработки по каждому i-му показателю качества по следующей шкале оценок
отлично;
хорошо;
удовлетворительно;
предельно допустимо;
неприемлемо.
Рассчитываем интегральные показатели качества и соответственно для аналога и разработки.
Определяем технико-экономическую эффективность аналога и разработки:
,
,
где , - интегральный стоимостной показатель аналога и разработки.
Определяем относительную технико-экономическую эффективность разработанного изделия:
.
где Ea, Ep-технико-экономическая эффективностьаналога и разработки.
Результаты сравнения представлены в таблице 13.
Таблица 13 - Оценка технико-экономической эффективности программного продукта
Параметр, оценка |
Весовойкоэфф. |
Аналог |
Разработка |
|||
Ai a |
kiAi a |
Ai p |
kiAi p |
|||
функциональные возможности |
0,180 |
1 |
0,180 |
3 |
0,540 |
|
надежность |
0,205 |
1 |
0,205 |
3 |
0,615 |
|
трудоемкость изготовления |
0,205 |
4 |
0,820 |
3 |
0,615 |
|
удобство пользования |
0,205 |
1 |
0,205 |
4 |
0,820 |
|
информативность |
0,205 |
1 |
0,205 |
4 |
0,820 |
|
интегральный технический показатель, Q |
1,615 |
3,41 |
||||
интегральный стоимостный показатель, Sn |
12 546 |
15 384 |
||||
технико-экономическая эффективность, E |
0,00013 |
0,00022 |
||||
относительная технико-экономическая эффективность нового продукта, |
1,7 |
|||||
6.6 Прогнозирование необходимых объемов производства
Тип производства данного программного продукта - мелкосерийное, так как пока планируется продать данный продукт 1 заказчику, в количестве 21 экземпляра.
Заключение
В ходе данного дипломного проекта было разработано программное обеспечение, позволяющее значительно упростить процесс обработки данных, полученных при проведении контрольных замеров в помещении проводимых для оценки уровня его (помещения) защищенности от утечки акустической (речевой) информации по техническим каналам. В основе программы лежит метод позволяющий определить численные значения словесной разборчивости речи Wв акустическом, виброакустическом и оптико-электронном каналах утечки информации, а также при непосредственном прослушивании речи без использования технических средств. В ходе работы было спроектировано две программы, одна из которых реализует расчет словесной разборчивости речи при представлении речевого сигнала семью октавными полосами, а вторая - 20-равноартикуляционными полосами. Данный программный продукт позволяет просмотреть все промежуточные результаты расчетов, а также осуществлять корректировку исходных данных после проведения расчетов.
Для написания программ использовался набор инструментов QtSDK, что позволяет скомпилировать и запустить программу как на ПЭВМ под управлением ОС Linux, так и в ОС семейства Windows.
Результаты работы программы оказались более точными, чем представленные в учебно-методической литературе.
Также, в данном дипломном проекте был проведен анализ безопасности и экологичности разработанного программного продукта.
Разработанные программные продукты переданы лаборатории ТСЗИ кафедры БИТ для их дальнейшего использования.
Список использованных источников
1 Акустика: справочник. Под ред. М. А. Сапожкова. - 2-е изд., перераб. и доп. - М.: Радио и связь, 1989. - 336 с.: ил.
2 Хорев А.А. Защита информации от утечки по техническим каналам. Часть 1. Технические каналы утечки информации: Учебное пособие.М.: Гостехкомиссия России, 1998. - 320 с.
3 БузовГ.А., Калинин С.В., Кондратьев А.В. Защита от утечки информации по техническим каналам : учебное пособие для вузов. - М.: Горячая линия-Телеком, 2005. - 416 с.
4 Техника для спецслужб [Электронный ресурс]// Официальный Интернет-сайт ООО “Техника для спецслужб”. - URL: http://www.t-ss.ru.index.htm (дата обращения: 10.03.2011)
5 ГОСТ Р 51624-00. Защита информации. Автоматизированные системы в защищенном исполнении. Общие требования.Руководство. - М.: Изд-во стандартов, 2000. - 11 с.
6 ГОСТ Р 51583-00. Защита информации. Порядок создания автоматизированных систем в защищенном исполнении. Общие положения.Руководство. - М.: Изд-во стандартов, 2000. - 12 с.
7 Евро-азиатская ассоциация [Электронный ресурс] // Официальный Интернет-сайт НТЦ “Евраас”. - URL: http://www.evraas.ru.index.htm/ (дата обращения: 11.03.2011)
8 Железняк В. К. Защита информации от утечки по техническим каналам: учебное пособие: ГУАП. - СПб., 2006. - 188 с.: ил.
9 Qt SDK [Электронный ресурс] // Официальный Интернет-сайт продукта Qt [англ.]. - URL: http://qt.nokia.com/ (дата обращения 30.01.2011)
10 ГОСТ Р 2.2.2006-05. Руководство по гигиенической оценке факторов рабочей среды и трудового процесса. Критерии и классификация условий труда. Руководство. - М.: Изд-во стандартов, 2005. - 137 с.
11 ГОСТ 12.1.005-88. Общие санитарно-гигиенические требования к воздуху рабочей зоны.- М.: Изд-во стандартов, 1988. - 46с.
12 СН 2.2.4/2.1.8.562-96. Шум на рабочих местах, в помещениях жилых, общественных зданий и на территории жилой застройки.- М.: Изд-во стандартов, 1997. - 37с.
13 СНиП 23-05-95. Естественное и искусственное освещение.- М.: Изд-во стандартов, 1995. - 71с.
14 СанПиН 2.2.2/2.2.1340-03. Гигиенические требования к персональным электронно-вычислительным машинам и организации работы.- М.: Изд-во стандартов, 2003. - 28с.
ПРИЛОЖЕНИЕ А
Спецификация программного обеспечения для расчета утечки звука из помещения
Обозначение |
Наименование |
Примечание |
|
Документ |
Описание программы |
ПриложениеБ |
|
Документ |
Описание применения |
Приложение В |
|
Документ |
Руководство оператора |
Приложение Г |
|
Документ |
Руководство программиста |
Приложение Д |
|
Документ |
Руководство системного программиста |
Приложение Е |
|
main.cpp |
Расчет утечки звука из помещения |
Исходный код в приложенииЖ |
|
modeselect.h |
Расчет утечки звука из помещения(выбор уровня звука) |
Исходный код в приложенииЖ |
|
modeselect.cpp |
Расчет утечки звука из помещения (выбор уровня звука) |
Исходный код в приложенииЖ |
|
firstscreen7ch.h |
Расчет утечки звука из помещения (ввод данных) |
Исходный код в приложенииЖ |
|
firstscreen7ch.cpp |
Расчет утечки звука из помещения (ввод данных) |
Исходный код в приложенииЖ |
|
secondscreen7ch.h |
Расчет утечки звука из помещения (вывод результатов) |
Исходный код в приложенииЖ |
|
secondscreen7ch.cpp |
Расчет утечки звука из помещения (вывод результатов) |
Исходный код в приложенииЖ |
|
ПРИЛОЖЕНИЕ Б
Описание программы
Б.1 Общие сведения
Обозначение программы For7Ch, наименование - программа расчета акустической защищенности помещения. Функционирование программы возможно на ПЭВМ под управлением ОС семейства Windowsи ОС семейства Linux. Программа написана на языке C++, с использованием QtSDK. Для сборки требуется наличие в системе компилятора Mingw, gccи утилиты Qmake (поставляются вместе с QtSDK). Программа имеет зависимости от сторонних библиотек Qtс открытым кодом.
Б.2 Функциональное назначение
Программа предназначена для обработки результатов полученных в ходе контрольных замеров, проводимых при специальном исследовании помещения.
Б.3 Описание логической структуры
Логическая структура данной программы базируется на особенностях программирования с использованием библиотек Qt. В частности, для каждого окна программы используется отдельный файл исходных кодов, в котором содержится отдельный класс, описывающий данное окно. Для реализации функционирования кнопок используется стандартная для Qtтехнология сигналов и слотов, когда сигналом служит некоторое событие (к примеру, изменение некоторого параметра виджета), а слотом является некоторая реакция (к примеру, вызов функции).
Алгоритм работы программы описан ниже. Первое окно программы предназначено для выбора исходных табличных данных, после осуществления выбора и нажатия кнопки “Next>>” происходит заполнение таблицы со справочными данными и отрисовка второго окна. Второе окно предназначено для просмотра табличных данных и ввода результатов замеров в специально предназначенную для этого таблицу. В программе также реализована возможность сохранения заполненной таблицы с результатами замеров для воспроизведения результатов расчета. Возможен возврат из окна ввода данных в окно выбора табличных данных. После нажатия кнопки “Next>>” второго окна производится обработка исходных данных, заполнение таблицы результатов расчетов третьего окна и его отрисовка. Из окна результатов расчетов возможен возврат к окну ввода данных для корректировки исходных данных.
Для корректной работы программы в ОС Windows необходимы: For7Ch.exe - исполняемы файл программы, libgcc_s_dw2-1.dll, mingwm10.dll, QtCore4.dll, QtGui4.dll, 7ChInitial.bd - файл с исходными данными. libgcc_s_dw2-1.dll, mingwm10.dll, QtCore4.dll, QtGui4.dll - динамические библиотеки.
Для перекомпиляции программы необходимы: modeselect.h, firstscreen7ch.h, secondscreen7ch.h, main.cpp, modeselect.cpp, firstscreen7ch.cpp, secondscreen7ch.cpp, SoundCalculation.pro. Список файлов программы предста-влен в таблице Б. 1.
Таблица Б.1 - Список файлов программы
Имя |
Обязателен |
Назначение |
|
For7Ch.exe |
Всегда |
Основной исполняемый файл программы |
|
7ChInitial.bd |
Всегда |
Исходные (табличные) данные для расчета |
|
libgcc_s_dw2-1.dll |
Всегда |
Динамическая библиотека |
|
mingwm10.dll |
Всегда |
Динамическая библиотека |
|
QtCore4.dll |
Всегда |
Динамическая библиотека |
|
QtGui4.dll |
Всегда |
Динамическая библиотека |
|
SoundCalculation.pro |
Для компиляции программы |
Файл проекта Qt Creator |
|
modeselect.h |
Для компиляции программы |
Заголовочный файл C++ |
|
firstscreen7ch.h |
Для компиляции программы |
Заголовочный файл C++ |
|
secondscreen7ch.h |
Для компиляции программы |
Заголовочный файл C++ |
|
main.cpp |
Для компиляции программы |
Исходный код программы |
|
modeselect.cpp |
Для компиляции программы |
Исходный код программы |
|
firstscreen7ch.cpp |
Для компиляции программы |
Исходный код программы |
|
secondscreen7ch.cpp |
Для компиляции программы |
Исходный код программы |
|
Б.4 Используемые технические средства
Для нормального функционирования программы необходимы минимальные конфигурации ПЭВМ, поддерживающие корректную работу ОС WindowsилиLinux. В комплект ПЭВМ обязательно должны входить следующие устройства: процессор, плату оперативной памяти, монитор, видеоадаптер (встроенный или отдельная плата), клавиатуру. Программа не имеет собственных требований к техническому уровню оснащения ПЭВМ.
Б.5 Вызов и загрузка
Запуск программыв ОС Windowsосуществляется с помощью двойного нажатия по значку программы (For7Ch). Для успешного запуска программы необходимо наличие в ее каталоге файла с табличными данными (7ChInitial.bd)и динамических библиотек (libgcc_s_dw2-1.dll, mingwm10.dll, QtCore4.dll, QtGui4.dll). Объем программы вместе с библиотеками и исходными данными - 11.9 Мб.
Б.6 Входные данные
В качестве входных данных в программе используются табличные данные и данные, полученные в результате контрольных замеров. Табличные данные загружаются из файла 7ChInitial.bd. Данные, относящиеся к уровню речевого сигнала в помещении, хранятся непосредственно в исходном коде программы. Данные полученные при специальном исследовании вносятся в специальную таблицу, либо загружаются из заранее сохраненного файла.
Б.7 Выходные данные
Выходные данные программы представлены в виде таблицы и содержат результаты расчета со всеми промежуточными данными.
ПРИЛОЖЕНИЕ В
Описание применения
В.1 Назначение
Программа предназначена для обработки результатов полученных в ходе контрольных замеров, проводимых при специальном исследовании помещения. Целью внедрения данной программы является максимальная автоматизация процесса расчета утечки звука из помещения.Программа в автоматическом режиме заполняет таблицу со справочными материалами необходимыми для расчета, а также позволяет сохранять и загружать результаты контрольных замеров. Программа предоставляет возможность просмотра промежуточные результаты расчетов. Возможна корректировка исходных данных в случае ошибки оператора. Запуск программы возможен в ОС Linuxили Windows.
В.2 Условия применения
Для нормального функционирования программы необходимы минимальные конфигурации ПЭВМ, поддерживающие корректную работу ОС WindowsилиLinux. В комплект ПЭВМ обязательно должны входить следующие устройства: процессор, плату оперативной памяти, монитор, видеоадаптер (встроенный или отдельная плата), клавиатуру. Программа не имеет собственных требований к техническому уровню оснащения ПЭВМ.
Для функционирования программы необходима операционная система семейства Windowsили Linux.В ОС Linuxтребуется наличие графической среды пользователя на базе X11 (Gnome, KDE, LXDE, XFCE и др.) и библиотек Qt.
Также для успешного запуска программы необходимо наличие в ее каталоге файлов:libgcc_s_dw2-1.dll, mingwm10.dll, QtCore4.dll, QtGui4.dll, 7ChInitial.bd. Объем программы вместе с библиотеками и исходными данными - 11.9 Мб.
В.3 Описание задачи
Задачей разработанной программы являетсяобработка результатов контрольных замеров, полученных в ходе специального исследования помещения. При этом программа должна обеспечить вывод всех промежуточных результатов расчета и предоставить возможность корректировки исходных данных. Дополнительной задачей является обеспечение запуска программы в ОС Windowsи Linux.
В.4 Входные и выходные данные
В качестве входных данных в программе используются табличные данные и данные, полученные в результате контрольных замеров. Табличные данные загружаются из файла 7ChInitial.bd. Данные, относящиеся к уровню речевого сигнала в помещении, хранятся непосредственно в исходном коде программы. Данные полученные при специальном исследовании вносятся в специальную таблицу, либо загружаются из заранее сохраненного файла.
Выходные данные программы представлены в виде таблицы и содержат результаты расчета со всеми промежуточными данными.
ПРИЛОЖЕНИЕ Г
Руководство оператора
Г.1 Назначение программы
Программа предназначена для обработки результатов полученных в ходе контрольных замеров, проводимых при специальном исследовании помещения.Программа в автоматическом режиме заполняет таблицу со справочными материалами необходимыми для расчета, а также позволяет сохранять и загружать результаты контрольных замеров. Программа предоставляет возможность просмотра промежуточные результаты расчетов. Возможна корректировка исходных данных в случае ошибки оператора.
Г.2 Условия выполнения программы
Для корректной работы программы требуются следующие компоненты:
- ПЭВМ стандартной комплектации (клавиатура, ЖМД, монитор, процессор, оперативная память);
- корректно установленная ОС Windowsили Linux;
- для ОС Linuxналичие графической среды пользователя на базе X11;
- исполняемый файл программы (“For7Ch”);
- наличиевпапкеспрограммойдинамическихбиблиотекlibgcc_s_dw2-1.dll, mingwm10.dll, QtCore4.dll, QtGui4.dll (дляОСWindows);
- наличиевпапкеспрограммойфайла 7ChInitial.bd.
Г.3 Выполнение программы
Выбор уровня речевого сигнала в помещении осуществляется из четырех вариантов и представлен на рисунке Г.1. После нажатия кнопки “Next>>” осуществляется переход на экран ввода исходных данных.
Окно ввода исходных данных представлено на рисунке Г.2. Для проведения расчета необходимо заполнить нижнюю таблицу (ввести значения Ziи Bni)или загрузить ее из ранее сохраненного файла (кнопка “Load…”) и нажать кнопку “Next>>”. Также из данного окна возможно сохранение таблицы со значениями Ziи Bni(кнопка “Save…”). Нажатие кнопки “<<Back” приводит к возврату к окну выбора уровня речевого сигнала в помещении.
Рисунок Г.1 - Окно выбора уровня речевого сигнала в помещении
Рисунок Г.2 - Окно ввода исходных данных
Окно результатов расчета предназначено для просмотра промежуточных данных и результатов расчета. Оно представлено на рисунке Г.3.
Рисунок Г.3 - Результаты расчета
ПРИЛОЖЕНИЕ Д
Руководство программиста
Д.1 Назначение и условия применения
Программа предназначена для обработки результатов полученных в ходе контрольных замеров, проводимых при специальном исследовании помещения.
Для корректной работы программы требуются следующие компоненты:
- ПЭВМ стандартной комплектации (клавиатура, ЖМД, монитор, процессор, оперативная память);
- корректно установленная ОС Windowsили Linux;
- для ОС Linuxналичие графической среды пользователя на базе X11;
- для ОС Linuxналичие установленных библиотек Qt;
- исполняемый файл программы (“For7Ch”);
- наличие в папке с программой динамических библиотек libgcc_s_dw2-1.dll, mingwm10.dll, QtCore4.dll, QtGui4.dll (дляОСWindows);
- наличие в папке с программой файла 7ChInitial.bd.
Д.2 Характеристика программы
Данная программа предназначена для автоматизации процесса расчета числового значения словесной разборчивости. Основными характеристиками разработанной программы являются:
- загрузка и сохранение исходных данных;
- возможность корректировки исходных данных;
- возможность просмотра промежуточных данных расчета;
- возможность запуска программы как в ОС Windows, так и в ОС Linux.
Для контроля правильности выполнения программы, необходимо следить за сообщениями об ошибках, выдаваемыми программой. В случае вывода сообщения об ошибке рекомендуется проверить наличие в папке с программой необходимых для ее работы файлов (см. п. Д.1). В случае ошибки с заполнением табличных данных в ОС Linuxрекомендуется проверить наличие в папке загрузки по умолчанию (открывается при нажатии кнопки “Load…” второго окна) файла “7ChInitial.bd” и корректность установки библиотек Qt. В случае, если потребуется перекомпиляция программы, потребуется установка QtCreator + QtSDK (процесс установки описан в Д.6).
Д.3 Компоненты программы
Составные модули программы представлены ниже.
For7Ch (For7Ch.exe)
Основной исполняемый файл программы. Генерируется в системе при помощи QtCreator.
modeselect.h, firstscreen7ch.h, secondscreen7ch.h, main.cpp, modeselect.cpp, firstscreen7ch.cpp, secondscreen7ch.cpp, SoundCalculation.pro
Файлы с исходным кодом программы. Необходимы в случае запуска программы в системе, для которой не был заранее собран исполняемый файл, либо в случае сообщений об ошибках в работе программы. Исходный код представлен в Приложении Е.
7ChInitial.bd
Файл с исходными (табличными) данными программы
libgcc_s_dw2-1.dll, mingwm10.dll, QtCore4.dll, QtGui4.dll
Динамические библиотеки, необходимые для корректного запуска программы в ОС Windows.
Д.4 Входные и выходные данные
Входные и выходные данные программы описаны в Приложении В.
Д.5 Сообщения
Сообщения об ошибках (выводятся в отдельном окне):
1. “Don'tload7ChInitial.bd” - проверьте наличие файла 7ChInitial.bd
2. “Запуск программы невозможен, так как на компьютере отсутствует *.dll. Попробуйте переустановить программу.”(ОСWindows) - проверьте наличие в папке с программой файла *.dll.
3. “Don'tsave” - не удалось сохранить таблицу с исходными данными (возможно, файл куда производилось сохранение защищен от записи, либо пользователь не имеет права на его создание/изменение) - попробуйте сохранить в другой файл или повысить права доступа.
Д.5 Установка QtCreator + QtSDK
В ОС Windowsпроцесс установки QtCreator + QtSDK ничем не отличается от установки любого другого приложения, поэтому не требует разъяснений.
В ОС Linuxдля установки QtCreator + QtSDK достаточно набрать в терминале sudoapt-getinstallqtcreator.
Другим вариантом установки для ОС Linux является следующая последовательность действий (данный вариант предпочтительней в случае установки QtCreator + QtSDKна несколько машин):
1. скачатьQtSDKforLinux/X11 с сайта http://qt.nokia.com;
2. перейти в папку со скачанным файлом (в консолиcd<путь_к_файлу>);
3. набрать в консолиsudochmod u+x <имя_скачанного_файла>;
4. набрать в консоли./<имя_скачанного_файла>;
5. ответить на вопросы инсталлятора;
6. установить необходимые библиотеки (sudoapt-getinstalllibglib2.0-dev libSM-dev libxrender-dev libfontconfig1-dev libxext-devlibgl-dev libglu-dev).
Примечание: libgl-dev libglu-dev - необязательны, если не предполагается разработка приложений использующих библиотеку OpenGL.
ПРИЛОЖЕНИЕ Е
Руководство системного программиста
Е.1 Общие сведения
Обозначение программы For7Ch, наименование - программа расчета акустической защищенности помещения. Функционирование программы возможно на ПЭВМ под управлением ОС семейства Windowsи ОС семейства Linux. Программа написана на языке C++, с использованием QtSDK. Для сборки требуется наличие в системе компилятора Mingw, gccи утилиты Qmake (поставляются вместе с QtSDK). Программа имеет зависимости от сторонних библиотек Qtс открытым кодом.
Е.2 Структура программы
Программа состоит из исполняемого файла, динамических библиотек и файла с табличными данными.
Запуск исполняемого файла невозможен при отсутствии любой из составных частей программы. Исполняемый файл связан с динамическими библиотеками и файлом с табличными данными. Из динамических библиотек берутся сведения об используемых в программе классах QtSDK, из файла с табличными данными берутся данные необходимые для заполнения таблицы окна ввода исходных данных программы.
Связи с другими программами отсутствуют.
Е.3 Настройка программы
Разработанная программа не нуждается в дополнительной настройке и способна корректно исполняться в том виде, в котором поставляется.
Е.4 Проверка программы
Для проверки функционирования программы рекомендуется выполнить контрольный расчет (данные для такого расчета поставляются вместе с программой). В случае, если программа в процессе работы не выдает сообщений об ошибках, программу можно считать настроенной и готовой к использованию. Результат корректной работы программы представлен в приложении Г.3.
Е.5 Дополнительные возможности
Дополнительные возможности в данной программе отсутствуют.
Е.6 Сообщения системному программисту
Сообщения об ошибках (выводятся в отдельном окне):
4. “Don'tload7ChInitial.bd” - проверьте наличие файла 7ChInitial.bd
5. “Запуск программы невозможен, так как на компьютере отсутствует *.dll. Попробуйте переустановить программу.”(ОСWindows) - проверьте наличие в папке с программой файла *.dll.
ПРИЛОЖЕНИЕ Ж
Исходный код программы
Листинг 1 - Содержимое файла main.cpp
// Целью данного программного кода является инициализация и вывод на экран стартового окна программы
#include <QApplication>
#include "modeselect.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
ModeSelect *modeSelect = new ModeSelect;
modeSelect->show();
return app.exec();
}
Листинг 2 - Содержимоефайла modeselect.h
// Заголовочныйфайлдляmodeselect.cpp
#ifndef MODESELECT_H
#define MODESELECT_H
#include <QDialog>
#include <QtGui>
#include “firstscreen7ch.h”
class ModeSelect : public Qdialog
{
Q_OBJECT
public:
ModeSelect();
FirstScren7ChFill *firstScreen;
QradioButton *soundLevel1;
QradioButton *soundLevel2;
QradioButton *soundLevel3;
QradioButton *soundLevel4;
QVBoxLayout *soundLevelLayout;
QgroupBox *soundLevel;
private:
QpushButton *startButton;
QpushButton *closeButton;
QHBoxLayout *buttonsLayout;
QVBoxLayout *mainLayout;
private slots:
//float setLs();
};
#endif // MODESELECT_H
Листинг 3 - Содержимоефайлаmodeselect.cpp
// Целью данного программного кода является создание окна для выбора уровня речевого сигнала в //помещении и заполнение таблицы со справочными данными в соответствии с выбором
#include <QtGui>
#include <modeselect.h>
#include <firstscreen7ch.h>
ModeSelect::ModeSelect()
{
firstScreen = new FirstScren7ChFill;
soundLevel1 = new QRadioButton(tr("Low level of speech (64 dB)"));
soundLevel2 = new QRadioButton(tr("Medium level of speech (70 dB)"));
soundLevel3 = new QRadioButton(tr("High level of speech (76 dB)"));
soundLevel4 = new QRadioButton(tr("Technicaly increased level of speech (84 dB)"));
soundLevelLayout = new QVBoxLayout;
soundLevelLayout->addWidget(soundLevel1);
soundLevelLayout->addWidget(soundLevel2);
soundLevelLayout->addWidget(soundLevel3);
soundLevelLayout->addWidget(soundLevel4);
soundLevel1->setChecked(true);
connect(soundLevel1, SIGNAL(clicked()), firstScreen, SLOT(setLs1()));
connect(soundLevel2, SIGNAL(clicked()), firstScreen, SLOT(setLs2()));
connect(soundLevel3, SIGNAL(clicked()), firstScreen, SLOT(setLs3()));
connect(soundLevel4, SIGNAL(clicked()), firstScreen, SLOT(setLs4()));
soundLevel = new QGroupBox;
soundLevel->setTitle("Level of sound");
soundLevel->setLayout(soundLevelLayout);;
startButton = new QPushButton(tr("Next >>"));
closeButton = new QPushButton(tr("Exit"));
buttonsLayout = new QHBoxLayout;
buttonsLayout->addWidget(startButton);
buttonsLayout->addWidget(closeButton);
mainLayout = new QVBoxLayout;
mainLayout->addWidget(soundLevel);
mainLayout->addLayout(buttonsLayout);
setLayout(mainLayout);
connect(closeButton, SIGNAL(clicked()), firstScreen->secondScreen, SLOT(close()));
connect(closeButton, SIGNAL(clicked()), firstScreen, SLOT(close()));
connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
connect(startButton, SIGNAL(clicked()), firstScreen, SLOT(show()));
setWindowTitle(tr("Welcome!!!"));
}
Листинг 4 - Содержимоефайла firstscreen7ch.h
// Заголовочныйфайлдля firstscreen7ch.cpp
#ifndef FIRSTSCREEN7CH_H
#define FIRSTSCREEN7CH_H
#include <QDialog>
#include <QtGui>
#include "secondscreen7ch.h"
class FirstScren7ChFill : public QDialog
{
Q_OBJECT
public:
FirstScren7ChFill();
SecondScren7ChFill *secondScreen;
float* floatLs;
private:
QTableWidget *secondTable;
QTableWidget *firstTable;
QTableWidgetItem *Ls;
QPushButton *saveButton;
QPushButton *loadButton;
QPushButton *backButton;
QPushButton *startCalculation;
QString curFile;
float Kp;
bool saveFile(const QString &fileName);
public slots:
void setLs1();
void setLs2();
void setLs3();
void setLs4();
private slots:
bool save();
bool saveAs();
void load();
bool loadFile(QTableWidget *table, const QString &fileName);
void clearTable();
void calcKp();
void calcW();
};
#endif // FIRSTSCREEN7CH_H
Листинг 5 - Содержимоефайла firstscreen7ch.cpp
// Целью данного программного кода является создание окна для ввода исходных данных и вывод //справочных данных. В нем же производятся расчеты и передаются данные для заполнения таблицы //результатов расчетов
#include <QtGui>
#include <math.h>
#include <firstscreen7ch.h>
#include "secondscreen7ch.h"
float e = 2.71828;
FirstScren7ChFill::FirstScren7ChFill()
{
secondScreen = new SecondScren7ChFill;
firstTable = new QTableWidget;
firstTable->setRowCount(7);
firstTable->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
firstTable->setColumnCount(5);
firstTable->verticalHeader()->setResizeMode(QHeaderView::Stretch);
firstTable->setWordWrap(true);
firstTable->setEditTriggers(0);
QStringList firstLabels;
firstLabels<<tr("Border of band \nf1 - f2, Hz")<<tr("Medium frequ-\nency Fcp, Hz")<<tr("Bandwidth \ndf, Hz")
<<tr("Spectral level of\nsignal Bpi")<<tr("Articulatory para-\nmeters of speech");
firstTable->setHorizontalHeaderLabels(firstLabels);
QString fileName = "7ChInitial.bd";
loadFile(firstTable, fileName);
secondTable = new QTableWidget;
secondTable->setRowCount(2);
secondTable->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
secondTable->setColumnCount(7);
secondTable->verticalHeader()->setResizeMode(QHeaderView::Stretch);
secondTable->setMaximumHeight(80);
QStringList secondLabels;
secondLabels<<tr("Zi, dB")<<tr("Bni, dB");
secondTable->setVerticalHeaderLabels(secondLabels);
for(int row=0; row!=secondTable->rowCount(); ++row){
for (int column=0; column!=secondTable->columnCount(); ++column){
QTableWidgetItem *item = new QTableWidgetItem(tr(" "));
secondTable->setItem(row, column, item);
}
}
saveButton = new QPushButton(tr("Save..."));
loadButton = new QPushButton(tr("Load..."));
backButton = new QPushButton(tr("<< Back"));
startCalculation = new QPushButton(tr("Next >>"));
QHBoxLayout *buttonsLayout = new QHBoxLayout;
buttonsLayout->addWidget(saveButton);
buttonsLayout->addWidget(loadButton);
buttonsLayout->addWidget(backButton);
buttonsLayout->addWidget(startCalculation);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(firstTable);
mainLayout->addWidget(secondTable);
mainLayout->addLayout(buttonsLayout);
setLayout(mainLayout);
connect(saveButton, SIGNAL(clicked()), this, SLOT(save()));
connect(loadButton, SIGNAL(clicked()), this, SLOT(load()));
connect(backButton, SIGNAL(clicked()), this, SLOT(clearTable()));
connect(backButton, SIGNAL(clicked()), this, SLOT(close()));
connect(startCalculation, SIGNAL(clicked()), this, SLOT(calcKp()));
connect(startCalculation, SIGNAL(clicked()), secondScreen, SLOT(show()));
resize(650,350);
setWindowTitle(tr("Base"));
}
void FirstScren7ChFill::setLs1()
{
float floatLs[7] = {35.6, 36.2, 34.5, 27.0, 18.5, 10.5, 4.5};
for(int row=0; row!=firstTable->rowCount(); ++row) {
Ls = new QTableWidgetItem;
Ls->setText(QString::number(floatLs[row]));
firstTable->setItem(row, 3, Ls);
}
}
void FirstScren7ChFill::setLs2()
{
float floatLs [7] = {41.6, 42.2, 40.5, 33.0, 24.5, 16.6, 10.5};
for(int row=0; row!=firstTable->rowCount(); ++row) {
Ls = new QTableWidgetItem;
Ls->setText(QString::number(floatLs[row]));
firstTable->setItem(row, 3, Ls);
}
}
void FirstScren7ChFill::setLs3()
{
float floatLs [7] = {47.6, 48.2, 46.5, 39.0, 30.5, 22.6, 16.5};
for(int row=0; row!=firstTable->rowCount(); ++row) {
Ls = new QTableWidgetItem;
Ls->setText(QString::number(floatLs[row]));
firstTable->setItem(row, 3, Ls);
}
}
void FirstScren7ChFill::setLs4()
{
float floatLs [7] = {55.6, 56.2, 54.5, 47.0, 38.5, 30.6, 24.5};
for(int row=0; row!=firstTable->rowCount(); ++row) {
Ls = new QTableWidgetItem;
Ls->setText(QString::number(floatLs[row]));
firstTable->setItem(row, 3, Ls);
}
}
bool FirstScren7ChFill::save()
{
if (curFile.isEmpty()) {
return saveAs();
} else {
return saveFile(curFile);
}
}
bool FirstScren7ChFill::saveAs()
{
QString fileName = QFileDialog::getSaveFileName(this);
if (fileName.isEmpty())
return false;
return saveFile(fileName);
}
bool FirstScren7ChFill::saveFile(const QString &fileName)
{
QFile file(fileName);
if (!file.open(QIODevice::WriteOnly)){
QMessageBox notSaved;
notSaved.setText(tr("Don't save"));
notSaved.exec();
return false;
}
QDataStream out(&file);
out.setVersion(QDataStream::Qt_4_1);
QApplication::setOverrideCursor(Qt::WaitCursor);
for(int row=0; row!=secondTable->rowCount(); ++row){
for(int column=0; column!=secondTable->columnCount(); ++column){
QString str;
str = secondTable->item(row, column)->text();
if(!str.isEmpty())
out<<int(row)<<int(column)<<str;
}
}
QApplication::restoreOverrideCursor();
return true;
}
void FirstScren7ChFill::load()
{
QString fileName = QFileDialog::getOpenFileName(this);
if (!fileName.isEmpty())
loadFile(secondTable, fileName);
}
bool FirstScren7ChFill::loadFile(QTableWidget *table, const QString &fileName)
{
QFile file(fileName);
if(!file.open(QIODevice::ReadOnly)) {
QMessageBox notLoaded;
notLoaded.setText(tr("Don't load"));
notLoaded.exec();
return false;
}
QDataStream in(&file);
in.setVersion(QDataStream::Qt_4_1);
int row;
int column;
QString str;
QTableWidgetItem *item;
QApplication::setOverrideCursor(Qt::WaitCursor);
while(!in.atEnd()) {
item = new QTableWidgetItem();
in>>row>>column>>str;
item->setText(str);
table->setItem(row, column, item);
}
QApplication::restoreOverrideCursor();
return true;
}
void FirstScren7ChFill::clearTable()
{
for(int row=0; row!=secondTable->rowCount(); ++row){
for(int column=0; column!=secondTable->columnCount(); ++column){
secondTable->item(row, column)->setText(" ");
}
}
}
void FirstScren7ChFill::calcKp()
{
Kp = 0;
for(int column = 0; column!=secondScreen->firstTable->columnCount(); column++) {
float Ei;
float Kpi;
float razn;
float fsr;
float w;
Ei = firstTable->item(column,3)->text().toFloat() - secondTable->item(0,column)->text().toFloat() -
secondTable->item(1,column)->text().toFloat();
razn = Ei - firstTable->item(column, 4)->text().toFloat();
fsr = sqrt(firstTable->item(column,2)->text().toFloat()*2*firstTable->item(column,2)->text().toFloat());
if (razn <= 0) {
float verh;
float niz;
float stepen;
stepen = -0.0043*pow((razn+27.3),2.0);
verh = 0.78 + 5.46*pow(e,stepen);
niz = 1 + pow(10.0,-razn/10);
Kpi = verh/niz;
}
if(fsr <= 400) {
float fn;
float fv;
fn = firstTable->item(column,2)->text().toFloat();
fn = 2.57*pow(10.0,-8.0)*pow(fn,2.4);
fv = firstTable->item(column,2)->text().toFloat();
fv = 2.57*pow(10.0,-8.0)*pow(2*fv,2.4);
w = fv - fn;
}
else {
float stepen;
float fn;
float fv;
stepen = pow(10.0, -4.0)*pow(firstTable->item(column,2)->text().toFloat(),1.18);
fn = 1 - 1.074*pow(e, - stepen);
stepen = pow(10.0, -4.0)*pow(2*firstTable->item(column,2)->text().toFloat(),1.18);
fv = 1 - 1.074*pow(e, - stepen);
w = fv - fn;
}
Kp = Kp + Kpi*w;
QTableWidgetItem *item1 = new QTableWidgetItem;
QTableWidgetItem *item2 = new QTableWidgetItem;
QTableWidgetItem *item3 = new QTableWidgetItem;
QTableWidgetItem *item4 = new QTableWidgetItem;
item1->setText(QString::number(Ei));
item2->setText(QString::number(fsr));
item3->setText(QString::number(Kpi));
item4->setText(QString::number(w));
secondScreen->firstTable->setItem(0,column,item1);
secondScreen->firstTable->setItem(1,column,item2);
secondScreen->firstTable->setItem(2,column,item3);
secondScreen->firstTable->setItem(3,column,item4);
}
secondScreen->Kp->setText("Kp = " + QString::number(Kp));
calcW();
}
void FirstScren7ChFill::calcW()
{
float S;
float WotS;
float stepen;
float WotKp;
if(Kp < 0.15)
S = 4*pow(Kp,1.43);
if(Kp >= 0.15 && Kp < 0.7)
S = 1.1*(1 - 1.17*pow(e,-2.9*Kp));
if(Kp >= 0.7)
S = 1.01*(1 - 9.1*pow(e,-6.9*Kp));
secondScreen->S->setText("S = " + QString::number(S));
stepen = -6.15*S/(1+S);
WotS = 1.05*(1 - pow(e, stepen));
secondScreen->WotS->setText("W(S) = " + QString::number(WotS));
if(Kp < 0.15)
WotKp = 1.54*pow(Kp, 0.25)*(1 - pow(e, -11*Kp));
if(Kp >= 0.15){
stepen = -11*Kp/(1 + 0.7*Kp);
WotKp = 1 - pow(e, stepen);
}
secondScreen->WotKp->setText("W(Kp) = " + QString::number(WotKp));
}
Листинг 6 - Содержимоефайла secondscreen7ch.h
// Заголовочныйфайлдля secondscreen7ch.cpp
#ifndef SECONDSCREEN7CH_H
#define SECONDSCREEN7CH_H
#include <QDialog>
#include <QtGui>
class SecondScren7ChFill : public QDialog
{
Q_OBJECT
public:
SecondScren7ChFill();
QTableWidget *firstTable;
QLabel *Kp;
QLabel *S;
QLabel *WotS;
QLabel *WotKp;
private:
QVBoxLayout *mainLayout;
};
#endif // SECONDSCREEN7CH_H
Листинг 7 - Содержимоефайла secondscreen7ch.cpp
// Целью данного программного кода является вывод результатов расчета в виде таблицы на экран
#include <QtGui>
#include <secondscreen7ch.h>
SecondScren7ChFill::SecondScren7ChFill()
{
firstTable = new QTableWidget;
firstTable->setRowCount(4);
firstTable->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
firstTable->setColumnCount(7);
firstTable->verticalHeader()->setResizeMode(QHeaderView::Stretch);
firstTable->setEditTriggers(0);
for(int row=0; row!=firstTable->rowCount(); ++row) {
firstTable->setRowHeight(row,21);
}
for(int column=0; column!=firstTable->columnCount(); ++column) {
firstTable->setColumnWidth(column,100);
}
QStringList firstLabels;
firstLabels<<"Ei, dB"<<"fcpi, Hz"<<"Kpi, dB"<<"w";
firstTable->setVerticalHeaderLabels(firstLabels);
Kp = new QLabel;
S = new QLabel;
WotS = new QLabel;
WotKp = new QLabel;
mainLayout = new QVBoxLayout;
mainLayout->addWidget(firstTable);
mainLayout->addWidget(Kp);
mainLayout->addWidget(S);
mainLayout->addWidget(WotS);
mainLayout->addWidget(WotKp);
setLayout(mainLayout);
resize(750,240);
setWindowTitle(tr("Calculation results"));
}
Размещено на Allbest.ru
Подобные документы
Методы защиты речевой информации. Технические средства и системы защиты. Проведение оценки защищенности защищаемого помещения. Установка средств защиты информации, предотвращающих утечку информации по акустическому и виброакустическому каналу связи.
дипломная работа [3,4 M], добавлен 01.08.2015Проект оснащения организации техническими средствами защиты информации. Стоимость технических средств, позволяющих предотвратить утечку акустической информации за пределы контролируемого помещения и обеспечить конфиденциальность переговоров и совещаний.
дипломная работа [2,1 M], добавлен 06.08.2013Исследование плана помещения и здания в целом. Технические каналы утечки речевой информации: виброакустический и акустооптический. Перехват наводок информационных сигналов. Оценка рисков информационной безопасности. Технические мероприятия по защите.
курсовая работа [1,9 M], добавлен 26.11.2014Виды, распространение звуковых волн. Классификация акустических каналов утечки информации. Ее защита в выделенных помещениях. Оценка защищенности ограждающих конструкций помещения деканата факультета ИСиТ от утечки информации по виброакустическому каналу.
курсовая работа [643,0 K], добавлен 22.04.2011Физическая целостность информации. Система защиты информации. Установка средств физической преграды защитного контура помещений. Защита информации от утечки по визуально-оптическим, акустическим, материально-вещественным и электромагнитным каналам.
курсовая работа [783,9 K], добавлен 27.04.2013Классификация каналов утечки информации, виды угроз. Основные принципы и средства обеспечения информационной безопасности. Методы предотвращения утечки, утраты, хищения, искажения, подделки информации и других несанкционированных негативных воздействий.
реферат [515,2 K], добавлен 03.04.2017Характеристики объектов защиты и требования к ним. Выявление каналов утечки и требования по защите. Средства защиты и их размещение. Альтернативная система защиты информации комплексным экранированием. Экранированные сооружения, помещения, камеры.
курсовая работа [2,1 M], добавлен 16.04.2012Возможные каналы утечки информации. Особенности и организация технических средств защиты от нее. Основные методы обеспечения безопасности: абонентское и пакетное шифрование, криптографическая аутентификация абонентов, электронная цифровая подпись.
курсовая работа [897,9 K], добавлен 27.04.2013Анализ подходов по защите от утечки конфиденциальной информации. Разработать программный модуль обнаружения текстовых областей в графических файлах для решения задач предотвращения утечки конфиденциальной информации. Иллюстрация штрихового фильтра.
дипломная работа [12,8 M], добавлен 28.08.2014Анализ источников сигналов и видов акустических каналов защищаемой информации. Распространение и поглощение звуковых волн. Технические каналы утечки акустических данных. Модель угроз для информации через вибро- и электроакустический, оптический каналы.
дипломная работа [1,3 M], добавлен 05.07.2012