Материал: metodichka_u_praktika

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
  • Вибираємо вкладку File View.

  • Клацаємо правою кнопкою миші по напису Lab_01 files (файли проекту).

  • Вибираємо пункт меню Add files to Project.

  • У вікні, що з'явилося, в полі File name пишемо ім'я вихідного файлу (lаЬ_01.срр) і клацаємо кнопку ОК.

  • Відповідаємо Yes на питання про додавання файлу в проект.

  1. На вкладці File View розвертаємо Lab_01 files, а потім Source Files. Двічі клацаємо по створеному нами файлу lab_01.cpp і відповідаємо Yes на питання про створення файлу.

  2. Записуємо в редакторові вихідної коди текст програми:

#include "iostream.h" //Підключити бібліотеку

void main() //Головна функція

{ //Операторні дужки

int а, b; //Об’явити змінні

cin >> а; //Прочитати а з клавіатури

b = а * 5; //Привласнити b значення а*5

cout << "Result = "; //Вивести рядок

cout << b << "\n"; //Вивести результат і перевести рядок

} //Кінець програми

  1. Компілюємо і застосування, натискує клавішу F7. Аби запустити застосування, натискуємо комбінацію клавіш Ctrl+F5 або клацаємо по відповідному значку на панелі інструментів.

  2. Тестуємо програму: вводимо ціле число і натискуємо Enter.

  3. Отримуємо правильний результат (а * число).

Результат роботи програми

Створення застосування Win32

  1. Вибираємо пункт головного меню File -> New -> Project -> Win32 Application.

  2. Встановлюємо ім'я (lab_01_win32) і дорогу так само, як і при створенні консольного застосування.

  3. Клацаємо кнопку ОК.

  4. Вибираємо An empty project (порожній проект) клацаємо кнопку Finish, потім ОК.

  5. Компілюємо і намагаємося запустити застосування.

  6. Бачимо на екрані повідомлення про неможливість виконати програму.

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

#include "afxwin.h" //MFC Основні і стандартні компоненты

class CMainWnd : public CFrameWnd {

public : CMainWnd(); //Конструктор за умовчанням

};

CMainWnd::CMainWnd()

{

Create (NULL, "lab_01_win32", WS_OVERLAPPEDWINDOW, rectDefault

NULL, NULL); //Створити вікно програми

}

class CMyApp : public CWinApp {

public : CMyApp(); //конструктор за умовчанням

virtual BOOL InitInstance(); //стандартна ініціалізація };

CMyApp::CMyApp() //конструктор головного класу застосування

{}

BOOL CMyApp::InitInstance() //стандартнаи ініціалізація {

m pMainWnd=new CMainWnd(); //створити клас вікна ASSERT(m pMainWnd); //проверить його правильність

m pMainWnd->ShowWindow(SW SHOW); //Показати вікно m pMainWnd->UpdateWindow(); //Обновит вікно

return TRUE; //Вернути , що все нормально

};

CMyApp theApp; //запустити застосування

Але і це ще не все. Тепер потрібно набудувати проект так, щоб він використовував MFC. MFC знаходиться в DLL файлах. І якщо наш проект використовуватиме MFC, ми повинні це вказати для того, щоб компілятор міг підключити необхідні файли LIB із засланнями на функції в DLL. Якщо цього не зробити, то проект не збереться. Аби наша програма запустилася, потрібно:

  1. Вибрати пункт головного меню Project -> Settings...

  2. У полі Settings For вибрати пункт All Configurations

  3. У полі Microsoft Foundation Classes вибрати пункт Use MFC in Shared DLL.

  4. Натискувати кнопку ОК.

І лише після цього ми зможемо відкомпілювати і запустити наше застосування - порожнє вікно із заголовком "lab_01_win32". Результат на малюнку:

Створення MFC застосування

  1. Вибираємо пункт головного меню File -> New -> Project -> MFC AppWizard(exe).

  2. Встановлюємо ім'я (lab_01_mfc) і дорогу так само, як і при створенні консольного застосування.

  3. Клацаємо кнопку ОК.

  4. Вибираємо Single Document (один документ) і клацаємо кнопку Next «до перемоги». Потім клацаємо кнопку Finish, потім ОК.

  5. Компілюємо і запускаємо застосування.

  6. Бачимо на екрані вікно застосування з набором стандартних пунктів меню і стандартною ж панеллю інструментів.

  7. Тестуємо застосування: багато пунктів меню і кнопки на панелі інструментів не працюють, оскільки для них не прописані методи.

  8. Закриваємо застосування і на вкладці Class знаходимо клас вигляду (у нашому випадку це пункт Clab_01_mfcView).

  9. У цьому класі знаходимо метод OnDraw і замінюємо його наступним кодом:

void CLab 01 mfcView::OnDraw(CDC* pDC)

{

CString welcom = "Привіт, моє вікно!”; //Объявить змінну

CLab 01 mfcDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

pDC->TextOut(0,0,welcom);//Вивести текст у вікно

}

Тепер це застосування виводитиме у вікно рядок "Привіт, моє вікно!”. Початок рядка виводиться в координати (0, 0) за допомогою методу TextOut. Результат на малюнку:

Робота № 2

Реалізація простої програми на VC++, з використанням графічного інтерфейсу і бібліотеки MFC (Windows Application на основі діалогового вікна).

Мета роботи:

Навчитися розробляти і реалізовувати прості програми на мові VC++. Отримати практичні навики роботи по використанню графічного інтерфейсу. Навчитися пов'язувати змінні і методи з елементами діалогового вікна.

  1. Створюємо порожній проект Console Application і реалізуємо в нім програму по обчисленню вартості поїздки на автомобілі

Для цього виконуємо ті ж дії, що і в лабораторній роботі № 1, лише при створенні проекту вибираємо Win32 Console Application.

Результат роботи програми

Потім у вихідний файл поміщаємо наступний код:

#include "iostream.h"

void main()

{

float km //Километраж

Litres, //Расход палива (л/100км)

Price; //Ціна одного літра палива

cout << "\n Way = "; //Вивести рядок

cin >> km; //Прочитати кілометраж

cout << "\n Litres = ";

cin >> Litres; //Прочитати витрата палива

cout << "\n Price = ";

cin >> Price; //Прочитати ціну одного літра

//Вивести результат

cout << "\n Result = " << (km/100)*Litres*Price << "\n";

}

  1. Створюємо застосування за допомогою MFC AppWizard(exe) з діалоговим вікном як головний і реалізуємо в нім програму з п.1

  1. Створюємо новий проект як завжди.

  2. Вибираємо MFC AppWizard(exe).

  3. У наступному діалоговому вікні вибираємо типа застосування. У нашому випадку це буде Dialog Based.

За допомогою миші і відповідної панелі інструментів створюємо на формі потрібні нам елементи: написи (Static Text), однорядкові редактори для введення-виведення даних (Edit Box) і кнопки. Аби розмістити компонент на формі (діалозі), потрібно клацнути по цьому компоненту на панелі Controls ; потім клацнути в тому місці форми, де потрібно розмістити компонент. Якщо панелі Controls на екрані чомусь немає, то дістаємо її таким чином: клацаємо правою кнопкою миші по головному меню і встановлюємо прапорець напроти пункту Controls.

Static Text

Після розміщення цього компонента на формі, клацаємо по ньому правою кнопкою і в полі Caption пишемо потрібне нам слово. Аби при виконанні програми правильно відображувалися символи російського алфавіту, потрібно на вкладці ResourceView відкрити теку Dialog і клацнути правою кнопкою по потрібному діалогу (у нашому випадку - IDD_LAB_02_2_DIALOG). Потім вибрати Properties (Властивості), в полі Language встановити російську мову і закрити діалог або натискувати клавішу Enter.

Edit Box

Для того, щоб ми могли працювати з даними, що вводяться в цей елемент, потрібно з цим елементом зв'язати змінну. А для цього викликаємо ClassWizard з меню View. Переходимо на вкладку Member Variable, виділяємо потрібний елемент і клацаємо по кнопці Add Variable.

У полі Member Variable Name вписуємо ім'я змінної, а в полі Variable Type вибираємо типа змінної. Ми працюватимемо з дійсними числами, тому вибираємо float.

Button

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

void CLab 02 2Dlg::OnButton1() //Подія для кнопки «Розрахувати»

{

UpdateData(1); //Получити дані з редакторів m_edResult = (m edWay/100)*m edLitres*m edPrice;

UpdateData(0); //Вивести дані в редактори

}

Тут функція UpdateData() або записує дані з редактор! змінні, або виводить значення змінних в редактори, залежно від отримуваного параметра: 1 - отримати дані, 0 - вивести дані.

  1. Удосконалюємо програму з п.2, додаючи підрахунок вартості декількох поїздок

Додаємо елемент для введення даних і пов'язуємо з ним змінну m_edNum. А формула буде такою:

m_edResult = (m_edWay/100)*m_edLitres*m_edPrice*m_edNum;

  1. Удосконалити отриману програму, додавши кнопку, по натисненню на яку в редактори виводяться заздалегідь визначені значення (Відстань = 240 км., Витрата = 8,4 л/100км, Ціна = 16,5)

Додаємо кнопку «За умовчанням» і пов'язуємо з нею подію. Додаємо код:

void CLab 02 2Dlg::OnDefault()

{

medWay = 240; //Відстань

m_edLitres = 8.4; //Расход

m_edPrice = 16.5; //Ціна

m_edNum = 1; //Кількість поїздок

m_edResult = (m edWay/100)*m edLitres*m edPrice*m edNum; UpdateData(0); //Вивести дані в редактори

}

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

Робота № 3

Створення графічного інтерфейсу на базі діалогового вікна VC++, з використанням перемикачів, прапорців. Реалізація алгоритмів, що розгалужуються.

Мета роботи:

Навчитися розробляти і реалізовувати програми на основі алгоритмів, що розгалужуються, з використанням прапорців і перемикачів, а також операторів if і switch. Отримати практичні навики роботи по використанню різних елементів графічного інтерфейсу і операторів мови VC++.

  1. Вирішити завдання: У гаражі є 4 різних автомобіля (ВАЗ, Газель, ГАЗ-66, Мерседес), кожен автомобіль має свою витрату палива на 100 км. дороги, а також свою вартість палива. Програма повинна обчислювати вартість поїздки для заданої машини. Реалізувати, використовуючи прапорці і перемикачі, операторів if і switch

Розміщуємо на формі чотири перемикачі (Radio Button): ВАЗ, Газель, ГАЗ-6 6 і Мерседес. Для кожного з цих перемикачів нам потрібно визначити подію - в нашому випадку це буде клацання лівою кнопкою миші. Визначити подію можна, наприклад, так:

  1. Клацнути правою кнопкою по перемикачу ВАЗ.

  2. Вибрати пункт Events.

  3. У полі Class or object to handle вибрати IDC_RADI01.

  4. У полі New Windows Massages/Events вибрати BN_CLICED.

  5. Клацнути по кнопці Add and Edit.

  6. У полі Member function name вписати ім'я події (у нашому випадку хай буде ONVAZ).

  7. Клацнути кнопку ОК.

Елемент Radio Button - це залежний перемикач. Якщо на формі розмістити декілька таких елементів, то при клацанні на будь-якому з них даний елемент буде «включений», а останні автоматично «вимкнуться».

У редакторові вихідної коди впишемо наступне:

void CLab 03Dlg::OnVAZ()

{

m_edLitres = 6.5; //Расход палива

m_edPrice = 17.5; //Цена одного літра

UpdateData(0); //Вывести дані в редактори

}

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

Розрахунок поїздки виконується так само, як і в попередній лабораторній роботі.

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

Розміщуємо на формі чотири перемикачі: ВАЗ, Газель, ГАЗ-66, Мерседес. Аби подровнять перемикачі, клацаємо на одному з них, а потім, натискує і утримуючи клавішу Ctrl, клацаємо по черзі на останніх. Вибираємо в головному меню пункт Layout -> Align -> Left. Таким чином, вирівнюємо елементи по лівому краю. Далі вибираємо Layout -> Space Evenly -> Down, встановлюючи, таким чином, однаковий інтервал між елементами.

Далі клацаємо правою кнопкою по першому перемикачу (ВАЗ) і вибираємо пункт Properties. Встановлюємо прапорець Group. Така установка означає, що перемикач ВАЗ є першим елементом групи перемикачів.

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

void CLab 03Dlg::OnVAZ()

{

m_edLitres = 6.5; //Расход палива

m_edPrice = 17.5; //Цена одного літра

m_radio = 0; //Включить перший перемикач

UpdateData(0); //Вывести дані в редактори

}

Додаємо подію для кнопки РЕЗУЛЬТАТУ і пишемо код:

void CLab 03 2Dlg::OnResult()

{

UpdateData(1); //Получить дані з редакторів

M_edResult = (m edWay/100)*m_edLitres*m edPrice*m_edNum;

UpdateData(0); //Вывести дані в редактори

}

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

Додаємо ще двох редакторів для введення даних: Вантажопідйомність (m_edTonnage) і Вага вантажу (m_edWeight). Ці величини вимірюватимемо в кілограмах.

Оскільки користуватися масивами і структурами ми навчимося лише в лабораторній роботі № 4, то поступимо таким чином: аби мати можливість порівняти результати, створимо чотирьох редакторів і розташуємо їх відповідним чином напроти найменувань автомобілів. А змінні назвемо так: m_ResultVAZ, m_ResultGazel, m_ResultGAZ66 і m_ResultMers. Тоді в обробник події натиснення кнопки РЕЗУЛЬТАТУ (з врахуванням умови завдання) потрібно буде вписати такий код:

void CLab 03 3Dlg::OnResult()

{

float x; //Объявить змінну

UpdateData(1); //Получити дані з редакторів

if ( m_edTonnage != 0) //якщо вантажопідйомність більше нуля {

// Обчислити к-ть поїздок

M_edNum = int(m_edWeight / m_edTonnage); x = float(m_edWeight)/ float (m_edTonnage);

if ( m_edNum < x) m_edNum = m_edNum++;

//---Обчислити вартість поїздок

switch (m_radio)

{

case 0: m_ResultVAZ = (m_edWay/100)*m_edLitres*m_edPrice*m_edNum;

break;

case 1: m_ResultGazel = (m_edWay/100)*m_edLitres*m_edPrice*m_edNum;

break;

case 2: m_ResultGAZ66 = (m_edWay/100)*m_edLitres*m_edPrice*m_edNum;

break;

case 3: m_ResultMers = (m_edWay/100)*m_edLitres*m_edPrice*m_edNum;

break;

Источник: https://studfile.net/preview/14533173/