基于Android studio+SSH的单词记忆(背单词)APP设计
目录
- 引言 3
1.1. 项目介绍 3
课程设计选题《单词记忆APP》 3
1.2. 项目的目的和意义 3
1.3. 相关技术介绍 5
1.3.1. ionic + angular + cordova混合框架 5
1.4. 后端SSH框架 6 - 系统需求分析 8
2.1. 软件功能 8
2.1.1. 需求分析 8
2.2. 功能性需求 9 - 项目介绍 10
3.1. 系统的开发环境 10
3.2. 系统的技术路线 11
3.3. 系统的具体功能 11
3.3.1. 登录注册模块 11
3.3.2. 单词学习模块 11
3.3.3. 单词列表模块 12
3.3.4. 单词翻译模块 12
3.3.5. 翻译收藏模块 12
3.3.6. 阅读模块 12
3.3.7. 个人中心模块 12
3.3.8. 今日计划版块 13
3.3.9. 单词进度模块 13 - 系统设计 13
4.1. 总体设计 13
4.1.1. 处理流程 13
4.1.2. 总体结构和模块外部设计 14
4.1.3. 系统类关系设计 14
4.2. 系统功能模块设计 15
4.2.1. 用户登陆修改信息模块 16
4.2.2. 单词学习模块 17
4.2.3. 搜索模块 19
4.2.4. 查看词典 19
4.2.5. 收藏模块 20
4.2.6. 个人中心模块 21
4.2.7. 今日计划模块 22
4.2.8. 管理员管理模块 23
4.3. 数据库设计 23
4.3.1. 逻辑结构设计 23
4.3.2. 物理结构设计 24
4.4. 后端服务器API规约 27
4.4.1. 用户相关API 27
4.4.2. 单词相关API 27
4.4.3. 词典相关API 27
4.4.4. 收藏相关API 28
4.4.5. 管理员相关API 28 - 各模块具体功能实现 28
5.1. 用户登陆实现 29
5.1.1. 向后端服务器提交用户登录信息算法 29
5.1.2. 用户登录成功向后端服务器获取相关信息算法 29
5.2. 用户注册实现 30
5.2.1. 向后端服务器提交用户注册信息算法 30
5.3. 用户信息修改实现 31
5.3.1. 向后端服务器提交用户更改的信息算法 31
5.4. 单词学习流程实现 31
5.4.1. 初步学习页面 32
5.4.2. 初步学习算法 32
5.4.3. 单词复习算法 33
5.4.4. 单词复习页面 36
5.5. 单词计划实现 37
5.5.1. 单词计划页面 37
5.5.2. 单词计划相关代码 38
5.6. 单词列表实现 39
5.6.1. 单词列表页面 39
5.7. 单词搜索实现 40
调用API接口实现翻译 42
5.8. 查询单词收藏功能实现 43
5.9. 个人信息修改实现 43
5.10. 今日计划部分实现 43 - 功能展示 43
6.1. 单词学习系统主要界面 43
6.1.1. 登陆界面 43
6.1.2. 用户注册界面 44
6.1.3. 单词学习界面 45
6.1.4. 计划修改页面 47
6.1.5. 单词列表页面 48
6.1.6. 单词搜索界面 49
6.1.7. 个人信息查看与修改界面 49
6.1.8. 背单词系统管理系统 50
2.系统需求分析
2.1.软件功能
2.1.1.需求分析
随着科学技术的发展,人类社会日新月异,智能手机自出现以来就在人类的生产生活中饰演着重要的角色,越来越成为大家日常生活中必不可少的生活工具。在学校、在家中、在交通工具上甚至在工作中随处可见智能手机的身影。与此同时手机软件也日益发展壮大。而在全球化的背景下,对于英语的学习也变得越来越重要。手机电子词典或生词记忆软件作为学习英语的工具,凭借其便捷、简单、高效的优势,日益受到年轻人的青睐。
本项目APP主要针对用户有需要英语四六级考试、考研、出国留学考雅思、托福等在校大学生。还有就是初高中需要背英语单词的学生,以及想要提升自己词汇量的上班白领。这些用户的特征有(1)学生群体,受教育程度高,主动学习能力强;(2)好奇心强,对好玩有趣易用的新鲜事物感兴趣;(3)备考需要,想要提升自己的考试能力。经分析,这些用户的需求有(1)提高词汇量,满足考试、生活及工作需要;(2)充分利用碎片化时间,更有效率地学习;(3)需要有一套合理、科学的背单词学习计划,日积月累,成长看得见;(4)需要更有趣味地记单词,拒绝传统式枯燥、而且容易忘的记单词方式;(5)在记单词的时候,也想要提高自己的听力。
为满足目标用户的需求,基本可以去确定本电子词典软件设计所要完成的功能目标。以下是本项目中电子词典具备的功能。
(1)登录界面,用户进行登录,保障用户信息安全;
(2)注册界面,供新用户进行注册;
(3)主菜单界面,供用户选择要执行的操作界面;
(4)单词列表界面,供用户查看当前词典所有单词以及学习中收藏的单词
(5)计划更改界面,供用户选择词典以及制定每日所学习的单词数
(6)单词学习界面,供用户进行单词记忆主要功能模块;
(7)翻译界面,供用户进行生词的英汉互译;
(8)翻译收藏界面,供用户收藏自己查询的易混单词;
(9)单词本界面,供用户对学习问题及生词进行标注;
(10)个人中心页面,供用户修改个人信息及头像;
在设计软件之前,我们首先要对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么,要得到什么结果,最后应输出什么。本文转载自http://www.biyezuopin.vip/onews.asp?id=15129使用电子词典软件的最大群体是学生,他们需要准确性很强的单词解释,而对操作界面没有太高的要求。因而,我们最重要的就是增强电子词典软件的准确性。我们使用有道API、百度API这样准确性很强的电子词典接口,在词典中加入四六级、雅思托福等实用性强的词库。软件设计的布局要清晰,功能不宜太复杂,只有这样才能使不参与本软件编写的人熟练的使用。
package me.hades.yqword;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import com.umeng.analytics.MobclickAgent;
import com.umeng.commonsdk.UMConfigure;
import me.hades.yqword.model.DaoMaster;
import me.hades.yqword.model.DaoSession;
import me.hades.yqword.preference.ApiPreference;
import me.hades.yqword.utils.CommonValues;
import me.hades.yqword.utils.Config;
import me.hades.yqword.utils.SPUtil;
import me.hades.yqword.utils.WordDatabase;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
/**
* Created by hades on 2018/6/2.
*/
public class App extends Application implements Application.ActivityLifecycleCallbacks{
private static final String TAG = App.class.getSimpleName();
public static Context globalContext = null;
public static ApiPreference apiPreference;
/**
* DEBUG 开关
*/
public static final Boolean DEBUG = true;
DaoMaster.DevOpenHelper helper;
SQLiteDatabase db;
DaoMaster daoMaster;
private DaoSession daoSession;
@Override
public void onCreate() {
super.onCreate();
if(globalContext == null) {
globalContext = getApplicationContext();
}
/**
* 初始化common库
* 参数1:上下文,不能为空
* 参数2:【友盟+】 AppKey
* 参数3:【友盟+】 Channel
* 参数4:设备类型,UMConfigure.DEVICE_TYPE_PHONE为手机、UMConfigure.DEVICE_TYPE_BOX为盒子,默认为手机
* 参数5:Push推送业务的secret
*/
UMConfigure.init(this, CommonValues.UMengAppkey,
"Umeng",UMConfigure.DEVICE_TYPE_PHONE,null);
/**
* 对数据库进行初始化
*/
boolean isFirstOpen = !SPUtil.contains(globalContext, CommonValues.FIRST_OPEN);
// isFirstOpen=false; //for init db , delete this later
if (isFirstOpen) {
globalContext.deleteDatabase(CommonValues.DATABASE_NAME);
new WordDatabase(globalContext).getWritableDatabase();
helper = new DaoMaster.DevOpenHelper(this, CommonValues.DATABASE_NAME, null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
SPUtil.putAndApply(globalContext, CommonValues.FIRST_OPEN, "no");
} else {
db = new WordDatabase(globalContext).getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
}
// 初始化配置工具
Config.setContext(globalContext);
//初始化Retrofit
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(CommonValues.SERVER_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
apiPreference = retrofit.create(ApiPreference.class);
}
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
if(DEBUG){
}
MobclickAgent.onResume(this);
}
@Override
public void onActivityPaused(Activity activity) {
MobclickAgent.onPause(this);
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
/**
* 返回数据库Session
* @return
*/
public DaoSession getDaoSession() {
return daoSession;
}
}
好家伙VCC: 喜欢博主的文章,我当时是一个小白,一步一步踩坑过来,我后面回顾学习路线,做了PID-控制-遥控-避障-跟随循迹的项目,大家可以一起学习交流一下:这是文章:https://blog.csdn.net/qq_46187594/article/details/138110155?spm=1001.2014.3001.5502
shejizuopin: 真实 文末加
昨日の青空: 请问这是真实的项目,还是毕业设计啊
shejizuopin: 在MFC(Microsoft Foundation Classes)应用程序中创建自定义对话框类是一个多步骤的过程。下面是一个简单的指导,帮助你在MFC应用程序中创建并使用一个自定义的对话框类。 ### 步骤 1: 创建对话框资源 首先,你需要设计一个对话框。这通常是在Visual Studio或其他支持MFC的IDE中完成的。 1. 打开你的MFC项目。 2. 在解决方案资源管理器中找到“资源视图”并展开它。 3. 右键点击“对话框”文件夹并选择“添加” -> “添加Windows对话框”,这将打开对话框设计器。 4. 设计你的对话框界面,并给它分配一个唯一的ID(如 IDD_MY_DIALOG )。 ### 步骤 2: 创建对话框类 接下来,为这个对话框创建一个类。 1. 在“Class View”窗口中右键点击你刚创建的对话框资源。 2. 选择“Add” -> “Class...”,然后选择“CDialogEx”作为基类来创建一个对话框类。 3. 给这个类命名,例如 `CMyDialog`。 ### 步骤 3: 实现对话框类 现在可以开始为你的对话框编写代码了。 1. 在生成的头文件(如 `CMyDialog.h`)中声明成员变量或函数。 2. 在对应的实现文件(如 `CMyDialog.cpp`)中添加代码来初始化控件、处理消息等。 ### 步骤 4: 显示对话框 最后,在适当的位置显示对话框。 1. 在需要的地方创建一个该对话框类的对象实例。 2. 调用成员函数 `DoModal()` 来以模式方式显示对话框,或者使用 `Create()` 和 `ShowWindow()` 来以非模式方式显示。 以下是一个简化的示例代码: ```cpp // CMyDialog.h class CMyDialog : public CDialogEx { // 声明控件变量 CButton m_btnOk; public: CMyDialog(CWnd* pParent = nullptr); // 标准构造函数 virtual ~CMyDialog(); protected: afx_msg void OnBnClickedOk(); // 按钮点击事件处理 DECLARE_MESSAGE_MAP() }; // CMyDialog.cpp BEGIN_MESSAGE_MAP(CMyDialog, CDialogEx) ON_BN_CLICKED(IDC_BTN_OK, &CMyDialog::OnBnClickedOk) END_MESSAGE_MAP() void CMyDialog::OnBnClickedOk() { // 处理按钮点击事件 } // 在某处显示对话框 void CMainFrame::OnFileSomething() { CMyDialog dlg; if (dlg.DoModal() == IDOK) { // 用户点击了确定按钮 } } ``` 以上就是创建和使用自定义对话框的基本步骤。当然,实际开发中可能需要根据具体需求进行更复杂的定制。
CSDN-Ada助手: 如何创建自定义对话框类并在 MFC 应用程序中使用?