Смекни!
smekni.com

Інтерактивна система навчання для вивчення англійської мови (стр. 2 из 4)

Менеджер проектів

Файли, що утворять додаток – форми та модулі - зібрані в проект. Менеджер проектів показує списки файлів і модулів проекту та дозволяє створювати навігацію між ними. Можна викликати менеджер проектів , вибравши пункт меню View/Project Manager. За замовчуванням знову створений проект одержує ім'я Project1.cpp.

За замовчуванням проект спочатку містить файли для однієї форми та вихідного коду одного модуля. Однак більшість проектів містять кілька форм і модулів. Щоб додати модуль або форму до проекту, потрібно клацнути правою кнопкою миші та вибрати пункт New Form з контекстного меню. Можна також додавати існуючі форми та модулі до проекту, використовуючи кнопку Add контекстного меню менеджера проектів і вибираючи модуль або форму, яку потрібно додати. Форми та модулі можна видалити в будь-який момент протягом розробки проекту. Однак, через те, що форма зв'язані завжди з модулем, не можна видалити одне без видалення іншого, за винятком случаючи, коли модуль не має зв'язку з формою. Видалити модуль із проекту можна, використовуючи кнопку Remove менеджера проектів.

Якщо вибрати кнопку Options у менеджері проектів, відкриється діалогова панель опцій проекту, у якій можна вибрати головну форму проекту, визначити, які форми будуть створюватися динамічно, які параметри компіляції модулів (у тому числі створених в Delphi 2.0, тому що C++ Builder може включати їх у проекти) і компонування.

Важливим елементом середовища розробки C++ Builder є контекстне меню, яке з‘являється при натисканні на праву клавішу миші та дозволяє швидкий доступ до найбільше часто використовуваних команд.

Зрозуміло, C++ Builder має убудовану систему контекстно-контекстно-залежної допомоги, доступної для будь-якого елемента інтерфейсу та довідкової інформації, що є великим джерелом, про C++ Builder.

Створення проектів у С++ Builder

Першим кроком у розробці проекту C++ Builder є створення проекту. Файли проекту містять згенерований автоматично вихідний текст, що стає частиною проекту, коли воно скомпільовано та підготовлене до виконання. Щоб створити новий проект, потрібно вибрати пункт меню File/New Application.

C++ Builder створює файл проекту з ім'ям за замовчуванням Project1.cpp, а також make-файл із ім'ям за замовчуванням Project1.mak. При внесенні змін у проект, таких, як додавання нової форми, C++ Builder обновляє файл проекту.

Проект або додаток звичайно мають кілька форм. Додавання форми до проекту створює наступні додаткові файли:

· Файл форми з розширеням.DFM, що містить інформацію про ресурси вікон для конструювання форми

· Файл модуля з розширеням.CPP, що містить код на C++.

· Заголовний файл із розширенням .H, що містить опис класу форми.

Коли ви додаєте нову форму, файл проекту автоматично обновляється.

Для того щоб додати одну або більше форм до проекту , виберіть пункт меню File/New Form. З'явиться порожня форма, що буде додана до проекту. Можна скористатися пунктом меню File/New, вибрати сторінку Forms і вибрати підходящий шаблон з репозиторія об'єктів.

Для того, щоб просто відкомпілювати поточний проект, з меню Compile потрібно вибрати пункт меню Compile. Для того, щоб відкомпілювати проект і створити виконує файл, що, для поточного проекту, з меню Run потрібно вибрати пункт меню Run. Компонування проекту є інкрементним (перекомпілюються тільки модулі, що змінилися).

Якщо при виконанні проекту виникає помилка часу виконання, C++ Builder робить паузу у виконанні програми та показує редактор коду з курсором, установленим на операторі, що є джерелом помилки. Перш ніж робити необхідну корекцію, варто запустити знову додаток, вибираючи пункт меню Run з контекстного меню або з меню Run, закрити додаток і лише потім вносити зміни в проект. У цьому випадку зменшиться ймовірність втрати ресурсів Windows.

Приклад: створення найпростішого проекту

Тепер спробуємо створити найпростіший додаток, що дозволяє вводити текст у редагує поле, що, і додавати цей текст до списку при натисканні мишею на кнопку. Виберемо пункт меню File/New Application для створення проектутазбережемо його головну форму під ім'ям samp1.cpp, а сам проект під ім'ям samp.mak. Помістимо на форму компонента Button, EditтаListBox зі сторінки Standard палітри компонентів.

Після цього виберемо на формі компонентів Edit і видалимо поточне значення властивості Text. Потім установимо властивість Caption для Button1 рівним "Додати".

Щоб додати оброблювач події OnClick для кнопки Додати, потрібно вибрати цю кнопку на формі, відкрити сторінку подій в інспекторі об'єктів і двічі клацнути мишею на колонку праворуч від події OnClick. У відповідному рядку уведення з'явиться ім'я функції. C++ Builder згенерує прототип оброблювача подій і покаже його в редакторі коду. Після цього варто ввести наступний код в операторні дужки { ... } тіла функції:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

if (!(Edit1->Text == ""))

{

ListBox1->Items->Add(Edit1->Text);

Edit1->Text = "" ;

}

}

Для компіляції проекту в меню Run виберемо пункт Run. Тепер можна що-небудь увести в редагує поле, що, нажати мишею на кнопку Додати та переконатися, що вводять строки, що, додаються до списку.

Тепер модифікуємо додаток, додавши кнопки Видалити та Вихід. Для цього додамо ще дві кнопки, змінимо їхню властивість Caption і створимо оброблювачі подій, пов'язаних з натисканням на ці кнопки:

Для кнопки Видалити:

void __fastcall TForm1::Button2Click(TObject *Sender)

{

if (!(ListBox1->ItemIndex == -1))

ListBox1->Items->Delete(ListBox1->ItemIndex);

}

Для кнопки Вихід:

Close();

Збережемо та скомпілюємо додаток, а потім протестуємо його.

Отже, ми познайомилися із середовищем розробки Borland C++ Builder і створили простий додаток.


Практична частина

Так як середою розробки був вибраний інструментарій C++ Builder, то зрозуміло, що програма буде мати ряд особливостей, серед, яких слід відзначити наступні: програма являє собою єдиний модуль, для спрощення розробки був використаний лише текстовий інтерфейс, та розроблена програма має значний об‘єм.

У зв‘язку з останнім наведемо лише фрагмент коду головного модуля. (загальний лістинг розробленої програми знаходиться на дискеті разом з роботою)

Лістинг. (angl.cpp)

#include <iostream.h>

#include <dos.h>

#include <conio.h>

#include <string.h>

const char numberOfAnswer[] = "&bsol;nPress 5 for 50/50, 6 phone friend, 7 walk away.&bsol;n&bsol;n";

const char numberOfAnswer2[] = "Please enter the number of your choice: ";

const char people1[] = "John";

const char people2[] = "Mary";

const char people3[] = "Paul";

const char people4[] = "Kathy";

const char people5[] = "Greg";

const char people6[] = "Tracy";

const char people7[] = "Peter";

const char people8[] = "Lara";

const char people9[] = "Jason";

const char people0[] = "April";

const char people01[] = "Jeremy";

const char people02[] = "Paula";

const char people03[] = "Chris";

const char people04[] = "Jennifer";

const char people05[] = "Steve";

const char goodAnswer1[] = "&bsol;n&bsol;nCorrect!&bsol;n&bsol;n";

const char goodAnswer2[] = "&bsol;n&bsol;nGreat Job!!&bsol;n&bsol;n";

const char goodAnswer3[] = "&bsol;n&bsol;nKeep up the good work!&bsol;n&bsol;n";

const char goodAnswer4[] = "&bsol;n&bsol;nThat's right!!&bsol;n&bsol;n";

const char goodAnswer5[] = "&bsol;n&bsol;nWonderful answer!!!&bsol;n&bsol;n";

const char goodAnswer6[] = "&bsol;n&bsol;nRight!&bsol;n&bsol;n";

const char goodAnswer7[] = "&bsol;n&bsol;nYou must have studied. That's the right answer!&bsol;n&bsol;n";

const char goodAnswer8[] = "&bsol;n&bsol;nVery good!!!&bsol;n&bsol;n";

const char goodAnswer9[] = "&bsol;n&bsol;nYou're absolutely, positively correct!&bsol;n&bsol;n";

const char goodAnswer0[] = "&bsol;n&bsol;nWow!!&bsol;n&bsol;n";

const char goodAnswer01[] = "&bsol;n&bsol;nExcellent!&bsol;n&bsol;n";

const char goodAnswer02[] = "&bsol;n&bsol;nFabulous!&bsol;n&bsol;n";

const char goodAnswer03[] = "&bsol;n&bsol;nRight on!&bsol;n&bsol;n";

const char goodAnswer04[] = "&bsol;n&bsol;nYou're a genius!&bsol;n&bsol;n";

const char goodAnswer05[] = "&bsol;n&bsol;nSplendid!&bsol;n&bsol;n";

const char badAnswer1[] = "&bsol;n&bsol;nI'm sorry, that's the wrong answer. :( &bsol;n&bsol;n";

const char badAnswer2[] = "&bsol;n&bsol;nNope! That's not it!!!&bsol;n&bsol;n";

const char badAnswer3[] = "&bsol;n&bsol;nHahaha. You call that an answer?&bsol;n&bsol;n";

const char badAnswer4[] = "&bsol;n&bsol;nWrong.&bsol;n&bsol;n";

const char badAnswer5[] = "&bsol;n&bsol;nI'm ashamed of you picking that wrong answer!&bsol;n&bsol;n";

const char badAnswer6[] = "&bsol;n&bsol;nCome on! I know you're smarter than that! :( &bsol;n&bsol;n";

const char badAnswer7[] = "&bsol;n&bsol;nMaybe you should quit.&bsol;n&bsol;n";

const char badAnswer8[] = "&bsol;n&bsol;nWell the good news is there's another question ahead!&bsol;n&bsol;n";

const char badAnswer9[] = "&bsol;n&bsol;nI hope you make a better choice next time!&bsol;n&bsol;n";

const char badAnswer0[] = "&bsol;n&bsol;nI don't think so.&bsol;n&bsol;n";

const char badAnswer01[] = "&bsol;n&bsol;nThat ain't it.&bsol;n&bsol;n";

const char badAnswer02[] = "&bsol;n&bsol;nAnother wrong answer.&bsol;n&bsol;n";

const char badAnswer03[] = "&bsol;n&bsol;nDon't do this to me! Wrong answer. :( &bsol;n&bsol;n";

const char badAnswer04[] = "&bsol;n&bsol;nYou scare me. Wrong!&bsol;n&bsol;n";

const char badAnswer05[] = "&bsol;n&bsol;nNo no no! Not that one.&bsol;n&bsol;n";

const char question1[] = "What color is a dollar bill?&bsol;n";

const char question2[] = "If you have 3 quarters, you have...&bsol;n";

const char question3[] = "George Washington cut down what kind of tree?&bsol;n";

const char question4[] = "If A = B and B = C, then...&bsol;n";

const char question5[] = "Complete the phrase: Into the valley rode the...&bsol;n";

const char question6[] = "Who always saved Timmy?&bsol;n";

const char question7[] = "Who's first gold record was Hard Headed Woman?&bsol;n";

const char question8[] = "Who was author of Tom Sawyer and Huckleberry Finn?&bsol;n";

const char question9[] = "What was Shirley Temple's real life last name?&bsol;n";

const char question0[] = "Who plays the Priest in Anne of Green Gables?&bsol;n";

const char question01[] = "If a Sirloin Steak is cooked rare, it is generally what color in the middle?&bsol;n";

const char question02[] = "If Coca Cola is applied to an egg shell, the shell turns what color?&bsol;n";

const char question03[] = "What is the sum of 30 times 30 plus 90 plus 25?&bsol;n";

const char question04[] = "Who is the voice of Bart Simpson?&bsol;n";

const char question05[] = "Who was the original Clarke Kent?&bsol;n";

int yourAnswer;

int yourAnswer1;

char yourName[128];

int counter = 0;

int counter2 = 0;

int correctAnswers = 0;

unsigned long int score;

int walkAway();

void continueProgram();

int playMillionaire();

int fiftyFiftyUsed;

int phoneFriendUsed;

void answer1();

void answer2();

void answer3();

void answer4();

void answer5();

void answer6();

void answer7();

void answer8();

void answer9();

void answer0();

void answer01();

void answer02();

void answer03();

void answer04();

void answer05();

// Beginning of 50/50 functions

void answer1()

{

clrscr(); // Clears the screen

cout << question1; // Prints question1, defined above, to the screen

cout << " 2. Purple&bsol;n";

cout << "3. Green &bsol;n";

cout << numberOfAnswer2;

cin >> yourAnswer;

if (yourAnswer == 3)

{

cout << goodAnswer1;

delay(3000);

correctAnswers++; // Increases correctAnswers by one

score = 100; // Sets score to 100

}

if (yourAnswer != 3)

{

cout << badAnswer1;

delay(3000);

score = 0;

walkAway();

}

}

void answer2()

{

clrscr();

cout << question2;

cout << "1. $.75 &bsol;n";

cout << " 4. $1.00&bsol;n";

cout << numberOfAnswer2;

cin >> yourAnswer;

if (yourAnswer == 1)

{

cout << goodAnswer2;

delay(3000);

correctAnswers++;

score = 200;

}

if (yourAnswer != 1)

{

cout << badAnswer2;

delay(3000);

score = 0;

walkAway();

}

}

void answer3()

{

clrscr();

cout << question3;