Основи роботи в середовищі Xcode

Створення програмного продукту для галузі освіти під операційну систему Mac OS X. Розробка елементів вікна та налаштування інтерфейсу розроблюваного продукту. Використання мови програмування Swift. Створення інтерфейсу додатку "Тестова оболонка".

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

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

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

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

Полтавський національний педагогічний університет імені В.Г. Короленка

Кафедра математичного аналізу та інформатики

Курсова робота

з інформатики

на тему: «Основи роботи в середовищі XCODE»

Студента 4 курсу групи М-44

напряму підготовки 6.040302 Інформатика

Пшеца Сергія Олександрович

Керівник Овчаров Сергій Михайлович

Полтава 2014

Зміст

Вступ

1. Основи роботи в XCODE

1.1 Елементи вікна XCODE

1.2 Гарячі клавіші XCODE

1.3 Мова програмування Swift

2. Створення додатку «Тестова оболонка»

2.1 Створення інтерфейсу

2.2 Опис програмного продукту

Висновки

Список використаних джерел

інтерфейс операційний програмний вікно

Вступ

Програмування з кожним днем займає все більшу нішу в роботі людей. Більша частина програмістів розробляє прикладне програмне забезпечення під операційну систему Windows, але є ще програмісти які займаються розробкою програмних продуктів під операційну систему GNU Linux та Mac OS X. В країнах колишнього СНД техніка компанії Apple використовується досить мало, тим паче в галузі освіти. Як наслідок з цього існує досить мало програмних продуктів для Mac OS X, які призначені для освіти і мають україномовний інтерфейс.

Метою моєї роботи являється створення програмного продукту для галузі освіти під операційну систему Mac OS X. В роботі я буду використовувати середовище розробки для операційної системи Apple mac os x 10.10 XCode 6.1.

Для того, щоб написати програму для операційної системи Apple потрібно мати як мінімум дві речі: це редактор програмного коду та компілятор. За допомогою редактору коду будемо писати інструкції на мові Swift, з яких буде складатися готова програма, компілятор буде перекладати цей код в машинний, зрозумілий центральному процесору.

Для створення програми під платформу Mac, знадобиться Xcode. Де його взяти? Абсолютно безкоштовно Xcode можна завантажити з веб-ресурсу під назвою Apple Developer Center (http://developer.apple.com). Перший час, можливо, Xcode буде вас лякати своєю функціональністю, а його інтерфейс буде здаватися надмірно перевантаженим. Проте, з часом ви звикнете, і зрозумієте, наскільки насправді він зручний і практичний.

Xcode є цілісним набором інструментів створення додатків для Mac OS X і iOS. У Xcode 6 інструментарій був істотно перероблений і, в результаті цього, став швидше, простіше у використанні і, в цілому, більш корисним для кожного розробника. Xcode IDE розуміє кожну деталь вашого проекту, розпізнає логічні та синтаксичні помилки і навіть вміє виправляти невірно введений вами програмний код. Цілком очевидно, що Xcode допоможе вам створювати кращий програмний код.

У Xcode оновився інтерфейс користувача і тепер він базується на технології, яку сама Apple використовує при розробці додатків для OS X і iOS. На цій базі вже створено понад чверті мільйона додатків для Mac OS X and iOS.

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

Apple недавно представила нову мову для розробників iOS і OS X під назвою Swift. Як виявилося, Swift розроблявся з 2010 року, а це 2 роки після випуску першого SDK. Apple бачила обмеженість Objective-C, якому вже майже 30 років, і вирішила, що настав час для змін. Тим не менш, за справжньої манери Apple, вони не хотіли випускати напівсирої мову. Вони зрозуміли, що незважаючи на недоліки Objective-C, вони ще можуть вийти за межі можливого з ним, і так вони і зробили.

Минуло шість років з моменту виходу першого SDK і 1,2 млн. додатків були опубліковані в App Store. Мільйони розробників зі стражданням вивчали таємницю синтаксису і обмеження Objective-C. Останнім часом, на весь голос кажучи про свої біди від застарілого мови.

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

Коли мова йде про Swift, Apple посилається на три ключові парадигми: Безпека, Сучасність і Потужність. Swift ввібрав в себе всі ці пункти. Якщо ви вже знаєте яку-небудь мову програмування, ви побачите багато спільного з іншими сучасними мовами.

1. Основи роботи в XCODE

1.1 Елементи вікна Xcode

Малюнок 1 Елементи вікна

Панель інструментів (англ. «Toolbar») - сама верхня частина вікна, де розташовані всілякі налаштування. Також там зазначено назву нашої програми, її стан (наприклад «компілюється») і кількість помилок (якщо вони взагалі є).

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

Редактор коду. Це саме серце Ікс-код, саме тут проходить чарівний процес написання програм.

Інпектор - верхня права панель. Там можна подивитися і змінити властивості поточного файлу і самого коду.

Дебагер. Ця необхідна частина будь-якого середовища програмування знаходиться в самому низу вікна, якщо коротко - видає результат програми і показує значення змінних.

Бібліотека. Саме там ми беремо такі корисні речі для нашої програми як кнопки, лейбли, слайдери, форми і т. Д. [2,26]

Малюнок 2 Бібліотека

Встановлюємо зручний шрифт і міняємо розмітку сторінки

Малюнок 3 Налаштування

Набрид старий фон вікна? Хочеться збільшити відстань відступу? Не проблема - адже можна встановити свій стиль форматування. Для цього перейдіть Xcode> Preferences. З'явиться вікно властивостей з безліччю вкладок (зокрема нам потрібні Text Editing і Fonts & Colors), в якому можна буде поміняти тему, змінити шрифт і внести інші зміни в інтерфейс нашого середовища розробки. [1,64]

Малюнок 4 Налаштування інтерфейсу

Малюнок 5 Налаштування інтерфейсу

1.2 Гарячі клавіші

Всі ми знаємо, як зручні гарячі клавіші, так що привожу кілька вельми актуальних комбінацій, які полегшують роботу в Xcode:

Control + A - на початок рядка

Control + E - в кінець рядка

Control + T - поміняти місцями символи, прилеглі до курсора

Control + K - видалити рядок

Control + L - курсор в центр рядки

esc - сховати (показати) меню пропозицій

tab - застосувати пропозицію

Command + Y - активувати (деактивувати) точки зупинки

Command + Control + Y - продовжити компіляцію (в дебаггера)

F6 - степ-овер [4,45]

Коли Ви створюєте перший додаток (Single View Application) під Mac OS, Xcode створює ряд файлів для нашого проекту, один з яких має розширення.storyboard. Це так званий файл розкадровки Interface Builder. Щоб завантажити цей файл в Interface Builder просто виберіть Main.storyboard в списку в лівій панелі Interface Builder і він з'явиться на центральній панелі, як показано на малюнку нижче. Він дозволяє користувачеві побудувати інтерфейс за допомогою простого перетягування компонентів на область їх відображення, а потім налаштувати зовнішній вигляд і поведінки цих компонентів. Interface Builder спочатку був розроблений для створення Mac OS X додатків, але в даний час оновлений і тепер його можна використовувати для проектування інтерфейсів iOS додатків.[1,13]

Малюнок 6 Storyboard

Як додавати об'єкти на свій storybord

Для цього Вам потрібна бібліотека об'єктів, яка знаходиться в нижньому правому куті екрану. Там ви побачите емблему кнопки ІОС на яку потрібно натиснути.

Малюнок 7 Приклад об'єктів

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

Малюнок 8 Storyboard

Малюнок 9 Об'єкти

Запуск додатку для того що б подивитися, що Ви створили.

Кнопка знаходиться у верхньому лівому кутку Вашого екрану. На панелі "Activity viewer" Ви можете побачити процес збірки додатку.

Малюнок 10 Запуск

Після того як xcode завершує збірку Ви побачите на екрані Macbook вашу програму.[4,110]

1.3 Мова програмування Swift

Тепер розберемося з мовою програмування Swift, яку компанія Apple презентувала зовсім недавно. Для початку, хочу попередити, що мова Swift, хоч і доведена до порядку, але нова, і не потрібно кидатися в крайнощі, і зразу починати вивчати цю мову. Тим паче, якщо ви до цього не працювали в подібних середовищах. Для підтримки своїх слів я навожу цитату відомого програміста Джона Фріскіса:

«1. Об'єктні структури (frameworks) не змінюються: iOS-додатки створені за допомогою коду, який має доступ до фреймворку Cocoa Touch. Останній містить функції, які дозволяють розробникам в тому числі візуалізувати картинки і текст на екрані у відповідь на запити користувача, створювати мережеві запити, контролювати камеру і так далі. Те, як розробник взаємодіє з об'єктної структурою, залежить від використовуваного ним мови програмування. У широкому сенсі, коли ви чуєте, що вам необхідно вивчити Objective-C для того, щоб розробляти iOS-додатки, мається на увазі, що ви повинні навчитися користуватися фреймворком Cocoa Touch. Тільки от тепер з Swift у вас з'явився ще один шлях по взаємодії з об'єктної структурою.

2. Objective-C - перевірений і відтестували: в App Store близько 1,2 млн додатків, створених 9 млн розробників. Це, м'яко кажучи, дуже багато Objective-C коду. Малоймовірно, що люди і компанії, стільки всього на ньому написали, побіжать переписувати код своїх додатків на Swift (і відразу перейдуть на нього, після інвестицій в інструменти розробки, що базуються на Objective-C).

3. Багато повчального матеріалу. Ресурсів, присвячених Objective-C, - дуже багато: десятки (якщо не сотні) книг, відео, онлайнових курсів. Що більш важливо: у розробників був час виявити і поділитися з колегами кращими рішеннями, універсальними шляхами створення тих чи інших речей в Objective-C. Зрозуміло, що Swift до цього теж прийде, тільки станеться це навіть не через рік або два.

4. Ви можете використовувати обидві мови. Swift створений для роботи пліч-о-пліч з Objective-C в Xcode. Це означає, що розробники можуть поступово переписувати свої додатки під Swift. Немає необхідності кидатися в крайнощі, повністю відмовлятися від Objective-C.

Загалом, якщо ви новачок в розробці iOS-додатків, навчання Objective-C дозволить вам вникнути в історію платформи, розібратися в бібліотеках Cocoa Touch. Згодом це допоможе більш ефективно працювати з Swift.» [7,155]

Тепер, перейдемо до основ нової мови програмування:

Змінні

Як і в будь-якій мові програмування у нас є змінні, які дозволяють зберігати дані. Щоб оголосити змінну ви повинні використовувати ключове слово var.

var greeting: String = «Hello World»

Наведений вище код вказує системі, що ми хочемо створити змінну з ім'ям greeting, яка має тип String, і буде містити текст "Hello World".

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

var greeting = "Hello World" // передбачити тип String

Змінні можуть змінюватися після створення, так що ми можемо додати ще один рядок і змінити наше привітання на щось інше.

var greeting = "Hello World" // передбачити тип String

greeting = "Hello Swift"

Під час розробки програми, є багато випадків, коли ви не хочете, щоб значення змінної змінювалося після його ініціалізації. Apple завжди мала два варіанти типів: mutable і immutable. Mutable означає, що змінна може бути змінена а immutable - що вона не підлягає зміні. Apple воліє immutable за замовчуванням, що означає, що значення не будуть змінюватися. Це робить ваш додаток швидше і безпечніше в багатопотокової середовищі. Щоб створити неизменяемую змінну вам потрібно використовувати ключове слово let.

Якщо ми змінимо наш приклад вітання, використовуючи let замість var, то другий рядок дасть нам помилку компіляції, оскільки ми не можемо змінити значення greeting.

let greeting = "Hello World"

greeting = "Hello Swift" // Помилка компіляції

Давайте візьмемо інший приклад, щоб ви зрозуміли, навіщо і коли використовувати let.

let languageName: String = "Swift"

var version: Double = 1.0

let introduced: Int = 2014

let isAwesome: Bool = true

Наведений вище приклад не тільки показує нам різні типи, які доступні в Swift, але він також показує нам причину для використання let. Всі значення крім номера версії мови Swift залишаються константами. Ви можете заперечити, що isAwesome спірне поняття, але я дам вам прийти до цього висновку коли ви дійдете до кінця цього поста.

Оскільки тип вгадувати ми можемо просто написати:

let languageName = "Swift" // передбачив як String

var version = 1.0 // передбачив як Double

let introduced = 2014 // передбачив як Int

let isAwesome = true // передбачив як Bool

рядки

У нашому прикладі вище ми вже писали тип String. Давайте подивимося, як ми можемо поєднати два рядки за допомогою оператора +.

let title = "Керівництво по Swift для абсолютних новачків"

let review = "Він приголомшливий!"

let description = title + "-" + review

// Description = "Керівництво по Swift для абсолютних новачків - Він приголомшливий!"

У рядків є потужна функція інтерполяції, за допомогою якого легко можна використовувати змінні для створення рядків:

let datePublished = "19 липня 2014"

let postMeta = "Запис у блозі опублікована: \ (datePublished)"

// PostMeta = "Запис у блозі опублікована: 19 липня 2014"

У всіх наведених вище прикладах, я використовую ключове слово let, а це означає, що ви не зможете змінити рядок, після того, ми як її створили. Тим не менше, якщо вам потрібно змінити рядок, то просто використовуйте ключове слово var.[5,175]

Крім рядків у нас є Int для цілих чисел. Double і Float для чисел з плаваючою точкою і Bool для булевих значень, таких як: true або false. Ці типи вгадують точно так само як і рядки, так що ви не зобов'язані явно вказати їх при створенні змінної.

Float і Double розрізняються по точності і за величиною зберігається числа.

Float: являє собою 32-розрядне число з плаваючою точкою, але точність Float може бути всього лише 6 десяткових цифр.

Double: являє собою 64-розрядне число з плаваючою точкою і має точність не менше 15 десяткових цифр.

За замовчуванням, коли ми пишемо число з плаваючою точкою, компілятор передбачає його як Double.

var version = 1.0 // передбачає як Double

Але ви можете явно вказати Float.

var version: Float = 1.0

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

var cardNames: [String] = ["Jack", "Queen", "King"]

// Swift може передбачити [String] так що ми можемо також написати:

var cardNames = ["Jack", "Queen", "King"] // передбачив як [String]

Ви можете створити два типи масиву: масив з одним типом або масив з декількома типами. Swift пристрасно захоплений безпекою, так що він воліє перший тип, але може реалізувати і другий тип за допомогою універсальних типів. У наведеному вище прикладі масив містить одні рядки, це означає, що це масив з одним типом. [6,113]

Для доступу до елементу масиву потрібно використовувати індекс:

println (cardNames [0])

Примітка: ми використовували вище функцію println, яка друкує значення "Jack" в консоль, а потім додасть символ нового рядка.

Давайте створимо новий масив, що містить список завдань.

var todo = ["Написати блог", "Зробити форум»]

Переконайтеся, що ви використовуєте ключове слово var, щоб ми могли змінити наш масив.

Щоб додати ще один елемент до нашого масиву todo, ми використовуємо оператор '+ =':

todo + = "Сходити в магазин»

Щоб додати кілька елементів у наш масив todo ми просто додаємо масив:

todo + = ["Відправити лист", "Випрати речі»]

Щоб замінити існуючий елемент масиву просто вкажіть індекс цього елемента і надайте нове значення:

todo [0] = "Коригувати запис у блозі»

Щоб замінити діапазон елементів:

todo [2.. <5] = ["Випрати речі", "Сходити в магазин", "Приготувати вечерю"]

Іншим типом колекцій є Cловарь, який схожий на хеш-таблицю з інших мов програмування. Словник дозволяє зберігати пари ключ-значення і отримати доступ до значення, передаючи ключ.

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

var cards = ["Jack": 11, "Queen": 12, "King": 13]

Вище ми вказали імена карт в якості ключів і їх відповідні числові значення. Ключі не обмежені типом String, вони можуть бути будь-якого типу.

Що, якщо ми хочемо додати "Ace" в наш словник cards? Все, що нам потрібно зробити, це використовувати ключ в якості індексу і привласнити йому значення. Примітка: cards оголошується як var, що означає, що він може бути змінений.

cards ["Ace"] = 15

Ми зробили помилку і хочемо змінити значення "Ace". Ще раз просто використовуйте ключ в якості індексу і надайте йому нового значення.

cards ["Ace"] = 1

Щоб витягти значення зі словника

println (cards [«Ace"])

Наскільки хороша колекція, якщо ми не можемо пройтися циклом по ньому? Swift для цього дає нам while, do-while, for і for-in цикли. Давайте розглянемо кожен з них.

Найпростішим з них є while цикл в якому говориться: поки щось правдиве, виконуй блок коду. Він зупиняє виконання, коли його умова перетворюється на брехню.

while! complete {

println ("Завантаження...")

}

Примітка: знак оклику перед змінної complete позначає заперечення і читається як протилежне значення complete.

Крім того, є цикл do-while, який гарантує, що ваш блок коду виконається принаймні один раз.

var message = "Початок завантаження"

do {

println (message)

message = "Завантаження.."

} While! Complete

Наступні виклики вираження println будуть друкувати "Завантаження.."

Є ще звичайний for цикл, де можна вказати число, умова і інкремент:

for var i = 1; i <cardNames.count; ++ i {

println (cardNames [i])

}

Або ви можете просто використовувати for-in, він створює тимчасову змінну і привласнює їй значення кожного елемента під час проходу по масиву.

for cardName in cardNames {

println (cardName)

}

Наведений вище код буде друкувати всі імена карт в масиві. Ми можемо також використовувати діапазон. Діапазони значень позначаються або двома точками і знаком менше, або трьома крапками.

наприклад:

1... 10 - це діапазон чисел від 1 до 10. Три точки називаються замкнутим діапазоном, тому що останнє число включається в діапазон.

1.. <10 - це діапазон чисел від 1 до 9. Дві точки зі знаком менше, називається напівзакритий діапазон, тому що останнє число не включається в діапазон.

Давайте роздрукуємо таблицю множення на 2 використовуючи for-in з діапазоном:

for number in 1... 10 {

println ("\ (number) помножити на 2 буде \ (number * 2)")

}

Ми також можемо перебрати словник cards, щоб роздрукувати обидва ключ і значення:

for (cardName, cardValue) in cards {

println ("\ (cardName) = \ (cardValue)")

}

If вираз

Щоб контролювати потік нашого коду ми, природно, маємо if вираз.

if cardValue == 11 {

println ("Jack")

} Else if cardValue == 12 {

println ("Queen")

} Else {

println ("Не знайдено")

}

Примітка: вираз if може мати круглі дужки, але вони не є обов'язковими. Тим не менш, фігурні дужки {} є обов'язковими на відміну від інших мов.

вираз switch

Switch вираження в Swift є дуже гнучким і має багато особливостей. Деякі основні правила вираження switch:

Воно не вимагає break, після кожного case вираження

Switch не обмежується цілочисельними значеннями. Ви можете шукати відповідність для будь-яких значень, таких як: String, Int, Double або будь-яких схожих об'єктів.

Вираз switch повинно відповідати хоча б одному можливому значенню, якщо ні, то ви повинні вказати блок default, що робить ваш код більш безпечним. Якщо ви не напишіть case для хоча б одного можливого значення або блок default, то ви отримаєте помилку компіляції: "switch повинен бути вичерпним».

switch cardValue {

case 11:

println ("Jack")

case 12:

println ("Queen")

default:

println ("Не знайдено")

} [1,164]

Припустимо, у вас є змінна distance - відстань, і ви намагаєтеся надрукувати повідомлення про відстань. Ви можете використовувати кілька значень для кожного випадку:

switch distance {

case 0:

println ("не є допустимим відстанню")

case 1,2,3,4,5:

println ("рядом")

case 6,7,8,9,10:

println ("далеко")

default:

println ("занадто далеко")

}

Є моменти, коли навіть кілька значень теж мало. Для тих випадків, ви можете використовувати діапазони. А що, якщо, будь-яку відстань більше 10 і менше 100 вважається далеко?

switch distance {

case 0:

println ("не є допустимим відстанню")

case 1.. <10:

println ("рядом")

case 10.. <100:

rintln ("далеко")

default:

println ("занадто далеко")

}

Чи зможете ви здогадатися, що наведений вище код буде друкувати?

функції

Ми використовували println в багатьох наших прикладах. Він є прикладом того, як використовувати функцію. Але як ми можемо створити свою власну функцію?

Це просто, ви повинні використовувати ключове слово func і дати йому ім'я.

func printCard () {

println ("Queen")

}

Що хорошого в функції, якщо вона завжди буде просто друкувати "Queen" як ім'я карти? Що робити, якщо ми хочемо передати йому параметр, щоб він міг надрукувати будь-яке ім'я карти?

func printCard (cardName: String) {

println (cardName)

}

Звичайно, ми не обмежені тільки одним параметром. Ми можемо передати декілька параметрів:

func printCard (cardName: String, cardValue: Int) {

println ("\ (cardName) = \ (cardValue)")

}

Що, якщо ми просто хочемо, щоб наша функція створила рядок і повернула його значення, замість того щоб надрукувати його? Тоді ми можемо використовувати ключове слово return, і вказати тип значення за допомогою стрілки -> в кінці оголошення функції.

func buildCard (cardName: String, cardValue: Int) -> String {

return "\ (cardName) = \ (cardValue)"

}

У блоці коду вище ми говоримо, що ми створюємо функцію з ім'ям buildCard, яка приймає два параметри і повертає тип String.

2. Створення додатку «Тестова оболонка»

2.1 Створення графічного інтерфейсу

Для прикладу створення додатку в середовищі XCODE створимо програму під назвою “Тестова оболонка”, задачею якої буде створення завдань для тестування студентів чи учнів на різні тематики. Сформулюємо технічне завдання для цього проекту:

1) Інтуітивно зрозумілий інтерфейс програми;

2) Можливість використання різних профілів користувача для тестування;

3) Можливість створення нових та завантаження вже створених тестів;

4) Загальні розширення файлів;

5) Виведення на екран та збереження результатів проходження тесту.

Перед початком створення інтерфейсу додатку, нам потрібно створити новий проект в середовищі XCODE. Інструкція по створення нових проектів наведена в теоретичній частині.

Створюємо новий проект:

Малюнок 11 Створення Проекту

Обираємо Cooca Application. Вводимо назву проекта, та обераємо мову програмування, яку будемо використовувати.

Малюнок 12 Створення проекту

Першим етапом створення нашої програми буде проектування інтерфейсу користувача. Для цього переходимо на MainMenu.xib і обираємо наш додаток.

Малюнок 13 Графічний інтерфейс

Тепер розмістимо елементи графічного інтерфейсу головної форми на активності.

Малюнок 14 Об'єкти

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

Малюнок 15 Макет

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

Малюнок 16 Запуск

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

2.2 Опис програмного продукту

Тепер ми можемо додати код до елементів нашої програми:

При запуску проекта повинні створюватись змінні і завантажуватись графічний інтерфейс користувача:

_fastcall TTestForm::TTestForm(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

char* readString(FILE *file)

{

char *str = new char[500];

fgets(str, 500, file);

char *s = strchr(str, '\n');

if (s)

{

strset(s, '\0');

}

return str;

}

//---------------------------------------------------------------------------

bool isTrue(char* str)

{

char *s=strchr(str, '+');

if (s)

{

strset(s, '\0');

return true;

}

return false;

}

//---------------------------------------------------------------------------

void openQuestion(String name)

{

FILE *file;

if((file = fopen(("questions/" + name).c_str(), "rt")) != NULL)

{

char *str;

str = readString(file);

TestForm->QuestionMemo->Lines->Clear();

TestForm->QuestionMemo->Lines->Add(str);

str = readString(file);

if (isTrue(str))

trueAnswer = 1;

TestForm->AnswerMemo1->Lines->Clear();

TestForm->AnswerMemo1->Lines->Add(str);

str = readString(file);

if (isTrue(str))

trueAnswer = 2;

TestForm->AnswerMemo2->Lines->Clear();

TestForm->AnswerMemo2->Lines->Add(str);

str = readString(file);

if (isTrue(str))

trueAnswer = 3;

TestForm->AnswerMemo3->Lines->Clear();

TestForm->AnswerMemo3->Lines->Add(str);

str = readString(file);

if (isTrue(str))

trueAnswer = 4;

TestForm->AnswerMemo4->Lines->Clear();

TestForm->AnswerMemo4->Lines->Add(str);

}

fclose(file);

qty++;

}

//---------------------------------------------------------------------------

void __fastcall TTestForm::FormShow(TObject *Sender)

{

qty = 0;

qtyTrue = 0;

if(FindFirst("questions/*.qst", faAnyFile, tsch_r) == 0)

{

openQuestion(tsch_r.Name.c_str());

}

else

{

FindClose(tsch_r);

}

}

//---------------------------------------------------------------------------

Далі опишемо події при завершенні роботи додатку, в часності при закритті головного вікна програми:

void __fastcall TTestForm::FormClose(TObject *Sender, TCloseAction &Action)

{

FindClose(tsch_r);

ProfileForm->Close();

}

//---------------------------------------------------------------------------

Події пи виконанні тесту. Натискання кнопки, яка дозволяє відповісти на питання тсту:

void __fastcall TTestForm::OkBtClick(TObject *Sender)

{

if (RadioButton1->Checked || RadioButton2->Checked || RadioButton3->Checked || RadioButton4->Checked)

{

switch (trueAnswer)

{

case 1: qtyTrue += RadioButton1->Checked;

break;

case 2: qtyTrue += RadioButton2->Checked;

break;

case 3: qtyTrue += RadioButton3->Checked;

break;

case 4: qtyTrue += RadioButton4->Checked;

break;

}

RadioButton1->Checked = false;

RadioButton2->Checked = false;

RadioButton3->Checked = false;

RadioButton4->Checked = false;

if (FindNext(tsch_r) == 0)

{

openQuestion(tsch_r.Name.c_str());

}

else

{

QuestionMemo->Lines->Clear();

AnswerMemo1->Lines->Clear();

AnswerMemo2->Lines->Clear();

AnswerMemo3->Lines->Clear();

AnswerMemo4->Lines->Clear();

Hide();

ResultForm->Show();

}

}

else

{

ShowMessage("Не обраний варіант!");

}

}

Висновки

На основі виконаної роботи можна зрозуміти, що програмування в операційній системі Mac OS не являється занадто складним, особливо при навичках програмування в інших операційних системах(наприклад Windows). Мова програмування Swift. Розроблена Apple inc. зовсім недавно, але вже має великий потенціал, хоча при написанні додатків досить часто доводиться використовувати і інші мови програмування, такі як C++ та Objective-C. Середовище XCODE нових версій ще не виключає підтримку фундаментальних мов Apple.

При використанні середовища розробки під р=операційну систему Mac OS X XCODE у прогрміста не виникає занатто складних питань і труднощів під час роботи. Середовище має дружній, та інтуітивно зрозумілий для програміста інтерфейс. Крім підсвічування синтаксису і виявлення синтаксичних помилок, середовище також може виявити та виправити деякі логічні помилки, яких важко уникнути при написанні досить серйозного проекту з великою кількістю програмного коду. Середовище може запропонувати програмісту уже готові конструкції, чи ті, які він писав раніше. Всі конструкції кодк написані користувачем зберігаються в базі даних XCODE і можуть бути використані в будь-якій програмі. Також конструкції написані користувачем автоматично зберігаються в хмарковому диску, і до них можна отримати доступ з будь-якого місця, ввійшовши в систему під своїм логіном та паролем.

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

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

Список використаних джерел

1. Сергей Югай. Swift language /C.Югай, 2014р. 224 с.

2. Apple Inc. - The Swift Programming Language /Apple Inc. 2014р. 341 с.

3. Марк Далримпл, Скотт Кнастер Objective-C 2.0 и программирование для Mac /М.Далримпл, С.Кнастер, 2008р. 453 с.

4. Джеф Ламарчі X-prog /Д.Ламарчи, 2013р. 287 с.

5. Bert Altenburg, Alex Clarke і Philippe Mougin Become An Xcoder /B.Altrnburg, A.Clarke, Ph.Mougin, 2013р. 366 с.

6. Тодд Мур Разработка игр для iPhone и iPad /Т.Мур, 2009р. 134 с.

7. Дмитрий Елисеев Разработка и продажа программ для iPhone и iPad /Д.Елисеев, 2013р. 272 с.

8. Електронний ресурс apple,developer.com.

9. Електронний ресурс git.yub.vom.

10. Електронний ресурс Swift.developer.ru.

11. Електронний ресурс vimproger.ua.

12. Електронний ресурс objective.com.

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


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

  • Особливості системи онлайн-агрегаторів новин, універсальної програмної платформи Microsoft Window. Використання мови програмування C#, створення бази даних. Розробка програмного продукту, алгоритм його створення. Вихідний код та інструкція користувача.

    дипломная работа [730,9 K], добавлен 21.01.2016

  • Методика розробки компілятору з вхідної мови програмування Pascal, оболонка, якого розроблена в середовищі програмування Borland C під операційну систему Windows. Блок-схема програми. Розробка оптимізатора та генератора коду. Тестування компілятора.

    курсовая работа [218,6 K], добавлен 04.06.2011

  • Основні завдання синоптичної метеорології. Призначення та область застосування програмного продукту "Статистика метеоспостережень", функціональні вимоги до нього. Інформаційне забезпечення, структура, опис інтерфейсу. Тестування програмного продукту.

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

  • Характеристика об’єкта автоматизації, вимоги до системи, склад та зміст системи. Розробка функціональної схеми програмного продукту. Тестування підпрограми програмного продукту. Розробка бази даних та налаштування ECO компонент в Borland Developer Studio.

    практическая работа [1,8 M], добавлен 05.06.2014

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

    курсовая работа [460,5 K], добавлен 21.05.2016

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

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

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

    курсовая работа [199,9 K], добавлен 30.04.2016

  • Основи використання інформаційних технологій у галузі освіти. Створення електронного щоденника мовою програмування. Вибір середовища розробки. Установка, налаштування та проектування шаблону програми. Наповнення сайту інформацією та створення бази даних.

    магистерская работа [3,9 M], добавлен 25.02.2014

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

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

  • Методи первинної обробки даних - згладжування та характеристика сплайнів. Загальна характеристика об'єктно-орієнтованої мови Java. Принципи побудови графічного інтерфейсу. Розробка алгоритму програми та інтерфейсу користувача програмного продукту.

    дипломная работа [3,3 M], добавлен 10.10.2013

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