Разработка программного обеспечения для формирования базы данных для государственной итоговой аттестации 9 классов
Разработка информационного обеспечения для формирования базы данных для государственной итоговой аттестации 9 классов. Обзор методов репликации и синхронизации баз данных. Преимущества алгоритма шифрования Rijndael. СУБД Microsoft SQL Server и Firebird.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 27.06.2012 |
Размер файла | 3,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Раздел MMMMMMMMMMMMMMMMMMMMMMMMMMMCMXCV Раздел IV Разработка информационного обеспечения
4.1.1 Схема базы
Схема базы представлена на рисунке 1:
Рисунок 1 Схема базы данных
4.1.2 Описание таблиц и полей
Таблица REGION_TABLE хранит информацию о регионе
Name |
Data type |
Not null |
Description |
|
ID |
VARCHAR(36) |
T |
Идентификатор (уникальный ключ) |
|
REGION |
INTEGER |
T |
Номер региона |
|
NAME |
VARCHAR(255) |
T |
Название |
|
LAW_ADDRESS |
VARCHAR(255) |
T |
Фактический адрес |
|
ADDRESS |
VARCHAR(255) |
T |
Юридический адрес |
|
FIO |
VARCHAR(255) |
T |
ФИО |
|
PHONES |
VARCHAR(255) |
T |
Телефон |
|
FAX |
VARCHAR(255) |
T |
Факс |
|
MAILS |
VARCHAR(255) |
T |
|
Таблица ATE_TABLE содержит информацию об АТЕ (административно-территориальная единица)
Name |
Data type |
Not null |
Description |
|
ID |
VARCHAR(36) |
T |
Идентификатор (уникальный ключ) |
|
CODE |
INTEGER |
T |
Код АТЕ |
|
NAME |
VARCHAR(255) |
T |
Название |
|
LAW_ADDRESS |
VARCHAR(255) |
T |
Фактический адрес |
|
ADDRESS |
VARCHAR(255) |
Юридический адрес |
||
CHARGE_FIO |
VARCHAR(150) |
T |
ФИО председателя |
|
PHONES |
VARCHAR(80) |
T |
Телефон |
|
MAILS |
VARCHAR(255) |
|
||
WWW |
VARCHAR(255) |
Адрес сайта |
||
ISDELETED |
INTEGER |
T |
Признак удаления записи (по умолчанию 0) |
|
F_R |
VARCHAR(36) |
T |
Регион (внешний ключ) |
Таблица GOVERNMENTS_TABLE содержит информацию об МОУО (муниципальный орган управления образованием)
Name |
Data type |
Not null |
Description |
|
ID |
VARCHAR(36) |
T |
Идентификатор (уникальный ключ) |
|
F_ATE |
VARCHAR(36) |
T |
АТЕ, которому принадлежит МОУО (внешний ключ) |
|
CODE |
INTEGER |
T |
Код МОУО |
|
NAME |
VARCHAR(255) |
T |
Название |
|
LAW_ADDRESS |
VARCHAR(255) |
T |
Фактический адрес |
|
ADDRESS |
VARCHAR(255) |
Юридический адрес |
||
CHARGE_FIO |
VARCHAR(150) |
T |
ФИО руководителя МОУО |
|
PHONES |
VARCHAR(80) |
T |
Телефон |
|
MAILS |
VARCHAR(80) |
T |
|
|
WWW |
VARCHAR(255) |
Адрес сайта |
||
CHARGE_POSITION |
VARCHAR(150) |
T |
Должность руководителя МОУО |
|
FAXES |
VARCHAR(80) |
T |
Факс |
|
SPECIALIST_FIO |
VARCHAR(150) |
T |
ФИО специалиста ответственного за проведение ГИА в МОУО |
|
SPECIALIST_MAILS |
VARCHAR(80) |
e-mail специалиста ответственного за проведение ГИА в МОУО |
||
SPECIALIST_PHONES |
VARCHAR(255) |
T |
Телефон специалиста ответственного за проведение ГИА в МОУО |
|
DELETE_TYPE |
INTEGER |
T |
Признак удаления записи |
|
CREATE_DATE |
TIMESTAMP |
T |
Дата создания записи |
|
UPDATE_DATE |
TIMESTAMP |
T |
Дата обновления записи |
|
IMPORT_CREATE_DATE |
TIMESTAMP |
Дата создания импортирования |
||
IMPORT_UPDATE_DATE |
TIMESTAMP |
Дата обновления импортирования |
Таблица OU_TABLE содержит информацию об ОУ (образовательное учреждение)
Name |
Data type |
Not null |
Description |
|
ID |
VARCHAR(36) |
T |
Идентификатор (уникальный ключ) |
|
GOVERNMENT_ID |
VARCHAR(36) |
T |
МОУО, которому принадлежит ОУ (внешний ключ) |
|
CODE |
INTEGER |
T |
Код ОУ |
|
NAME |
VARCHAR(255) |
T |
Название |
|
FK_SOU |
INTEGER |
T |
Вид ОУ (внешний ключ) |
|
FK_LF |
INTEGER |
T |
Тип собственности(внешний ключ) |
|
FK_TL |
INTEGER |
T |
Тип населенного пункта (внешний ключ) |
|
LAW_ADDRES |
VARCHAR(255) |
T |
Фактический адрес |
|
ADDRESS |
VARCHAR(255) |
Юридический адрес |
||
DPOSITION |
VARCHAR(150) |
T |
Должность руководителя |
|
FIO |
VARCHAR(150) |
T |
ФИО |
|
PHONES |
VARCHAR(80) |
T |
Телефон |
|
FAXS |
VARCHAR(80) |
Факс |
||
MAILS |
VARCHAR(255) |
T |
|
|
CHARGEFIO |
VARCHAR(150) |
T |
Фамилия руководителя |
|
WWW |
VARCHAR(255) |
Адрес сайта |
||
DELETE_TYPE |
INTEGER |
T |
Признак удаления записи |
|
SHORT_NAME |
VARCHAR(255) |
T |
Краткое наименование |
|
FK_L |
INTEGER |
T |
Город/Район (внешний ключ) |
|
CREATE_DATE |
TIMESTAMP |
T |
Дата создания записи |
|
UPDATE_DATE |
TIMESTAMP |
T |
Дата обновления записи |
|
IMPORT_CREATE_DATE |
TIMESTAMP |
Дата создания импортирования |
||
IMPORT_UPDATE_DATE |
TIMESTAMP |
Дата обновления импортирования |
Таблица CLASS_TABLE содержит информацию о классах.
Name |
Data type |
Not null |
Description |
|
ID |
VARCHAR(36) |
T |
Идентификатор (уникальный ключ) |
|
NUMBER |
VARCHAR(2) |
T |
Класс |
|
LITERA |
VARCHAR(10) |
Литера класса |
||
FK_OU |
VARCHAR(36) |
T |
ОУ, которому принадлежит класс (внешний ключ) |
|
CREATE_DATE |
TIMESTAMP |
T |
Дата создания записи |
|
UPDATE_DATE |
TIMESTAMP |
T |
Дата обновления записи |
|
IMPORT_CREATE_DATE |
TIMESTAMP |
Дата создания импортирования |
||
IMPORT_UPDATE_DATE |
TIMESTAMP |
Дата обновления импортирования |
||
DELETE_TYPE |
INTEGER |
T |
Признак удаления записи |
Таблица STUDENT_TABLE содержит информацию об участниках ГИА
Name |
Data type |
Not ull |
Description |
|
ID |
VARCHAR(36) |
T |
Идентификатор (уникальный ключ) |
|
CODE |
VARCHAR(16) |
T |
Код участника |
|
SURNAME |
VARCHAR(80) |
T |
Фамилия |
|
NAME |
VARCHAR(80) |
T |
Имя |
|
SECONDNAME |
VARCHAR(80) |
Отчество |
||
DOCUMENT_SERIES |
VARCHAR(9) |
Серия документа |
||
DOCUMENT_NUMBER |
VARCHAR(10) |
Номер документа |
||
FK_DT |
INTEGER |
T |
Тип документа (внешний ключ) |
|
SEX |
INTEGER |
T |
Пол участника |
|
PCLASS |
VARCHAR(50) |
T |
Класс |
|
BIRTH_DAY |
TIMESTAMP |
T |
Дата рождения |
|
DELETE_TYPE |
INTEGER |
T |
Признак удаления записи |
|
FK_SC |
INTEGER |
T |
Категория участника (внешний ключ) |
|
FK_OU |
VARCHAR(36) |
T |
ОУ, которому принадлежит участник (внешний ключ) |
|
FK_FT |
INTEGER |
T |
Форма обучения (внешний ключ) |
|
CREATE_DATE |
TIMESTAMP |
T |
Дата создания записи |
|
UPDATE_DATE |
TIMESTAMP |
T |
Дата обновления записи |
|
IMPORT_CREATE_DATE |
TIMESTAMP |
Дата создания импортирования |
||
IMPORT_UPDATE_DATE |
TIMESTAMP |
Дата обновления импортирования |
||
FK_CLASS |
VARCHAR(36) |
T |
Класс, которому принадлежит участник (внешний ключ) |
|
FK_CITIZENSHIP |
INTEGER |
T |
Гражданство (внешний ключ) |
Таблица CITIZENSHIP_TABLE содержит справочную информацию о гражданстве участника
Name |
Data type |
Not null |
Description |
|
ID |
INTEGER |
T |
Идентификатор (первичный ключ) |
|
NAME |
VARCHAR(20) |
T |
Название |
Таблица DAYSEXAMS_TABLE содержит данные о днях проведения экзаменов
Name |
Data type |
Not null |
Description |
|
ID |
INTEGER |
T |
Идентификатор (первичный ключ) |
|
DATE_DAY |
DATE |
T |
Дата проведения экзамена |
|
FK_SUBJECT |
INTEGER |
T |
Идентификатор (уникальный ключ) |
|
IS_FINAL_EXAM |
SMALLINT |
|||
IS_CANCEL_EXAM |
SMALLINT |
|||
PATH_TO_FOLDER |
VARCHAR(300) |
|||
PATTERN_AB |
VARCHAR(50) |
|||
PATTERN_C |
VARCHAR(50) |
Таблица DOCUMENTSTYPE_TABLE содержит справочную информацию о типах документов
Name |
Data type |
Not null |
Description |
|
ID |
INTEGER |
T |
Идентификатор (первичный ключ) |
|
NAME |
VARCHAR(255) |
T |
Название |
Таблица FORMTRAININGTABLE содержит справочную информацию о формах обучения
Name |
Data type |
Not null |
Description |
|
FTID |
INTEGER |
T |
Идентификатор (первичный ключ) |
|
NAMEFT |
VARCHAR(50) |
T |
Название |
Таблица LEGALFORM_TABLE содержит справочную информацию о типах собственности
Name |
Data type |
Not null |
Description |
|
ID |
INTEGER |
T |
Идентификатор (первичный ключ) |
|
CODE |
INTEGER |
T |
Код |
|
NAME |
VARCHAR(75) |
T |
Название |
Таблица LEVEL_TABLE содержит справочную информацию об уровне доступа к БД.
Name |
Data type |
Not null |
Default |
Description |
|
LEVELDB |
INTEGER |
T |
-1 |
Уровень доступа к БД (Регион, АТЕ, ОУ) |
Таблица LOCALITY_TABLE содержит справочную информацию о местоположении ОУ (город или район)
Name |
Data type |
Not null |
Description |
|
LOCALITYID |
INTEGER |
T |
Идентификатор (первичный ключ) |
|
REGION |
INTEGER |
T |
Номер региона |
|
NAME |
VARCHAR(255) |
T |
Название |
|
OCATO |
VARCHAR(50) |
OCATO |
Таблица STATEOU_TABLE содержит справочную информацию о видах ОУ
Name |
Data type |
Not null |
Description |
|
ID |
INTEGER |
T |
Идентификатор (первичный ключ) |
|
FK_TOU |
INTEGER |
T |
Тип ОУ (внешний ключ) |
|
CODE |
INTEGER |
T |
Код |
|
NAME |
VARCHAR(150) |
T |
Название |
Таблица STUDENTCATEGORIES_TABLE содержит справочную информацию о категориях участников.
Name |
Data type |
Not null |
Description |
|
ID |
INTEGER |
T |
Идентификатор (первичный ключ) |
|
CODE |
INTEGER |
T |
Код |
|
NAME |
VARCHAR(255) |
T |
Название |
Таблица STUDEXAM_TABLE содержит данные об экзаменах, которые выбрали участники
Name |
Data type |
Not null |
Description |
|
ID |
INTEGER |
T |
Идентификатор (первичный ключ) |
|
FK_DE |
INTEGER |
T |
Дата экзамена (внешний ключ) |
|
FK_STUDENT |
VARCHAR(36) |
T |
Участник (внешний ключ) |
|
MARK |
INTEGER |
Оценка участника |
Таблица SUBJECT_TABLE содержит справочную информацию о предметах ГИА
Name |
Data type |
Not null |
Description |
|
ID |
INTEGER |
T |
Идентификатор (первичный ключ) |
|
CODE |
INTEGER |
T |
Код |
|
SUBJECT |
VARCHAR(100) |
T |
Название предмета |
|
MASK_A |
VARCHAR(100) |
|||
MAX_A |
INTEGER |
|||
MASK_B |
VARCHAR(100) |
|||
MAX_B |
INTEGER |
|||
MASK_C |
VARCHAR(100) |
|||
MAX_C |
INTEGER |
|||
MASK_D |
VARCHAR(100) |
|||
MAX_D |
INTEGER |
|||
MAX_CRITERION |
SMALLINT |
|||
MAX_SUM |
SMALLINT |
Таблица TYPELOCALITY_TABLE содержит справочную информацию о типах населенных пунктов
Name |
Data type |
Not null |
Description |
|
ID |
INTEGER |
T |
Идентификатор (первичный ключ) |
|
CODE |
INTEGER |
T |
Код |
|
NAME |
VARCHAR(50) |
Название |
Таблица TYPEOU_TABLE содержит справочную информацию о типах ОУ
Name |
Data type |
Not null |
Description |
|
ID |
INTEGER |
T |
Идентификатор (первичный ключ) |
|
CODE |
INTEGER |
T |
Код |
|
NAME |
VARCHAR(255) |
T |
Название |
4.2 Разработка программного обеспечения
Описаны основные классы и методы в них.
4.2.1 Класс «Регион» (RegionWidget)
Класс предназначен для представления и редактирования информации о регионе.
void saveChanges(); //сохранение изменений
bool getChangedData() //были ли изменены данные
void setBackRequiredFields(); //установка обязательных для заполнения полей
void setRegularExp(); //установка условий проверки вводимых данных
4.2.2 Класс «административно-территориальная единица» (AteTabWidget)
Класс отображения, редактирования или удаления данных по выбранной административно-территориальной единице и муниципальном органе управления образованием.
void setCurrentAte(QTreeWidgetItem * item, int type); //отображает текущий выбранный АТЕ
void saveChanges(); //сохранение изменений
void deleteAte(QTreeWidgetItem *pItem, QTreeWidgetItem *item); //удаление АТЕ
bool getChangedData(); //были ли изменены данные
void setBackRequiredFields(); //установка обязательных для заполнения полей
void setRegularExp(); //установка условий проверки вводимых данных
void createAte(); //создание АТЕ
4.2.3 Класс «образовательное учреждение» (OUtabWidget)
Класс служит для представления, редактирования, удаления данных о выбранном образовательном учреждении.
void setCurrentOu(QTreeWidgetItem * item, int type); //отображает текущий выбранный ОУ
void saveChanges(); //сохранение изменений
void deleteOu(QTreeWidgetItem *pItem, QTreeWidgetItem *item); //удаление ОУ
bool getChangedData(); //были ли изменены данные
void setBackRequiredFields(); //установка обязательных для заполнения полей
void setRegularExp(); //установка условий проверки вводимых данных
void createOu(); //создание ОУ
4.2.4 Редактирование класса (ClassWidget)
Класс для представления и редактирования данных по выбранному классу. Редактирование номера и литеры класса.
void saveChanges(); //сохранение изменений
void setCurrentClass(QTreeWidgetItem * item, int type); //отображает текущий выбранный класс
void deleteClass(QTreeWidgetItem *pItem, QTreeWidgetItem *item);
bool getChangedData(); //были ли изменены данные
void setBackRequiredFields(); //установка обязательных для заполнения полей
void setRegularExp(); //установка условий проверки вводимых данных
void changeStudent(QModelIndex index); //при изменении текущего участника отображаются экзамены, которые им выбраны
4.2.5 Класс «участник» (StudentDialog)
Класс предназначен для представления, редактирования и удаления данных по выбранному участнику. Осуществлена проверка выбора одинаковых дней для нескольких экзаменов.
void setCurrentStudent(QTreeWidgetItem *item, int type); //отображает текущего выбранного участника
void deleteStudent(QTreeWidgetItem *pItem, QTreeWidgetItem *item);
void saveChanges(); //сохранение изменений
bool getChangedData(); //были ли изменены данные
void setBackRequiredFields(); //установка обязательных для заполнения полей
void setRegularExp(); //установка условий проверки вводимых данных
void updateRecord(); //сохранение изменений
void cancelUpdate(); //отменяет изменения в данных об участнике
void createStudent(); //создание записи об участнике
void dataChangedStudent(const QModelIndex &topLeft, const QModelIndex &bottomRight);
bool checkDateExam(int index); //проверка совпадения дат экзаменов
4.2.6 Класс «создание отчетов» (createReports)
Класс для создания отчета в формате xlsx по выбранной административно-территориальной единице или образовательном учреждении.
void setBorders(QAxObject *sheet, const QString &range);
//установка границ для диапазона ячеек
void setStyle(QAxObject *sheet, const QString &range, QString text, bool isBold = false,
int fontSize = 10, int hAlignment = 3, int vAlignment = 2, bool wrapText = false,
int Orientation = 0, bool isBordered = false);
//установка стиля для диапазона ячеек
void createReportAte(const QString &idATE, const QString fileName);
//создание отчета для АТЕ и сохранение в excel файл с именем fileName
void createReportOu(const QString &idOU, const QString &fileName);
//создание отчета для ОУ и сохранение в excel файл с именем fileName
void createReportClasses(QAxObject *sheet, QSqlQueryModel *modelStudents, QSqlQueryModel *modelSubjects, const QString &idClass, const QString &nameOU, const QString &codeOU, const QString &nameClass, const QString &chargefio, const QString &dposition);
//создание отчета для класса и сохранение в excel файл с именем filename
4.2.7 Класс «загрузка данных» (loadDialog)
Класс предназначен для загрузки данных об административно территориальных единицах, муниципальных органах управления образованием, образовательных учреждениях, классах, участниках и выбранных участниками экзаменах. Загрузка производится из зашифрованного файла.
void readFromXML(const QString &fileName); //чтение информации об АТЕ, ОУ, классах, участниках и выбранных экзаменах из зашифрованного файла
4.2.8 Класс «выгрузка данных» (unloadDialog)
Класс записи данных об административно-территориальных единицах, муниципальных органах управления образованием, образовательных учреждениях, классах, участниках и выбранных участниками экзаменах. Выгрузка данных производится в зашифрованный файл. Также в этом классе реализованы методы экспортирования данных в новый файл базы данных.
void searchIdRecords(QString id, int tUnit);//поиск АТЕ или ОУ по id
void writeToXML(const QString &fileName, QString id); //запись данных в зашифрованный XML файл
void exportData();//экспортирование данных из текущей базы в зашифрованный XML файл, либо в новый файл базы данных
4.2.9 Класс шифрования данных (myCrypto)
Класс, реализующий шифрование и дешифрование информации.
QString encrypt(const QString & strToEncrypt); //шифрование информации по алгоритму AES
QString decrypt(const QString & strToDecrypt); //дешифрование данных по алгоритму AES
Раздел V Руководство пользователя
Руководство пользователя по работе приложением ГИА для уровня «Регион»
5.1 Системные требования
-Операционная система Microsoft® Windows® 2000/XP/Vista/7
-256мб оперативной памяти;
-34,04 МБ свободного места на жестком диске;
-наличие ODBC драйвера для подключения к SQL Server.
5.2 Установка
Запустите инсталлятор GIA-1.5.0.6Region.exe и выберите путь для установки приложения (рис.1).
Рисунок 2 Выбор места установки приложения
5.3 Запуск приложения
В меню Пуск-Все программы-ГИА запустите программу, после подключения к локальной БД будет показано главное окно приложения (рис. 2).
Рисунок 3 Главное окно приложения
5.4 Работа с программой
5.4.1 Описание меню
Для уровня «Регион» доступно 3 меню: Файл, Справочные таблицы, Поиск.
В меню «Файл» доступны следующие подменю (рис. 3)
Рисунок 4 Меню Файл
1. «Выгрузка для» позволяет создать файлы баз данных для административных единиц ниже уровня региона (АТЕ, ОУ). Данные будут выгружены по выбранным пользователем АТЕ или ОУ, которые затем можно разослать по соответствующим учреждениям.
2. «Экспорт» также позволяет сделать выгрузку данных по АТЕ или ОУ в зашифрованном файле с расширением *.xmlEnc. Экспортирование данных позволяет обмен данными между учреждениями для обновления информации по АТЕ, ОУ, классам, участникам ГИА, а также выбранным экзаменам участниками.
3. «Импорт». Нужен для загрузки данных из файла с расширением *.xmlEnc и добавления/удаления/обновления данных.
4. «Загрузить CSV-файлы». Загрузка в файл БД записей.
5. «Загрузить таблицы из Sql Server». Подключение к базе данных SQL Server и выгрузка данных в таблицы локальной БД.
В меню «Справочные таблицы» доступные все вспомогательные таблицы БД, которые можно редактировать (добавление удаление обновление).
Список доступных таблиц показан на рисунке 4.
Рисунок 5 Справочные таблицы
В меню «Поиск» только один пункт, который позволяет выполнить простейшие способы поиска записей в таблицах.
На панель инструментов для удобства добавлены кнопки «Поиск», «Сохранить» и «Создание отчетов»(рис. 5).
Рисунок 6 панель инструментов
5.4.2 Доступные операции при работе с ПО
Главное окно программы разделено на две части. В левой половине показана иерархия АТЕ, ОУ, классов и участников в виде дерева. В правой отображается информация по выбранному элементу дерева.
Переключение между пунктами в дереве позволяет посмотреть информацию, либо произвести редактирование. В случае если данные были изменены, перед переходом к другому элементу в дереве пользователю будет задан вопрос о сохранении данных, либо отмене. Для сохранения изменений можно воспользоваться кнопкой «Сохранить» на панели инструментов (рис. 6).
Рисунок 7 Запрос на сохранение изменений
Доступны функции добавления/удаления АТЕ, ОУ, класса или участника ГИА. Чтобы воспользоваться какой-либо из доступных действий, необходимо выбрать элемент в дереве и сделать клик правой кнопкой после чего будет доступно одно из нескольких видов контекстного меню (зависит от уровня выбранного элемента). Все виды доступных контекстных меню показаны на рисунке ниже
Рисунок 8 Пункты меню для разных уровней (Регион-АТЕ-ОУ-Класс Участник)
Чтобы назначить участнику экзамены, нужно сначала создать самого участника, ввести основную информацию по нему (ФИО, дата рождения, паспортные данные), затем перейти к нему. После создания участника список экзаменов пуст, чтобы назначить день, надо около названия предмета включить галочку, которая покажет список доступных дат для выбранного предмета (рис. 8).
Рисунок 9 Назначение экзаменов участнику
Заключение
В результате прохождения преддипломной практики было проведено ознакомление со структурой предприятия и разработано программное обеспечение для формирования базы данных для государственной итоговой аттестации 9 классов.
Основные возможности:
· Работа с данными административно-территориальных единиц, муниципальных органов управления образованием, образовательных учреждений и участников ГИА;
· Распределение данных по административно-территориальным единицам и образовательным учреждениям;
· * Репликация данных при передаче между приложениями разных уровней: Регион и АТЕ; Регион и ОУ; АТЕ и ОУ;
· * Передача данных в зашифрованном виде;
· * Формирование отчетных документов в формате xlsx о выбранных экзаменах участниками по АТЕ или ОУ;
· * Экспортирование и импортирование данных об административно-территориальной единице в РЦОИ
Список литературы
1. Trolltech. Databases with Qt.Англ., 2001г - 137 с.
2. Федеральные Стандарты Обработки Информации (FIPS). FIPS 197. Англ., 2001г - 47с.
3. Хелен Борри. Firebird: Руководство разработчика баз данных. Пер. с англ, 2-е издание - М.: Издательство БХВ-Петербург, 2007 г.
4. Бланшет Ж., Саммерфилд М. Qt 4: программирование GUI на C++. Пер. с англ. 2-е изд., доп. - М.: КУДИЦ-ПРЕСС, 2008 г. - 736 с.
5. Рябков Н.С.. Аналитический обзор методов репликации и синхронизации баз данных - Качество. Инновации. Образование: Издательство Европейский центр по качеству, 2006 г.- 56-63 с.
6. Под ред. Гладченко А., Щербинина В. Репликация SQL Server 2005/2008. Сборник статей от сообщества - М.: ЭКОМ Паблншерз, 2008 г. - 288 с.
7. Форум разработчиков Qt http://www.qtcentre.org/forum/
8. Html документация по работе с QCA QPI http://delta.affinix.com/qca/
Приложение
Код класса myCrypto для шифрования/дешифрования данных
myCrypto::myCrypto(QObject *parent) :
QObject(parent)
{
sizeBlock = 15; //размер блока данных
sKey = "*************************"; //секретный ключ
}
//метод класса для шифрования блока данных
//в качестве результата метод возвращает зашифрованную строку
QString myCrypto::encrypt(const QString &strToEncrypt)
{
//инициализация
QCA::Initializer init;
//переводим строку в массив байт для шифрования
QCA::SecureArray arg = QVariant(strToEncrypt).toByteArray();
QString res;
// проверяем наличие поддержки алгоритма шифрования AES128
if (QCA::isSupported("aes128-cbc-pkcs7"))
{
//преобразования над ключом
//для того, чтобы затруднить взлом ключа
QStringList lst = sKey.split("-");
lst = lst.replaceInStrings("c", "s");
lst.removeAt(0);
lst.removeAt(5);
//создаем ключ
QCA::SymmetricKey key(QVariant(lst.join(".")).toByteArray());
//Создаем случайный инициализирующий вектор
QCA::InitializationVector iv(QVariant(lst.join(">")).toByteArray());
QCA::Cipher cipher(QString("aes128"), QCA::Cipher::CBC, QCA::Cipher::DefaultPadding,
QCA::Encode, key, iv);
QCA::SecureArray u = cipher.update(arg);
if (!cipher.ok())
{
qCritical(QString("строка: 43; модуль: mycrypto.cpp; Ошибка при вызове объекта cipher;\r\n").toAscii());
return res;
}
QCA::SecureArray f = cipher.final();
if (!cipher.ok())
{
qCritical(QString("строка: 50; модуль: mycrypto.cpp; Ошибка при вызове объекта cipher;\r\n").toAscii());
return res;
}
res = QString(QCA::arrayToHex(f.toByteArray()));//QString(f.data());
} else {
qCritical(QString("строка: 55; модуль: mycrypto.cpp; Ошибка при вызове объекта cipher;\r\n").toAscii());
QMessageBox::critical(0, "", "Не поддерживается шифрование. Сообщите разработчику об этой ошибке", QMessageBox::Ok);
}
return res;
}
QString myCrypto::decrypt(const QString &strToDecrypt)
{
//инициализация
QCA::Initializer init;
//переводим строку в массив байт для шифрования
QCA::SecureArray arg = QCA::hexToArray(strToDecrypt);
QString res;
// проверяем наличие поддержки алгоритма шифрования AES128
if (QCA::isSupported("aes128-cbc-pkcs7"))
{
//преобразования над ключом
//для того, чтобы затруднить взлом
QStringList lst = sKey.split("-");
lst = lst.replaceInStrings("c", "s");
lst.removeAt(0);
lst.removeAt(5);
//создаем ключ
QCA::SymmetricKey key(QVariant(lst.join(".")).toByteArray());
//Создаем случайный инициализирующий вектор
QCA::InitializationVector iv(QVariant(lst.join(">")).toByteArray());
QCA::Cipher cipher(QString("aes128"), QCA::Cipher::CBC, QCA::Cipher::DefaultPadding,
QCA::Decode, key, iv);
QCA::SecureArray u = cipher.update(arg);
if (!cipher.ok())
{
qCritical(QString("строка: 92; модуль: mycrypto.cpp; Ошибка при вызове объекта cipher;\r\n").toAscii());
return res;
}
QCA::SecureArray f = cipher.final();
if (!cipher.ok())
{
qCritical(QString("строка: 99; модуль: mycrypto.cpp; Ошибка при вызове объекта cipher;\r\n").toAscii());
return res;
}
res = QString(f.data());
} else {
qCritical(QString("строка: 104; модуль: mycrypto.cpp; Ошибка при вызове объекта cipher;\r\n").toAscii());
QMessageBox::critical(0, "", "Не поддерживается шифрование. Сообщите разработчику об этой ошибке", QMessageBox::Ok);
}
return res;
}
Размещено на Allbest.ru
Подобные документы
Программные продукты, используемые при проектировании базы данных. Разработка базы данных "Библиотека" с использование программного проекта Microsoft SQL Server. Создание таблиц, триггеров, пользователей, репликации, запросов, функций, процедур.
курсовая работа [897,6 K], добавлен 21.11.2011Разработка базы данных средствами СУБД Microsoft SQL Server 2008. Исследование понятия первичного и внешнего ключа. Реляционные отношения между таблицами базы данных. Ссылочная целостность и каскадные воздействия. Проектирование запросов и триггеров.
курсовая работа [1,0 M], добавлен 27.05.2015Разработка прикладного программного продукта, позволяющего автоматизировать сдачу итоговой государственной аттестации, а также экзаменов и зачетов по специальности 230106 "Техническое обслуживание средств вычислительной техники и компьютерных сетей".
дипломная работа [25,7 M], добавлен 07.11.2013Процесс поступления пациента в больницу. Программное обеспечение, используемое в разработке. Обзор Borland Delphi7, MS SQL Server 2008. Динамическое изменение и расширение структуры базы данных. Обоснование выбора СУБД и программного обеспечения.
курсовая работа [875,4 K], добавлен 21.04.2013Разработка базы данных, содержащей информацию, необходимую Государственной инспекции по маломерным судам для выдачи билетов владельцам судов. Особенности создания файла и диаграмм базы данных, SQL-запросов. Объекты информационной модели и их свойства.
курсовая работа [1,3 M], добавлен 24.10.2012Освоение сервисной системы управления базами данных Microsoft SQL. Разработка базы данных "Служба АТС" в среде Microsoft SQL Server Management Studio и создание запросов на языке SQL. Апробация инфологической модели "сущность - связь" базы данных.
курсовая работа [2,9 M], добавлен 29.06.2015Обзор и сравнительная характеристика программного обеспечения для создания СУБД. Принципы организации данных. Основные возможности MS Access. Разработка структуры и реализация средствами SQL базы данных для учета заказов, наличия и продажи автозапчастей.
курсовая работа [2,5 M], добавлен 27.05.2013Концептуальная модель базы данных "Бюро по трудоустройству". Разработка информационного и программного обеспечения объектов автоматизации. Реализация базы данных в СУБД MsAccess. Запросы к базе данных. Таблицы, отчеты и макросы. Интерфейс пользователя.
курсовая работа [5,2 M], добавлен 30.05.2016Информационные задачи и круг пользователей системы. Выработка требований и ограничений. Разработка проекта базы данных. Программная реализация проекта базы данных. Разработка хранимых процедур для поддержки сложных ограничений целостности в базе данных.
курсовая работа [706,2 K], добавлен 17.06.2012Концептуальное проектирование базы данных: разработка схемы и структуры таблиц, описание атрибутов. Реализация базы данных в среде СУБД MS SQL Server 2000. Основные принципы создания таблиц. Доступ и обработка данных с помощью утилиты Enterprise Manager.
курсовая работа [3,8 M], добавлен 22.01.2013