Генератор заданий для вычислительной практики

Функциональное и эксплуатационное назначение генератора. Требования к составу и параметрам технических средств. Информационная и программная совместимость. Результирующие компоненты изделия. Безопасность и секретность. Удобства эксплуатации, мобильность.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 07.03.2013
Размер файла 2,1 M

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

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

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

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

Задание на курсовую работу

1.Тема Генератор заданий для вычислительной практики

2. Срок предоставления работы (проекта) к защите «__» июня 2011 г.

3. Исходные данные (для проектирования, для научного исследования):

Данные введенные пользователем

4. Содержание пояснительной записки курсовой работы (проекта):

4.1. Содержание

4.3. Техническое задание

4.4. Технический проект

4.5. Рабочий проект

4.6. Список использованных источников

4.7. Приложение

5. Перечень графического материала:

_____________________________________________________________

_____________________________________________________________

Руководитель работы (проекта)

Задание принял к исполнению

Введение

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

Для программного продукта данной курсовой работы операционной средой является система MS-WINDOWS 7 и используемым языком программирования - Borland Builder С++, как наиболее удобный для решения задач высокого уровня; он позволяет легко работать с файлами и содержит большую библиотеку прочих функций.

Программы, написанные на языке C++ (если, конечно, они написаны грамотно), отличаются высокой эффективностью и простым написанием кода, т.е. минимальным объемом работы и максимальной функциональностью. Это обстоятельство обусловило широкое использование языка C++ в тех случаях, когда скорость написание программы имеет ключевое значение.

В целом можно сказать, что знание языка C++ желательно для любого специалиста, которому приходится создавать программы для персонального компьютера, потому что этот язык сочетает в себе высокую эффективность программ и простоту её написания.

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

В данной курсовой работе реализуется программный комплекс "Генератор семестровых заданий для первого курса групп ПО ".

Основания для разработки

Данный программный продукт разрабатывается как задание на курсовую работу по дисциплине "Программное обеспечение на ЯВУ".

Назначение разработки

Функциональное и эксплуатационное назначение изделия

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

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

Программа представлена в виде приложения(*.EXE).

Передача данных должна осуществляться через специальные окошки ввода, такие как Edit, Memo, CSpinEdit и др.

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

Программа имеет «админ панель», для редактирования заданий и настроек программы.

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

Выходные данные представляют собой изображение заданий на экране или печать их в текстовый файл на любой носитель.

Перечень требований пользователя к программному продукту

Данный программный продукт должен предоставлять программу с интуитивно понятным и простым интерфейсом для выдачи заданий студентам.

Рассмотренные альтернативы

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

в связи с конкретными требованиями к программе (см. п. 1.4.3). Были выбраны:

· программно-аппаратная платформа: ОС Windows 7 на базе микропроцессора фирмы Intel.

· средства разработки: компилятор Borland Builder C++ v.6.0.

· средства разработки: компилятор Borland Builder Delphi v.7.0.

Требования к программе или программному изделию

Стандарты

Разработка программной документации и программного изделия должна производиться согласно ГОСТ 19.701-90, ГОСТ 2.304-88. Единая система программной документации.

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

Программное изделие должно работать на компьютере, совместимом с IBM PC, управляемым семейством ОС Window. Для переноса программы не должны требоваться специальные программные и аппаратные средства.

Требования к информационной и программной совместимости

Программное изделие должно быть написано на языке C++ для компилятора Borland Builder C++, и работать под управлением операционной системы MS-Windows XP или более поздней.

Требования к функциональным характеристикам

Требования к структуре программы

Система должна представлять собой одну программу для студента и набор программ для преподавателя.

Входные данные

Входными данными являются:

1) состояние клавиатуры (введенное сочетание клавиш);

2) Состояние мыши.

3) Файлы заданий к программе, файл конфигурации и файл справки.

Выходные данные

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

1) пояснительные сообщения следующего характера:

· состояние отсутствия или неправильности заполнения файлов;

· состояние процессов производимых над файлами;

· информация о возможных вариантах действия пользователя.

2) Задания для семестровых в виде текстовых документов или изображений на экране.

3) Отображение настроек программы.

Процессы обработки

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

· проверка наличия и правильного заполнения требуемых файлов;

· раскодирование файлов для их вывода на экран или в файл;

· кодирование информации для записи её в файл;

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

· нахождение и сравнение хеша пароля для входа в «админ панель»;

· информирование пользователя о процессах работы программы на разных этапах ее выполнения.

Результирующие компоненты изделия

В комплект поставки программного изделия войдут:

1) Исполняемый файл «Задания семестровых 3.2 Final.exe», являющимся ключевым файлом программы.

2) Закодированный файл конфигурации «config.dll», в котором хранятся настройки программы и хеш пароля.

3) Папка с заданиями «задания», содержащая закодированные файлы типа *.z

4) Файл «справка.help», содержащий справку по данной программе и приёмы работы с ней.

5) Файл «Конфигуратор заданий.exe» - ключевой файл программы для быстрого перекодирования заданий из их обычной формы(задания содержались в файлах «1.txt»; «2.txt»; «3.txt»; «4.txt».) в файлы заданий, пригодные для использования главной программой.

6) Файл «редактор конфигурации.exe» - ключевой файл программы для редактирования файла конфигурации, минуя основную программу.

Носители информации

Программное изделие будет размещено в виде группы файлов на диске формата CD-R, либо на жестком диске, либо на флешке USB.

Безопасность и секретность

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

Рестарт

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

Удобства эксплуатации

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

Мобильность

Программный продукт не требует дополнительных средств для переноса. Весь процесс переноса состоит в копировании файлов на электронный носитель информации, переносе их на другой компьютер и копирования с носителя в отдельную папку на постоянном внешнем запоминающем устройстве ЭВМ.

1.1 Требования к программной документации

Программная документация должна включать следующие документы:

1) техническое задание;

2) технический проект;

3) рабочий проект,

4) тесты.

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

Стадии и этапы разработки

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

1) техническое задание;

2) технический проект;

3) рабочий проект.

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

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

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

Порядок контроля и приемки

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

1. Рабочий проект

В данном программном изделии используются технологии работы с файлами.

1.1 Назначение разработки

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

1.2 Требования к программе или программному изделию

1.2.1 Стандарты

Программное изделие выполнено согласно стандартам, указанным в техническом задании в пункте 1.4.1.

1.2.2 Требования к составу и параметрам технических средств

Программное изделие работает на компьютере, совместимом с IBM PC. Программа не требовательна к оперативной памяти.

Вся информация вводится при помощи клавиатуры 101/102. Контроль информации осуществляется при помощи дисплея с видеорежимом не ниже 1024х768х32.

1.2.3 Требования к информационной и программной совместимости

Программное изделие написано на языке C++ для компилятора Borland Builder C++ 6.0, и работает под управлением операционной системы MS-Windows XP SP3 - Windows 8-m3.6955.

1.2.4 Результирующие компоненты изделия

Согласно пункту 1.4.6. технического задания все файлы программы предоставляются на диске формата CD-R.

1.2.5 Безопасность и секретность

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

1.2.6 Рестарт

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

в системе Windows нажать комбинацию клавиш «CTRL+ALT+DEL» и средствами операционной системы прервать программу

И затем заново запустить ее согласно пункту 1.4.8. технического задания.

1.3 Описание модулей

1.3.1 Unit1.cpp

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

1.3.2 Unit2.cpp

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

1.3.3 Unit3.cpp

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

1.3.4 Unit4.cpp

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

1.3.5 Unit5.cpp

В данном модуле реализован механизм выдачи заданий для определённого варианта и года.

1.3.6 Unit6.cpp

Данный модуль служит для восстановления файла конфигурации в случае утери или порчи такового. В нём реализованы механизмы отслеживающие правильность заполнения данных в файл конфигурации.

1.3.7 Unit7.cpp

Данный модуль служит для добавления варианта с заданиями в программу.

1.3.8 Unit8.cpp

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

1.3.9 Unit9.cpp

Данный модуль обслуживает остальные модули и имеет функции: чтения/записи из/в файл(а) с декодирования/кодирования информации.

1.3.10 Unit10.cpp

Данный модуль содержит справку по программе и основные приёмы работы с программой, рекомендации и требования.

1.3.11 Описание основных подпрограмм

Подпрограмма void coding();

Входные данные: Form9->Memo1

Выходные данные: выходными данными является временное помещение кодированных данных в Memo1 на 9ой форме

Процессы обработки: происходит посимвольное кодирование информации.

Подпрограмма void decoding();

Входные данные: Form9->Memo1

Выходные данные: выходными данными является временное помещение декодированных данных в Memo1 на 9ой форме

Процессы обработки: происходит посимвольное декодирование информации.

Подпрограмма void file_read(String s);

Входные данные: файл название которого содержится в s

Выходные данные: является запись данных из файла в Form9->Memo1

Процессы обработки: происходит чтение информации из файла с именем s.

Подпрограмма void file_write(String s);

Входные данные: является запись данных из файла в Form9->Memo1

Выходные данные: файл название которого содержится в s

Процессы обработки: происходит запись информации в файл с именем s.

Подпрограмма protect();

Входные данные: Form2->Memo1

Выходные данные: код ошибки в виде целочисленной переменной

Процессы обработки: происходит проверка данных на соответствование правилам структуры файла, и в случае их не соблюдения выдаётся код на ошибку.

Подпрограмма void write_config() ;

Входные данные: Form2->Memo1

Выходные данные: файл config.dll

Процессы обработки: происходит запись информации в файл config.dll, с предшествующей проверкой его на соответствование правилам структуры файла.

Подпрограмма void read_config();

Входные данные: файл config.dll

Выходные данные: Form2->Memo1

Процессы обработки: происходит чтение информации из файла config.dll, с последующей проверкой его на соответствование правилам структуры файла и занесением данных в переменные настроек.

Текст подпрограмм

Cм. приложение.

1.4 Тестирование

1.4.1 Цель испытаний

Выяснить поведение программы в различных ситуациях, созданных пользователем.

1.4.2 Тесты

Тест №1

Действия: первый запуск программы.

Реакция программы: открывается главное окно программы.

Рисунок 1 Тест №1

Тест №2

Действия: повторный запуск программы.

Реакция программы: открывается второе окно программы. См. рисунок 2.

Рисунок 2. Тест №2

Тест №3

Действия:

1) Выбор задания;

2) Сохранение задания в файл.

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

Рисунок 3. Тест №3

Тест №4

Действия: вход в «админ панель».

Реакция программы: выводится запрос пароля и при удачном вводе происходит вход. См. рисунок 4.

Рисунок 4. Тест №4

Тест №5

Действия: вход в «админ панель» при неправильном вводе пароля.

Реакция программы: выводится сообщение об ошибке ввода пароля. См. рисунок 5.

Рисунок 5. Тест №5

Список использованных источников

генератор программный секретность мобильность

1 Оверленд Брайан - С++ без страха Санкт-Петербург 2001

2 Александреску А. - Современное проектирование на C++ Москва-Санкт-Питербург-Киев 2002

3 Сабуров С. - Языки программирования C и C++ МиК 2006

4 Н. Культин - С++ в задачах и примерах Санкт-Питербург 2005

Приложение

Листинг файла Unit1.cpp

//---------------------------------------------------------------------------

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#include "Unit5.h"

#include "Unit6.h"

#include "Unit9.h"

#include "Unit10.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

int var=0;

String paswd="";

int kof=0;

String paswdhelp="";

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

if (read_config()) exit(1);

else Form3->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{

exit(1);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

if (read_config()) exit(1);

else {

Form5->CSpinEdit1->MaxValue = var;

String s;

DateTimeToString(s,"yyyy",Date());

Form5->CSpinEdit2->Value = StrToInt(s);

Form5->ShowModal();

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

if (read_config()) exit(1);

else

if (SaveDialog1->Execute()){

Form1->Memo1->Lines->SaveToFile(SaveDialog1->FileName);

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)

{

Form6->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button6Click(TObject *Sender)

{

if (FileExists("справка.help")) Form10->Memo1->Lines->LoadFromFile("справка.help");

else Form10->Memo1->Lines->Strings[0] = "не найден файл справки!";

Form10->ShowModal();

}

//---------------------------------------------------------------------------

Листинг файла Unit2.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit2.h"

#include "Unit1.h"

#include "Unit7.h"

#include "Unit8.h"

#include "Unit9.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm2 *Form2;

//---------------------------------------------------------------------------

__fastcall TForm2::TForm2(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

String reads(String s)

{

if (s.Pos("<")) s.Delete(1,s.Pos("<"));

else return "error#2"; //файл конфигурации повреждён!!!

if (s.Pos(">")) s.Delete(s.Pos(">"),s.Length());

else return "error#2"; //файл конфигурации повреждён!!!

if (s!="") return s;

else return "error#1"; //строка пуста

}

//---------------------------------------------------------------------------

read_config()

{

String s;

if (FileExists("config.dll")) {

file_read("config.dll");

Form2->Memo1->Text=Form9->Memo1->Text;

}

else {

ShowMessage("не найден файл конфигуации");

return 1;

}

//------------------количество вариантов

s = reads(Form2->Memo1->Lines->Strings[0]);

if (s=="error#2") {

ShowMessage("Отсутствуют операторные скобки!");

return 1;

}

if (s=="error#1") {

ShowMessage("Отсутствует значение!");

return 1;

}

for (int i=1; i<=s.Length(); i++)

if (s[i]<'0' || s[i]>'9') {

ShowMessage("Неправильный формат!");

return 1;

}

if (s.Length()>9) {

ShowMessage("Недопустимо большое число");

return 2;

}

if (StrToInt(s)<0) {

ShowMessage("Недопустимо малое число");

return 3;

}

var=StrToInt(s);

//------------------пароль админа

s=reads(Form2->Memo1->Lines->Strings[1]);

if (s=="error#2") {

ShowMessage("Отсутствуют операторные скобки!");

return 1;

}

if (s=="error#1") {

ShowMessage("Отсутствует значение!");

return 1;

}

paswd=s;

//-----------------коэффициэнт генерации

s=reads(Form2->Memo1->Lines->Strings[2]);

if (s=="error#2") {

ShowMessage("Отсутствуют операторные скобки!");

return 1;

}

if (s=="error#1") {

ShowMessage("Отсутствует значение!");

return 1;

}

for (int i=1; i<=s.Length(); i++)

if (s[i]<'0' || s[i]>'9') {

ShowMessage("Неправильный формат!");

return 1;

}

if (s.Length()>9) {

ShowMessage("Недопустимо большое число");

return 2;

}

if (StrToInt(s)<0) {

ShowMessage("Недопустимо малое число");

return 3;

}

kof=StrToInt(s);

//------------------подсказка о пароле

s=reads(Form2->Memo1->Lines->Strings[3]);

if (s=="error#2") {

ShowMessage("Отсутствуют операторные скобки!");

return 1;

}

if (s=="error#1") {

ShowMessage("Отсутствует значение!");

return 1;

}

paswdhelp=s;

return 0;

}

//---------------------------------------------------------------------------

write_config()

{

String s;

//------------------количество вариантов

s = reads(Form2->Memo1->Lines->Strings[0]);

if (s=="error#2") {

ShowMessage("Отсутствуют операторные скобки!");

return 1;

}

if (s=="error#1") {

ShowMessage("Отсутствует значение!");

return 1;

}

for (int i=1; i<=s.Length(); i++)

if (s[i]<'0' || s[i]>'9') {

ShowMessage("Неправильный формат!");

return 1;

}

if (s.Length()>9) {

ShowMessage("Недопустимо большое число");

return 2;

}

if (StrToInt(s)<0) {

ShowMessage("Недопустимо малое число");

return 3;

}

var=StrToInt(s);

//------------------пароль админа

s=reads(Form2->Memo1->Lines->Strings[1]);

if (s=="error#2") {

ShowMessage("Отсутствуют операторные скобки!");

return 1;

}

if (s=="error#1") {

ShowMessage("Отсутствует значение!");

return 1;

}

paswd=s;

//-----------------коэффициэнт генерации

s=reads(Form2->Memo1->Lines->Strings[2]);

if (s=="error#2") {

ShowMessage("Отсутствуют операторные скобки!");

return 1;

}

if (s=="error#1") {

ShowMessage("Отсутствует значение!");

return 1;

}

for (int i=1; i<=s.Length(); i++)

if (s[i]<'0' || s[i]>'9') {

ShowMessage("Неправильный формат!");

return 1;

}

if (s.Length()>9) {

ShowMessage("Недопустимо большое число");

return 2;

}

if (StrToInt(s)<0) {

ShowMessage("Недопустимо малое число");

return 3;

}

kof=StrToInt(s);

//------------------подсказка о пароле

s=reads(Form2->Memo1->Lines->Strings[3]);

if (s=="error#2") {

ShowMessage("Отсутствуют операторные скобки!");

return 1;

}

if (s=="error#1") {

ShowMessage("Отсутствует значение!");

return 1;

}

paswdhelp=s;

Form9->Memo1->Text=Form2->Memo1->Text;

file_write("config.dll");

return 0;

}

//---------------------------------------------------------------------------

void __fastcall TForm2::Button1Click(TObject *Sender)

{

if (write_config()) exit(1);

else ShowMessage("Именения успешно внесены");

}

//---------------------------------------------------------------------------

void __fastcall TForm2::Button2Click(TObject *Sender)

{

Memo1->Clear();

Memo1->Lines->Add("количество вариантов: <49>");

Memo1->Lines->Add("пароль администратора: <650/32-,+> внимание, пароль находится в защифрованном виде!");

Memo1->Lines->Add("коэффициэнт генерации: <56>");

Memo1->Lines->Add("подсказка о пароле: <s>");

}

//---------------------------------------------------------------------------

void __fastcall TForm2::Button3Click(TObject *Sender)

{

if (read_config()) exit(1);

else Form7->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TForm2::Button4Click(TObject *Sender)

{

if (read_config()) exit(1);

else {

Form8->CSpinEdit1->MaxValue=var;

Form8->ShowModal();

}

}

//---------------------------------------------------------------------------

void __fastcall TForm2::Button5Click(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

Листинг файла Unit3.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit3.h"

#include "Unit2.h"

#include "Unit1.h"

#include "Unit4.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm3 *Form3;

//---------------------------------------------------------------------------

__fastcall TForm3::TForm3(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm3::Button2Click(TObject *Sender)

{

Edit1->Text="";

Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm3::Button1Click(TObject *Sender)

{

String s=Edit1->Text, a=paswd;

for (int i=1; i<=s.Length(); i++)

s[i]=(char)(s[i]-i%5-s[i]%4-1);

if (s==a) {

if (read_config()) exit(1);

else {

Form2->ShowModal();

Close();

Edit1->Text="";

}

}

else ShowMessage("пароль не верный!");

}

//---------------------------------------------------------------------------

void __fastcall TForm3::Button3Click(TObject *Sender)

{

Edit1->Text="";

Form4->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TForm3::Button4Click(TObject *Sender)

{

Edit1->Text="";

ShowMessage("подсказка о пароле: " + paswdhelp);

}

//---------------------------------------------------------------------------

Листинг файла Unit4.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit4.h"

#include "Unit1.h"

#include "Unit9.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm4 *Form4;

//---------------------------------------------------------------------------

__fastcall TForm4::TForm4(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm4::Button2Click(TObject *Sender)

{

Edit1->Text="";

Edit2->Text="";

Edit3->Text="";

Edit4->Text="";

Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm4::Button1Click(TObject *Sender)

{

String s=Edit1->Text, a=paswd;

for (int i=1; i<=a.Length(); i++)

a[i]=(char)(a[i]-Power(i,2));

if (s==a)

if (Edit2->Text!=Edit3->Text) ShowMessage("пароли не совпадают!");

else

if (Edit2->Text=="") ShowMessage("Заполните поле новый пароль!");

else

if (Edit4->Text=="") ShowMessage("Введите подсказку о пароле!");

else {

String newpas=Edit2->Text;

for (int i=1; i<=newpas.Length(); i++)

newpas[i]=(char)(newpas[i]-i%5-newpas[i]%4-1);

file_read("config.dll");

Memo1->Text=Form9->Memo1->Text;

paswd=newpas;

paswdhelp=Edit4->Text;

Memo1->Lines->Strings[1]="пароль администратора: <" + newpas + "> внимание, пароль находится в защифрованном виде!";

Memo1->Lines->Strings[3]="подсказка о пароле: <" + Edit4->Text + ">";

Form9->Memo1->Text=Form4->Memo1->Text;

file_write("config.dll");

ShowMessage("пароль успешно сменён");

Edit1->Text="";

Edit2->Text="";

Edit3->Text="";

Edit4->Text="";

Close();

}

else ShowMessage("пароль не верный!");

}

//---------------------------------------------------------------------------

Листинг файла Unit5.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit5.h"

#include "Unit1.h"

#include "Unit9.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma link "CSPIN"

#pragma resource "*.dfm"

TForm5 *Form5;

//---------------------------------------------------------------------------

__fastcall TForm5::TForm5(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm5::Button2Click(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm5::Button1Click(TObject *Sender)

{

int n=CSpinEdit1->Value;

int h=CSpinEdit2->Value;

//генератор заданий

n=h/n+kof;

n=n*n*n;

n=n/kof;

n=n+h;

n=n%var+1;

if (FileExists("Задания//"+IntToStr(n)+".z")) {

file_read("Задания//"+IntToStr(n)+".z");

Form1->Memo1->Text=Form9->Memo1->Text;

Close();

}

else

ShowMessage("такой вариант не найден");

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

Листинг файла Unit6.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit6.h"

#include "Unit1.h"

#include "Unit2.h"

#include "Unit9.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm6 *Form6;

//---------------------------------------------------------------------------

__fastcall TForm6::TForm6(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

protect()

{

String s1=Form6->Edit1->Text;

String s2=Form6->Edit2->Text;

String s3=Form6->Edit3->Text;

String s4=Form6->Edit4->Text;

if (s1=="" || s2=="" || s3=="" || s4=="") return 4; //имеются пустые поля

for (int i=1; i<=s1.Length(); i++)

if (s1[i]<'0' ||s1[i]>'9') return 1; //несовместимый тип данных

for (int i=1; i<=s3.Length(); i++)

if (s3[i]<'0' ||s3[i]>'9') return 1; //несовместимый тип дынных

if (s1.Length()>4 || s3.Length()>9) return 2; //недопутимо большое число

if (StrToInt(s1)<0 || StrToInt(s3)<0) return 3; //недопустимо малое число

return 0;

}

//---------------------------------------------------------------------------

void __fastcall TForm6::Button2Click(TObject *Sender)

{

Edit1->Text="0";

Edit2->Text="";

Edit3->Text="0";

Edit4->Text="";

Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm6::Button1Click(TObject *Sender)

{

switch (protect()) {

case 1: ShowMessage("несовместимый тип данных"); break;

case 2: ShowMessage("введены недопутимо большие числа"); break;

case 3: ShowMessage("введены недопутимо малые числа(меньше 0)"); break;

case 4: ShowMessage("Заполните пустые поля!"); break;

case 0:

Memo1->Clear();

Memo1->Lines->Add("количество вариантов: <" + Edit1->Text + ">");

String s=Edit2->Text;

for (int i=1; i<=s.Length(); i++)

s[i]=(char)(s[i]-i%5-s[i]%4-1);

Memo1->Lines->Add("пароль администратора: <" + s + "> внимание, пароль находится в защифрованном виде!");

Memo1->Lines->Add("коэффициент генерации: <" + Edit3->Text + ">");

Memo1->Lines->Add("подсказка о пароле: <" + Edit4->Text + ">");

Form9->Memo1->Text=Memo1->Text;

file_write("config.dll");

ShowMessage("Файл конфигурации успешно создан.");

Edit1->Text="0";

Edit2->Text="";

Edit3->Text="0";

Edit4->Text="";

Close();

if (read_config()) exit(1);

}

}

//---------------------------------------------------------------------------

Листинг файла Unit7.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit7.h"

#include "Unit2.h"

#include "Unit9.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm7 *Form7;

//---------------------------------------------------------------------------

__fastcall TForm7::TForm7(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm7::Button2Click(TObject *Sender)

{

Memo1->Lines->Clear();

Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm7::Button1Click(TObject *Sender)

{

Form9->Memo1->Text=Memo1->Text;

file_write("Задания\\"+IntToStr(++var)+".z");

file_read("config.dll");

Form9->Memo1->Lines->Strings[0]="количество вариантов: <" + IntToStr(var) + ">";

file_write("config.dll");

Memo1->Lines->Clear();

ShowMessage("Вариант успешно добавлен.");

if (read_config()) exit(1);

Close();

}

//---------------------------------------------------------------------------

Листинг файла Uni8.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit8.h"

#include "Unit9.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma link "CSPIN"

#pragma resource "*.dfm"

TForm8 *Form8;

int variant=1;

//---------------------------------------------------------------------------

__fastcall TForm8::TForm8(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm8::Button1Click(TObject *Sender)

{

Form9->Memo1->Text=Memo1->Text;

file_write("Задания\\"+IntToStr(CSpinEdit1->Value)+".z");

Memo1->Lines->Clear();

Memo1->Enabled = false;

Button1->Enabled = false;

ShowMessage("Вариант успешно изменён.");

Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm8::Button2Click(TObject *Sender)

{

Memo1->Lines->Clear();

Memo1->Enabled = false;

Button1->Enabled = false;

Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm8::Button3Click(TObject *Sender)

{

variant=CSpinEdit1->Value;

file_read("Задания\\"+IntToStr(variant)+".z");

Memo1->Text=Form9->Memo1->Text;

Memo1->Enabled = true;

Button1->Enabled = true;

}

//---------------------------------------------------------------------------

Листинг файла Unit9.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit9.h"

#define Form1 Form9

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm9 *Form9;

//---------------------------------------------------------------------------

__fastcall TForm9::TForm9(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void coding()

{

int k=Form1->Memo1->Lines->Count;

for (int i=0; i<k; i++) {

String s=Form1->Memo1->Lines->Strings[i];

int k=s.Length();

for (int i=1; i<=k; i++)

s[i]=s[i]-(i*i+i)%3-1;

Form1->Memo1->Lines->Strings[i]=s;

}

}

//---------------------------------------------------------------------------

void decoding()

{

int k=Form1->Memo1->Lines->Count;

for (int i=0; i<k; i++) {

String s=Form1->Memo1->Lines->Strings[i];

int k=s.Length();

for (int i=1; i<=k; i++)

s[i]=s[i]+(i*i+i)%3+1;

Form1->Memo1->Lines->Strings[i]=s;

}

}

//---------------------------------------------------------------------------

void file_read(String s)

{

Form1->Memo1->Lines->LoadFromFile(s);

decoding();

}

//---------------------------------------------------------------------------

void file_write(String s)

{

coding();

Form1->Memo1->Lines->SaveToFile(s);

}

//------------------------------------------

Листинг файла Unit10.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit10.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm10 *Form10;

//---------------------------------------------------------------------------

__fastcall TForm10::TForm10(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

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


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

  • Функциональное и эксплуатационное назначение изделия. Программная совместимость. Результирующие компоненты изделия. Носители информации. Безопасность и секретность. Требования к надежности. Мобильность. Стадии и этапы разработки.

    реферат [553,2 K], добавлен 13.08.2006

  • Функциональное и эксплуатационное назначение изделия. Перечень требований пользователя к программному изделию. Программные ограничения, совместимость. Требования к параметрам технических средств. Безопасность и секретность, требования к надежности.

    курсовая работа [574,6 K], добавлен 27.04.2011

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

    курсовая работа [564,4 K], добавлен 18.01.2014

  • Функциональное и эксплуатационное назначение данного изделия. Требования к составу и параметрам технических средств. Описание алгоритма ГОСТ 28147-89 в режиме гаммирования. Технико-экономические показатели разработки. Интерфейс программного продукта.

    курсовая работа [1,7 M], добавлен 27.02.2015

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

    курсовая работа [1,4 M], добавлен 17.02.2010

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

    дипломная работа [3,5 M], добавлен 10.06.2013

  • Разработка структуры реляционной базы данных, предназначенной для отслеживания финансовой стороны работы компании. Требования к составу и параметрам технических средств. Нормализация информационных объектов. Физическая модель базы данных приложения.

    курсовая работа [1,4 M], добавлен 11.11.2014

  • Требования к составу и параметрам технических средств. Инфологическая (концептуальная) модель предметной области. Физическая и логическая модель базы данных. Создание структуры БД в СУБД MS ACCESS. Программирование приложения. Описание работы с системой.

    курсовая работа [572,2 K], добавлен 17.11.2014

  • Назначение и цели создания системы. Требования к программе или программному изделию, к информационной и программной совместимости, к составу и параметрам технических средств. Алгоритм Rijndael. Назначение и условия применения программного продукта.

    дипломная работа [1,3 M], добавлен 01.03.2009

  • Наименование программы – база данных "Бутик FIRST", предназначена для ведения учёта товара, выдачи данных о поставщиках и поставляемых ими товарах. Требования к надежности. Условия эксплуатации. Требования к составу и параметрам технических средств.

    курсовая работа [22,3 K], добавлен 26.12.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.