Разработка приложения для развития англоязычной компетенции студентов

Анализ структурной схемы реляционной базы данных. Характеристика основных требований, которые предъявляются к структуре пользовательского интерфейса. Тестирование – один из наиболее важных компонентов разработки качественных программных продуктов.

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

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

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

" h.id_eng_words = ew._id_eng_word\n" +

" )\n" +

" ) AS wrong_minus_right,\n" +

" (\n" +

" SELECT max(cur_date) \n" +

" FROM history h\n" +

" WHERE h.id_rus_word = rw._id_rus_word AND \n" +

" h.id_eng_words = ew._id_eng_word\n" +

" )\n" +

" AS cur_date,\n" +

" rw.name_rus_word,\n" +

" ew.name_eng_word,\n" +

" ew._id_eng_word,\n" +

" rw._id_rus_word\n" +

" FROM rus_words rw,\n" +

" rus_eng_words rew,\n" +

" eng_words ew\n" +

" WHERE rw._id_rus_word = rew.id_rus_word AND \n" +

" ew._id_eng_word = rew.id_eng_word\n" +

" ORDER BY RANDOM() \n" +

" )\n" +

" )\n" +

" WHERE wrong_minus_right > " + wrong_minus_right + " AND \n" +

" last_time > " + last_time + " \n" +

" ORDER BY RANDOM() \n" +

" LIMIT 1\n" +

" )", null);

c.moveToFirst();

if (c.getInt(0) == -1) {

continue;

} else break;

}

c.moveToFirst();

if (c.getInt(0) == -1) {

c = myDB.rawQuery("WITH minus AS (\n" +

" SELECT name_eng_word,\n" +

" _id_eng_word,\n" +

" _id_rus_word,\n" +

" name_rus_word\n" +

" FROM (\n" +

" SELECT name_eng_word,\n" +

" _id_eng_word,\n" +

" _id_rus_word,\n" +

" name_rus_word,\n" +

" wrong_minus_right,\n" +

" last_time\n" +

" FROM (\n" +

" SELECT name_eng_word,\n" +

" _id_eng_word,\n" +

" _id_rus_word,\n" +

" name_rus_word,\n" +

" wrong_minus_right,\n" +

" CAST ( (julianday('now', 'localtime') - julianday(cur_date) ) * " +

"24 * 60 AS INTEGER) AS last_time\n" +

" FROM (\n" +

" SELECT ( (\n" +

" SELECT count( * ) \n" +

" FROM history h\n" +

" WHERE h.correctly = 'N' AND \n" +

" h.id_rus_word = rw._id_rus_word AND \n" +

" h.id_eng_words = ew._id_eng_word\n" +

" )\n" +

"- (\n" +

" SELECT count( * ) \n" +

" FROM history h\n" +

" WHERE h.correctly = 'Y' AND \n" +

" h.id_rus_word = rw._id_rus_word AND \n" +

" h.id_eng_words = ew._id_eng_word\n" +

" )\n" +

" ) AS wrong_minus_right,\n" +

" (\n" +

" SELECT max(cur_date) \n" +

" FROM history h\n" +

" WHERE h.id_rus_word = rw._id_rus_word AND \n" +

" h.id_eng_words = ew._id_eng_word\n" +

" )\n" +

" AS cur_date,\n" +

" rw.name_rus_word,\n" +

" ew.name_eng_word,\n" +

" ew._id_eng_word,\n" +

" rw._id_rus_word\n" +

" FROM rus_words rw,\n" +

" rus_eng_words rew,\n" +

" eng_words ew\n" +

" WHERE rw._id_rus_word = rew.id_rus_word AND \n" +

" ew._id_eng_word = rew.id_eng_word\n" +

" ORDER BY RANDOM() \n" +

" )\n" +

" )\n" +

" WHERE wrong_minus_right < -4 AND \n" +

" last_time < 2880\n" +

" )\n" +

")\n" +

"SELECT *\n" +

" FROM (\n" +

" SELECT ew.name_eng_word,\n" +

" ew._id_eng_word,\n" +

" rw._id_rus_word,\n" +

" rw.name_rus_word\n" +

" FROM eng_words ew,\n" +

" rus_words rw,\n" +

" rus_eng_words rew\n" +

" WHERE ew._id_eng_word = rew.id_eng_word AND \n" +

" rew.id_rus_word = rw._id_rus_word\n" +

" EXCEPT\n" +

" SELECT *\n" +

" FROM minus\n" +

" )\n" +

" ORDER BY RANDOM() \n" +

" LIMIT 1", null);

}

c.moveToFirst();

while (!c.isAfterLast()) {

engWName = c.getString(0);

rusWName = c.getString(3);

rusWId = c.getInt(2);

engWId = c.getInt(1);

c.moveToNext();

}

c.close();

if (language_change) {

c = myDB.rawQuery("SELECT rw._id_rus_word,\n" +

" rw.name_rus_word\n" +

" FROM rus_words rw\n" +

" WHERE rw._id_rus_word <> " + rusWId + " \n" +

" ORDER BY RANDOM() \n" +

" LIMIT 5", null);

} else {

c = myDB.rawQuery("SELECT ew._id_eng_word,\n" +

" ew.name_eng_word\n" +

" FROM eng_words ew\n" +

" WHERE ew._id_eng_word <> " + engWId + " \n" +

" ORDER BY RANDOM() \n" +

" LIMIT 5", null);

}

c.moveToFirst();

for (int i = 0; i < 5; i++) {

wrongWords[i] = c.getString(1);

c.moveToNext();

}

c.close();

btn1.setBackgroundResource(R.drawable.btn_design);

btn1.setTextColor(getResources().getColor(R.color.textColor));

btn2.setBackgroundResource(R.drawable.btn_design);

btn2.setTextColor(getResources().getColor(R.color.textColor));

btn3.setBackgroundResource(R.drawable.btn_design);

btn3.setTextColor(getResources().getColor(R.color.textColor));

btn4.setBackgroundResource(R.drawable.btn_design);

btn4.setTextColor(getResources().getColor(R.color.textColor));

btn5.setBackgroundResource(R.drawable.btn_design);

btn5.setTextColor(getResources().getColor(R.color.textColor));

btn6.setBackgroundResource(R.drawable.btn_design);

btn6.setTextColor(getResources().getColor(R.color.textColor));

//groupBtn.setBackgroundResource(R.drawable.btn_wrong_answer);

if (language_change) {

tw.setText(engWName);

rightWord = rusWName;

} else {

tw.setText(rusWName);

rightWord = engWName;

}

switch (rightAnswer) {

case 1:

btn1.setText(rightWord);

rightBtn = btn1;

btn2.setText(wrongWords[0]);

btn3.setText(wrongWords[1]);

btn4.setText(wrongWords[2]);

btn5.setText(wrongWords[3]);

btn6.setText(wrongWords[4]);

break;

case 2:

btn2.setText(rightWord);

rightBtn = btn2;

btn1.setText(wrongWords[0]);

btn3.setText(wrongWords[1]);

btn4.setText(wrongWords[2]);

btn5.setText(wrongWords[3]);

btn6.setText(wrongWords[4]);

break;

case 3:

btn3.setText(rightWord);

rightBtn = btn3;

btn2.setText(wrongWords[0]);

btn1.setText(wrongWords[1]);

btn4.setText(wrongWords[2]);

btn5.setText(wrongWords[3]);

btn6.setText(wrongWords[4]);

break;

case 4:

btn4.setText(rightWord);

rightBtn = btn4;

btn2.setText(wrongWords[0]);

btn3.setText(wrongWords[1]);

btn1.setText(wrongWords[2]);

btn5.setText(wrongWords[3]);

btn6.setText(wrongWords[4]);

break;

case 5:

btn5.setText(rightWord);

rightBtn = btn5;

btn2.setText(wrongWords[0]);

btn3.setText(wrongWords[1]);

btn4.setText(wrongWords[2]);

btn1.setText(wrongWords[3]);

btn6.setText(wrongWords[4]);

break;

case 6:

btn6.setText(rightWord);

rightBtn = btn6;

btn2.setText(wrongWords[0]);

btn3.setText(wrongWords[1]);

btn4.setText(wrongWords[2]);

btn5.setText(wrongWords[3]);

btn1.setText(wrongWords[4]);

break;

}

}

}

2) Исходный код модуля добавления слов в словарь (Home.java)

package com.example.pupil;

import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.support.annotation.Nullable;

import android.support.design.widget.TextInputLayout;

import android.support.v4.app.Fragment;

import android.util.Log;

import android.view.Gravity;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.Button;

import android.widget.Toast;

public class Home extends Fragment implements View.OnClickListener {

private Button btnAdd;

private TextInputLayout etEng, etRus;

private Cursor mainCursor;

private DBHelper myDBHelper;

private SQLiteDatabase myDB;

private Context thisContext;

public Home() {

}

public static Home newInstance() {

return new Home();

}

@Override

public void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setRetainInstance(true);

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

View view = inflater.inflate(R.layout.fragment_home, container, false);

thisContext = getActivity();

myDBHelper = new DBHelper(thisContext);

myDBHelper.updateDataBase();

myDB = myDBHelper.getWritableDatabase();

btnAdd = (Button) view.findViewById(R.id.buttonAdd);

etRus = (TextInputLayout) view.findViewById(R.id.editTextRus);

etEng = (TextInputLayout) view.findViewById(R.id.editTextEng);

btnAdd.setOnClickListener(this);

return view;

}

@Override

public void onClick(View v) {

String engWord = etEng.getEditText().getText().toString().trim().toLowerCase();

String rusWord = etRus.getEditText().getText().toString().trim().toLowerCase();

int newEngId = -1;

int newRusId = -1;

String sql;

ContentValues contentValues = new ContentValues();

switch (v.getId()) {

case R.id.buttonAdd:

if (etEng.getEditText().getText().toString().trim().isEmpty()) {

etEng.setError("Введите английское слово");

etEng.requestFocus();

break;

} else {

etEng.setError(null);

}

if (etRus.getEditText().getText().toString().trim().isEmpty()) {

etRus.setError("Введите русское слово");

etRus.requestFocus();

break;

} else {

etRus.setError(null);

}

mainCursor = myDB.rawQuery("SELECT ifnull(max(1), -1) \n" +

" FROM eng_words ew, \n" +

" rus_eng_words rew, \n" +

" rus_words rw \n" +

" WHERE ew._id_eng_word = rew.id_eng_word AND \n" +

" rw._id_rus_word = rew.id_rus_word AND \n" +

" lower(trim(rw.name_rus_word)) = ? AND \n" +

" lower(trim(ew.name_eng_word)) = ?", new String[]{rusWord, engWord});

mainCursor.moveToFirst();

while (!mainCursor.isAfterLast()) {

if (mainCursor.getInt(0) == 1) {

Toast toast = Toast.makeText(thisContext, "Пара слов уже есть в словаре!", Toast.LENGTH_SHORT);

toast.setGravity(Gravity.CENTER, 0, 0);

toast.show();

etEng.requestFocus();

} else {

Cursor c;

Cursor cc;

c = myDB.rawQuery("SELECT (\n" +

" SELECT ifnull(max(ew._id_eng_word), -1) \n" +

" FROM eng_words ew \n" +

" WHERE lower(trim(ew.name_eng_word)) = ? \n" +

" ),\n" +

" (\n" +

" SELECT ifnull(max(rw._id_rus_word), -1) \n" +

" FROM rus_words rw \n" +

" WHERE lower(trim(rw.name_rus_word)) = ? \n" +

" )", new String[]{engWord, rusWord});

c.moveToFirst();

while (!c.isAfterLast()) {

// английское - нет, русское - есть

if (c.getString(0).equals("-1") && !c.getString(1).equals("-1")) {

sql = "INSERT INTO eng_words(name_eng_word)"

+ "VALUES (?)";

myDB.execSQL(sql, new String[]{engWord});

cc = myDB.rawQuery("SELECT ifnull(max(ew._id_eng_word), -1) " +

" FROM eng_words ew" +

" WHERE lower(trim(ew.name_eng_word)) = ?", new String[]{engWord});

cc.moveToFirst();

while (!cc.isAfterLast()) {

if (cc.getString(0).equals("-1")) {

Log.d("mLog", "Error 20001 Ошибка поиска английского слова");

newEngId = -1;

} else {

newEngId = cc.getInt(0);

}

cc.moveToNext();

}

cc.close();

newRusId = c.getInt(1);

sql = "INSERT INTO rus_eng_words(id_eng_word, id_rus_word)"

+ "VALUES (?, ?)";

myDB.execSQL(sql, new Integer[]{newEngId, newRusId});

}

// английское - есть, русское - нет

else if (!c.getString(0).equals("-1") && c.getString(1).equals("-1")) {

sql = "INSERT INTO rus_words(name_rus_word)"

+ "VALUES (?)";

myDB.execSQL(sql, new String[]{rusWord});

cc = myDB.rawQuery("SELECT ifnull(max(rw._id_rus_word), -1) " +

" FROM rus_words rw" +

" WHERE lower(trim(rw.name_rus_word)) = ?", new String[]{rusWord});

cc.moveToFirst();

while (!cc.isAfterLast()) {

if (cc.getString(0).equals("-1")) {

Log.d("mLog", "Ошибка поиска русского слова");

newRusId = -1;

} else {

newRusId = cc.getInt(0);

}

cc.moveToNext();

}

cc.close();

newEngId = c.getInt(0);

sql = "INSERT INTO rus_eng_words(id_eng_word, id_rus_word)"

+ "VALUES (?, ?)";

myDB.execSQL(sql, new Integer[]{newEngId, newRusId});

} else {

sql = "INSERT INTO eng_words(name_eng_word)"

+ "VALUES (?)";

myDB.execSQL(sql, new String[]{engWord});

sql = "INSERT INTO rus_words(name_rus_word)"

+ "VALUES (?)";

myDB.execSQL(sql, new String[]{rusWord});

cc = myDB.rawQuery("SELECT ifnull(max(ew._id_eng_word), -1) " +

" FROM eng_words ew" +

" WHERE lower(trim(ew.name_eng_word)) = ?", new String[]{engWord});

cc.moveToFirst();

while (!cc.isAfterLast()) {

if (cc.getString(0).equals("-1")) {

Log.d("mLog", "Ошибка поиска английского слова");

newEngId = -1;

} else {

newEngId = cc.getInt(0);

}

cc.moveToNext();

}

cc.close();

cc = myDB.rawQuery("SELECT ifnull(max(rw._id_rus_word), -1) " +

" FROM rus_words rw" +

" WHERE lower(trim(rw.name_rus_word)) = ?", new String[]{rusWord});

cc.moveToFirst();

while (!cc.isAfterLast()) {

if (cc.getInt(0) == -1) {

Log.d("mLog", "Ошибка поиска русского слова");

newRusId = -1;

} else {

newRusId = cc.getInt(0);

}

cc.moveToNext();

}

cc.close();

sql = "INSERT INTO rus_eng_words(id_eng_word, id_rus_word)"

+ "VALUES (?, ?)";

myDB.execSQL(sql, new Integer[]{newEngId, newRusId});

}

c.moveToNext();

}

Toast toast = Toast.makeText(thisContext, "Пара добавлена в словарь", Toast.LENGTH_SHORT);

toast.setGravity(Gravity.CENTER, 0, 0);

toast.show();

}

mainCursor.moveToNext();

}

mainCursor.close();

break;

}

//myDBHelper.close();

}

}

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

...

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

  • Проектирование системы управления базами данных. Особенности реализации в MS SQL. Разработка пользовательского интерфейса. Тестирование и отладка приложения. Руководство пользователя и системного администратора. Анализ и методы разработки приложений.

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

  • Разработка логической схемы базы данных автомобилестроительного предприятия. Инфологическое моделирование системы. Создание графического интерфейса пользователя для базы данных средствами языка программирования Java. Тестирование программных средств.

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

  • Знакомство с особенностями и этапами разработки базы данных "Летопись острова Санта Белинда". Анализ основных компонентов MS Access. Форма как объект базы данных, который можно использовать для создания интерфейса пользователя для приложения базы данных.

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

  • Определение требований к операционной обстановке. Инфологическое, логическое проектирование. Разработка программного обеспечения. Структура приложения, его тестирование. Выбор СУБД и других инструментальных программных средств. Описание схемы базы данных.

    курсовая работа [2,4 M], добавлен 25.12.2013

  • Проектирование и создание пользовательского интерфейса и визуального программирования в среде Delphi. Система управления базой данных. Локальные и глобальное пользовательские представления. Анализ предметной области. Назначение форм и компонентов.

    курсовая работа [758,0 K], добавлен 07.03.2014

  • Разработка программного приложения WindowsForms для работы с базой данных на языке высокого уровня C# в автономном режиме с использованием ADO.NET. Проектирование реляционной модели базы данных, интерфейса приложения, основных функций и возможностей.

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

  • Создание информационную систему "Сеть магазинов" в виде реляционной базы данных и операциями над ней. Создание базы данных в СУБД DB2. Описание и обоснование выбора состава технических и программных средств. Разработка пользовательского приложения.

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

  • Создание приложения для контроля знаний студентов, программ-тестов, созданных с помощью пакета прикладных программ Microsoft Office. Основные требования к его структуре и функциональности, взаимосвязь компонентов. Составление и листинг программы.

    курсовая работа [900,3 K], добавлен 03.06.2014

  • Выбор состава технических и программных средств разработки системы. Описание входных и выходных данных. Выбор модели базы данных. Разработка подсистемы наполнения базы данных, формирования отчетов. Разработка интерфейса пользователя, тестирование системы.

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

  • Разработка Web-приложения для ООО "Научно-производственная фирма по применению информационных технологий в электрических сетях". Техническое задание, проектирование процессов, создание базы данных, разработка дизайна, тестирование и отладка сайта.

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

  • Разработка приложения, которое содержит информацию о гостях, о номерах, об оплате с целью автоматизации процесса регистрации в гостинице. Проектирование базы данных по технологии "Клиент-сервер". Специфика разработки пользовательского интерфейса.

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

  • Спецификация требований к разрабатываемому приложению. Разработка структурной схемы интерфейса. Описание алгоритма шифрования DES. Разработка программного кода приложения "DES". Проведение исследования основных шагов для генерации ключей и шифрования.

    курсовая работа [398,4 K], добавлен 13.12.2022

  • Понятие, законодательное регулирование и виды электронных подписей. Разработка структурной схемы приложения и базы данных. Создание диаграммы прецедентов и классов. Проектирование интерфейса программы. Анализ руководства пользователя web-приложения.

    дипломная работа [869,8 K], добавлен 12.08.2017

  • Описание алгоритмов поиска пути. Диаграмма объектов предметной области. Разработка структурной схемы. Проектирование интерфейса пользователя. Выбор и обоснование комплекса программных средств. Разработка пользовательского меню. Диаграмма компонентов.

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

  • Возможности извлечения информации из баз данных. Программы для создания и обработки базы данных и создания пользовательского интерфейса. Обоснование выбора программных средств для реализации. Создание базы данных, интерфейса и базы данных к интерфейсу.

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

  • Обзор подходов к разработке музейных приложений с элементами дополненной реальности, формирование требований к ним. Выбор методов разработки приложения, разработка пользовательского интерфейса. Принципы тестирования. Реализация раздела "Распознавание".

    дипломная работа [2,8 M], добавлен 03.07.2017

  • Проектирование базы данных для учета поступления пациентов и проведенного лечения, ведение архива выписанных пациентов. Определение требований поддержки целостности данных. Тестирование программы и руководство пользователю. Листинг программных модулей.

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

  • Процесс разработки базы данных для хранения и обработки информации. Ключи, индексы, триггеры, хранимые процедуры. Разработка пользовательского интерфейса и базы данных. Основные инструментальные средства для разработки клиентской и серверной частей.

    дипломная работа [225,0 K], добавлен 18.05.2013

  • Автоматизация системы снятия показаний счетчиков энергии. Разработка базы данных и клиентского приложения для структур жилищно-коммунального хозяйства, занимающихся составлением квитанций. Описание предметной области. Тестирование клиентского приложения.

    курсовая работа [953,3 K], добавлен 01.09.2016

  • Разработка структурной диаграммы программного модуля. Представление схемы для основных расчетов выбранного приложения для создания прямоугольной матрицы. Особенности создания пользовательского интерфейса. Тестирование и отладка спроектированного модуля.

    курсовая работа [648,4 K], добавлен 27.05.2015

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