Материал: Розробка програмної системи для вивчення іноземних слів з використанням мови програмування Java

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

Розробка програмної системи для вивчення іноземних слів з використанням мови програмування Java

Міністерство освіти і науки України

Вінницький національний технічний університет

Кафедра програмного забезпечення

Напрям підготовки 6.050103

Спеціальність «Програмна інженерія»





КУРСОВА РОБОТА

з дисципліни «Алгоритми та структури даних»

на тему:

Розробка програмної системи для вивчення іноземних слів з використанням мови програмування Java



Студента 2 курсу групи 1ПІ-13б

Ставицького Павла

Керівник О.О. Коваленко




м. Вінниця - 2014 рік

АНОТАЦІЯ

Дана курсова робота присвячена розробці програмної системи для вивчення іноземних слів. Дана система передбачає використання мови програмування Java та середовище для розробки Android Studio. Програма включає в себе роботу з базовими алгоритмами та структурами даних, класами та обробку числової інформації. Під час роботи було створено програмне забезпечення, яке відповідає поставленим задачам і призначене для вивчення іноземних слів. В результаті виконання курсової роботи отримано програмний засіб, працездатність і правильність роботи якого перевірено, підготовлена інструкція користувача.Дана робота складається з вступу, трьох розділів та висновку.

Курсова робота містить 33 сторінки, 8 рисунків, і 1 таблицю.


ЗМІСТ

ВСТУП

. ТЕОРЕТИЧНІ ВІДОМОСТІ ДОСЛІДЖЕННЯ СИСТЕМ ДЛЯ ВИВЧЕННЯ ІНОЗЕМНИХ СЛІВ

.1 Аналіз відомих підходів до побудови алгоритмів формування системи для вивчення іноземних слів

.2 Базові алгоритми, що будуть використані при розробці системи для вивчення іноземних слів

.3 Постановка задачі. Загальні підходи до поставлених завдань

. АЛГОРИТМИ ТА СТРУКТУРИ ДАНИХ СТВОРЕННЯ СИСТЕМИ ДЛЯ ВИВЧЕННЯ ІНОЗЕМНИХ СЛІВ

.1 Алгоритм побудови інтерфейсу вхідних даних

.2 Алгоритм побудови системи для вивчення іноземних слів

.3 Алгоритм побудови інтерфейсу вихідних даних

. РЕАЛІЗАЦІЯ ПРОГРАМИ СТВОРЕННЯ СИСТЕМИ ДЛЯ ВИВЧЕННЯ ІНОЗЕМНИХ СЛІВ

.1 Вибір мови програмування та особливості реалізації

.2 Реалізація базових алгоритмів

.3 Реалізація програми

ВИСНОВКИ

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ


ВСТУП

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

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

Метою даної курсової роботи є - вивчити теоретичні підходи та отримати практичні навички в створенні програмного забезпечення на прикладі системи для вивчення іноземних слів.

Відповідно меті визначено такі завдання:

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

освоїти базові алгоритми і структури даних;

проаналізувати особливості мови програмування Java та середовища розробки програмного забезпечення - Android Studio;

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

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

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

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

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

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

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


1. ТЕОРЕТИЧНІ ВІДОМОСТІ ДОСЛІДЖЕННЯ СИСТЕМ ДЛЯ ВИВЧЕННЯ ІНОЗЕМНИХ СЛІВ

.1 Аналіз відомих підходів до побудови алгоритмів формування системи для вивчення іноземних слів

Знання іноземних мов є дуже важливим для кожної людини в сучасному світі. Сьогодні, велика кількість інформації оточує нас, проте основна її частина доступна лише іноземними мовами. Будь то книги, журнали або телебачення. Дуже часто пишуть іноземними мовами назви поп-груп, програмного забезпечення, журналів. Якщо людина не розуміє інформацію, яка її оточує, це доставляє незручностей. Перед людьми, які володіють декількома мовами відкривається досить великий спектр можливостей. З’являється можливість спілкуватись з жителями інших країн без посередництва перекладачів, що робить легшим і зручнішим подорожування або налагоджування ділових зв’язків з іноземними партнерами. Зникають бар’єри між країнами. З’являється можливість дізнаватись інформацію з першоджерел, не боячись того, що при перекладі, можливо, була втрачена основна суть або навмисне підтасовані факти.

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

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

Гра “Англійська мова - 20.000 слів” (Рис. 1.1). Користувачеві пропонується слово російською мовою та декілька варіантів відповідей іноземною мовою з підказками, у вигляді перекладу, написаному у зворотньому порядку. Така методика дозволяє асоціативно визначати правильну відповідь, тим самим збагачуючи свій словниковий запас.

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

Рисунок 1.1 - Фрагмент гри «Англійська мова - 20.000 слів»

Більш ефективним є - вивчення слів, з застосуванням візуальних образів та асоціацій. Людині пропонується іноземне слово, та картинка, яка яскраво його ілюструє. При такому вивченні використовується візуальна пам’ять, що дозволяє легше та ефективніше запам’ятовувати слова. Існують реалізації такої методики, наприклад LinguaLeo (Рис. 1.2).

Недоліком такої методики є те, що, досить, часто картинка, яка ілюструє слово зовсім не пов’язана з вимовою або іншими характеристиками перекладу слова іноземною мовою, що ускладнює процес запам’ятовування.

Рисунок 1.2 - Фрагмент додатку «LinguaLeo»

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

.2 Базові алгоритми, що будуть використані при розробці системи для вивчення іноземних слів

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

Маси́в - впорядкований набір фіксованої кількості однотипних елементів, що зберігаються в послідовно розташованих комірках оперативної пам'яті, мають порядковий номер і спільне ім'я, що надає користуваx, сукупність елементів одного типу даних, впорядкованих за індексами, які зазвичай репрезентовані натуральними числами, що визначають положення елемента в масиві. Масив може бути одновимірним (вектором), та багатовимірним (наприклад, двовимірною таблицею), тобто таким, де індексом є не одне число, а кортеж (сукупність) з декількох чисел, кількість яких збігається з розмірністю масиву [1]. В даній курсовій роботі, динамічний масив використовуєтся для виведення слів в список ListView.

Зв'язаний список - одна з найважливіших структур даних, в якій елементи лінійно впорядковані, але порядок визначається не номерами елементів, а вказівниками, які входять в склад елементів списку та вказують на наступний за даним елемент (в однозв'язаних або однобічно зв'язаних списках) або на наступний та попередній елементи (в двозв'язаних або двобічно зв'язаних списках). Список має «голову» - перший елемент та «хвіст» - останній елемент. Зв'язані списки мають серію переваг порівняно з масивами. Зокрема, в них набагато ефективніше (за час О(1), тобто незалежно від кількості елементів) виконуються процедури додавання та вилучення елементів. Натомість, масиви набагато кращі в операціях, які потребують безпосереднього доступу до кожного елементу, що у випадку зі зв'язаними списками неможливо та потребує послідовного перебору усіх елементів, які передують даному [2]. В даній курсовій роботі, список використовується для виведення слів, для їх перегляду.

Стек - різновид лінійного списку, структура даних, яка працює за принципом (дисципліною) «останнім прийшов - першим пішов» (LIFO, англ. last in, first out). Всі операції (наприклад, видалення елементу) в стеку можна проводити тільки з одним елементом, який знаходиться на верхівці стеку та був введений в стек останнім. Стек можна розглядати як певну аналогію до стопки тарілок, з якої можна взяти верхню, і на яку можна покласти верхню тарілку (інша назва стеку - «магазин», за аналогією з принципом роботи магазину в автоматичній зброї) [3].

Черга - динамічна структура даних, що працює за принципом «перший прийшов - перший пішов» (англ. FIFO - first in, first out). У черги є голова (англ. head) та хвіст (англ. tail). Елемент, що додається до черги, опиняється в її хвості. Елемент, що видаляється з черги, знаходиться в її голові. Така черга повністю аналогічна звичній «базарній» черзі, в якій хто перший встав в неї, той першим буде обслуженим [4].

Двійкове дерево - структура даних у вигляді дерева, в якому кожна вершина має не більше двох дітей. Зазвичай такі діти називаються правим та лівим. На базі двійкових дерев будуються такі структури, як двійкові дерева пошуку та двійкові купи. Часто виникає необхідність обійти усі вершини дерева для аналізу інформації, що в них знаходиться. Існують декілька порядків такого обходу, кожний з яких має певні властивості, важливі в тих чи інших алгоритмах: прямий (preorder), центрований (inorder) та зворотний (postorder) [5].

АВЛ-дерево - збалансоване по висоті двійкове дерево пошуку: для кожної його вершини висота її двох піддерев відрізняється не більше ніж на 1. АВЛ - абревіатура, утворена першими літерами творців (радянських учених) Адельсон-Вельського Георгія Максимовича і Ландіс Євгена Михайловича [6].

Генетичний алгоритм - це еволюційний алгоритм пошуку, що використовується для вирішення задач оптимізації і моделювання шляхом послідовного підбору, комбінування і варіації шуканих параметрів з використанням механізмів, що нагадують біологічну еволюцію. Особливістю генетичного алгоритму є акцент на використання оператора "схрещення", який виконує операцію рекомбінацію рішень-кандидатів, роль якої аналогічна ролі схрещення в живій природі [7].

Головне завдання БД - гарантоване збереження значних обсягів інформації (так звані записи даних) та надання доступу до неї користувачеві або ж прикладній програмі. Таким чином, БД складається з двох частин: збереженої інформації та системи керування нею.

З метою забезпечення ефективності доступу записи даних організовують як множину фактів (елемент даних) [8]. В даній курсовій роботі, бази даних використовуються для зберігання введених або вивчених слів.

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

Для значної кількості алгоритмів середній і найгірший час впорядкування n-елементного масиву є , це пов'язано з тим, що в них передбачені перестановки елементів, що стоять поряд (різниця між індексами елементів не перевищує деякого заданого числа). Такі алгоритми зазвичай є стабільними, хоча і не ефективними для великих масивів. Інший клас алгоритмів здійснює впорядкування за час . В цих алгоритмах використовується можливість обміну елементів, що знаходяться на будь-якій відстані один від одного [9]. Серед найвідоміших алгоритмів сортування: сортування бульбашкою, сортування вставками, швидке сортування, сортування Шелла.

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

.3 Постановка задачі. Загальні підходи до поставлених завдань

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

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

меню. Дана функціональна частина відповідає за вибір режиму вивчення іноземних слів;

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

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

повторення слів. Дана функціональна частина відповідає за повторення слів, які попередньо були вивчені;

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

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

Алгоритм для вирішення задачі можна описати так:

В меню програми, у користувача є вибір: пройти навчальну програму, за допомогою якої він опанує техніку запам’ятовування іноземних слів. Далі, потрібно ввести слова, які необхідно вивчити. Після того, як було введено та вивчено не менше 15 слів, їх можна перенести в основний режим, для повторення, яке відбуватиметься протягом 4-х днів. Під час повторення, користувачеві надається слово, іноземною мовою та 5 варіантів перекладу українською, серед яких він має обрати 1 правильний. Забезпечено режим зворотнього відтворення україно-англійського подання слів. Якщо користувач обирає неправильний переклад, або не встигає його обрати за відведений час то це слово переноситься в кінець списку. Кожного дня, час відведений на обрання правильної відповіді зменшується. Після того, як слова були повністю вивчені, вони переносяться в загальну базу даних вивчених слів, яку можна переглянути у будь-який час.