个人理财小助手智能终端系统及其应用开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
智能终端系统及应用开发
课程设计报告
题目:________________________
学号:______________
班级:______________
姓名:______________
指导老师:_______________
一、目的与要求
1. 掌握SQLite 数据库及其使用。
2. 熟练掌握布局及常用控件Button、ListView、EditText、TextView 等。
3. 使用SQLite 数据库实现增加、删除、修改;
4. 使用ListView 进行显示;
5. 增加私密性,验证成功才能进行收支管理。
二、APP结构设计
个人理财小助手主要为用户提供5 个主要模块,包括:登录模块、收入管理模块、支出管理模块、便签管理模块、系统设置模块。对日常的开支进行随时记录,存储到本机的SQLite数据库。
三、数据库设计
本系统是一个理财的管理系统,主要包括收入、支出的管理,所以设计数
据库表的时候,设计了密码表、收入表、支出表、便签信息表用来存储对应的信息。
密码信息表:用于用户登录时进行密码核对。
支出信息表:用于记录支出信息,主要属性包括:id(编号),money(金额),time(支出时间),type(支出类别),address(支出地点),mark(备注)
金额),time(收入时间),type(收入类别),hanlder(付款方),mark (备注)。
便签信息表:用于所有提醒便签信息:主要属性有,id(编号),Flag(便签信息)
四、编码规划和代码的文件组成
系统架构图
在com.example.licai1.DAO 中存放DAO 公告类,负责一切对数据库的操作,包括
对数据的增加,修改,删除,保存等,其中DBOpenHelper 负责创建数据库和数
据库表。
在com.example.licai1.model 中存放数据模型公告类,对应着数据库中不同的数据
库表,负责访问数据库的DAO 类和程序中各模块,组件的使用。对数据库表中
字段封装,主要用来存储数据。
五、分模块详细设计与实现
1:用户登录界面:用于验证用户是否合法,首次登录不需要密码,在系统设置中设置密码后,登录需输入密码。用于保护用户隐私。若密码错误,则显示“请输入正确密码”
btnlogin.setOnClickListener(new OnClickListener() {// 为登录按钮设置监听事件
@SuppressLint("NewApi")
@Override
public void onClick(View arg0) {
Intent intent = new Intent(Login.this, MainActivity.class);// 创建Intent对象
PwdDAO pwdDAO = new PwdDAO(Login.this);// 创建PwdDAO对象
// 判断是否有密码及是否输入了密码
if ((pwdDAO.getCount() == 0 || pwdDAO.find().getPassword().isEmpty()) &&
txtlogin.getText().toString().isEmpty()) {
startActivity(intent);// 启动主Activity
} else {
// 判断输入的密码是否与数据库中的密码一致
if (pwdDAO.find().getPassword().equals(txtlogin.getText().toString())) {
startActivity(intent);// 启动主Activity
} else {
// 弹出信息提示
Toast.makeText(Login.this, "请输入正确的密码!", Toast.LENGTH_SHORT).show();
txtlogin.setText("");// 清空密码文本框
}
}
}
});
2:主界面:用户登入后进入主界面,主界面包括软件的所有功能图标:新增收入,新增支出,我的收入,我的支出,收支便签,数据管理,系统设置及退
出。用户可根据需求选择对应图标。
数据传输:在于各个功能模块交互时,使用Intent传输用户的id以便保存、读取相关的用户信息。
跳转部分代码:
public void onItemClick(AdapterView> arg0, View arg1, int arg2, long arg3) {
Intent intent = null;// 创建Intent对象
switch (arg2) {//界面跳转
case 0:
intent = new Intent(MainActivity.this, AddOutaccount.class);// 使用AddOutaccount 窗口初始化Intent
startActivity(intent);// 打开AddOutaccount
break;
case 1:
intent = new Intent(MainActivity.this, Addinaccount.class);// 使用AddInaccount窗口初始化Intent
startActivity(intent);// 打开AddInaccount
break;
case 2:
intent = new Intent(MainActivity.this, Outaccountinfo.class);// 使用Outaccountinfo 窗口初始化Intent
startActivity(intent);// 打开Outaccountinfo
break;
case 3:
intent = new Intent(MainActivity.this, Inaccountinfo.class);// 使用Inaccountinfo 窗口初始化Intent
startActivity(intent);// 打开Inaccountinfo
break;
case 4: