Разработка программы "Дневник" с контролем прав доступа

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

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

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

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

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

  • ВВЕДЕНИЕ
  • 1. СИСТЕМНЫЙ АНАЛИЗ
    • 1.1 Формулировка проблемной ситуации
    • 1.2 Определение целей
    • 1.3 Поиск оптимального варианта решения
    • 1.4 Проверка эффективности решения
  • 2. АНАЛИЗ ТРЕБОВАНИЙ
    • 2.1 Формирование представления
    • 2.2 Выявление требований
      • 2.2.1 Требования к функциональным характеристикам
      • 2.2.2 Требования к надежности
  • 3. ПРОЕКТИРОВАНИЕ
    • 3.1 Проектирование интерфейса
    • 3.2 Описание алгоритмов
    • 3.3 Проектирование классов
  • 4. КОДИРОВАНИЕ
  • 5. ТЕСТИРОВАНИЕ
  • 6. СПИСОК ЛИТЕРАТУРЫ
  • ПРИЛОЖЕНИЯ
    • Приложение 1. Техническое задание
    • Приложение 2. Исходный код программы

ВВЕДЕНИЕ

В данной работе ставится задача разработки программы - дневника с контролем прав доступа. Возможность - добавление записей на каждый день от автора. Добавление комментариев от других пользователей. Возможность просмотра записей в дневниках по дням. Добавление картинок в комментарии и записей. Приложение разрабатывается на языке программирования C++ в интегрированной среде разработки Microsoft Visual Studio 2010.

1. СИСТЕМНЫЙ АНАЛИЗ

1.1 Формулировка проблемной ситуации

программа интерфейс алгоритм

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

1.2 Определение целей

Перед разработчиком определены следующие цели:

· Ознакомление с визуализацией программы.

· Определение технических требований к программе.

· Создание эффективного алгоритма для решения поставленной задачи с последующей его реализацией на языке программирования C++.

1.3 Поиск оптимального варианта решения

Для решения задачи будет использован метод объектно-ориентированного программирования. Данная концепция позволит существенно упростить задачу, используя следующие подходы:

· Инкапсуляция.

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

· Быстрое прототипирование.

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

1.4. Проверка эффективности решения

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

2. АНАЛИЗ ТРЕБОВАНИЙ

2.1 Формирование представления

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

2.2 Выявление требований

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

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

2. Программа должна содержать авторские и пользовательские комментарии.

3. Программа должна вставлять изображения.

4. Программа должна не только вставлять изображения, но и уменьшать их до размера окна.

5. Программа должна поддерживать контроль целостности.

6. Программа должна сохранять данные о дате создания комментариев.

7. Программа должна выводить на экран информацию о дне написания комментария.

8. Программа должна включать в себя календарь, для быстрого поиска по дням, месяцам и годам.

9. Пользователь имеет возможность удалить тот или иной день записи.

10. Пользователь имеет возможность сохранения комментария.

2.2.2 Требования к надежности

1. Программа должна предотвращать ошибочные действия пользователя.

2. Программа должна контролировать входную информацию.

3. ПРОЕКТИРОВАНИЕ

3.1 Проектирование интерфейса

Программа состоит из одного окна, включающего:

· richTextBox1 для ввода комментариев

· richTextBox2 для ввода записей

· TextBox1 для ввода пользователя

· TextBox2 для просмотра под каким логином зашли в программу

· TextBox3 ввода пароля для Avtor

· Выбор даты через календарь

· Кнопку "Отправить"

· Кнопку "Сохранить"

Интерфейс программы продемонстрирован на Рисунке 1.

Рисунок 1. Главное окно программы

3.2 Описание алгоритмов

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

· Сохранение записей

· Вывод записей

· Возможность редактирования комментариев и информации

На Рисунке 2 наглядно представлен алгоритм работы программы.

Рисунок 2. Блок-схема программы

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

Рисунок 3. Алгоритм кодировки изображения

Как видно из Рисунка 3 алгоритм весьма простой.

3.3 Проектирование классов

Рассмотрим структуру класса Form2.

Данный класс наследуется от стандартного класса Form и расширяет его, добавляя необходимые элементы окна пользователя, члены, методы и обработчики событий. Конструктор класса объявлен с модификатором public, остальное содержимое класса - с модификаторами protected и private. Таким образом, чтобы начать работу с классом, достаточно передать его экземпляр методу Run стандартного класса Application, который запустит приложение. Далее класс будет реагировать на все действия пользователя, запуская соответствующие обработчики событий. Реализованы обработчики следующих событий:

· Нажатие кнопки "Отправить", "Отправить изображение"

· Нажатие кнопки "Сохранить"

· Нажатие кнопок "Вход" и "Выход"

· Календарь

· Ввод логина и пароля (соответственно textBox2 и textBox3)

· Просмотр, под каким именем вы находитесь в системе

· pictureBox1 для просмотра и загрузки изображения

При нажатии на кнопку "Отправить", "Отправить изображение" все, что находится в richtextbox1 и pictureBox1 отправляется в richtextbox2. Где и находится основное поле для просмотра дел и комментариев к ним.

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

При нажатии кнопки "Вход" происходит вход в программу под тем или иным пользователем. Если это Avtor, то в программе появляется видимое окно textbox3, куда следует ввести пароль 123, если будет введен любой другой пароль, то программа выдаст сообщение об ошибке. Если вы вошли в программу под пользователем Avtor, то вы можете менять свои дела прямо в richtextbox2. При нажатии кнопки "Выход" происходит закрытие программы.

dateTimePicker1 отвечает за выбор даты в программе. Так же с помощью него можно посмотреть дела, которые были записаны ранее.

Textbox2 и textbox3 используется для ввода логина и пароля. Логин может быть любой. Он используется для ввода комментариев к делам и записям.

pictureBox1 используется для вставки картинок, при нажатии на серое поле можно выбрать картинку с расширением *.BMP, *.JPG, *.GIF, *.TIF, *.PNG, *.ICO, *.EMF, *.WMF, если размер картинки превышает 150х150, то этот класс автоматически уменьшает размер до необходимого. Вставка в richtextbox2 идет с изменением размера до 100х100.

4. КОДИРОВАНИЕ

Рассмотрим функцию кнопки отправить

//Кнопка "Отправить"

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {

ShowMe = textBox1->Text;// присваивание ShowMe логина

richTextBox2->AppendText("\n");

richTextBox2->AppendText(ShowMe);// вывод в richTextBox2 логина

richTextBox2->AppendText(": \n");

richTextBox2->AppendText(richTextBox1->Text);//вставляеться текст из окошка richTextBox1 в окошко richTextBox2

int selectedDate = dateTimePicker1->Value.Day;

int selectedMonth = dateTimePicker1->Value.Month;

int selectedYear = dateTimePicker1->Value.Year;

String^ sti=Convert::ToString(selectedDate);

sti +=Convert::ToString(selectedMonth);

sti +=Convert::ToString(selectedYear);

richTextBox1->SaveFile(sti);// сохранение текста пока работает программа

richTextBox1->Text="";

richTextBox2->ScrollToCaret();}

Данная кнопка описывает как должны сохраняться файлы.

Возможность вставки изображения.

//Вставка и конвертирование изображения

private: System::Void pictureBox1_Click(System::Object^ sender, System::EventArgs^ e) {

OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;

openFileDialog1->InitialDirectory = "c:\\";//выбор начальной директории откуда будет загружаться изображение

openFileDialog1->Filter = "Image files (*.BMP, *.JPG, *.GIF, *.TIF, *.PNG, *.ICO, *.EMF, *.WMF)|*.bmp;*.jpg;*.gif; *.tif; *.png; *.ico; *.emf; *.wmf";

openFileDialog1->FilterIndex = 2;

openFileDialog1->RestoreDirectory = true;

if ( openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK )

{

Bitmap ^ OldImage = gcnew Bitmap(150, 150);

OldImage = gcnew Bitmap(openFileDialog1->OpenFile());

pictureBox1->Image = dynamic_cast<Image^>(OldImage);

pictureBox1->SizeMode = PictureBoxSizeMode::StretchImage ;

pictureBox1->ClientSize = System::Drawing::Size(150, 150);

}

}

Далее покажем код кнопки "Отправить изображение"

//Кнопка "Отправить изображение"

private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {

Bitmap ^bmp1 = gcnew Bitmap ( pictureBox1->Image );

Bitmap ^OldImage = gcnew Bitmap (100,100);

Graphics^ g = Graphics::FromImage(OldImage);

if ( bmp1->Width>100)

{g->DrawImage(bmp1, 0, 0, 100, 100);

Clipboard::SetImage(OldImage);}

else

{Clipboard::SetImage(pictureBox1->Image);}

richTextBox2->ReadOnly = false;

ShowMe = textBox1->Text;

richTextBox2->AppendText("\n");

richTextBox2->AppendText(ShowMe);

richTextBox2->AppendText(": \n");

richTextBox2->Paste();

richTextBox2->ScrollToCaret();

if (textBox1->Text!="Avtor") {richTextBox2->ReadOnly = true;}

else {richTextBox2->ReadOnly = false;} }

Покажем графически взаимосвязь pictureBox1 и button3_Click.

Рисунок 4. Взаимосвязь picturebox1 и button3

Алгоритм предельно ясен, для кодирования использовались стандартные функции классов System.Windows.Forms, а именно Button - класс, PictureBox - класс, RichTextBox - класс, TextBox - класс.

Есть еще взаимосвязь о которой хотелось бы рассказать. В основу ее ложиться функция класса RichTextBox->ReadOnly. Вот как это выглядит на блок-схеме.

Рисунок 5. Блок-схема работы функции ReadOnly

//Кнопка "Вход"

private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) {

if(textBox2->Text == "Avtor")

{

if(textBox3->Text=="123")

{textBox1->Text= "Avtor";

richTextBox2->ReadOnly = false;

textBox3->Visible=false;}

else {MessageBox::Show("Пароль неверен");}

}

else {textBox1->Text=textBox2->Text;

2 richTextBox2->ReadOnly = true;}

textBox3->Text = "";

}

5. ТЕСТИРОВАНИЕ

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

Рисунок 6. Выбор изображения

Рисунок 7. Просмотр свойства изображения

Рисунок 8. Вставка изображения

Как мы можем заметить программа конвертирует изображение до исходного размера. При нажатии кнопки неконвертируемое изображение отправляется в окошко Дела.

Проверка ввода текста.

Рисунок 9. Ввод дел

Рисунок 10. Ввод комментария (пользователь anonim)

Рисунок 11. Редактирование непонравившихся комментариев

Рисунок 12. Проверка на изменение текста другим пользователем

Как мы можем видеть, любой текст сохраняется в richtextbox2. Таким образом работоспособность программы доказана.

Далее проверим ввод неправильного пароля.

Рисунок 13. Ввод неправильного пароля

Рисунок 14. Ввод правильного пароля

Набор основных тестов пройден успешно, программа "Дневник" работоспособна.

6. СПИСОК ЛИТЕРАТУРЫ

1.System.Windows.Forms - пространство имен.

URL: http://msdn.microsoft.com/ru-ru/library/k50ex0x9.aspx

2.Button-класс

URL:http://msdn.microsoft.com/ru-ru/library/system.windows.forms.button.aspx

3.PictureBox - класс

URL: http://msdn.microsoft.com/ru-ru/library/system.windows.forms.picturebox.aspx

4.RichTextBox - класс

URL: http://msdn.microsoft.com/ru-ru/library/system.windows.forms.richtextbox.aspx

5.TextBox - класс

URL: http://msdn.microsoft.com/ru-ru/library/system.windows.forms.textbox.aspx

ПРИЛОЖЕНИЯ

Приложение 1. Техническое задание

Введение

Наименование программы: Дневник.

Применение: Каждодневная запись нужных дел и просмотр предстоящих событий.

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

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

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

Программа "Дневник" предназначена для сжатия и хранения информации в сжатом виде.

1.3. Требования к программе

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

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

2. Программа должна содержать авторские и пользовательские комментарии.

3. Программа должна вставлять изображения.

4. Программа должна не только вставлять изображения, но и уменьшать их до размера окна.

5. Программа должна поддерживать контроль целостности.

6. Программа должна сохранять данные о дате создания комментариев.

7. Программа должна выводить на экран информацию о дне написания комментария.

8. Программа должна включать в себя календарь, для быстрого поиска по дням, месяцам и годам.

9. Пользователь имеет возможность удалить тот или иной день записи.

10. Пользователь имеет возможность сохранения комментария.

1.3.2. Требования к надежности

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

2. Программа должна сохранять записи и дела пользователя.

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

· Программное обеспечение должно работать на IBM-совместимых персональных компьютерах.

· Минимальная конфигурация: тип процессора - Pentium III и выше; объем ОЗУ - 512 Мб и выше.

· Наличие 10 Мб свободного пространства на диске.

· ЭВМ должна работать под управлением операционной системы не ниже, чем Microsoft Windows XP.

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

Программа имеет совместимость с любой системой Windows выше XP. Так же для работы программы необходим установленный .NET Framework 4.0 .

1.6. Условия эксплуатации

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

1.7. Специальные требования

Не предусмотрены.

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

Результаты выполнения курсовой работы оформлены в виде пояснительной записки. Пояснительная записка оформлена в соответствии с требованиями ГОСТ 19.404-79. ЕСПД.

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

Разработка данной курсовой работы состоит из следующих этапов:

· Постановка задачи

· Анализ способов решения поставленной задачи

· Выбор рационального способа решения

· Реализация выбранного способа

· Тестирование реализованного программного обеспечения и выводы об его универсальности и функциональности

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

Составил:

Наименование кафедры

Исполнитель

Фамилия И.О.

Подпись

Дата

ЭВМ

Студент гр. 220201

Михайлов Д.А.

Согласовано:

Наименование кафедры

Консультант по разделу

Должность

Фамилия И.О.

Подпись

Дата

Приложение 2. Исходный код программы

Form2.h

#pragma once

namespace kursov {

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

using namespace System::IO;

public ref class Form2 : public System::Windows::Forms::Form//наследование классов

{

public:

Form2(void)

{

InitializeComponent();

}

protected:

~Form2()

{

if (components)

{

delete components;

}

}

private: System::Windows::Forms::RichTextBox^ richTextBox1;

private: System::Windows::Forms::Button^ button1;

private: System::Windows::Forms::PictureBox^ pictureBox1;

private: System::Windows::Forms::Label^ label1;

private: System::Windows::Forms::DateTimePicker^ dateTimePicker1;

private: System::Windows::Forms::Button^ button2;

private: System::Windows::Forms::Button^ button3;

public : System::Windows::Forms::TextBox^ textBox1;

private: System::Windows::Forms::Button^ button4;

private: System::Windows::Forms::TextBox^ textBox2;

private: System::Windows::Forms::TextBox^ textBox3;

private: System::Windows::Forms::Button^ button5;

private: System::Windows::Forms::RichTextBox^ richTextBox2;

private: System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code

void InitializeComponent(void)

{

System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Form2::typeid));

this->richTextBox1 = (gcnew System::Windows::Forms::RichTextBox());

this->richTextBox2 = (gcnew System::Windows::Forms::RichTextBox());

this->button1 = (gcnew System::Windows::Forms::Button());

this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox());

this->label1 = (gcnew System::Windows::Forms::Label());

this->dateTimePicker1 = (gcnew System::Windows::Forms::DateTimePicker());

this->button2 = (gcnew System::Windows::Forms::Button());

this->button3 = (gcnew System::Windows::Forms::Button());

this->textBox1 = (gcnew System::Windows::Forms::TextBox());

this->button4 = (gcnew System::Windows::Forms::Button());

this->textBox2 = (gcnew System::Windows::Forms::TextBox());

this->textBox3 = (gcnew System::Windows::Forms::TextBox());

this->button5 = (gcnew System::Windows::Forms::Button());

(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox1))->BeginInit();

this->SuspendLayout();

//

// richTextBox1

//

this->richTextBox1->ForeColor = System::Drawing::SystemColors::WindowText;

this->richTextBox1->Location = System::Drawing::Point(330, 107);

this->richTextBox1->Name = L"richTextBox1";

this->richTextBox1->Size = System::Drawing::Size(223, 176);

this->richTextBox1->TabIndex = 0;

this->richTextBox1->Text = L"";

this->richTextBox1->TextChanged += gcnew System::EventHandler(this, &Form2::richTextBox1_TextChanged);

//

// richTextBox2

//

this->richTextBox2->Location = System::Drawing::Point(12, 23);

this->richTextBox2->Name = L"richTextBox2";

this->richTextBox2->Size = System::Drawing::Size(312, 260);

this->richTextBox2->TabIndex = 1;

this->richTextBox2->Text = L"";

this->richTextBox2->WordWrap = false;

this->richTextBox2->TextChanged += gcnew System::EventHandler(this, &Form2::richTextBox2_TextChanged);

//

// button1

//

this->button1->Location = System::Drawing::Point(330, 46);

this->button1->Name = L"button1";

this->button1->Size = System::Drawing::Size(79, 55);

this->button1->TabIndex = 2;

this->button1->Text = L"Отправить";

this->button1->UseVisualStyleBackColor = true;

this->button1->Click += gcnew System::EventHandler(this, &Form2::button1_Click);

//

// pictureBox1

//

this->pictureBox1->BackColor = System::Drawing::Color::White;

this->pictureBox1->BackgroundImageLayout = System::Windows::Forms::ImageLayout::None;

this->pictureBox1->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"pictureBox1.Image")));

this->pictureBox1->Location = System::Drawing::Point(567, 132);

this->pictureBox1->Name = L"pictureBox1";

this->pictureBox1->Size = System::Drawing::Size(150, 150);

this->pictureBox1->TabIndex = 4;

this->pictureBox1->TabStop = false;

this->pictureBox1->Click += gcnew System::EventHandler(this, &Form2::pictureBox1_Click);

//

// label1

//

this->label1->AutoSize = true;

this->label1->Location = System::Drawing::Point(12, 9);

this->label1->Name = L"label1";

this->label1->Size = System::Drawing::Size(34, 13);

this->label1->TabIndex = 5;

this->label1->Text = L"Дела";

this->label1->Click += gcnew System::EventHandler(this, &Form2::label1_Click);

//

// dateTimePicker1

//

this->dateTimePicker1->Location = System::Drawing::Point(567, 23);

this->dateTimePicker1->Name = L"dateTimePicker1";

this->dateTimePicker1->Size = System::Drawing::Size(150, 20);

this->dateTimePicker1->TabIndex = 6;

this->dateTimePicker1->ValueChanged += gcnew System::EventHandler(this, &Form2::dateTimePicker1_ValueChanged);

//

// button2

//

this->button2->Location = System::Drawing::Point(415, 46);

this->button2->Name = L"button2";

this->button2->Size = System::Drawing::Size(68, 55);

this->button2->TabIndex = 7;

this->button2->Text = L"Сохранить";

this->button2->UseVisualStyleBackColor = true;

this->button2->Click += gcnew System::EventHandler(this, &Form2::button2_Click);

//

// button3

//

this->button3->ForeColor = System::Drawing::SystemColors::ControlText;

this->button3->Location = System::Drawing::Point(567, 92);

this->button3->Name = L"button3";

this->button3->Size = System::Drawing::Size(150, 34);

this->button3->TabIndex = 8;

this->button3->Text = L"Отправить изображение";

this->button3->UseVisualStyleBackColor = true;

this->button3->Click += gcnew System::EventHandler(this, &Form2::button3_Click);

//

// textBox1

//

this->textBox1->Enabled = false;

this->textBox1->Location = System::Drawing::Point(330, 23);

this->textBox1->Name = L"textBox1";

this->textBox1->Size = System::Drawing::Size(153, 20);

this->textBox1->TabIndex = 9;

//

// button4

//

this->button4->Location = System::Drawing::Point(665, -1);

this->button4->Name = L"button4";

this->button4->Size = System::Drawing::Size(52, 23);

this->button4->TabIndex = 10;

this->button4->Text = L"Выход";

this->button4->UseVisualStyleBackColor = true;

this->button4->Click += gcnew System::EventHandler(this, &Form2::button4_Click);

//

// textBox2

//

this->textBox2->Location = System::Drawing::Point(489, 23);

this->textBox2->Name = L"textBox2";

this->textBox2->Size = System::Drawing::Size(64, 20);

this->textBox2->TabIndex = 11;

this->textBox2->TextChanged += gcnew System::EventHandler(this, &Form2::textBox2_TextChanged);

//

// textBox3

//

this->textBox3->Location = System::Drawing::Point(489, 46);

this->textBox3->Name = L"textBox3";

this->textBox3->Size = System::Drawing::Size(64, 20);

this->textBox3->TabIndex = 12;

this->textBox3->UseSystemPasswordChar = true;

this->textBox3->Visible = false;

this->textBox3->TextChanged += gcnew System::EventHandler(this, &Form2::textBox3_TextChanged);

//

// button5

//

this->button5->Location = System::Drawing::Point(489, 72);

this->button5->Name = L"button5";

this->button5->Size = System::Drawing::Size(64, 29);

this->button5->TabIndex = 13;

this->button5->Text = L"Вход";

this->button5->UseVisualStyleBackColor = true;

this->button5->Click += gcnew System::EventHandler(this, &Form2::button5_Click);

//

// Form2

//

this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);

this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;

this->BackColor = System::Drawing::Color::White;

this->ClientSize = System::Drawing::Size(722, 288);

this->Controls->Add(this->button3);

this->Controls->Add(this->button5);

this->Controls->Add(this->textBox3);

this->Controls->Add(this->textBox2);

this->Controls->Add(this->button4);

this->Controls->Add(this->textBox1);

this->Controls->Add(this->button2);

this->Controls->Add(this->dateTimePicker1);

this->Controls->Add(this->label1);

this->Controls->Add(this->pictureBox1);

this->Controls->Add(this->button1);

this->Controls->Add(this->richTextBox2);

this->Controls->Add(this->richTextBox1);

this->Icon = (cli::safe_cast<System::Drawing::Icon^ >(resources->GetObject(L"$this.Icon")));

this->MaximumSize = System::Drawing::Size(738, 326);

this->MinimumSize = System::Drawing::Size(738, 326);

this->Name = L"Form2";

this->Text = L"Дневник";

this->Load += gcnew System::EventHandler(this, &Form2::Form2_Load);

(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox1))->EndInit();

this->ResumeLayout(false);

this->PerformLayout();

}

#pragma endregion

public :String^ ShowMe ;

//Кнопка "Отправить"

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {

ShowMe = textBox1->Text;// присваивание ShowMe логина

richTextBox2->AppendText("\n");

richTextBox2->AppendText(ShowMe);// вывод в richTextBox2 логина

richTextBox2->AppendText(": \n");

richTextBox2->AppendText(richTextBox1->Text);//вставляеться текст из окошка richTextBox1 в окошко richTextBox2

int selectedDate = dateTimePicker1->Value.Day;

int selectedMonth = dateTimePicker1->Value.Month;

int selectedYear = dateTimePicker1->Value.Year;

String^ sti=Convert::ToString(selectedDate);

sti +=Convert::ToString(selectedMonth);

sti +=Convert::ToString(selectedYear);

richTextBox1->SaveFile(sti);// сохранение текста пока работает программа

richTextBox1->Text="";

richTextBox2->ScrollToCaret();

}

//Вставка и конвертирование изображения

private: System::Void pictureBox1_Click(System::Object^ sender, System::EventArgs^ e) {

OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;

openFileDialog1->InitialDirectory = "";//выбор начальной директории откуда будет загружаться изображение

openFileDialog1->Filter = "Image files (*.BMP, *.JPG, *.GIF, *.TIF, *.PNG, *.ICO, *.EMF, *.WMF)|*.bmp;*.jpg;*.gif; *.tif; *.png; *.ico; *.emf; *.wmf";

openFileDialog1->FilterIndex = 2;

openFileDialog1->RestoreDirectory = true;

if ( openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK )

{

Bitmap ^ OldImage = gcnew Bitmap(150, 150);

OldImage = gcnew Bitmap(openFileDialog1->OpenFile());

pictureBox1->Image = dynamic_cast<Image^>(OldImage);

pictureBox1->SizeMode = PictureBoxSizeMode::StretchImage ;

pictureBox1->ClientSize = System::Drawing::Size(150, 150);

}

}

//Загрузка порграммы под пользователем Аноним, автоматически выбор даты и месяца

private: System::Void Form2_Load(System::Object^ sender, System::EventArgs^ e) {

textBox1->Text="Аноним"; ShowMe = ":\n";

int selectedDate = dateTimePicker1->Value.Day;

int selectedMonth = dateTimePicker1->Value.Month;

int selectedYear = dateTimePicker1->Value.Year;

String^ sti=Convert::ToString(selectedDate);

sti +=Convert::ToString(selectedMonth);

sti +=Convert::ToString(selectedYear);

if (File::Exists(sti))

{richTextBox2->LoadFile( sti );}

richTextBox2->ReadOnly = true;

}

//Календарь

private: System::Void dateTimePicker1_ValueChanged(System::Object^ sender, System::EventArgs^ e) {

int selectedDate = dateTimePicker1->Value.Day;

int selectedMonth = dateTimePicker1->Value.Month;

int selectedYear = dateTimePicker1->Value.Year;

String^ sti=Convert::ToString(selectedDate);

sti +=Convert::ToString(selectedMonth);

sti +=Convert::ToString(selectedYear);

if (File::Exists(sti))

{richTextBox2->LoadFile( sti );}

else richTextBox2->Text="";

}

//Кнопка "Сохранить"

private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {

int selectedDate = dateTimePicker1->Value.Day;

int selectedMonth = dateTimePicker1->Value.Month;

int selectedYear = dateTimePicker1->Value.Year;

String^ sti=Convert::ToString(selectedDate);

sti +=Convert::ToString(selectedMonth);

sti +=Convert::ToString(selectedYear);

richTextBox2->SaveFile(sti);

}

//Кнопка "Отправить изображение"

private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {

Bitmap ^bmp1 = gcnew Bitmap ( pictureBox1->Image );

Bitmap ^OldImage = gcnew Bitmap (100,100);

Graphics^ g = Graphics::FromImage(OldImage);

if ( bmp1->Width>100)

{g->DrawImage(bmp1, 0, 0, 100, 100);

Clipboard::SetImage(OldImage);}

else

{Clipboard::SetImage(pictureBox1->Image);}

richTextBox2->ReadOnly = false;

ShowMe = textBox1->Text;

richTextBox2->AppendText("\n");

richTextBox2->AppendText(ShowMe);

richTextBox2->AppendText(": \n");

richTextBox2->Paste();

richTextBox2->ScrollToCaret();

if (textBox1->Text!="Avtor") {richTextBox2->ReadOnly = true;}

else {richTextBox2->ReadOnly = false;}

}

//Возможность редактирования, если Avtor. Возможность чтения если любой другой пользователь.

private: System::Void richTextBox2_TextChanged(System::Object^ sender, System::EventArgs^ e){

if (textBox1->Text == "Avtor")

{richTextBox2->ReadOnly = false;}

}

//Кнопка "Выход"

private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {

Application::Exit();

}

//Поле для ввода логина

private: System::Void textBox2_TextChanged(System::Object^ sender, System::EventArgs^ e) {

if (textBox2->Text == "Avtor")

{textBox3->Visible = true;}

else { textBox3->Visible = false;}

}

//Кнопка "Вход"

private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) {

if(textBox2->Text == "Avtor")

{

if(textBox3->Text=="123")

{textBox1->Text= "Avtor";

richTextBox2->ReadOnly = false;

textBox3->Visible=false;}

else {MessageBox::Show("Пароль неверен");}

}

else {textBox1->Text=textBox2->Text;

richTextBox2->ReadOnly = true;}

textBox3->Text = "";

}

private: System::Void richTextBox1_TextChanged(System::Object^ sender, System::EventArgs^ e) {

}

private: System::Void textBox3_TextChanged(System::Object^ sender, System::EventArgs^ e) {

}

private: System::Void label1_Click(System::Object^ sender, System::EventArgs^ e) {

}

};

}

kursov.cpp: главный файл проекта.

#include "stdafx.h"

#include "Form2.h"

using namespace kursov;

[STAThreadAttribute]

int main(array<System::String ^> ^args)

{

// Включение визуальных эффектов Windows XP до создания каких-либо элементов управления

Application::EnableVisualStyles();

Application::SetCompatibleTextRenderingDefault(false);

// Создание главного окна и его запуск

Application::Run( gcnew Form2());

return 0;

}

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


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

  • Стадии и этапы разработки программного продукта для осуществления упрощенной работы с клиентами и учёта услуг оказываемых "Интернет-центром". Требования к функциональным характеристикам и надежности программы, к составу и параметрам технических средств.

    лабораторная работа [29,4 K], добавлен 13.06.2014

  • Требования к функциональным характеристикам программы, составу и параметрам технических средств, программной совместимости. Особенности программирования в среде Access. Описание интерфейса программы, ввод и редактирование данных, добавление новых книг.

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

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

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

  • Разработка и тестирование программы класса Точка. Спецификация программы. Сценарий диалога с пользователем. Разработка структур данных и алгоритмов. Таблица параметров функций программы. Текст программы на языке C++. Особенности тестирования программы.

    лабораторная работа [43,1 K], добавлен 21.07.2012

  • Разработка инфологической модели базы данных "Рабочее место кассира", требования к ее функциональным характеристикам. Создание программы в Delphi. Описание компонентов для реализации графического интерфейса и интерфейса ввода справочника кассиров.

    курсовая работа [2,2 M], добавлен 17.04.2014

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

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

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

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

  • Разработка программы тестирования студентов по MS PowerPoint с кодом на языке Delphi. Создание алгоритма для решения функциональных требований задачи. Описание переменных, вспомогательных процедур, входных и выходных данных для реализации программы.

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

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

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

  • Стадии разработки программного средства. Средства, методологии и методы его разработки. Оценка надежности и качества проекта. Обоснование необходимости разработки программы. Тестирование как процесс выполнения тестовой программы с намерением найти ошибки.

    презентация [57,0 K], добавлен 27.12.2013

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