(基于安卓app开发项目)日语学习软件的毕业设计(附源码+论文)

大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。

💞当前专栏:安卓app毕业设计

精彩专栏推荐👇🏻👇🏻👇🏻

🎀Java毕业设计
🌎微信小程序毕业设计

一、项目简介

本论文首先对基于Android的日语学习系统进行了需求分析,从系统开发环境、系统目标、设计流程、功能设计等几个方面进行系统的总体设计,使用Java语言设计了基于Android的日语学习软件,主要完成了日语单词学习、日语单词复习、日语单词测试、日语单词翻译等各项功能的设计,实现对日语学习系统的展示。通过对系统的功能进行测试,测试结果证明该系统界面友好、功能完善,有着较高的使用价值,具有庞大的潜在用户群体和较广阔的应用前景。

二、系统核心功能模块部分截图

2.1登录注册功能

App提供基本的用户注册和登陆功能,用户注册通过后可以使用App相关功能,实现效果如下所示:

在这里插入图片描述

2.2主界面

用户想要使用本日语学习软件展示客户端,首先需要打开软件,就可以获得本日语学习的各项功能选项,包括录入、背诵、复习、查询、个人中心等等,效果图如图所示:

在这里插入图片描述

2.3单词录入功能

该功能支持用户自主录入词汇,可以将日常学习过程中遇到的词汇自定义录入,App将用户编辑的词汇和释义存储到数据库,帮助加深个人理解和记忆,效果如下图所示:
在这里插入图片描述

2.4 背单词和复习界面

学习日语单词模块界面主要实现了用户对各类日语单词的学习功能。App随机出日语词汇、短语,点击认识或不认识,会自动出现中文释义。点击不认识按钮,App自动将该词汇添加至复习词库。日语单词学习界面效果图如图所示:
在这里插入图片描述

三、部分核心代码

4.1 注册部分


package com.example.japanese.words.activity;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.example.japanese.words.R;
import com.example.japanese.words.model.User;
import com.example.japanese.words.model.User_Table;
import com.raizlabs.android.dbflow.sql.language.SQLite;

/**
 * author :
 * date   : 2021/3/8下午10:03
 * desc   :
 * version: 1.0
 */
public class RegisterActivity extends AppCompatActivity {
    private EditText et_name;
    private EditText et_password;
    private EditText et_two_password;
    private EditText et_phone;
    private EditText et_email;
    private Button tv_register;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_for_register);
        et_name = (EditText) findViewById(R.id.et_name);
        et_password = (EditText) findViewById(R.id.et_password);
        et_two_password = (EditText) findViewById(R.id.et_two_password);
        et_phone = (EditText) findViewById(R.id.et_phone);
        et_email = (EditText) findViewById(R.id.et_email);
        tv_register = (Button) findViewById(R.id.tv_register);
        tv_register.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (TextUtils.isEmpty(et_name.getText().toString().trim())) {
                    Toast.makeText(RegisterActivity.this, "请输入用户名", Toast.LENGTH_SHORT);
                    return;
                }
                if (TextUtils.isEmpty(et_password.getText().toString().trim())) {
                    Toast.makeText(RegisterActivity.this, "请输入密码", Toast.LENGTH_SHORT);
                    return;
                }
                if (TextUtils.isEmpty(et_two_password.getText().toString().trim())) {
                    Toast.makeText(RegisterActivity.this, "请确认密码", Toast.LENGTH_SHORT);
                    return;
                }
                if (TextUtils.isEmpty(et_phone.getText().toString().trim())) {
                    Toast.makeText(RegisterActivity.this, "请确认电话", Toast.LENGTH_SHORT);
                    return;
                }
                if (TextUtils.isEmpty(et_email.getText().toString().trim())) {
                    Toast.makeText(RegisterActivity.this, "请确认邮箱", Toast.LENGTH_SHORT);
                    return;
                }
                if (!et_two_password.getText().toString().trim().equals(et_password.getText().toString().trim())) {
                    Toast.makeText(RegisterActivity.this, "2次输入的密码不一样", Toast.LENGTH_SHORT);
                    return;
                }
                //查看库里是否存在该用户
                User user = SQLite.select()
                        .from(User.class)
                        .where(User_Table.name.eq(et_name.getText().toString().trim()))
                        .orderBy(User_Table.id, true)// 按照 id 升序
                        .querySingle();
                if (user == null) {
                    User newUser = new User();
                    newUser.name = et_name.getText().toString().trim();
                    newUser.password = et_password.getText().toString().trim();
                    newUser.phone = et_phone.getText().toString().trim();
                    newUser.email = et_email.getText().toString().trim();
                    newUser.save();
                    Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT);
                    finish();
                } else {
                    Toast.makeText(RegisterActivity.this, "用户名已经存在", Toast.LENGTH_SHORT);
                }
            }
        });
    }
}


4.2登录部分

package com.example.japanese.words.activity;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.example.japanese.words.R;
import com.example.japanese.words.model.User;
import com.example.japanese.words.model.User_Table;
import com.raizlabs.android.dbflow.sql.language.SQLite;

/**
 * author :
 * date   : 2021/3/8下午9:47
 * desc   :
 * version: 1.0
 */
public class LoginActivity extends Activity {
    private EditText et_name;
    private EditText et_password;
    private Button btn_login;
    private Button tv_register;

    private String name;
    private String password;
    //读取数据
    private SharedPreferences sharedPreferences;
    //写入数据
    private SharedPreferences.Editor editor;


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_for_login);
        et_name=(EditText) findViewById(R.id.et_name);
        et_password=(EditText) findViewById(R.id.et_password);
        btn_login=(Button) findViewById(R.id.btn_login);
        tv_register=(Button) findViewById(R.id.tv_register);

        btn_login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                name=et_name.getText().toString();
                password=et_password.getText().toString();
                if (TextUtils.isEmpty(name)){
                    Toast.makeText(LoginActivity.this,"请输入用户名",Toast.LENGTH_SHORT);
                    return;
                }
                if (TextUtils.isEmpty(password)){
                    Toast.makeText(LoginActivity.this,"请输入用户名",Toast.LENGTH_SHORT);
                    return;
                }
                //查看库里是否存在该用户
                User user= SQLite.select()
                        .from(User.class)
                        .where(User_Table.name.eq(name))
                        .orderBy(User_Table.id, true)// 按照 id 升序
                        .querySingle();
                if (user!=null){
                    if(user.password.equals(password)){
                        //实例化sharedPreferences,参数:文件名称,模式(通常使用PRIVATE)
                        sharedPreferences = getSharedPreferences("user",MODE_PRIVATE);
                        //实例化editor
                        editor = sharedPreferences.edit();
                        editor.putString("name",name);
                        editor.putString("password",password);
                        editor.commit();
                        finish();
                        startActivity(new Intent(getApplicationContext(), MainActivity.class));
                        //成功
                    }else {
                        //密码错误
                        Toast.makeText(LoginActivity.this,"密码错误",Toast.LENGTH_SHORT);
                    }
                }else{
                    Toast.makeText(LoginActivity.this,"用户不存在",Toast.LENGTH_SHORT);
                    //用户不存在
                }
            }
        });
        tv_register.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(), RegisterActivity.class));

            }
        });
    }

    @Override
    protected void onResume() {
        super.onResume();
    }
}


四、论文目录

摘 要 1
ABSTRACT 2
目 录 2
第1章 绪论 5
1.1 选题背景 5
1.2 课题研究现状 6
1.3 研究内容 6
1.4 主要设计思路 6
第2章 开发环境介绍 7
2.1 Android系统的架构 7
2.1.1 应用程序 7
2.1.2 应用程序框架 7
2.1.3 系统运行库 8
2.1.4 Linux内核 9
2.2 安全权限机制 9
2.3 Android平台的搭建 9
2.4 JAVA简介 12
第3章 系统分析 14
3.1 系统可行性分析 14
3.1.1 技术可行性 14
3.1.2 操作可行性 14
3.1.3 经济可行性 14
3.2 功能需求 14
3.3 开发运行环境需求 15
3.4 性能需求 15
3.5 其它需求 16
第4章 系统总体设计 16
4.1 概述 16
4.2 设计原则 17
4.3 Android应用程序结构剖析 17
4.4 系统功能结构 23
第5章 系统的实现 23
5.1 软件界面设计 23
5.2 登录注册功能 23
5.3 主界面 24
5.4单词录入功能 25
5.5背单词和复习界面 26
5.6 单词查询界面 27
5.7 用户中心界面 28
第6章 系统的测试 29
6.1 测试方案设计 29
6.1.1 测试策略 29
6.1.2 测试安排 30
6.1.3 测试资源 30
6.2测试用例构建 30
6.2.1 测试用例编写约定 30
6.2.2 测试分析 31
总 结 31
参考文献 33

获取源码或论文

如需对应的源码,可以评论或者私信都可以。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值