Генератор заданий для вычислительной практики
Программное обеспечение как один из самых важных компонентов успешного функционирования всей компьютерной деятельности. Принципы реализации программного комплекса. Характеристика требований пользователя к продукту. Значение языка Borland Builder С++.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 25.03.2015 |
Размер файла | 3,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
2
Размещено на http://www.allbest.ru/
КУРСОВАЯ РАБОТА
по дисциплине «Программирование на ЯВУ»
на тему «Генератор заданий для вычислительной практики»
Содержание
- ВВЕДЕНИЕ
- 1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ
- 1.1 Введение
- 1.2 Основания для разработки
- 1.3 Назначение разработки
- 1.3.1 Функциональное и эксплуатационное назначение изделия
- 1.3.2 Перечень требований пользователя к программному продукту
- 1.3.3 Рассмотренные альтернативы
- 1.4 Требования к программе или программному изделию
- 1.4.1 Стандарты
- 1.4.2 Требования к составу и параметрам технических средств
- 1.4.3 Требования к информационной и программной совместимости
- 1.4.4 Требования к функциональным характеристикам
- 1.4.5 Результирующие компоненты изделия
- 1.4.6 Носители информации
- 1.4.7 Безопасность и секретность
- 1.4.8 Рестарт
- 1.4.9 Удобства эксплуатации
- 1.4.10 Мобильность
- 1.5 Требования к программной документации
- 2. ТЕХНИЧЕСКИЙ ПРОЕКТ
- 2.1 Введение
- 2.2 Назначение разработки
- 2.3 Требования к пограмме или программному изделию
- 2.3.1 Стандарты
- 2.3.2 Требования к составу и параметрам технических средств
- 2.3.3 Требования к информационной и программной совместимости
- 2.3.4 Результирующие компоненты изделия
- 2.3.5 Безопасность и секретность
- 3.3.6 Рестарт
- 2.4 Описание модулей
- 2.4.1 Unit1.cpp
- 2.4.2 Unit2.cpp
- 2.4.3 Unit3.cpp
- 2.4.4 Unit4.cpp
- 2.4.5 Unit5.cpp
- 2.4.6 Unit6.cpp
- 2.4.7 Unit7.cpp
- 2.4.8 Unit8.cpp
- 2.4.9 Unit9.cpp
- 2.4.10 Unit10.cpp
- 2.4.11 Описание основных подпрограмм
- 2.5 Тестирование
- 2.5.1 Цель испытаний
- 2.5.2 Тесты
- ЗАКЛЮЧЕНИЕ
- СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- ПРИЛОЖЕНИЯ
ВВЕДЕНИЕ
вorland builder компьютерный программный
Для программного продукта данной курсовой работы операционной средой является система MS-WINDOWS 7 и используемым языком программирования - Borland Builder С++, как наиболее удобный для решения задач высокого уровня; он позволяет легко работать с файлами и содержит большую библиотеку прочих функций.
Программы, написанные на языке C++ (если, конечно, они написаны грамотно), отличаются высокой эффективностью и простым написанием кода, т.е. минимальным объемом работы и максимальной функциональностью. Это обстоятельство обусловило широкое использование языка C++ в тех случаях, когда скорость написание программы имеет ключевое значение.
В целом можно сказать, что знание языка C++ желательно для любого специалиста, которому приходится создавать программы для персонального компьютера, потому что этот язык сочетает в себе высокую эффективность программ и простоту её написания.
Целью создания программного продукта данной курсовой работы является написание программы, которая в будущем будет использоваться другими людьми.
1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ
1.1 Введение
Программное обеспечение - это один из самых важных компонентов успешного функционирования всей компьютерной деятельности. В настоящее время существует огромное число прикладных программ, написанных на самых разных языках программирования, начиная от самых ранних - низкоуровневых, так и на современных, более удобных - высокоуровневых.
В данной курсовой работе реализуется программный комплекс "Генератор семестровых заданий для первого курса групп ПО ".
1.2 Основания для разработки
Данный программный продукт разрабатывается как задание на курсовую работу по дисциплине "Программное обеспечение на ЯВУ".
1.3 Назначение разработки
1.3.1 Функциональное и эксплуатационное назначение изделия
В соответствие с заданием программное изделие должно представлять собой генератор заданий для студентов первого курса специальности ПО.
Вариант задания вводятся с клавиатуры или мышью в специальной части программы. Окончание работы и выгрузка - клавиша выхода.
Программа представлена в виде приложения(*.EXE).
Передача данных должна осуществляться через специальные окошки ввода, такие как Edit, Memo, CSpinEdit и др.
Программа кодирует файлы с заданием, что делает невозможным их чтение студентами без использования данного продукта.
Программа имеет «админ панель», для редактирования заданий и настроек программы.
Входные данные, в соответствии с заданием, вводятся пользователем с клавиатуры или мыши.
Выходные данные представляют собой изображение заданий на экране или печать их в текстовый файл на любой носитель.
1.3.2 Перечень требований пользователя к программному продукту
Данный программный продукт должен предоставлять программу с интуитивно понятным и простым интерфейсом для выдачи заданий студентам.
1.3.3 Рассмотренные альтернативы
При постановке задачи на разработку данного программного изделия рассматривались альтернативы :
в связи с конкретными требованиями к программе (см. п. 1.4.3). Были выбраны:
· программно-аппаратная платформа: ОС Windows 7 на базе микропроцессора фирмы Intel.
· средства разработки: компилятор Borland Builder C++ v.6.0.
· средства разработки: компилятор Borland Builder Delphi v.7.0.
1.4 Требования к программе или программному изделию
1.4.1 Стандарты
Разработка программной документации и программного изделия должна производиться согласно ГОСТ 19.701-90, ГОСТ 2.304-88. Единая система программной документации.
1.4.2 Требования к составу и параметрам технических средств
Программное изделие должно работать на компьютере, совместимом с IBM PC, управляемым семейством ОС Window. Для переноса программы не должны требоваться специальные программные и аппаратные средства.
1.4.3 Требования к информационной и программной совместимости
Программное изделие должно быть написано на языке C++ для компилятора Borland Builder C++, и работать под управлением операционной системы MS-Windows XP или более поздней.
1.4.4 Требования к функциональным характеристикам
Требования к структуре программы
Система должна представлять собой одну программу для студента и набор программ для преподавателя.
Входные данные
Входными данными являются:
1) состояние клавиатуры (введенное сочетание клавиш);
2) Состояние мыши.
3) Файлы заданий к программе, файл конфигурации и файл справки.
Выходные данные
В процессе работы активной программы в зависимости от действий пользователя и состояния программы выходными данными будут являться:
1) пояснительные сообщения следующего характера:
· состояние отсутствия или неправильности заполнения файлов;
· состояние процессов производимых над файлами;
· информация о возможных вариантах действия пользователя.
2) Задания для семестровых в виде текстовых документов или изображений на экране.
3) Отображение настроек программы.
Процессы обработки
Процессы обработки должны разделяться на следующие группы:
· проверка наличия и правильного заполнения требуемых файлов;
· раскодирование файлов для их вывода на экран или в файл;
· кодирование информации для записи её в файл;
· генерирование номера варианта в зависимости от года получения задания;
· нахождение и сравнение хеша пароля для входа в «админ панель»;
· информирование пользователя о процессах работы программы на разных этапах ее выполнения.
1.4.5 Результирующие компоненты изделия
В комплект поставки программного изделия войдут:
1) Исполняемый файл «Задания семестровых 3.2 Final.exe», являющимся ключевым файлом программы.
2) Закодированный файл конфигурации «config.dll», в котором хранятся настройки программы и хеш пароля.
3) Папка с заданиями «задания», содержащая закодированные файлы типа *.z
4) Файл «справка.help», содержащий справку по данной программе и приёмы работы с ней.
5) Файл «Конфигуратор заданий.exe» - ключевой файл программы для быстрого перекодирования заданий из их обычной формы(задания содержались в файлах «1.txt»; «2.txt»; «3.txt»; «4.txt».) в файлы заданий, пригодные для использования главной программой.
6) Файл «редактор конфигурации.exe» - ключевой файл программы для редактирования файла конфигурации, минуя основную программу.
1.4.6 Носители информации
Программное изделие будет размещено в виде группы файлов на диске формата CD-R, либо на жестком диске, либо на флешке USB.
1.4.7 Безопасность и секретность
Информация, содержащаяся в программном изделии, является секретной. Программный продукт может свободно копироваться и распространяться и не требует специальных средств защиты от копирования или хранения информации. Но в продукте имеются закодированные файлы, которые декодируются только самой программой и только по вводу пароля(или варианта, в случае получения задания).
1.4.8 Рестарт
В случаях рестарта необходимо запустить на выполнение программу. Данные при рестарте сохраняются, в большинстве, но не во всех случаях.
1.4.9 Удобства эксплуатации
Интерфейс программы должен быть выполнен таким образом, чтобы обеспечивать простоту и удобство эксплуатации программы. Обо всех выполняемых действиях пользователь должен информироваться. Должна быть функция восстановления случайно утерянных файлов (кроме главного исполняемого файла).
1.4.10 Мобильность
Программный продукт не требует дополнительных средств для переноса. Весь процесс переноса состоит в копировании файлов на электронный носитель информации, переносе их на другой компьютер и копирования с носителя в отдельную папку на постоянном внешнем запоминающем устройстве ЭВМ.
1.5 Требования к программной документации
Программная документация должна включать следующие документы:
1) техническое задание;
2) технический проект;
3) рабочий проект,
4) тесты.
В приложении к документу "Рабочий проект" должен быть приведен листинг исходных текстов программного изделия.
2. РАБОЧИЙ ПРОЕКТ
2.1 Введение
В данном программном изделии используются технологии работы с файлами.
2.2 Назначение разработки
Программное изделие можно использовать в работе с операционной системой Winows. При помощи данного программного продукта можно получать задания для семестровых работ.
2.3 Требования к программе или программному изделию
2.3.1 Стандарты
Программное изделие выполнено согласно стандартам, указанным в техническом задании в пункте 1.4.1.
2.3.2 Требования к составу и параметрам технических средств
Программное изделие работает на компьютере, совместимом с IBM PC. Программа не требовательна к оперативной памяти.
Вся информация вводится при помощи клавиатуры 101/102. Контроль информации осуществляется при помощи дисплея с видеорежимом не ниже 1024х768х32.
2.3.3 Требования к информационной и программной совместимости
Программное изделие написано на языке C++ для компилятора Borland Builder C++ 6.0, и работает под управлением операционной системы MS-Windows XP SP3 - Windows 8-m3.6955.
2.3.4 Результирующие компоненты изделия
Согласно пункту 1.4.6. технического задания все файлы программы предоставляются на диске формата CD-R.
2.3.5 Безопасность и секретность
Данный программный продукт имеет внутренние алгоритмы шифрования и дешифрования, позволяющие надёжно защитить информацию от нежелательного просмотра.
2.3.6 Рестарт
В случае, когда программа по внешним причинам перестает отвечать на запросы пользователя, необходимо
в системе Windows нажать комбинацию клавиш «CTRL+ALT+DEL» и средствами операционной системы прервать программу
И затем заново запустить ее согласно пункту 1.4.8. технического задания.
2.4 Описание модулей
2.4.1 Unit1.cpp
Данный модуль представляет собой стартовое окно программы, из которого вызываются остальные модули, кроме этого на данном окно вследствие работы с программой может отображаться задания варианта. Кроме функций вызова других модулей, данный модуль может сохранять выбранное задание в файл.
2.4.2 Unit2.cpp
Данный модуль представляет собой «админ панель» программы. Его основная функции: чтение и редактирование файла конфигурации, а также редактирование/добавление файлов заданий. Помимо этих функций в данном модули реализованы алгоритмы защиты от записи ошибочной информации в файл конфигурации. А так же в этом модуле имеются функции чтения/записи файла конфигурации, использующиеся в большинстве других модулей, для получения настроек конфигурации программы.
2.4.3 Unit3.cpp
Данный модуль представляет собой алгоритм защиты «админ панели» от посторонних лиц. Он умеет извлекать хеш из пароля, и сравнивать его с хешем имеющимся в файле конфигурации. А так же этот модуль имеет функцию вызова модуля смены пароля.
2.4.4 Unit4.cpp
Данный модуль представляет собой алгоритм смены пароля. Он имеет функцию извлечения хеша из пароля для сверки его с хешем в файле конфигурации, а также для записи хеша пароля в файл конфигурации в случае удачной смены пароля.
2.4.5 Unit5.cpp
В данном модуле реализован механизм выдачи заданий для определённого варианта и года.
2.4.6 Unit6.cpp
Данный модуль служит для восстановления файла конфигурации в случае утери или порчи такового. В нём реализованы механизмы отслеживающие правильность заполнения данных в файл конфигурации.
2.4.7 Unit7.cpp
Данный модуль служит для добавления варианта с заданиями в программу.
2.4.8 Unit8.cpp
Данный модуль служит для редактирования варианта с заданиями в программе.
2.4.9 Unit9.cpp
Данный модуль обслуживает остальные модули и имеет функции: чтения/записи из/в файл(а) с декодирования/кодирования информации.
2.4.10 Unit10.cpp
Данный модуль содержит справку по программе и основные приёмы работы с программой, рекомендации и требования.
2.4.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м. приложение.
2.5 Тестирование
2.5.1 Цель испытаний
Выяснить поведение программы в различных ситуациях, созданных пользователем.
2.5.2 Тесты
Тест №1
Действия: первый запуск программы.
Реакция программы: открывается главное окно программы.
См. рисунок 1
Рисунок 1 Тест №1
Тест №2
Действия: повторный запуск программы.
Реакция программы: открывается второе окно программы. См. рисунок 2.
Рисунок 2. Тест №2
Тест №3
Действия:
1) Выбор задания;
2) Сохранение задания в файл.
Реакция программы: программа отображает задание на главной форме, после чего по требованию пользователя сохраняет его в файл. См. рисунок 3.
Рисунок 3. Тест №3
Тест №4
Действия: вход в «админ панель».
Реакция программы: выводится запрос пароля и при удачном вводе происходит вход. См. рисунок 4.
Рисунок 4. Тест №4
Тест №5
Действия: вход в «админ панель» при неправильном вводе пароля.
Реакция программы: выводится сообщение об ошибке ввода пароля. См. рисунок 5.
Рисунок 5. Тест №5
ЗАКЛЮЧЕНИЕ
Выполнение разработки должно включать три стадии:
1) техническое задание;
2) технический проект;
3) рабочий проект.
На стадии "Техническое задание" проводится постановка задачи, разработка требований к программному изделию, изучение литературы по задаче и оформление документа "Техническое задание".
На стадии "Технический проект" проводится анализ данной предметной области, выделение основных взаимодействий между пользователем, выяснение структуры программного комплекса, активной программой и резидентом. В заключение данного этапа оформляется документ "Технический проект".
На стадии "Рабочий проект" проводится разработка схем алгоритмов для каждого из функциональных модулей, физическое проектирование программного изделия, разработка тестов, тестирование и отладка программных модулей. В заключение данного этапа оформляется документ "Рабочий проект".
Приемка программного изделия осуществляется при сдаче документально оформленных этапов разработки и проведении испытаний на основе установленных тестов. Тесты должны быть разработаны на этапе рабочего проектирования программного изделия.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1 Оверленд Брайан - С++ без страха Санкт-Петербург 2007
2 Александреску А. - Современное проектирование на C++ Москва-Санкт-Питербург-Киев 2012
3 Сабуров С. - Языки программирования C и C++ МиК 2008
4 Н. Культин - С++ в задачах и примерах Санкт-Питербург 2009
Приложение
Листинг файла 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
Подобные документы
Работа в Borland C++ Builder. Среда разработки и компоненты C++ Builder. Свойства компонентов. Менеджер проектов. Создание приложений в C++ Builder. Выбор компонентов для групповых операций. Работа с базами данных в Borland C++ Builder.
курсовая работа [35,8 K], добавлен 11.06.2007Разработка программного продукта (лабиринт с входом и выходом, состоящий из комнат) в среде разработки Borland C++ Builder 6. Требования пользователя к программному изделию. Программные ограничения, совместимость. Основные процессы разработки программы.
курсовая работа [819,9 K], добавлен 14.01.2013Создание программного средства для реализации работы отдела кадров, построенное на основах ООП и STL. Доступный и простой интерфейс для занесения данных о рабочих и местах их прошлых работ. Алгоритм функционирования программы, ее характеристика.
курсовая работа [319,6 K], добавлен 19.06.2012Обоснование языка программирования Object Pascal и среды разработки Delphi. Создание интерфейса пользователя. Проектирование структуры и описание компонентов, использованных при разработке программного продукта. Составление инструкции пользователя.
курсовая работа [888,7 K], добавлен 20.05.2015Программное обеспечение для обслуживания автосалона с графическим интерфейсом, возможностью хранения файлов на диске и поиском. Программное проектирование. Документирование программного обеспечения, его тестирование. Разработка руководства пользователя.
курсовая работа [1,7 M], добавлен 06.01.2013Анализ предметной области разрабатываемого программного продукта. Разработка интерфейса пользователя и структурной схемы игровой программы "Крестики-нолики". Отладка и тестирование. Проведение исследования компонентов программной среды Borland Delphi 6.0.
курсовая работа [660,4 K], добавлен 08.03.2015Характеристика программного обеспечения персонального компьютера, которое делиться на три класса: системное, прикладное ПО, инструментарий программирования. Особенности работы компьютерной сети - системы связи компьютеров или компьютерного оборудования.
контрольная работа [22,9 K], добавлен 10.06.2010Сетевая система контроля знаний студентов на основе объектно-ориентированного подхода. Выбор программно-технических средств для реализации проекта. Алгоритмическое и программное обеспечение, интерфейс пользователя. Разработка элементов базы данных.
дипломная работа [1,3 M], добавлен 04.02.2013Функциональное и эксплуатационное назначение генератора. Требования к составу и параметрам технических средств. Информационная и программная совместимость. Результирующие компоненты изделия. Безопасность и секретность. Удобства эксплуатации, мобильность.
курсовая работа [2,1 M], добавлен 07.03.2013Реализация программного кода "Organizer 1.0". Разработка приложений баз данных с помощью Borland C++ Builder 6. Компоненты системы программирования для работы по технологии InterBase. Программный код и интерфейс "Organizer 1.0", структура приложения.
курсовая работа [466,9 K], добавлен 28.07.2009