русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ДОДАТКИ


Дата добавления: 2015-07-09; просмотров: 1147; Нарушение авторских прав


ВСТУП

Метою навчальної практики є здобуття навичок у створенні програмного забезпечення з графічним інтерфейсом, засвоєння знань про принципи об’єктно-орієнтованого програмування.

Завданням навчальної практики є реалізація програмних додатків з використанням класів та їх наслідування з підтримкою графічного інтерфейсу в середовищі розробки програмного забезпечення Visual Studio, мова програмування C++ та C#.

C++ - універсальна мова програмування високого рівня з підтримкою декількох парадигм програмування.

C# - об'єктно-орієнтована мова програмування з безпечною системою типізації для платформи .NET.

Необхідно реалізувати наступні програмні додатки:

- «Калькулятор»

- «Конвертер систем числення»

- «Текстовий редактор»

- «Графічний редактор»

- «Побудова графіків функцій»


 

1. КАЛЬКУЛЯТОР

1.1. Постановка задачі

Реалізувати з використанням об’єктно-орієнтованої парадигми програмування програмний додаток «Калькулятор», який повинен виконувати наступні функції:

1) стандартні математичні операції над числами (+, -, *, /, %);

2) очищення поля вводу;

3) операції з пам’яттю (M+, M-, MC, MR);

4) стандартні операції інженерного калькулятора, а саме піднесення до квадрату, пошук кореня, використання тригонометричних функцій (sin,cos,tan);

5) конвертування величин (м/см, км/миля, г/кг).

Для написання обрати мову програмування C++/CLR, середовище програмування Visual Studio.

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

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



1.2. Опис алгоритму роботи програми

Програмний додаток «Калькулятор» реалізований мовою програмування C++ в середовищі програмування Visual Studio, технологія створення CLR.

Користування даною програмою можливе лише за допомогою мишки шляхом натискання на клавіші. При натисканні на них викликаються відповідні методи. (Програмний код додатку – див. Додаток А)

При натисканні користувачем на клавіші цифр («0», «1», «2», «3», «4», «5», «6», «7», «8», «9», а також на клавішу «,») викликаються методи, які перевіряють, що потрібно робити з цифрою: додати її до раніше введених символів чи вивести її на чисте поле введення.

При натисканні на клавіші, що відповідають за бінарні операції («+», «-», «*», «/», «%», а також «=») символи у полі введення автоматично конвертуються у дійсний тип і запам’ятовуються. Також запам’ятовується й індекс використаної операції, а поле введення очищується. Під час наступного використання цих клавіш відбувається операція згідно до індексу попередньої операції між старим і нововведеним числом. Результат виводиться на екран і запам’ятовується для подальших операцій.

При використанні клавіш пам’яті («M+», «M-», «MC», «MR») користувач має змогу додати до пам’яті введене число, відняти його від пам’яті, вивести результат на екран або очистити пам’ять.

При натисканні на клавішу «С» поле введення очищується, а результуюча змінна та зміна для пам’яті оновлюються.

При натисканні на клавіші, що відповідають за унарні операції («x^2», «sqrt(x)», «1/x», «sin», «cos», «tan», а також клавіші конвертування) програма виконує відповідні операції із введеним числом та зразу виводить результат на екран.

1.3. Тестування та відлагодження

Для запуску додатку відкриваємо файл «MyCalc.exe». В результаті, на екрані комп’ютера з’явиться наступне вікно (Рисунок 1.1):

Рисунок 1.1 - Стартове вікно

Програма надає користувачу можливість використання усіх стандартних операцій над числами, наявних у звичайних калькуляторах. Також в програмі наявні деякі функції інженерного калькулятора та конвертування величин.

Рисунок 1.2 - Результат обчислень

 

Рисунок 1.3 - Можливість конвертування величин


 

2. КОНВЕРТЕР СИСТЕМ ЧИСЛЕННЯ

2.1. Постановка задачі

Реалізувати з використанням об’єктно-орієнтованої парадигми програмування програмний додаток «Конвертер систем числення», який повинен перетворювати введене ціле число між 2-вою, 10-вою та 16-вою системами числення.

Для написання обрати мову програмування C++/MFC, середовище програмування Visual Studio.

Створити графічний інтерфейс програми, який буде містити поле введення та три перемикачі.

Створити та описати функцію, яка буде конвертувати ціле число в іншу систему числення та виводити результат в поле введення.

Описати методи для кожного перемикача, які будуть передавати у функцію конвертування індекс активного перемикача.

2.2. Опис алгоритму роботи програми

Програмний додаток «Конвертер систем числення» реалізований мовою програмування C++ в середовищі програмування Visual Studio, технологія створення MFC.

Користувач зможе керувати даним програмним додатком шляхом введення в текстове поле цілого числа та вибором відповідного перемикача, кожен з яких відповідає за конкретну систему числення.

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

В програмі створена функція ConvertValue, яка конвертує спочатку символи з текстового поля в ціле число, а потім конвертує його в конкретну систему числення. При натисканні на певний перемикач викликається відповідний метод, який передає у функцію ConvertValue індекс цього перемикача. Там цей індекс запам’ятовується.

При зміні системи числення (тобто після того, як користувач після введення числа за допомогою перемикачів обирає іншу систему числення) у функцію передається її індекс. Функція на основі старого та нового індексу аналізує, з якої системи числення в яку потрібно перевести число, виконує конвертацію та виводить результат на екран.

За допомогою даного алгоритму користувач має змогу вводити число в 2-вій та 16-вій системі числення та конвертувати його в іншу систему, а також швидко дізнатись, який вигляд набуде введене число одночасно в інших системах числення. (Програмний код додатку – див. Додаток Б)

2.3. Тестування та відлагодження

Для запуску додатку відкриваємо файл «Converter1.exe». В результаті на екрані комп’ютера з’явиться стартове вікно програми. На ньому користувач спочатку обирає систему числення, потім вводить число (Рисунок 2.1):

Рисунок 2.1 - Введення числа в 10-вій системі числення

 

Рисунок 2.2 - Число в 2-вій системі числення

 

Рисунок 2.3 - Число в 16-вій системі числення

3. ТЕКСТОВИЙ РЕДАКТОР

3.1. Постановка задачі

Реалізувати з використанням об’єктно-орієнтованої парадигми програмування програмний додаток «Текстовий редактор», основною функцією якого є форматування тексту.

Для написання обрати мову програмування C++/MFC, середовище програмування Visual Studio.

Створити проект Visual Studio, задавши конкретні параметри для текстового редактора.

Створити графічний інтерфейс програми, з полем введення, стрічкою меню та панеллю інструментів.

До кожного інструмента з панелі інструментів та до кожного пункту меню підключити відповідні функції для форматування тексту, створення списку, вирівнювання тощо.

3.2. Опис алгоритму роботи програми

Програмний додаток «Текстовий редактор» реалізований мовою програмування C++ в середовищі програмування Visual Studio, технологія створення MFC.

Програма надає користувачу можливість вводити текст, форматувати його, змінювати шрифт, колір тексту та вирівнювання, створювати маркерований список.

При натисканні на інструмент чи пункт меню програми автоматично викликаються відповідні вбудовані функції, які здійснюють форматування тексту. Деякі з них (такі як «Шрифт», «Пошук та заміна») виводять на екран діалогове вікно з набором своїх інструментів для редагування, які користувач може вільно використовувати.

В програмі присутня можливість відкриття іншого документу завдяки пункту меню чи інструменту «Відкрити». Також користувач має змогу зберегти файл чи створити новий документ. Під час закриття програми чи створення нового документу на екран з’являється запит про збереження попереднього документу. (Програмний код додатку – див. Додаток В)

3.3. Тестування та відлагодження

Для запуску додатку відкриваємо файл «MiniWord.exe». Після відкриття користувач має змогу зразу вводити текст, здійснювати його форматування (Рисунок 3.1).

Рисунок 3.1 - Введення та форматування тексту

 

Також користувач може відкрити вже створений текстовий документ, зберегти наявний чи створити новий документ (Рисунок 3.2).

Рисунок 3.2 - Можливість збереження документу

Рисунок 3.3 - Функція «Пошук та заміна»


 

4. ГРАФІЧНИЙ РЕДАКТОР

4.1. Постановка задачі

Реалізувати з використанням об’єктно-орієнтованої парадигми програмування програмний додаток «Графічний редактор», який надає користувачу можливість малювання олівцем чи пензликом, створення прямокутників, еліпсів, прямих ліній.

Для написання обрати мову програмування C#, середовище програмування Visual Studio.

Створити графічний інтерфейс програми, який буде містити дві панелі інструментів та поле для малювання.

До кожного інструмента з панелі інструментів створити та описати методи, які будуть реагувати на дії мишки (“MouseClick”). Для поля для малювання також створити методи (“MouseDown”, “MouseUp”, “MouseMove”, “MouseClick”), функції яких залежатимуть від обраного інструменту.

4.2. Опис алгоритму роботи програми

Програмний додаток «Графічний редактор» реалізований мовою програмування C# в середовищі програмування Visual Studio. Користування даною програмою здійснюється виключно за допомогою мишки.

Для роботи з програмою користувачу потрібно спочатку обрати інструмент (Прямокутник, Еліпс, Пряма, Олівець, Пензлик, Піпетка, Резинка). За бажанням, користувач має змогу змінити колір чи розмір для малювання. Усі ці функції користувач може міняти протягом усього часу роботи в додатку.

В залежності від того, що користувач робить за допомогою мишки, викликаються відповідні методи. (Програмний код додатку – див. Додаток Г)

Коли користувач нажимає ліву кнопку миші на полі для малювання, викликається метод MouseDown, який запам’ятовує початкові координати курсора.

Якщо зажата ліва кнопка миші й користувач перетягує мишку, діє метод MouseMove, який дозволяє малювати олівцем чи пензликом за умови, якщо один з цих інструментів обраний. Також у цьому методі наявна функція резинки.

Коли користувач відпускає ліву кнопку миші, викликається метод MouseUp, який дозволяє будувати еліпс, прямокутник чи пряму, в залежності від того, який інструмент активний. Програма будує дані фігури, використовуючи значення початкових та кінцевих координат курсору, а також їх різницю.

При простому натисканні на полі для малювання автоматично викличеться метод MouseClick. За умови, якщо активний інструмент «Піпетка», метод програми змінить колір для малювання на той, де користувач натиснув на полі.

Якщо вибрати інструмент «Колір», програма автоматично відкриє нове діалогове, де користувач зможе обрати новий колір.

Також в додатку передбачена можливість збереження малюнку у форматі Jpeg, Bmp і Png, відкривання картинок таких же форматів та очистка поля для малювання.

4.3. Тестування та відлагодження

Для запуску додатку відкриваємо файл «Paint.exe». На екран з’явиться вікно програми, на якому користувач зможе зразу приступити до роботи (Рисунок 4.1).

Рисунок 4.1 - Графічний редактор

Програма надає можливість користувачу малювати олівцем чи пензликом, малювати прямокутник, еліпс та пряму. Наявна також функція зміни кольору за допомогою діалогового вікна чи піпетки (Рисунок 4.2).

Рисунок 4.2 - Можливості редактора


 

5. ПОБУДОВА ГРАФІКІВ ФУНКЦІЙ

5.1. Постановка задачі

Реалізувати з використанням об’єктно-орієнтованої парадигми програмування програмний додаток «Побудова графіків функцій», призначений для побудови математичних графіків функцій

Для написання обрати мову програмування C#, середовище програмування Visual Studio.

Створити графічний інтерфейс програми, який буде містити поле Chart, де програма буде будувати графіки, набори текстових полів та написів, клавіші до кожного набору для додавання графіка функцій, та клавішу очистки поля Chart.

Створити та описати методи для кожної клавіші, які зчитують дані з текстових полів, і на їх основі будують графік.

5.2. Опис алгоритму роботи програми

Програмний додаток «Побудова графіків функцій» реалізований мовою програмування C# в середовищі програмування Visual Studio.

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

Програма автоматично будує графіки функцій, з’єднуючи послідовно точки, координати яких користувач задає формулою в текстових полях.

В програмі також наявна можливість зміни кольору нового графіка, а також побудова кола за введеним радіусом.

(Програмний код додатку – див. Додаток Д)


 

5.3. Тестування та від лагодження

Для запуску додатку відкриваємо файл «graph.exe». У програмі користувач задає у відповідних текстових полях значення коефіцієнтів для побудови графіків, після натискання клавіші графік функції з’являється на екран.

Рисунок 5.1 - Побудова графіків функцій

 

Рисунок 5.2 - Можливість зміни кольору графіків


 

ВИСНОВКИ

Отже, на даній навчальній практиці були реалізовані програмні додатки з графічним інтерфейсом у середовищі розробки програмного забезпечення Visual Studio мовами програмування C++ та C#, з використанням технологій CLR та MFC.

Реалізовані наступні програмні додатки:

- «Калькулятор» - програмний додаток для виконання стандартних математичних дій над числами.

- «Конвертер систем числення» - програмний додаток для переведення цілих чисел з десяткової в інші системи числення.

- «Текстовий редактор» - програмний додаток для форматування тексту.

- «Графічний редактор» - програмний додаток для малювання.

- «Побудова графіків функцій» - програмний додаток для побудови стандартних математичних графіків функцій.

Завдяки використанню усіх можливостей середовища програмування Visual Studio вдалося реалізувати якісне, ефективне та зручне у використанні програмне забезпечення.

В результаті виконання навчальної практики здобуто навики програмування мовою C#, навики користування технологіями CLR та MFC у середовищі Visual Studio та вдосконалено принципи об’єктно-орієнтованої парадигми програмування мовою C++.


 

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

1. Microsoft Visual Studio/ Л. Пауерс, М. Снелл: Пер. С англ. – СПб.: БХВ – Петербург, 2009 – 1200с.

2. Visual C++ на примерах/ Г. Ф. Довбуш, А. Д. Хоменко. – СПб.:БХВ – Петербург, 2007 – 528с.

3. MFC шаг за шагом [електронний ресурс] http://www.firststeps.ru/mfc/steps/mfc1.html

4. Довідник користувача [електронний ресурс] https://uchenik-ua.com/akts/729/index.html?%20page=12

5. CLR введение [електронний ресурс] http://www.mista.ru/net/clr.html


 

ДОДАТКИ

Додаток А

Програмний код додатку «Калькулятор»

#pragma endregion

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

if(!fd) label1->Text+=button1->Text;

else{

label1->Text=button1->Text;

fd=false;

}

}

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

if(fd){

label1->Text=button2->Text;

fd=false;

}

else label1->Text+=button2->Text;

}

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

if(fd){

label1->Text=button3->Text;

fd=false;

}

else label1->Text+=button3->Text;

}

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

if(fd){

label1->Text=button4->Text;

fd=false;

}

else label1->Text+=button4->Text;

}

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

if(fd){

label1->Text=button5->Text;

fd=false;

}

else label1->Text+=button5->Text;

}

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

if(fd){

label1->Text=button6->Text;

fd=false;

}

else label1->Text+=button6->Text;

}

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

if(fd){

label1->Text=button7->Text;

fd=false;

}

else label1->Text+=button7->Text;

}

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

if(fd){

label1->Text=button8->Text;

fd=false;

}

else label1->Text+=button8->Text;

}

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

if(fd){

label1->Text=button9->Text;

fd=false;

}

else label1->Text+=button9->Text;

}

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

if(fd){

label1->Text=button10->Text;

fd=false;

}

else label1->Text+=button10->Text;

}

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

label1->Text=L"0";

ac=0;

op=0;

fd=true;

}

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

if(fd){

label1->Text=L"0"+button_p->Text;

fd=false;

}

else if(label1->Text->IndexOf(",")==-1) label1->Text+=button_p->Text;

}

 

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

double n=Convert::ToDouble(label1->Text);

n*=-1;

label1->Text=n.ToString("N");

}

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

double n=Convert::ToDouble(label1->Text);

switch(op){

case -3: ac+=n; break;

case -4: ac-=n; break;

case -5: ac*=n; break;

case -6: if(n!=0)

ac/=n;

else{

label1->Text=L"Error";

fd=true;

ac=0;

}

break;

case -7: ac=(int)ac%(int)n; break;

case 10: ac=n; break;

}

if(n!=0) label1->Text=ac.ToString("N");

op=Convert::ToInt32(button_OK->Tag);

fd=true;

}

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

double n=Convert::ToDouble(label1->Text);

if(ac!=0 && !fd){

switch(op){

case -3: ac+=n; break;

case -4: ac-=n; break;

case -5: ac*=n; break;

case -6: if(n!=0)

ac/=n;

else{

label1->Text=L"Error";

fd=true;

ac=0;

}

break;

case -7: ac=(int)ac%(int)n; break;

case 10: ac=n; break;

}

if(n!=0) label1->Text=ac.ToString("N");

}

else ac=n;

op=Convert::ToInt32(button_plus->Tag);

fd=true;

}

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

double n=Convert::ToDouble(label1->Text);

if(ac!=0 && !fd){

switch(op){

case -3: ac+=n; break;

case -4: ac-=n; break;

case -5: ac*=n; break;

case -6: if(n!=0)

ac/=n;

else{

label1->Text=L"Error";

fd=true;

ac=0;

}

break;

case -7: ac=(int)ac%(int)n; break;

case 10: ac=n; break;

}

if(n!=0) label1->Text=ac.ToString("N");

}

else ac=n;

op=Convert::ToInt32(button_minus->Tag);

fd=true;

}

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

double n=Convert::ToDouble(label1->Text);

if(ac!=0 && !fd){

switch(op){

case -3: ac+=n; break;

case -4: ac-=n; break;

case -5: ac*=n; break;

case -6: if(n!=0)

ac/=n;

else{

label1->Text=L"Error";

fd=true;

ac=0;

}

break;

case -7: ac=(int)ac%(int)n; break;

case 10: ac=n; break;

}

if(n!=0) label1->Text=ac.ToString("N");

}

else ac=n;

op=Convert::ToInt32(button_mnozh->Tag);

fd=true;

}

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

double n=Convert::ToDouble(label1->Text);

if(ac!=0 && !fd){

switch(op){

case -3: ac+=n; break;

case -4: ac-=n; break;

case -5: ac*=n; break;

case -6: if(n!=0)

ac/=n;

else{

label1->Text=L"Error";

fd=true;

ac=0;

}

break;

case -7: ac=(int)ac%(int)n; break;

case 10: ac=n; break;

}

if(n!=0) label1->Text=ac.ToString("N");

}

else ac=n;

op=Convert::ToInt32(button_dil->Tag);

fd=true;

}

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

double n=Convert::ToInt32(label1->Text);

if(ac!=0 && !fd){

switch(op){

case -3: ac+=n; break;

case -4: ac-=n; break;

case -5: ac*=n; break;

case -6: if(n!=0)

ac/=n;

else{

label1->Text=L"Error";

fd=true;

ac=0;

}

break;

case -7: ac=(int)ac%(int)n; break;

case 10: ac=n; break;

}

if(n!=0) label1->Text=ac.ToString("N");

}

else ac=n;

op=Convert::ToInt32(button_vidc->Tag);

fd=true;

}

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

double n=Convert::ToDouble(label1->Text);

if(n>=0){

n=sqrt(n);

label1->Text=n.ToString("N");

}

else{

label1->Text=L"Error";

ac=0;

op=0;

}

fd=true;

}

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

double n=Convert::ToDouble(label1->Text);

n=pow(n,2);

label1->Text=n.ToString("N");

fd=true;

}

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

double n=Convert::ToDouble(label1->Text);

if(n!=0){

n=1/n;

label1->Text=n.ToString("N");

}

else{

label1->Text=L"Error";

ac=0;

op=0;

}

fd=true;

}

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

label1->Text=MM.ToString("N");

}

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

MM=0;

}

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

double n=Convert::ToDouble(label1->Text);

MM+=n;

label1->Text=L"0";

fd=true;

}

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

double n=Convert::ToDouble(label1->Text);

MM-=n;

label1->Text=L"0";

fd=true;

}

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

if(size!=300){

this->ClientSize = System::Drawing::Size(size, 218);

size=300;

}

else{

this->ClientSize = System::Drawing::Size(size, 218);

size=232;

}

}

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

double n=Convert::ToDouble(label1->Text);

n/=100;

label1->Text=n.ToString("N");

}

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

double n=Convert::ToDouble(label1->Text);

n*=100;

label1->Text=n.ToString("N");

}

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

double n=Convert::ToDouble(label1->Text);

n/=1000;

label1->Text=n.ToString("N");

}

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

double n=Convert::ToDouble(label1->Text);

n*=1000;

label1->Text=n.ToString("N");

}

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

double n=Convert::ToDouble(label1->Text);

n/=1.6;

label1->Text=n.ToString("N");

}

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

double n=Convert::ToDouble(label1->Text);

n*=1.6;

label1->Text=n.ToString("N");

}

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

double n=Convert::ToDouble(label1->Text);

n=sin(n);

label1->Text=n.ToString("N");

}

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

double n=Convert::ToDouble(label1->Text);

n=cos(n);

label1->Text=n.ToString("N");

}

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

double n=Convert::ToDouble(label1->Text);

n=tan(n);

label1->Text=n.ToString("N");

}


 

Додаток Б

Програмний код додатку «Конвертер систем числення»

void CConvertor1Dlg::OnBnClickedRadio1()

{

ConvertValue(1);

}

 

 

void CConvertor1Dlg::OnBnClickedRadio2()

{

ConvertValue(2);

}

 

 

void CConvertor1Dlg::OnBnClickedRadio3()

{

ConvertValue(3);

}

 

 

void CConvertor1Dlg::ConvertValue(short m_rad)

{

switch(m_rad){

case 1:{

switch(m_op){

case 2:{

UpdateData(TRUE);

CString sNumber;

sNumber=Edit_inp;

char sNewValue[20];

int ch=_ttoi(sNumber);

itoa(ch,sNewValue,2);

CString str(sNewValue);

Edit_inp=str;

UpdateData(FALSE);

break;

}

case 3:{

UpdateData(TRUE);

CString sNumber;

sNumber=Edit_inp;

int k=sNumber.GetLength();

char c[20];

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

c[i]=sNumber[i];

c[k]='\0';

char *asd;

int ch=strtol(c,&asd,16);

char sNewValue[20];

itoa(ch,sNewValue,2);

Edit_inp=sNewValue;

UpdateData(FALSE);

break;

}

}

m_op=1;

break;

}

case 2:{

switch(m_op){

case 1:{

UpdateData(TRUE);

CString sNumber;

sNumber=Edit_inp;

int k=sNumber.GetLength();

int ch=0;

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

if(sNumber[i]=='1') ch+=powl(2,k-i-1);

char sNewValue[20];

itoa(ch,sNewValue,10);

Edit_inp=sNewValue;

UpdateData(FALSE);

break;

}

case 3:{

UpdateData(TRUE);

CString sNumber;

sNumber=Edit_inp;

int k=sNumber.GetLength();

char c[20];

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

c[i]=sNumber[i];

c[k]='\0';

char *asd;

int ch=strtol(c,&asd,16);

char sNewValue[20];

itoa(ch,sNewValue,10);

Edit_inp=sNewValue;

UpdateData(FALSE);

break;

}

break;

}

m_op=2;

break;

}

case 3:{

switch(m_op){

case 1:{

UpdateData(TRUE);

CString sNumber;

sNumber=Edit_inp;

int k=sNumber.GetLength();

int ch=0;

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

if(sNumber[i]=='1') ch+=powl(2,k-i-1);

char sNewValue[20];

itoa(ch,sNewValue,16);

CString str(sNewValue);

Edit_inp=str;

UpdateData(FALSE);

break;

}

case 2:{

UpdateData(TRUE);

CString sNumber;

sNumber=Edit_inp;

char sNewValue[20];

int ch=_ttoi(sNumber);

itoa(ch,sNewValue,16);

CString str(sNewValue);

Edit_inp=str;

UpdateData(FALSE);

break;

}

break;

}

m_op=3;

break;

}

}

}


 

Додаток В

Програмний код додатку «Текстовий редактор»

IMPLEMENT_DYNCREATE(CMiniWordView, CRichEditView)

 

BEGIN_MESSAGE_MAP(CMiniWordView, CRichEditView)

ON_WM_DESTROY()

// Стандартные команды печати

ON_COMMAND(ID_FILE_PRINT, &CRichEditView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_DIRECT, &CRichEditView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CRichEditView::OnFilePrintPreview)

 

ON_COMMAND(ID_grn, &CRichEditView::OnCharBold)

ON_COMMAND(ID_kurs, &CRichEditView::OnCharItalic)

ON_COMMAND(ID_pidch, &CRichEditView::OnCharUnderline)

 

ON_COMMAND(ID_left, &CRichEditView::OnParaLeft)

ON_COMMAND(ID_center, &CRichEditView::OnParaCenter)

ON_COMMAND(ID_right, &CRichEditView::OnParaRight)

 

ON_COMMAND(ID_shrift, &CRichEditView::OnFormatFont)

ON_COMMAND(ID_find_replace, &CRichEditView::OnEditReplace)

ON_COMMAND(ID_spysok, &CRichEditView::OnBullet)

END_MESSAGE_MAP()

 


 

Додаток Г

Програмний код додатку «Графічний редактор»

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Collections;

using System.Runtime.InteropServices;

using System.Runtime.Serialization.Formatters.Binary;

using System.Drawing.Imaging;

using System.Drawing.Drawing2D;

using System.IO;

using System.Threading.Tasks;

 

namespace Paint

{

public partial class Form1 : Form

{

Color paintcolor=Color.Black;

bool draw = false;

int x, y, lx, ly = 0;

Item currItem;

public Form1()

{

InitializeComponent();

}

 

public enum Item

{

Rectangle, Ellipse, Line, Pencil, Brush, ColorPicker, Eraser

}

 

private void pictureBox3_MouseDown(object sender, MouseEventArgs e)

{

draw = true;

x = e.X;

y = e.Y;

}

 

private void pictureBox3_MouseUp(object sender, MouseEventArgs e)

{

draw = false;

lx = e.X;

ly = e.Y;

Graphics g = pictureBox3.CreateGraphics();

switch (currItem)

{

case Item.Line:

g.DrawLine(new Pen(new SolidBrush(paintcolor)), new Point(x, y), new Point(lx, ly));

break;

case Item.Rectangle:

g.FillRectangle(new SolidBrush(paintcolor), x, y, e.X - x, e.Y - y);

break;

case Item.Ellipse:

g.FillEllipse(new SolidBrush(paintcolor), x, y, e.X - x, e.Y - y);

break;

}

g.Dispose();

}

 

private void pictureBox3_MouseMove(object sender, MouseEventArgs e)

{

if (draw)

{

Graphics g = pictureBox3.CreateGraphics();

switch (currItem)

{

case Item.Brush:

g.FillEllipse(new SolidBrush(paintcolor), e.X, e.Y, Convert.ToInt32(toolStripTextBox1.Text), Convert.ToInt32(toolStripTextBox1.Text));

break;

case Item.Pencil:

g.FillEllipse(new SolidBrush(paintcolor), e.X, e.Y, 3, 3);

break;

case Item.Eraser:

g.FillEllipse(new SolidBrush(pictureBox3.BackColor), e.X, e.Y, Convert.ToInt32(toolStripTextBox1.Text), Convert.ToInt32(toolStripTextBox1.Text));

break;

}

g.Dispose();

 

}

}

 

private void toolStripButton6_Click(object sender, EventArgs e)

{

currItem = Item.Line;

}

 

private void toolStripButton4_Click(object sender, EventArgs e)

{

currItem = Item.Rectangle;

}

 

private void toolStripButton5_Click(object sender, EventArgs e)

{

currItem = Item.Ellipse;

}

 

private void toolStripButton8_Click(object sender, EventArgs e)

{

currItem = Item.Brush;

}

 

private void toolStripButton7_Click(object sender, EventArgs e)

{

currItem = Item.Pencil;

}

 

private void toolStripButton9_Click(object sender, EventArgs e)

{

currItem = Item.ColorPicker;

}

 

private void pictureBox3_MouseClick(object sender, MouseEventArgs e)

{

if (currItem == Item.ColorPicker)

{

Bitmap bmp = new Bitmap(pictureBox3.Width, pictureBox3.Height);

Graphics g = Graphics.FromImage(bmp);

Rectangle rect = pictureBox3.RectangleToScreen(pictureBox3.ClientRectangle);

g.CopyFromScreen(rect.Location, Point.Empty, pictureBox3.Size);

g.Dispose();

paintcolor = bmp.GetPixel(e.X, e.Y);

toolStripButton12.BackColor = paintcolor;

}

}

 

private void toolStripButton10_Click(object sender, EventArgs e)

{

currItem = Item.Eraser;

}

 

private void toolStripButton2_Click(object sender, EventArgs e)

{

OpenFileDialog o = new OpenFileDialog();

o.Filter = "png files|*.png|jpeg files|*.jpg|bitmaps|*.bmp";

if (o.ShowDialog() == System.Windows.Forms.DialogResult.OK)

{

pictureBox3.Image = (Image)Image.FromFile(o.FileName).Clone();

}

}

 

private void toolStripButton3_Click_1(object sender, EventArgs e)

{

Bitmap bmp = new Bitmap(pictureBox3.Width, pictureBox3.Height);

Graphics g = Graphics.FromImage(bmp);

Rectangle rect = pictureBox3.RectangleToScreen(pictureBox3.ClientRectangle);

g.CopyFromScreen(rect.Location, Point.Empty, pictureBox3.Size);

g.Dispose();

SaveFileDialog s = new SaveFileDialog();

s.Filter = "png files|*.png|jpeg files|*.jpg|bitmaps|*.bmp";

if (s.ShowDialog() == System.Windows.Forms.DialogResult.OK)

{

if (File.Exists(s.FileName))

{

File.Delete(s.FileName);

}

if (s.FileName.Contains(".jpg"))

{

bmp.Save(s.FileName, ImageFormat.Jpeg);

}

else if (s.FileName.Contains(".png"))

{

bmp.Save(s.FileName, ImageFormat.Png);

}

else if (s.FileName.Contains(".bmp"))

{

bmp.Save(s.FileName, ImageFormat.Bmp);

}

}

 

}

 

private void toolStripButton1_Click(object sender, EventArgs e)

{

pictureBox3.Refresh();

pictureBox3.Image=null;

}

 

private void toolStripButton11_Click(object sender, EventArgs e)

{

ColorDialog dlg = new ColorDialog();

dlg.Color = paintcolor;

if (dlg.ShowDialog() == DialogResult.OK)

{

paintcolor = dlg.Color;

toolStripButton12.BackColor = paintcolor;

}

}

}

}

 


 

Додаток Д

Програмний код додатку «Побудова графіків функцій»

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace graph

{

public partial class Form1 : Form

{

 

Color paintcolor = Color.Black;

short change = 1;

 

public Form1()

{

InitializeComponent();

}

 

private void Form1_Load(object sender, EventArgs e)

{

chart1.ChartAreas.Add("area");

 

int start = Convert.ToInt32(interval1.Text);

int end = Convert.ToInt32(interval2.Text);

}

 

private void button1_Click(object sender, EventArgs e)

{

chart1.ChartAreas.Clear();

chart1.Series.Clear();

 

Form1_Load(sender,e);

}

 

private void pictureBox1_Click(object sender, EventArgs e)

{

ColorDialog dlg = new ColorDialog();

dlg.Color = paintcolor;

if (dlg.ShowDialog() == DialogResult.OK)

{

paintcolor = dlg.Color;

pictureBox1.BackColor = paintcolor;

}

}

 

private void LINE_Click_1(object sender, EventArgs e)

{

string tmp = Convert.ToString(change); ;

chart1.Series.Add(tmp);

int start = Convert.ToInt32(interval1.Text);

int end = Convert.ToInt32(interval2.Text);

chart1.ChartAreas["area"].AxisX.Minimum = start;

chart1.ChartAreas["area"].AxisX.Maximum = end;

chart1.Series[tmp].Color = paintcolor;

chart1.Series[tmp].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;

double ind = Convert.ToDouble(x1.Text);

double ud = Convert.ToDouble(updown1.Text);

for (float i = start; i <= end; i+=(float)1/4)

{

chart1.Series[tmp].Points.AddXY(i, ind * i + ud);

}

change++;

}

 

private void X2_Click_1(object sender, EventArgs e)

{

string tmp = Convert.ToString(change);

chart1.Series.Add(tmp);

int start = Convert.ToInt32(interval1.Text);

int end = Convert.ToInt32(interval2.Text);

chart1.ChartAreas["area"].AxisX.Minimum = start;

chart1.ChartAreas["area"].AxisX.Maximum = end;

chart1.Series[tmp].Color = paintcolor;

chart1.Series[tmp].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;

double ind1 = Convert.ToDouble(x21.Text);

double ind2 = Convert.ToDouble(x22.Text);

double lr = Convert.ToDouble(leftright2.Text);

double ud = Convert.ToDouble(updown3.Text);

for (float i = start; i <= end; i += (float)1 / 4)

{

chart1.Series[tmp].Points.AddXY(i, ind1 * Math.Pow(ind2 * i + lr, 2) + ud);

}

change++;

}

 

private void SQRT_Click_1(object sender, EventArgs e)

{

string tmp = Convert.ToString(change);

chart1.Series.Add(tmp);

int start = Convert.ToInt32(interval1.Text);

int end = Convert.ToInt32(interval2.Text);

chart1.ChartAreas["area"].AxisX.Minimum = start;

chart1.ChartAreas["area"].AxisX.Maximum = end;

chart1.Series[tmp].Color = paintcolor;

chart1.Series[tmp].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;

double ind1 = Convert.ToDouble(x31.Text);

double ind2 = Convert.ToDouble(x32.Text);

double lr = Convert.ToDouble(leftright3.Text);

double ud = Convert.ToDouble(updown3.Text);

for (float i = start; i <= end; i += (float)1 / 4)

{

chart1.Series[tmp].Points.AddXY(i, ind1 * Math.Sqrt(ind2 * i + lr) + ud);

}

change++;

}

 

private void SIN_Click_1(object sender, EventArgs e)

{

string tmp = Convert.ToString(change);

chart1.Series.Add(tmp);

int start = Convert.ToInt32(interval1.Text);

int end = Convert.ToInt32(interval2.Text);

chart1.ChartAreas["area"].AxisX.Minimum = start;

chart1.ChartAreas["area"].AxisX.Maximum = end;

chart1.Series[tmp].Color = paintcolor;

chart1.Series[tmp].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;

double ind1 = Convert.ToDouble(x41.Text);

double ind2 = Convert.ToDouble(x42.Text);

double lr = Convert.ToDouble(leftright4.Text);

double ud = Convert.ToDouble(updown4.Text);

for (float i = start; i <= end; i += (float)1 / 4)

{

chart1.Series[tmp].Points.AddXY(i, ind1 * Math.Sin(ind2 * i + lr) + ud);

}

change++;

}

 

private void COS_Click_1(object sender, EventArgs e)

{

string tmp = Convert.ToString(change);

chart1.Series.Add(tmp);

int start = Convert.ToInt32(interval1.Text);

int end = Convert.ToInt32(interval2.Text);

chart1.ChartAreas["area"].AxisX.Minimum = start;

chart1.ChartAreas["area"].AxisX.Maximum = end;

chart1.Series[tmp].Color = paintcolor;

chart1.Series[tmp].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;

double ind1 = Convert.ToDouble(x51.Text);

double ind2 = Convert.ToDouble(x52.Text);

double lr = Convert.ToDouble(leftright5.Text);

double ud = Convert.ToDouble(updown5.Text);

for (float i = start; i <= end; i += (float)1 / 4)

{

chart1.Series[tmp].Points.AddXY(i, ind1 * Math.Cos(ind2 * i + lr) + ud);

}

change++;

}

 

private void CIRCLE_Click(object sender, EventArgs e)

{

string tmp = Convert.ToString(change);

chart1.Series.Add(tmp);

int start = Convert.ToInt32(interval1.Text);

int end = Convert.ToInt32(interval2.Text);

chart1.ChartAreas["area"].AxisX.Minimum = start;

chart1.ChartAreas["area"].AxisX.Maximum = end;

chart1.Series[tmp].Color = paintcolor;

chart1.Series[tmp].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;

double r = Convert.ToDouble(radius.Text);

for (float i = start; i <= end; i += (float)1 / 4)

{

chart1.Series[tmp].Points.AddXY(i, Math.Sqrt(Math.Pow(r, 2) - Math.Pow(i, 2)));

}

for (float i = end; i >= start; i -= (float)1 / 4)

{

chart1.Series[tmp].Points.AddXY(i, (-1) * Math.Sqrt(Math.Pow(r, 2) - Math.Pow(i, 2)));

}

change++;

}

}

}


 

Додаток Е



<== предыдущая лекция | следующая лекция ==>
Results | Робочі записи під час практики


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.31 сек.