密码保险箱的设计与实现嵌入式系统设计 精品.docx
- 文档编号:7517538
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:31
- 大小:1.01MB
密码保险箱的设计与实现嵌入式系统设计 精品.docx
《密码保险箱的设计与实现嵌入式系统设计 精品.docx》由会员分享,可在线阅读,更多相关《密码保险箱的设计与实现嵌入式系统设计 精品.docx(31页珍藏版)》请在冰豆网上搜索。
密码保险箱的设计与实现嵌入式系统设计精品
河北经贸大学课程设计报告
——嵌入式程序设计
密码保险箱的设计与实现
专业名称:
软件工程
班级:
2010级01班
学号:
201007111326
学生姓名:
肖娇娇
指导老师:
赵彦霞
完成时间:
2013年6月
摘要
密码保险箱可使人们不必刻意去记住过多的密码,从而解决了容易忘记密码的问题。
该软件具有两大模块,即用户登录模块和密码记录管理模块。
其中用户登录模块实现了两个功能:
用户登录和用户密码修改;密码记录管理模块主要实现了对密码记录进行添加、删除、查询及预览的功能。
本论文针对该软件的设计与实现做出了详细解说。
首先简要介绍了密码保险箱设计与实现的课题背景、研究的现状和研究的内容;接着按照软件工程的开发步骤重点介绍了密码保险箱设计与实现的过程:
包括系统分析、系统概要设计、系统详细设计与实现以及系统测试;最后对本次课题设计做出总结。
关键字:
Android、Java、密码保险箱、设计、实现
密码保险箱的设计与实现
1绪论
1,1课题背景
当今社会,人们越来越注重个人隐私,因此,对于某些不希望让别人知道的东西,比如照片、日记、空间等都会设置密码;各种网站或者论坛都会要求创建一个用户名和密码来访问网站的特定内容;各个银行卡和银行账户也都要设置一个密码。
但是,密码设置多了,经常会发生忘记密码的情况,带来诸多不便。
因此,开发一个适和大众的、兼容性好的手机密码保险箱是很有必要的。
根据开发要求,它主要应用于智能手机,完成对密码的添加、删除和查询等操作,实现密码的基本管理功能。
1,2研究现状
随着我国经济的高速发展和人民生活水平的提高,基于android的智能手机在目前已经得到广泛的发展和应用,身受很多大学生和社会人士的喜爱。
同时作为它的附属产业,手机软件业这一项新型产业也得到了迅猛发展,作为高科技领军产业中的一员大将,移动软件行业以其多样化和多功能化吸引了越来越多关注的目光。
目前的手机软件在客户端的应用极为广泛,密码保险箱就是其中之一。
现在,越来越多的程序开发员基于各种各样的目的编写密码保险箱,使得各式各样密码保险箱层出不穷,也使得人们可以根据自己的实际情况选择自己喜欢的那一个。
1,3研究内容
通过对Android的学习和对密码保险箱的了解,我决定自己设计开发一个功能简单但使用的密码保险箱。
该密码保险箱会运用到嵌入式课本中讲到的相应的知识,如layout等来实现用户对密码一些基本操作。
本软件是一个非常方便快捷的密码管理软件,用户可以随心所欲地添加密码、查询密码、预览密码,删除密码等等,方便了密码管理,提高了管理效率,并且具有一定的安全性。
2系统分析
2.1可行性分析
该密码保险箱软件的可行性分析主要从技术、经济、操作以及法律和社会等方面来研究。
●技术可行性:
目前使用andriod系统和eclipse应用程序可以很容易的实现该软件。
●经济可行性:
该软件的开发成本是很低的,但是却可以供多个用户同时使用,足见其经济效益。
●操作可行性:
该软件的操作方式可以在任何基于andriod的智能手机上实现。
●法律和社会可行性:
该软件开发过程中不仅没有涉及到各种合同、侵权、责任等与法律、法规吻合或抵触的问题。
2.2需求分析
2.2.1功能分析
本软件具有如下主要功能:
●用户登录功能
●用户修改登录密码功能
●修改密码记录功能:
包括添加、删除功能
●查询密码记录功能
●预览密码记录功能
●查看开发人员信息功能
该系统的数据流图:
顶层:
如图2-1所示。
图2-1顶层数据流图
1层:
如图2-2所示。
图2-21层数据流图
2.2.2数据分析
该系统有两个实体,即用户和密码记录。
用户的属性只有用户登录的密码,密码记录的属性有关键字、账号、密码、备注,并且用户管理密码记录,具体E-R图如图2-3所示。
图2-3E-R图
3系统概要设计
3.1结构设计
该密码保险箱系统主要有登录、修改登录密码、管理、查看开发人员信息和退出五部分组成,其中管理又分为密码记录查询、密码记录添加、密码记录预览和密码记录删除三部分,体系结构图如图3-1所示。
图3-1体系结构图
3.2数据设计
本系统用到了eclipse应用程序中的数据库,其表结构如表3-1所示。
表3-1密码记录
字段名称
数据类型
能否为空
说明
ID
string
否
记录号
keyword
string
否
关键字
account
string
否
账号
password
string
否
密码
remind
string
是
备注
4系统详细设计与实现
4.1登录模块
登录模块由两部分构成,即登录和密码修改。
其相应界面如图4-1、4-2所示。
图4-1登陆界面
图4-2密码修改界面
实现代码如下:
packagecn.riskycheng;
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.content.DialogInterface;
importandroid.content.Intent;
importandroid.content.SharedPreferences;
importandroid.content.SharedPreferences.Editor;
importandroid.os.Bundle;
importandroid.view.LayoutInflater;
importandroid.view.View;
importandroid.widget.EditText;
importandroid.widget.Toast;
publicclassloginextendsActivity{
SharedPreferencesshared=null;
Editoreditor=null;
privateEditTextpassword=null;//登陆密码
privateEditTexttwoedit=null;//旧密码
privateEditTextthreeedit=null;//新密码
privateEditTextfouredit=null;//确认新密码
Stringpassword01;//默认密码
ViewDialogView=null;
ViewdialogView=null;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.hint);
shared=getSharedPreferences("passwordshared",Activity.MODE_PRIVATE);
temp();
}
publicvoidtemp(){//登陆页面
editor=shared.edit();//打开指定shared文件,如果不存在则创建他
password01=shared.getString("password","admin");
LayoutInflaterfactory=LayoutInflater.from(this);//得到自定义对话框
DialogView=factory.inflate(R.layout.login,null);
password=(EditText)DialogView.findViewById(R.id.password);
AlertDialogdlg=newAlertDialog.Builder(this)
.setTitle("请输入密码")
.setIcon(R.drawable.dl_icon)
.setView(DialogView)
.setPositiveButton("登陆",newDialogInterfaceOnClick2())
.setNeutralButton("修改",newDialogInterfaceOnClick3())
.setNegativeButton("退出",newDialogInterfaceOnClick6())
.create();//设置取消按钮并创建
dlg.show();//显示
}
publicvoidalter(){//修改页面
LayoutInflaterfactory=LayoutInflater.from(login.this);//得到自定义对话框
dialogView=factory.inflate(R.layout.login_changepwd,null);
AlertDialogdlg=newAlertDialog.Builder(login.this)
.setTitle("请修改密码")
.setView(dialogView)
.setPositiveButton("确定",newDialogInterfaceOnClick5()).setNegativeButton("取消",newDialogInterfaceOnClick4())
.create();//设置取消按钮并创建
dlg.show();//显示
}
classDialogInterfaceOnClick2implementsDialogInterface.OnClickListener{//登陆
publicvoidonClick(DialogInterfacedialog,intwhichButton){
Stringpass=password.getText().toString();//拿到用户输入的值
if(pass.equals(password01)){
Toast.makeText(login.this,"登陆成功",Toast.LENGTH_SHORT).show();
Intentintent=newIntent();
intent.setClass(login.this,AndroidcaseActivity.class);
login.this.startActivity(intent);
finish();
}else{
Toast.makeText(login.this,"密码错误!
",Toast.LENGTH_SHORT).show();
temp();
}
}
}
classDialogInterfaceOnClick3implementsDialogInterface.OnClickListener{//修改
publicvoidonClick(DialogInterfacedialog,intwhicButton){
alter();
twoedit=(EditText)dialogView.findViewById(R.id.twoedit);
threeedit=(EditText)dialogView.findViewById(R.id.threeedit);
fouredit=(EditText)dialogView.findViewById(R.id.fouredit);
}
}
classDialogInterfaceOnClick4implementsDialogInterface.OnClickListener{//取消
publicvoidonClick(DialogInterfacedialog,intwhichButton){
temp();
}
}
classDialogInterfaceOnClick6implementsDialogInterface.OnClickListener{//退出
publicvoidonClick(DialogInterfacedialog,intwhichButton){
login.this.finish();//点击退出按钮之后调用finish方法结束应用程序
}
}
classDialogInterfaceOnClick5implementsDialogInterface.OnClickListener{//修改密码确定
publicvoidonClick(DialogInterfacedialog,intwhichButton){
Stringtwo=twoedit.getText().toString();//旧密码
Stringthree=threeedit.getText().toString();//新密码
Stringfour=fouredit.getText().toString();//确认新密码
if(two.equals(password01)&&four.equals(three)){
//editor=shared.edit();//打开指定shared文件,如果不存在则创建他
editor.putString("password",three);
mit();//提交
temp();
Toast.makeText(login.this,"修改成功",Toast.LENGTH_SHORT).show();
}elseif(!
two.equals(password01)){
Toast.makeText(login.this,"旧密码输入错误",Toast.LENGTH_SHORT).show();
temp();
}elseif(!
four.equals(three)){
Toast.makeText(login.this,"两次新密码输入不一致",Toast.LENGTH_SHORT).show();
temp();
}
}
}
}
4.2密码管理模块
密码管理模块由四部分构成,即添加密码记录、查询密码记录、预览密码记录和查看开发人员信息。
主界面如图4-3所示。
图4-3主界面
4.2.1添加密码记录
(1)界面
图4-4添加界面
(2)实现代码
packagecn.riskycheng;
importjavax.security.auth.PrivateCredentialPermission;
importandroid.R.string;
importandroid.app.Activity;
importandroid.content.ContentValues;
importandroid.content.Context;
importandroid.content.Intent;
importandroid.database.Cursor;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.database.sqlite.SQLiteDatabase.CursorFactory;
importandroid.database.sqlite.SQLiteOpenHelper;
importandroid.os.Bundle;
importandroid.view.KeyEvent;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.ListAdapter;
importandroid.widget.SimpleCursorAdapter;
importandroid.widget.TextView;
importandroid.widget.Toast;
importcn.riskycheng.base;
publicclassadd_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){
super.onCreate(savedInstanceState);
setContentView(R.layout.add_record);
add_record_buttonadd=(Button)findViewById(R.id.add_record_add);
add_record_buttonback=(Button)findViewById(R.id.add_record_back);
add_record_edittext01=(EditText)findViewById(R.id.add_record_edittext01);
add_record_edittext02=(EditText)findViewById(R.id.add_record_edittext02);
add_record_edittext03=(EditText)findViewById(R.id.add_record_edittext03);
add_record_edittext04=(EditText)findViewById(R.id.add_record_edittext04);
basehelperBase=newbase(add_record.this,"information.db");
add_record_buttonadd.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewarg0){
AddData();
}
});
add_record_buttonback.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
Intentintent=newIntent();intent.setClass(add_record.this,AndroidcaseActivity.class);
startActivity(intent);
add_record.this.finish();
}
});
}
publicvoidAddData(){
basebase01=newbase(this.getBaseContext(),"information.db");
Stringuser_keyword=add_record_edittext01.getText().toString();
Stringuser_account=add_record_edittext02.getText().toString();
Stringuser_password=add_record_edittext03.getText().toString();
Stringuser_remind=add_record_edittext04.getText().toString();
if(user_keyword.equals("")||user_account.equals("")||user_password.equals("")){
Toast.makeText(this,"inputbasicinfo!
",Toast.LENGTH_SHORT).show();
return;
}
base01.add(user_keyword,user_account,user_password,user_remind);
Toast.makeText(this,"AddSuccessed!
",Toast.LENGTH_SHORT).show();
}
@Override
publicbooleanonKeyDown(intkeyCode,KeyEventevent){//back退出
if(keyCode==KeyEvent.KEYCODE_BACK){
back++;
switch(back){
case1:
Toast.makeText(add_record.this,"再按一次退出程序",Toast.LENGTH_LONG).show();
break;
case2:
back=0;//初始化back值
add_record.this.finish();
android.os.Process.killProcess(android.os.Process.myPid());break;
}
returntrue;//设置成false让back失效,true表示不失效
}
else{
returnsuper.onKeyDown(keyCode,event);
}
}
}
packagecn.riskycheng;
importcn.riskycheng.AndroidcaseActivity;
importcn.riskycheng.R;
importandroid.R.integer;
importandroid.app.Activity;
importandroid.content.Context;
importandroid.conten
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码保险箱的设计与实现嵌入式系统设计 精品 密码 保险箱 设计 实现 嵌入式 系统