密码保险箱的设计与实现嵌入式系统设计.docx

上传人:b****4 文档编号:24106608 上传时间:2023-05-24 格式:DOCX 页数:17 大小:1.01MB
下载 相关 举报
密码保险箱的设计与实现嵌入式系统设计.docx_第1页
第1页 / 共17页
密码保险箱的设计与实现嵌入式系统设计.docx_第2页
第2页 / 共17页
密码保险箱的设计与实现嵌入式系统设计.docx_第3页
第3页 / 共17页
密码保险箱的设计与实现嵌入式系统设计.docx_第4页
第4页 / 共17页
密码保险箱的设计与实现嵌入式系统设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

密码保险箱的设计与实现嵌入式系统设计.docx

《密码保险箱的设计与实现嵌入式系统设计.docx》由会员分享,可在线阅读,更多相关《密码保险箱的设计与实现嵌入式系统设计.docx(17页珍藏版)》请在冰豆网上搜索。

密码保险箱的设计与实现嵌入式系统设计.docx

密码保险箱的设计与实现嵌入式系统设计

 

河北经贸大学课程设计报告

——嵌入式程序设计

密码保险箱的设计与实现

 

专业名称:

软件工程

班级:

2010级01班

学号:

1326

学生姓名:

肖娇娇

指导教师:

赵彦霞

完成时刻:

2013年6月

摘要

密码保险箱可令人们没必要刻意去记住过量的密码,从而解决了容易忘记密码的问题。

该软件具有两大模块,即用户登录模块和密码记录治理模块。

其顶用户登录模块实现了两个功能:

用户登录和用户密码修改;密码记录治理模块要紧实现了对密码记录进行添加、删除、查询及预览的功能。

本论文针对该软件的设计与实现做出了详细讲解。

第一简要介绍了密码保险箱设计与实现的课题背景、研究的现状和研究的内容;接着依照软件工程的开发步骤重点介绍了密码保险箱设计与实现的进程:

包括系统分析、系统概要设计、系统详细设计与实现和系统测试;最后对本次课题设计做出总结。

关键字:

Android、Java、密码保险箱、设计、实现

 

 

密码保险箱的设计与实现

1绪论

1,1课题背景

现今社会,人们愈来愈注重个人隐私,因此,关于某些不希望让他人明白的东西,比如照片、日记、空间等都会设置密码;各类网站或论坛都会要求创建一个用户名和密码来访问网站的特定内容;各个银行卡和银行账户也都要设置一个密码。

可是,密码设置多了,常常会发生忘记密码的情形,带来诸多不便。

因此,开发一个适和公共的、兼容性好的电话密码保险箱是很有必要的。

依照开发要求,它要紧应用于智能电话,完成对密码的添加、删除和查询等操作,实现密码的大体治理功能。

1,2研究现状

随着我国经济的高速进展和人民生活水平的提高,基于android的智能电话在目前已经取得普遍的进展和应用,身受很多大学生和社会人士的喜爱。

同时作为它的附属产业,电话软件业这一项新型产业也取得了迅猛进展,作为高科技领军产业中的一员大将,移动软件行业以其多样化和多功能化吸引了愈来愈多关注的目光。

目前的电话软件在客户端的应用极为普遍,密码保险箱确实是其中之一。

此刻,愈来愈多的程序开发员基于各类各样的目的编写密码保险箱,使得各式各样密码保险箱层出不穷,也使得人们能够依照自己的实际情形选择自己喜爱的那一个。

1,3研究内容

通过对Android的学习和对密码保险箱的了解,我决定自己设计开发一个功能简单但利用的密码保险箱。

该密码保险箱会运用到嵌入式讲义中讲到的相应的知识,如layout等来实现用户对密码一些大体操作。

本软件是一个超级方便快捷的密码治理软件,用户能够为所欲为地添加密码、查询密码、预览密码,删除密码等等,方便了密码治理,提高了治理效率,而且具有必然的平安性。

2系统分析

可行性分析

该密码保险箱软件的可行性分析要紧从技术、经济、操作和法律和社会等方面来研究。

●技术可行性:

目前利用andriod系统和eclipse应用程序能够很容易的实现该软件。

●经济可行性:

该软件的开发本钱是很低的,可是却能够供多个用户同时利用,足见其经济效益。

●操作可行性:

该软件的操作方式能够在任何基于andriod的智能电话上实现。

●法律和社会可行性:

该软件开发进程中不仅没有涉及到各类合同、侵权、责任等与法律、法规吻合或抵触的问题。

 

需求分析

功能分析

本软件具有如下要紧功能:

 

●用户登录功能

●用户修改登录密码功能

●修改密码记录功能:

包括添加、删除功能

●查询密码记录功能

●预览密码记录功能

●查看开发人员信息功能

该系统的数据流图:

顶层:

如图2-1所示。

图2-1顶层数据流图

1层:

如图2-2所示。

图2-21层数据流图

数据分析

该系统有两个实体,即用户和密码记录。

用户的属性只有效户登录的密码,密码记录的属性有关键字、账号、密码、备注,而且用户治理密码记录,具体E-R图如图2-3所示。

 

图2-3E-R图

3系统概要设计

结构设计

该密码保险箱系统要紧有登录、修改登录密码、治理、查看开发人员信息和退出五部份组成,其中治理又分为密码记录查询、密码记录添加、密码记录预览和密码记录删除三部份,体系结构图如图3-1所示。

图3-1体系结构图

数据设计

本系统用到了eclipse应用程序中的数据库,其表结构如表3-1所示。

表3-1密码记录

字段名称

数据类型

能否为空

说明

ID

string

记录号

keyword

string

关键字

account

string

账号

password

string

密码

remind

string

备注

4系统详细设计与实现

登录模块

登录模块由两部份组成,即登录和密码修改。

其相应界面如图4-一、4-2所示。

图4-1登岸界面

图4-2密码修改界面

实现代码如下:

package;

importclassloginextendsActivity{

SharedPreferencesshared=null;

Editoreditor=null;

privateEditTextpassword=null;etTitle("请输入密码")

.setIcon.setView(DialogView)

.setPositiveButton("登岸",newDialogInterfaceOnClick2())

.setNeutralButton("修改",newDialogInterfaceOnClick3())

.setNegativeButton("退出",newDialogInterfaceOnClick6())

.create();etTitle("请修改密码")

.setView(dialogView)

.setPositiveButton("确信",newDialogInterfaceOnClick5()).setNegativeButton("取消",newDialogInterfaceOnClick4())

.create();oString();how();

Intentintent=newIntent();

;

finish();

}else{

"密码错误!

",.show();

temp();

}

}

}

classDialogInterfaceOnClick3implements{oString();oString();oString();how();

}elseif(!

(password01)){

"旧密码输入错误",.show();

temp();

}elseif(!

(three)){

"两次新密码输入不一致",.show();

temp();

}

}

}

}

密码治理模块

密码治理模块由四部份组成,即添加密码记录、查询密码记录、预览密码记录和查看开发人员信息。

主界面如图4-3所示。

图4-3主界面

添加密码记录

(1)界面

图4-4添加界面

(2)实现代码

package;

importclassadd_recordextendsActivity{

privateButtonadd_record_buttonadd,add_record_buttonback;

privateEditTextadd_record_edittext01,add_record_edittext02,add_record_edittext03,add_record_edittext04;

privateContextcontext;

privateintback=0;

@Override

publicvoidonCreate(BundlesavedInstanceState){

(savedInstanceState);

setContentViewadd_record_buttonadd=(Button)findViewByIdadd_record_buttonback=(Button)findViewByIdadd_record_edittext01=(EditText)findViewByIdadd_record_edittext02=(EditText)findViewByIdadd_record_edittext03=(EditText)findViewByIdadd_record_edittext04=(EditText)findViewByIdbasehelperBase=newbase,"");

(newOnClickListener(){

publicvoidonClick(Viewarg0){

AddData();

}

});

(newOnClickListener(){

publicvoidonClick(Viewv){

Intentintent=newIntent();,;

startActivity(intent);

}

});

}

publicvoidAddData(){

basebase01=newbase(),"");

Stringuser_keyword=().toString();

Stringuser_account=().toString();

Stringuser_password=().toString();

Stringuser_remind=().toString();

if("")||("")||("")){

(this,"inputbasicinfo!

",.show();

return;

}

(user_keyword,user_account,user_password,user_remind);

(this,"AddSuccessed!

",.show();

}

@Override

publicbooleanonKeyDown(intkeyCode,KeyEventevent){how();

break;

case2:

back=0;

oString());

;

(bundle);

startActivity(intent);

}

});

(newOnClickListener(){

publicvoidonClick(Viewarg0){

Intentintent=newIntent();

;

startActivity(intent);

}

});

}

@Override

publicbooleanonKeyDown(intkeyCode,KeyEventevent){how();

break;

case2:

back=0;etExtras().get("searchkey");

cursor=("information",newString[]{"ID","keyword","account","password","remind"},+"like?

",newString[]{"%"+bundle+"%"},null,null,"ID");how();

break;

case2:

back=0;

how();

break;

case2:

back=0;//初始化back值

关闭进程

break;

}

returntrue;//设置成false让back失效,true表示不失效

}

else{

return(keyCode,event);

}

}

}

数据库的实现

package;

importclassbaseextendsSQLiteOpenHelper{

staticfinalStringTABLENAME="information";

finalstaticStringTABLE_ID="ID";

finalstaticStringTABLE_KEYWORD="keyword";

finalstaticStringTABLE_ACCOUNT="account";

finalstaticStringTABLE_PASSWORD="password";

finalstaticStringTABLE_REMIND="remind";

ArrayListarrayList;

finalStringCREATETABLE="CREATETABLE"+TABLENAME+"("+TABLE_ID+"integerprimarykeyautoincrement,"+TABLE_KEYWORD+"char(40),"+TABLE_ACCOUNT+"char(20),"+TABLE_PASSWORD+"char(20),"+TABLE_REMIND+"vchar(50))";

staticfinalStringDBNAME="";

staticfinalintDBVERSION=1;

publicbase(Contextcontext,Stringver){

super(context,DBNAME,null,DBVERSION);

}

@Override

publicvoidonCreate(SQLiteDatabasedb){

(CREATETABLE);

("abc","created");

}

@Override

publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){

}

publicCursorselect(){

SQLiteDatabasedb=();

Cursorcursor=(TABLENAME,null,null,null,null,null,null);

returncursor;

}

publiclongadd(Stringkeyword,Stringaccount,Stringpassword,Stringremind){

SQLiteDatabasedb=();

ContentValuescontentValues=newContentValues();

(TABLE_KEYWORD,keyword);

(TABLE_ACCOUNT,account);

(TABLE_PASSWORD,password);

(TABLE_REMIND,remind);

return(TABLENAME,null,contentValues);

}

publicCursorsearch(Stringkeyword_for_search){

finalStringSEARCH="select*from"+TABLENAME+"(where"+TABLE_KEYWORD+"like%"+keyword_for_search+"%)";

SQLiteDatabasedatabase=();

Cursorcursor=(SEARCH,null);//这边写上你的查询语句

returncursor;

}

}

5系统测试

测试的概念及目的

测试是为了发觉程序中的错误而执行程序的进程,好的测试方案是极可能发觉迄今为止尚未发觉的错误的测试方案,成功的测试方案时发觉了至今为止尚未发觉的错误的测试。

系统功能测试

本文要紧从设计测试用例方面来对本系统进行测试。

测试用例1:

系统登录测试如下表所示:

表5-1登录测试用例

输入

输出

密码

123

正确---登录成功

1234

错误—密码错误

错误—密码错误

测试用例2:

修改登录密码测试如下表所示:

表5-2修改登录密码测试用例

输入

输出

旧密码

新密码

确定密码

123

111

111

正确—修改成功

111

111

错误—旧密码输入错误

1234

111

111

错误—旧密码输入错误

123

111

11

错误—两次新密码输入不一致

测试用例3:

添加密码记录测试如下表所示:

表5-3添加密码记录测试用例

输入

输出

关键字

账号

密码

备注

111

111

111

111

正确—添加成功

111

111

111

正确—添加成功

111

111

111

错误—添加失败

111

111

111

错误—添加失败

111

111

111

错误—添加失败

系统实施运行

通过相关测试证明该软件能够投入利用,因此能够将该软件装入电话实施运行。

运行结果说明,该软件功能大体实现了。

但仍需不断改良。

结论

本系统是一个基于andriod的简单的密码保险箱软件,功能比较单一,可是大体功能仍是实现了,能够登录该软件,修改登录密码并能够对密码记录进行添加,查询,预览和删除。

由于java程序对各变量的大小写要求比较严格,因此在程序调试时期花了很多时刻,而且程序的运行环境为,图形界面的输出要编写大量的代码实现。

另外,本软件尽管有数据库,可是只是借助于eclipse中的数据库,致使数据库设计不够精细,若是利用mysql或sqlserver等数据库,软件功能将会更壮大。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 城乡园林规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1