




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能终端系统及应用开发课程设计报告题目:_学号:_班级:_姓名:_指导老师:_1、 目的与要求 1. 掌握 SQLite 数据库及其使用。 2. 熟练掌握布局及常用控件 Button、 ListView、 EditText、 TextView 等。 3. 使用 SQLite 数据库实现增加、删除、修改;4. 使用 ListView 进行显示;5. 增加私密性,验证成功才能进行收支管理。二、APP结构设计个人理财小助手主要为用户提供 5 个主要模块,包括:登录模块、收入管理模块、支出管理模块、便签管理模块、系统设置模块。对日常的开支进行随时记录,存储到本机的 SQLite数据库。三、数据库设计本系统是一个理财的管理系统,主要包括收入、支出的管理,所以设计数据库表的时候,设计了密码表、收入表、支出表、便签信息表用来存储对应的信息。密码信息表:用于用户登录时进行密码核对。表1:密码信息表字段名数据类型是否主键描述PasswordVarchar(20)否用户密码支出信息表:用于记录支出信息,主要属性包括:id(编号),money(金额),time(支出时间),type(支出类别),address(支出地点),mark(备注)表2:支出信息表字段名数据类型是否主键描述idinteger是编号moneydecimal否支出金额timeVarchar(10)否支出时间typeVarchar(10)否支出类别addressVarchar(100)否支出地点markVarchar(200)否备注收入信息表:用于记录收入信息,主要属性包括:id(编号),money(收入金额),time(收入时间),type(收入类别),hanlder(付款方),mark(备注)。表3:收入信息表字段名数据类型是否主键描述idinteger是编号moneydecimal否收入金额timeVarchar(10)否收入时间typeVarchar(10)否收入类别handlerVarchar(100)否付款方markVarchar(200)否备注便签信息表:用于所有提醒便签信息:主要属性有,id(编号),Flag(便签信息)表4:便签信息表字段名数据类型是否主键描述idinteger是编号FlagVarchar(20)否便签内容四、编码规划和代码的文件组成系统架构图在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: intent = new Intent(MainActivity.this, Showinfo.class);/ 使用Showinfo窗口初始化Intent startActivity(intent);/ 打开Showinfo break; case 5: intent = new Intent(MainActivity.this, Sysset.class);/ 使用Sysset窗口初始化Intent startActivity(intent);/ 打开Sysset break; case 6: intent = new Intent(MainActivity.this, Accountflag.class);/ 使用Accountflag窗口初始化Intent startActivity(intent);/ 打开Accountflag break; case 7: finish();/ 关闭当前Activity 3:新增支出界面:此界面的功能是添加用户支出的信息,用户可添加的信息包括金额、时间、类别、地点、备注。其中时间可以读取系统当前时间,更加方便。类别提供购物、正餐、零食水果、药效、外卖、打的、其他一些选项。这一界面总体使用LinearLayout布局,时间,金额等及其输入框使用RelativeLayout布局。类别对应的下拉框使用Spinner。 保存按钮对应代码:若金额不为空,点击保存按钮则保存数据,显示“【新增支出】数据添加成功”,若金额为空,则提示:“请输入支出金额”。btnSaveButton.setOnClickListener(new OnClickListener()Overridepublic void onClick(View arg0)String strMoney=txtMoney.getText().toString();if(!strMoney.isEmpty()/判断金额不为空/创建OutaccountDAO对象OutaccountDAO outaccountDAO=new OutaccountDAO(AddOutaccount.this);Tb_outaccount tb_outaccount=new Tb_outaccount(outaccountDAO.getMaxId() +1,Double.parseDouble(strMoney),txtTime.getText().toString(),spType.getSelectedItem().toString(),txtAddress.getText().toString(),txtMark.getText().toString(); outaccountDAO.add(tb_outaccount); Toast.makeText(AddOutaccount.this,新增支出数据添加成功!,Toast.LENGTH_SHORT).show(); finish(); elseToast.makeText(AddOutaccount.this,请输入支出金额!,Toast.LENGTH_SHORT).show(););取消按钮对应代码:讲数据全部重置为零后退出。btnCancelButton.setOnClickListener(new OnClickListener()Overridepublic void onClick(View arg0)txtMoney.setText();/设置金额文本框为空txtMoney.setHint(0.00);/为金额文本框设置提示txtTime.setText();/设置时间文本框为空txtMoney.setHint(2011_01_01);txtAddress.setText();txtMark.setText();spType.setSelection(0); finish(););4:新增收入界面:此界面的功能是添加用户收入的信息,用户可添加的信息包括金额、时间、类别、付款方、备注。其中时间可以读取系统当前时间。类别提供工资、兼职、奖金、礼金、销售款、报销款等一些选项。这一界面总体使用LinearLayout布局,时间,金额等及其输入框使用RelativeLayout布局。类别对应的下拉框使用Spinner。与新增支出界别类同 5:我的支出界面:用于用户查询支出信息,在新增支出界面添加信息后,在此界面就可以进行显示,同时也可点击进入进行修改删除操作。这一界面主要是使用ListView控件。protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.outaccountinfo);/ 设置布局文件 lvinfo = (ListView) findViewById(R.id.lvoutaccountinfo);/ 获取布局文件中的ListView组件 ShowInfo(R.id.lvoutaccountinfo);/ 调用自定义方法显示支出信息 lvinfo.setOnItemClickListener(new OnItemClickListener()/ 为ListView添加项单击事件 / 覆写onItemClick方法 Override public void onItemClick(AdapterView parent, View view, int position, long id) String strInfo = String.valueOf(TextView) view).getText();/ 记录支出信息 String strid = strInfo.substring(0, strInfo.indexOf(|);/ 从支出信息中截取支出编号 Intent intent = new Intent(Outaccountinfo.this, InfoManage.class);/ 创建Intent对象 intent.putExtra(FLAG, new String strid, strType );/ 设置传递数据 startActivity(intent);/ 执行Intent操作 ); private void ShowInfo(int intType) / 用来根据传入的管理类型,显示相应的信息 String strInfos = null;/ 定义字符串数组,用来存储支出信息 ArrayAdapter arrayAdapter = null;/ 创建ArrayAdapter对象 strType = btnoutinfo;/ 为strType变量赋值 OutaccountDAO outaccountinfo = new OutaccountDAO(Outaccountinfo.this);/ 创建OutaccountDAO对象 / 获取所有支出信息,并存储到List泛型集合中 List listoutinfos = outaccountinfo.getScrollData(0, (int) outaccountinfo.getCount(); strInfos = new Stringlistoutinfos.size();/ 设置字符串数组的长度 int i = 0;/ 定义一个开始标识 for (Tb_outaccount tb_outaccount : listoutinfos) / 遍历List泛型集合 / 将支出相关信息组合成一个字符串,存储到字符串数组的相应位置 strInfosi = tb_outaccount.getid() + | + tb_outaccount.getType() + + String.valueOf(tb_outaccount.getMoney() + 元 + tb_outaccount.getTime(); i+;/ 标识加1 / 使用字符串数组初始化ArrayAdapter对象 arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, strInfos); lvinfo.setAdapter(arrayAdapter);/ 为ListView列表设置数据源6:我的收入界面:用于用户查询支出信息,在新增收入界面添加信息后,在此界面就可以进行显示,同时也可点击进入进行修改删除操作。7:收支便签界面:这个界面可以添加便签,记录支出、收入信息。相当于备忘录功能。btnflagSaveButton.setOnClickListener(new OnClickListener() / 为保存按钮设置监听事件 Override public void onClick(View arg0) String strFlag = txtFlag.getText().toString();/ 获取便签文本框的值 if (!strFlag.isEmpty() / 判断获取的值不为空 FlagDAO flagDAO = new FlagDAO(Accountflag.this);/ 创建FlagDAO对象 Tb_flag tb_flag = new Tb_flag(flagDAO.getMaxId() + 1, strFlag);/ 创建Tb_flag对象 flagDAO.add(tb_flag);/ 添加便签信息 / 弹出信息提示 Toast.makeText(Accountflag.this, 新增便签数据添加成功!, Toast.LENGTH_SHORT).show(); else Toast.makeText(Accountflag.this, 请输入便签!, Toast.LENGTH_SHORT).show(); );btnflagCancelButton.setOnClickListener(new OnClickListener() / 为取消按钮设置监听事件 Override public void onClick(View arg0) txtFlag.setText();/ 清空便签文本框 ); 8:数据管理界面:主要用来管理支出、收入、便签信息。当点击支出信息、收入信息、便签信息后,就会显示对应的信息,可点击进入管理界面,对信息进行修改或删除。这一界面在顶部设三个按钮,分别显示支出信息,收入信息,便签信息。用ListView控件来显示。btnoutinfo.setOnClickListener(new OnClickListener() / 为支出信息按钮设置监听事件 Override public void onClick(View arg0) showInfo(R.id.btnoutinfo);/ 显示支出信息 ); btnininfo.setOnClickListener(new OnClickListener() / 为收入信息按钮设置监听事件 Override public void onClick(View arg0) showInfo(R.id.btnininfo);/ 显示收入信息 ); btnflaginfo.setOnClickListener(new OnClickListener() / 为便签信息按钮设置监听事件 Override public void onClick(View arg0) showInfo(R.id.btnflaginfo);/ 显示便签信息 );lvinfo.setOnItemClickListener(new OnItemClickListener() / 为ListView添加项单击事件 / 覆写onItemClick方法 Override public void onItemClick(AdapterView parent, View view, int position, long id) String strInfo = String.valueOf(TextView) view).getText();/ 记录单击的项信息 String strid = strInfo.substring(0, strInfo.indexOf(|);/ 从项信息中截取编号 Intent intent = null;/ 创建Intent对象 if (strType = btnoutinfo | strType = btnininfo) / 判断如果是支出或者收入信息 intent = new Intent(Showinfo.this, InfoManage.class);/ 使用InfoManage窗口初始化Intent对象 intent.putExtra(FLAG, new String strid, strType );/ 设置要传递的数据 else if (strType = btnflaginfo) / 判断如果是便签信息 intent = new Intent(Showinfo.this, FlagManage.class);/ 使用FlagManage窗口初始化Intent对象 intent.putExtra(FLAG, strid);/ 设置要传递的数据 startActivity(intent);/ 执行Intent,打开相应的Activity ); 9:系统设置界面:用于用户密码的修改。修改后下一次登录需要输入新的密码。以下是两个按钮对应的代码。btnSet.setOnClickListener(new OnClickListener()Overridepublic void onClick(View arg0)PwdDAO pwdDAO=new PwdDAO(Sysset.this);Tb_pwd tb_pwd=new Tb_pwd(txtpwd.getText().toString();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业电源中的新型脉冲变压器研究
- 工业自动化技术的进步与未来挑战
- 工业设计与创新产品开发流程
- 工业风情的住宅建筑设计思路
- 工作满意度对个人发展的影响研究
- 工业防腐蚀涂料的优化研究
- 工厂智能化改造与升级策略
- 工作安全与心理健康并重策略
- 工厂安全设施配置及管理要求
- 工程造价预算中的成本控制策略
- 食管早癌的内镜诊断
- 江西省南昌市南昌县2022-2023学年八年级下学期期末英语试题
- 单机试车检查、联动试车确认表
- 一例肾破裂伴胸腔积液患者疑难病例讨论
- JJG 621-2012 液压千斤顶行业标准
- JTG∕T F30-2014 公路水泥混凝土路面施工技术细则
- 护理站站长述职报告
- 小学科学湘科版四年级下册全册同步练习含答案
- 体检护理质量改善项目汇报
- 大唐陕西发电限公司本部及所属单位一般管理人员招聘历年高频难易度、易错点模拟试题(共500题)附带答案详解
- 国开《资源与运营管理-0030》期末机考【答案】
评论
0/150
提交评论