(基于安卓app开发项目)英语学习记单词软件的毕业设计(java+j2ee+mysql)附源码+论文

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

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

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

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

目录

  • 一、项目简介
  • 二、系统核心功能模块部分截图
    • 2.1用户登陆的设计与实现
    • 2.2单词学习
    • 2.3单词复习
    • 2.4 单词浏览
  • 三、部分核心代码
    • 4.1 登录部分
    • 4.2照片部分
  • 四、论文目录
  • 获取源码或论文

一、项目简介

英语在国内目前属于各类的考试的必修课程,中考、高考、考研、出国,几乎贯穿所有学习阶段。而单词作为英语学习的基础,有着异常重要的作用。传统单词书笨重、不易携带和查询。随着智能手机的普及,人们获取信息的方式已经发生了巨大的转变。智能手机正在逐步融入我们的生活,并影响和改变着我们的生活。因此,基于 Android系统设计一款记单词软件,方便人们随时随地记忆单词,合理利用碎片化时间。

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

2.1用户登陆的设计与实现

在这里插入图片描述

2.2单词学习

本模块是本App的核心功能模块,支持单词搜索查询,并有已背单词和未背单词提示,具体实现效果如下图:
在这里插入图片描述

2.3单词复习

复习模块提供两种复习模式:随机从已背单词本选单词,然后随机空出几个字母,进行单词填空,写错则将该单词从已背单词本删除,并加入陌生单词本;或者随机中文释义(按字母排序显示)和发音,提供3个单词选项,选对了则将该单词加入已背单词本,选错了则加入陌生单词本。
具体实现效果如下图:
在这里插入图片描述

2.4 单词浏览

本模块可以选择查看词库或者已背单词本或者陌生单词本的单词(按字母排序),并提供添加按钮,便于用户根据实际情况选择单词添加如合适的词库。具体实现效果如下图:
在这里插入图片描述

三、部分核心代码

4.1 登录部分


package com.batman.baselibrary.utils;import android.util.Log;import java.security.MessageDigest;
import java.util.logging.Logger;import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;public class SignUtil {private static final String DEFAULT_CHARSET = "UTF-8";private static final char[] DIGITS;public static String hmacSha256(String key, String data) {try {Mac mac = Mac.getInstance("HmacSHA256");SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), mac.getAlgorithm());mac.init(signingKey);return encodeHex(mac.doFinal(data.getBytes()));} catch (Exception e) {Log.e("hmacSHA256 error",e.toString());}return null;}public static String md5(String data, String charset) {try {byte[] msg = data.getBytes(charset);MessageDigest md = MessageDigest.getInstance("MD5");return encodeHex(md.digest(msg));} catch (Exception e) {Log.e("execute MD5 error",e.toString());}return null;}public static String sha256(String data, String charset) {try {byte[] msg = data.getBytes(charset);MessageDigest md = MessageDigest.getInstance("SHA-256");return encodeHex(md.digest(msg));} catch (Exception e) {Log.e("execute SHA-256 error",e.toString());}return null;}public static String sha1(String data, String charset) {try {byte[] msg = data.getBytes(charset);MessageDigest md = MessageDigest.getInstance("SHA1");return encodeHex(md.digest(msg));} catch (Exception e) {Log.e("execute SHA1 error",e.toString());}return null;}public static String sha1(String data) {return sha1(data, DEFAULT_CHARSET);}private static String encodeHex(byte[] data) {int l = data.length;char[] out = new char[l << 1];int i = 0;for (int j = 0; i < l; ++i) {out[j++] = DIGITS[(240 & data[i]) >>> 4];out[j++] = DIGITS[15 & data[i]];}return new String(out);}static {DIGITS =new char[] {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd','e', 'f'};}
}

4.2照片部分

package com.batman.baselibrary.utils;import android.app.Activity;
import android.content.ContentUris;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.provider.DocumentsContract;
import android.provider.MediaStore;import com.batman.baselibrary.Constant;import java.io.File;import androidx.core.content.FileProvider;public class CameraUtils {public static final int RC_CAMERA_PERM = 123;public static final int TAKE_PICTURE_FROM_CAMERA = 100;public static final int TAKE_PICTURE_FROM_GALLERY = 200;public static final int TAKE_PICTURE_PREVIEW = 300;public static File showCameraAction(Activity context) {File file = FileUtils.getDiskCachePicture(context);showCameraAction(context, file);return file;}public static File showCameraAction(Activity context, String temporaryFileName) {File file = FileUtils.getDiskCachePicture(context, temporaryFileName);showCameraAction(context, file);return file;}/*** 在onActivityResult中 可以通过key得到一个返回值,即 Bitmap imageBitmap = (Bitmap) extras.get("data");此返回值是* 拍摄照片的缩略图,但是一般不这样做,我们需要的是全尺寸的照片,所以我们通过filename保存拍摄的照片** @param context* @param temporaryFile* @return*/public static Uri showCameraAction(Activity context, File temporaryFile) {return showCameraAction(context, temporaryFile, TAKE_PICTURE_FROM_CAMERA);}public static Uri showCameraAction(Activity context, File temporaryFile, int requestCode) {// 跳转到系统照相机Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);Uri uri = null;if (intent.resolveActivity(context.getPackageManager()) != null) {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {//步骤二:Android 7.0及以上获取文件 Uriuri = FileProvider.getUriForFile(context, Constant.FILE_PROVIDER, temporaryFile);intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);} else {//步骤三:获取文件Uriuri = Uri.fromFile(temporaryFile);}intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);context.startActivityForResult(intent, requestCode);} else {//相机出现异常}return uri;}public static void showPicAction(Activity context) {// 跳转到相册Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);if (intent.resolveActivity(context.getPackageManager()) != null) {context.startActivityForResult(intent, TAKE_PICTURE_FROM_GALLERY);} else {}}public static String getAbsolutePath(final Context context, final Uri uri) {// DocumentProviderif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && DocumentsContract.isDocumentUri(context, uri)) {// ExternalStorageProviderif (isExternalStorageDocument(uri)) {final String docId = DocumentsContract.getDocumentId(uri);final String[] split = docId.split(":");final String type = split[0];if ("primary".equalsIgnoreCase(type)) {return Environment.getExternalStorageDirectory() + "/" + split[1];}// TODO handle non-primary volumes}// DownloadsProviderelse if (isDownloadsDocument(uri)) {final String id = DocumentsContract.getDocumentId(uri);final Uri contentUri = ContentUris.withAppendedId(Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));return getDataColumn(context, contentUri, null, null);}// MediaProviderelse if (isMediaDocument(uri)) {final String docId = DocumentsContract.getDocumentId(uri);final String[] split = docId.split(":");final String type = split[0];Uri contentUri = null;if ("image".equals(type)) {contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;} else if ("video".equals(type)) {contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;} else if ("audio".equals(type)) {contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;}final String selection = "_id=?";final String[] selectionArgs = new String[]{split[1]};return getDataColumn(context, contentUri, selection, selectionArgs);}}// MediaStore (and general)else if ("content".equalsIgnoreCase(uri.getScheme())) {return getDataColumn(context, uri, null, null);}// Fileelse if ("file".equalsIgnoreCase(uri.getScheme())) {return uri.getPath();}return null;}/*** Get the value of the data column for this Uri. This is useful for* MediaStore Uris, and other file-based ContentProviders.** @param context       The context.* @param uri           The Uri to query.* @param selection     (Optional) Filter used in the query.* @param selectionArgs (Optional) Selection arguments used in the query.* @return The value of the _data column, which is typically a file path.*/public static String getDataColumn(Context context, Uri uri, String selection, String[] selectionArgs) {Cursor cursor = null;final String column = "_data";final String[] projection = {column};try {cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs,null);if (cursor != null && cursor.moveToFirst()) {final int column_index = cursor.getColumnIndexOrThrow(column);return cursor.getString(column_index);}} finally {if (cursor != null)cursor.close();}return null;}/*** @param uri The Uri to check.* @return Whether the Uri authority is ExternalStorageProvider.*/public static boolean isExternalStorageDocument(Uri uri) {return "com.android.externalstorage.documents".equals(uri.getAuthority());}/*** @param uri The Uri to check.* @return Whether the Uri authority is DownloadsProvider.*/public static boolean isDownloadsDocument(Uri uri) {return "com.android.providers.downloads.documents".equals(uri.getAuthority());}/*** @param uri The Uri to check.* @return Whether the Uri authority is MediaProvider.*/public static boolean isMediaDocument(Uri uri) {return "com.android.providers.media.documents".equals(uri.getAuthority());}}

四、论文目录

1.绪论 6
1.1研究背景和意义 6
1.2论文结构 7
2. 需求分析及设计目标 8
2.1 需求分析 8
2.1 设计目标 9
3.相关技术简介 9
3.1后台系统技术 10
3.1.1 Java语言 10
3.1.2 J2EE平台 12
3.1.3 MySQL数据库 15
3.2基于Android的前台技术 16
4.系统设计实现 19
4.1 系统功能设计 19
4.1.1 核心功能模块设计 19
4.1.2 其它功能要求 20
4.2数据库页表设计 21
4.3系统详细实现 23
4.3.1 用户登陆的设计与实现 24
4.3.2 单词搜索 25
4.3.3 单词记忆 25
4.3.4 单词复习 26
4.3.4 单词浏览: 26
4.3.4 个人中心 26
5.软件测试 27
5.1软件测试的目的和方法 27
5.1.1 软件测试的目的 27
5.1.2 软件测试基本方式 28
5.2测试用例 29
5.3测试结果 30
6.总结与展望 31
6.1 研究总结 31
6.2 展望 31
参考文献 33
致 谢 34

获取源码或论文

如嘘对应的源码或论文,可以斯wo。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/45240.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计android的图书馆图书借阅座位预订app(源码+系统+mysql数据库+Lw文档)

项目介绍 本次毕业设计是设计并实现一个图书馆座位预约系统。该系统的最终目的是为了自动化管理图书馆自习座位&#xff0c;解决占座问题&#xff0c;提高座位利用率。实际上我校是有相应的座位管理系统&#xff0c;它是那种固定的触摸刷卡屏终端&#xff0c;每层有一个&#…

基于.Net开发的、支持多平台、多语言餐厅点餐系统

今天给大家推荐一套支持多平台、多语言版本的订单系统&#xff0c;适合餐厅、酒店等场景。 项目简介 这是基于.Net Framework开发的&#xff0c;支持手机、平板、PC等平台、多语言版本开源的点餐系统&#xff0c;非常适合餐厅、便利店、超市、酒店等&#xff0c;该系统基础功…

vivo 全球商城:电商平台通用取货码设计

vivo官网商城开发团队 - Zhou Longjian 一、背景 随着O2O线上线下业务的不断扩展&#xff0c;电商平台也在逐步完善交易侧相关的产品功能。在最近的需求版本中&#xff0c;业务方为进一步提升用户的使用体验&#xff0c;规划了取货码生成及订单核销相关逻辑&#xff0c;目的是…

【轻量化网络系列(4)】ShuffleNetV1论文超详细解读(翻译 +学习笔记+代码实现)

前言 前面我们学了MobileNetV1-3&#xff0c;从这篇开始我们学习ShuffleNet系列。ShuffleNet是Face&#xff08;旷视&#xff09;在2017年发布的一个高效率可以运行在手机等移动设备的网络结构&#xff0c;论文发表在CVRP2018上。这个新的轻量级网络使用了两个新的操作&#…

CopyTranslator-复制即翻译的外文辅助阅读翻译解决方案

英语/English 复制即翻译的外文辅助阅读翻译解决方案 请尽快更新到&#xff0c;这是你没有体验过的全新版本&#xff0c;只需3分钟&#xff0c;你就会跟我一样&#xff0c;爱上这个软件。 如果您觉得软件对您有所帮助&#xff0c;不用follow&#xff0c;不用fork&#xff0c;点…

论文泛读记录(多模情感分析/探测;厌恶语音探测;属性级情感分析;CVPR2022和ACL2022 三元组/对比学习/视觉语言预训练/机器翻译/预训练模型/机器阅读理解)

文章目录 1.1 CTFN: Hierarchical Learning for Multimodal Sentiment Analysis Using Coupled-Translation Fusion NetworkJiajia Tang, Kang Li, Xuanyu Jin, Andrzej Cichocki, Qibin Zhao and Wanzeng Kong 1.2 Multimodal Sentiment Detection Based on Multi-channel Gra…

计算机毕业设计安卓旅游APP源码

开发环境及工具&#xff1a; 大于jdk1.8&#xff0c;大于mysql5.5&#xff0c;idea&#xff08;eclipse&#xff09;&#xff0c;Android Studio 技术说明&#xff1a; springboot mybatis android 代码注释齐全&#xff0c;没有多余代码&#xff0c;适合学习(毕设)&#x…

孔夫子图书商城购物系统的设计与实现(论文+源码)_kaic

目录 摘要 一、绪论 &#xff08;一&#xff09;选题背景意义 &#xff08;二&#xff09;国内外研究现状 1.国内研究现状 2.国外研究现状 &#xff08;三&#xff09;研究内容 二、系统相关技术 &#xff08;一&#xff09;SSM框架 &#xff08;二&#xff09;Mysql数据库 &am…

200+语言任意互译,新开源的大模型让粤语靓仔直接喜大普奔

Alex 发自 凹非寺量子位 | 公众号 QbitAI 这个翻译模型&#xff0c;不仅支持200语言之间任意两两互译&#xff0c;还是开源的。 Meta AI在发布开源大型预训练模型OPT之后&#xff0c;再次发布最新成果NLLB。 NLLB的全称为No Language Left Behind&#xff0c;如果套用某著名电影…

计算机毕业论文内容参考|基于Android的国际酒店预订APP的设计与实现

文章目录 导文摘要:前言:绪论:课题背景国内外现状与趋势课题内容相关技术与方法介绍:系统分析:系统设计:系统实现:系统测试:本文总结后续工作展望导文 计算机毕业论文内容参考|基于Android的国际酒店预订APP的设计与实现 摘要: 随着人们生活水平的提高和旅游业的迅速…

基于android系统的单词学习软件设计与开发【附项目源码+论文说明】

基于android系统的单词学习软件设计与开发演示 摘要 随着手机使用的普及&#xff0c;人们获取与保存信息的方式已经发生了激动人心的转变。智能手机正在逐步融入我们的生活&#xff0c;并影响和改变着我们的生活。由于现在各种智能手机的使用&#xff0c;使得人们在管理、应用…

软件推荐:论文翻译阅读 + 文献管理 + markdown笔记 + 多设备同步 + 一键导出bib参考文献

起初是重大的一个学长推荐的&#xff0c;但是我只用来存文献&#xff0c;后来研究了一下发现居然有这么多功能。 最主要的免费&#xff01;可以白嫖就是香&#xff01; 以下是我用到的一些功能&#xff0c;如果我以后发现什么新功能会继续补充。 文章目录 1 下载安装zotero2…

(附源码)app校园购物网站 毕业设计 041037

springboot校园购物网站APP 摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化…

略胜知云?适合大学生的一款文献翻译神器,网页版工具

转载于微信公众号【投必得学术】 之前给大家推荐过一款翻译软件。 知云文献翻译安装教程_阅读英文文献的好帮手https://blog.csdn.net/txr152111/article/details/117256967https://blog.csdn.net/txr152111/article/details/117256967 知云阅读翻译这个软件想必大家早已耳熟…

CopyTranslator——复制即翻译的外文辅助阅读翻译解决方案

CopyTranslator官网&#xff1a;https://copytranslator.github.io/ 有道翻译VIPCopyTranslator9链接&#xff1a;https://pan.baidu.com/s/1-Gg39WFS-P3LWKjw-59Inw 提取码&#xff1a;qa3i 复制翻译 CopyTranslator监听到剪贴板变化&#xff0c;会将剪贴板内容进行处理&am…

PDF翻译神器,再也不担心读不懂英文Paper了

作者 | 琥珀 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 如果你经常跟文献打交道&#xff0c;那你应该切身体验过那种令人抓狂的心情&#xff1a;流畅地阅读 PDF 外文文献&#xff0c;必要情况下还得逐字逐句地翻译出来。 例如&#xff0c;主流翻译引擎之一的谷…

【论文泛读102】TranSmart:实用的交互式机器翻译系统

贴一下汇总贴&#xff1a;论文阅读记录 论文链接&#xff1a;《TranSmart: A Practical Interactive Machine Translation System》 一、摘要 自动机器翻译在产生翻译方面非常高效&#xff0c;但不能保证其质量。该技术报告介绍了TranSmart&#xff0c;这是一种实用的人机交…

Sumo学习日记 - day1 从traci开始

Sumo学习日记 之前经常使用sumo&#xff0c;但是网络上相关教程较少&#xff0c;且并没有行成系统的教学。官方文档教育效果很棒&#xff0c;但是对于想学习sumo这个软件的萌新来说好像有点不友好&#xff0c;所以在这里开一个专题 主要介绍sumo和traci的相关使用 同时也是自己…

计算机毕业论文内容参考|基于Android的旅游攻略APP的设计与实现

文章目录 导文摘要:前言:绪论:1. 课题背景:2. 国内外现状与趋势:3. 课题内容:相关技术与方法介绍:系统分析:系统设计:系统实现系统测试总结与展望本文总结后续工作展望导文 计算机毕业论文内容参考|基于Android的旅游攻略APP的设计与实现 摘要: 本文基于Android平台…

关于android的外文论文,毕业论文外文翻译-Android开发

毕业论文外文翻译-Android开发 (11页) 本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01; 9.90 积分 毕业设计(论文)外文翻译 毕业 论文题目 基于 Android 手机通讯录的设计与实现 作 者 姓 名 所学专业…