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

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

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

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

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

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

 

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

——嵌入式程序设计

密码保险箱的设计与实现

 

摘要

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

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

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

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

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

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

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

关键字:

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.content.Intent;

importandroid.database.sqlite.SQLiteDatabase;

importandroid.database.sqlite

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

当前位置:首页 > 高等教育 > 研究生入学考试

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

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