当前位置:   article > 正文

《工业 APP 设计与开发》 结课报告论文-自助背单词_工业app的参考文献

工业app的参考文献

在这里插入图片描述
一、背景及目的要求
1.1 背景介绍
随着现代通信技术的发展和人们对英语学习的日益重视,Android 自助背单词 APP 已
成为广大英语学习者的首选工具之一。这种 APP 可以帮助用户按照计划自主地学习单词,
提高用户的英语词汇量和听说读写能力。
该 APP 采用智能化学习算法,根据用户的历史学习记录和单词掌握情况个性化推荐单
词,让用户更高效地学习。此外,APP 还支持多种学习模式,如单词拼写、单选、多选等,
让用户在不同场景下巩固单词记忆。
除了学习功能外,该 APP 还提供了社交功能,用户可以与其他学习者交流、分享学习
心得和经验,提高学习动力和兴趣。
总之,Android 自助背单词 APP 是一款功能强大、易于使用、高效实用的英语学习工
具,深受英语学习者的喜爱和推崇。
1.2 目的及意义
Android 自助背单词 APP 的主要目的是帮助用户高效地学习英语单词,提高用户的英
语词汇量和听说读写能力。该 APP 采用智能化学习算法,根据用户的历史学习记录和单词
掌握情况个性化推荐单词,让用户更高效地学习。此外,APP 还支持多种学习模式,如单
词拼写、单选、多选等,让用户在不同场景下巩固单词记忆。
Android 自助背单词 APP 的意义在于,它可以帮助英语学习者更好地掌握英语单词,
提高英语能力。在当今全球化的背景下,掌握英语已经成为了许多人必备的技能之一,而
Android 自助背单词 APP 正是满足这一需求的优秀工具之一。同时,该 APP 还具有智能
化、高效实用、易于使用等特点,为用户提供了更加便捷、高效的学习方式,深受英语学
习者的喜爱和推崇。
6
7
二、设计思路
2.1 总体设计
1.首页取的 ID 会在登录后显示在右上方。
2.在主界面,点击“录入”、“背诵”、“个人中心”会显示不同的面板。
3. 在“录入”界面点击“录入”按钮会把单词录入到单词库中
4.录入时,如果单词以 ion、ment 等标志性名词结尾,录入时翻译前面会自动补充“n. ”。
翻译以“的”等结尾,录入后翻译前自动补充“adj. ”,以“地”结尾,自动补充“adv. ”。
5.在“背诵”界面点击“认识”会删除该单词,点击“不认识”会显示翻译,点击“下
一个”会显示下个单词。
6.在“个人中心”界面,为了更方便查看单词,点击单词库,显示库中所有单词。目
前新增单词库序号,以供清楚看到库中多少单词。
2.2 详细设计
1.控件及其作用
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三、设计实现及代码分析
3.1 首页
在这里插入图片描述
图 3-1 为首页,是为了给自己起一个专属的名字然后传值到第主页的右上放显示出来
你所起的名字
布局是相对布局 内含一个 Button 一个 EditText 还有一个 textview
主要代码
MainActivity(发送方)
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,
FristActivity.class);
Bundle bundle = new Bundle();
bundle.putString(“name”, editText.getText().toString());
intent.putExtras(bundle);
startActivity(intent);
FristActivity(接收方)
Bundle buddle = getIntent().getExtras();
name.setText(buddle.getString(“name”));
3.2 主页
在这里插入图片描述
图 3-2 是主页的页面,右上角接受到从首页传来的名字,下面三个 button 是为了点击切
换到相应的页面
布局 相对布局当中嵌套帧布局以及水平线性布局三个 textview 三个 button


//点击录入按钮
button_input.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{ getFragmentManager().beginTransaction().replace(R.id.first_fl,fragmentInput).
commitAllowingStateLoss();
}
12
});
//点击背诵按钮
button_recite.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{ getFragmentManager().beginTransaction().replace(R.id.first_fl,fragmentR
ecite).commitAllowingStateLoss();
}
});
//点击个人按钮
button_self.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{ getFragmentManager().beginTransaction().replace(R.id.first_fl,fragmentSelf)
.commitAllowingStateLoss();
}
});
// 默 认 录 入 界 面
getFragmentManager().beginTransaction().add(R.id.first_fl,fragmentInput).commi
tAllowingStateLoss();
}

3.3 录入页面
在这里插入图片描述
图 3-3 录入页面这个页面设计很简单线性布局下两个 Edittext 还有两个 TextView 一
个 button 其作用是将输入 TextView 中的单词和翻译点击录入之后将信息录入数据库表
tb_dict 并且如果单词以 ion、ment 等标志性名词结尾,录入时翻译前面会自动补充“n. ”。
翻译以“的”等结尾,录入后翻译前自动补充“adj. ”,以“地”结尾,自动补充“adv. ”。
主要代码首先这个类是要继承 Fragment,使这个页面放在到图 3-2 主页布局
@id/title"的位置
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle
savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_input,null);
dbOpenHelper = new DBOpenHelper(getActivity(),“tb_dict”,null,1);
return view;
}
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
editText_word = view.findViewById(R.id.input_et_words);
editText_translate = view.findViewById(R.id.input_et_translate);
button = view.findViewById(R.id.input_btn);
//点击录入按钮
13
14
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String word = editText_word.getText().toString();
String translate =
editText_translate.getText().toString();
if(word.endsWith(“ion”)){
translate = "n.
"+editText_translate.getText().toString();
}else if(word.endsWith(“ness”)){
translate = "n.
"+editText_translate.getText().toString();
}else if(word.endsWith(“ment”)){
translate = "n.
"+editText_translate.getText().toString();
}else if(word.endsWith(“ty”)){
translate = "n.
"+editText_translate.getText().toString();
}else if(word.endsWith(“acy”)){
translate = "n.
"+editText_translate.getText().toString();
}else if(word.endsWith(“ance”)){
translate=“n.”+editText_translate.getText().toString();
}elseif(word.endsWith(“ence”)){translate=“n.”+editText
_translate.getText().toString();
}else if(word.endsWith(“ice”)){
translate="n. "+editText_translate.getText().toString();
}else if(translate.endsWith(“的”)){
translate = “adj. “+editText_translate.getText().toString();
}else if (translate.endsWith(“地”)){
translate = “adv. “+editText_translate.getText().toString();
15
}else{
translate = editText_translate.getText().toString();
}
if (word.isEmpty() ||
editText_translate.getText().toString().isEmpty()){
ToastUtil.showMsg(getActivity(),“请输入数据”);
}else{
dbOpenHelper.writeData(dbOpenHelper.getReadableDatabase(),word,translate);
ToastUtil.showMsg(getActivity(),“录入成功”);
editText_translate.setText(””);
editText_word.setText(””);
editText_word.requestFocus();

3.4 个人中心
在这里插入图片描述
这个页面是为了介绍软件以及为了更方便查看单词,点击单词库,显示库中所有单词。
目前新增单词库序号,以供清楚看到库中多少单词。
布局线性布局下三个 textview 给予@+id/self_tv_words “@+id/self_tv_explain” 这两个 TextView 敲击事件进行页面交互
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
textView_wordsbase = view.findViewById(R.id.self_tv_words);
textView_explain = view.findViewById(R.id.self_tv_explain);
//点击单词库
textView_wordsbase.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(), WordsBase.class);
startActivity(intent);
//点击软件
textView_explain.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(), Explain.class);
startActivity(intent);
}

3.5 单词库
在这里插入图片描述
单词库的设计非常的简单只有一个 ListView 用来接收到数据库中所存储的单词和他
的翻译
DBOpenHelper dbOpenHelper;
ListView listView;
List<Map<String,Object>> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_words_base);
16
17
dbOpenHelper = new DBOpenHelper(WordsBase.this,“tb_dict”,null,1);
ArrayList words = getWords();
listView = (ListView) findViewById(R.id.list);
list = new ArrayList<Map<String, Object>>();
for (int i = 0;i < words.size() ;i++) {
Map<String, Object> map = new HashMap<>();
map.put(“id”,words.get(i).id+“.”);
map.put(“word”, words.get(i).word);
map.put(“translate”, words.get(i).translate);
list.add(map);
} SimpleAdapter simpleAdapter = new
SimpleAdapter(WordsBase.this,list, R.layout.list_item,
NewString[]{“id”,“word”,“translate”},newint[]{R.id.id,R.id.word,R.id.trans
late});
listView.setAdapter(simpleAdapter);}
@SuppressLint(“Range”)
private ArrayList getWords(){
ArrayList words = new ArrayList<>();
Cursorcursor=dbOpenHelper.getReadableDatabase().query(“tb_dict”,null,null,
null,null,null,null);
int i = 1;
while(cursor.moveToNext()){
Word word = new Word();
//利用 getColumnIndex:String 来获取列的下标,再根据下标获取
cursor 的值
word.id = i;
word.word = cursor.getString(cursor.getColumnIndex(“word”));
word.translate =
cursor.getString(cursor.getColumnIndex(“translate”));
words.add(word);
i++;
}
return words;
}

3.6 软件说明
在这里插入图片描述
图 3-6 软件说明采用的线性布局 也含有 ScrollView 属性(滚动条)
其内容是 TextView 中的 text 所编辑的内容因此只拿出一个作为例子其他皆与此相同
操作

<TextView
android:layout_width=“match_parent”
android:layout_height=“80dp”
android:text="1.首页取的 ID 会在登录后显示在右上方。
android:textSize=“20sp”
18
19
android:textStyle=“bold”/>

3.7 背诵页面
在这里插入图片描述
图 3-7 背诵页面其功能是显示单词(翻译一开始是不显示的))然后通过点击下方的三
个按钮(认识,不认识,下一个来背单词)认识则删除数据库中的单词,不认识则会显示出来
其含义,下一个则是跳到下一个单词与,背诵完之后会弹出一个 toast 说你背完了
布局线性布局下两个 textview @+id/recite_tv_word" +id/recite_tv_translate" 三 个 button @+id/recite_btn_renshi @+id/recite_btn_burenshi
@+id/recite_btn_next
DBOpenHelper dbOpenHelper;
TextView tv_word,tv_translate;
Button button_renshi,button_burenshi,button_next;
ArrayList words;
int i = 0; //背诵数量
20
int a = 1; //删除数量
//创建一个视图
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
dbOpenHelper = new DBOpenHelper(getActivity(),“tb_dict”,null,1);
View view = inflater.inflate(R.layout.fragment_recite,null);
return view;
}
//创建时显示先看数据库中有没有数据
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
words = getWords();
String word = null;
try {
word = words.get(i).word;
}
catch (Exception e){
ToastUtil.showMsg(getActivity(),“单词库中没有数据”);
}
tv_word = view.findViewById(R.id.recite_tv_word);
tv_translate = view.findViewById(R.id.recite_tv_translate);
button_renshi = view.findViewById(R.id.recite_btn_renshi);
button_burenshi = view.findViewById(R.id.recite_btn_burenshi);
button_next = view.findViewById(R.id.recite_btn_next);
setListener();
tv_word.setText(word);
}
private void setListener()
{
button_next.setOnClickListener(this);
21
button_burenshi.setOnClickListener(this);
button_renshi.setOnClickListener(this);
}
@SuppressLint(“Range”)
private ArrayList getWords(){
ArrayList words = new ArrayList<>();
Cursor cursor =
dbOpenHelper.getReadableDatabase().query(“tb_dict”,null,null,null,null,null,nu
ll);
while(cursor.moveToNext()){
Word word = new Word();
//利用 getColumnIndex:String 来获取列的下标,再根据下标获取
cursor 的值
word.word = cursor.getString(cursor.getColumnIndex(“word”));
word.translate =
cursor.getString(cursor.getColumnIndex(“translate”));
words.add(word);
}
return words;
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.recite_btn_renshi: { //点击认识,删除单词,跳入下一
个单词
if (words.size() == 0)//如果单词库为空
{
ToastUtil.showMsg(getActivity(), “已全部背完啦!”);
} else if (words.size() == i+1) { //如果单词到最后一个
words.remove(i);
ToastUtil.showMsg(getActivity(), “已全部背完啦!”);
tv_translate.setText(“”);
22
tv_word.setText(“”);
} else if(words.size() == i) { //删掉最后一个后的 i 处理
ToastUtil.showMsg(getActivity(), “已全部背完啦!”);
}else{ //如果单词不是最后一个
words.remove(i);
ToastUtil.showMsg(getActivity(), “删除成功”);
i++;
i = i - a;
tv_word.setText(words.get(i).word);
tv_translate.setText(“”);
}
dbOpenHelper.onUpgrade(dbOpenHelper.getReadableDatabase(),
0, 0); //更新数据库
for (Word word : words) {
dbOpenHelper.writeData(dbOpenHelper.getReadableDatabase(), word.word,
word.translate);
}
break;
}
case R.id.recite_btn_burenshi:{ //点击不认识,显示翻译
if(words.size()==0){
ToastUtil.showMsg(getActivity(), “已全部背完啦!”);
}else{
tv_translate.setText(words.get(i).translate);
}
break;
}
case R.id.recite_btn_next:{ //点击下一个,显示下一个单词
if (i >= words.size()-1) //如果是最后一个
{
ToastUtil.showMsg(getActivity(),“已全部背完啦!”);
//这里跳出一个 toast
23
}else{
i++;
tv_word.setText(words.get(i).word);
tv_translate.setText(“”);
}
break;

3.8 DBOpenHelper 数据库帮助类
数据库帮助类 DBOpenHelper 方便单词的添加
ublic class DBOpenHelper extends SQLiteOpenHelper {
final String Create_Table_SQL=“create table tb_dict (_id integer primary
key autoincrement,word,translate)”;
public DBOpenHelper(Context context, String name,
SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, null, version);
}
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL(Create_Table_SQL);
}
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
sqLiteDatabase.execSQL(“delete from tb_dict”);
sqLiteDatabase.execSQL(“update sqlite_sequence SET seq = 0 where name
=‘tb_dict’”);
}
//单词的添加方法
public void writeData(SQLiteDatabase sqLiteDatabase,String word,String
translate){
ContentValues values = new ContentValues();
values.put(“word”,word);
values.put(“translate”,translate);
sqLiteDatabase.insert(“tb_dict”,null,values);//保存功能
}

四、程序功能测试及截图
4.1 程序代码测试
在这里插入图片描述
4.2 功能演示(界面)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
五、总结与收获
这个程序设计,使用了很多方法总结如下
1.Fragment 的切换这里体现在录入,背诵,个人中心三个页面都是将 first 中的正中间
位置进行切换从而形成的录入页面,个人中心页面,背诵页面
2.Activity 的跳转
3.bundle 传输数据 首页和主页的传输的名字
4.SQLite 数据存储 对单词和单词翻译的存储
通过开发 Android 自助背单词 APP,我收获了很多的实践经验和技能提升。首先,我
深入了解了 Android 应用程序的开发过程,包括界面设计、数据存储和处理等方面的知识。
其次,我学会了如何使用一些常用的开发工具和框架,如 Kotlin 语言、Firebase 数据库
和 AI 语音合成技术等。最后,我也提高了自己的团队协作和沟通能力,因为在开发过程
中,我需要与团队成员密切合作,及时沟通并解决问题,以确保项目顺利完成。
总之,通过这个项目,我不仅学到了很多新的知识和技能,还提高了自己的实践能力
和团队协作能力。我相信这些经验和收获将对我的未来职业发展产生积极的影响。
六、参考文献
[1]安辉 ,Android APP 开发从入门到精通,清华大学出版社
[2]陈昊鹏,《计算机与数码技术》杂志,2018 年第 4 期。
[3]张志华,发表于《计算机与数码技术》杂志,2017 年第 6 期。
[4]林文祥,发表于《计算机与数码技术》杂志,2016 年第 4 期。
[5]王治国,发表于《计算机与数码技术》杂志,2015 年第 6 期。
[6]朱敏,发表于《计算机与数码技术》杂志,2017 年第 1 期

-------仅供学习参考,切勿直接搬运

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/596988
推荐阅读
相关标签
  

闽ICP备14008679号