ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:69.14KB ,
资源ID:9290815      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9290815.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《移动应用开发》课程设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《移动应用开发》课程设计.docx

1、移动应用开发课程设计移动应用开发课程设计报告学院名称:计算机与信息工程学院班级名称:计科对口 14学生姓名:胡闻璐号:目:基于个人理财通的计算器任课教师名:刘东良起止日期:2017年04月18日至04月30日移动应用开发课程设计报告 摘要 1项目需求分析1.1需求分析 1.2功能需求 2系统总体设计 .2.1系统架构设计.2.2系统功能体系.3系统详细设计.3.1数据库设计.3.2系统界面设计.3.3数据存储设计.3.4信息统计设计.3.5地图轨迹设计.3.6服务应用设计.4系统编码实现.4.1框架引用 4.2交互实现 4.3单元测试 5系统测试发布.5.1手机环境的实测5.2 APP的发布实

2、测参考文献 成绩评定 11222513151515仃1818181920摘要随着移动终端的迅速普及, Android 系统平台引用软件的需求随之增大。 伴随着 Android 智能手机与平板电脑已经出现在我们生活的大量的使用, 越来越多的基于 Android 开发平台 也随之而出,为丰富人们使用 Android 智能产品的用途,使其可以帮人们记录一些事情。本 设计开发通过研究 Android 体系结构和个人理财管理方面的知识, 设计并实现了个人理财通 系统。能够对理财信息进行获取、汇总、整理、计算等功能,从而实现随身随时随地地进行 日常的理财活动。1 项目需求分析1.1 需求分析初始登陆时没有

3、密码,为了方便用户保护隐私,可以自行设置密码 添加支出金额、时间、类别和地点等信息 添加收入金额、时间、类别和付款方等信息 支出汇总,收入汇总,便签信息添加便签,设置提醒或事项物质和科技的飞速发展, 人们的生活水平也不断的在提高, 往往有很多人在快节奏的生活中 迷失和迷茫,很多人觉得自己没钱,但每个月的工资也不是很低,却往往不知道钱花在哪, 为什么每到月底自己的钱包会空空如也, 正因为这样, 人们才需要一款个人理财软件, 简单 的界面,易懂的操作,十分便携直观的理财方式, 可以让人们更好的进行个人理财。以下是 本软件的一些功能:1登录界面:2新增支出:3新增收入:4数据管理:5便签功能:6计

4、算 器:对数据进行计算,方便记录,长按结果可直接复制7移动课堂:泛雅平台中的安卓课程访问8帮 助:对个人理财通各个功能部件的使用介绍9退 出:退出该系统1.2 功能需求目前国内外理财软件已有上百种之多,如美国的直觉公司 QUICKEN 软件为美国 13 个州及 加拿大的客户提供金融管理和预算等财务问题。 国内在财务管理方面做的比较突出的当属金 蝶公司。然而,在手机理财软件方面做的很突出的还没有,本软件是针对个人用户的一款 Android 软件,主要对个人理财收入、支出做一个记录和统计,可以对用户的收入、支出记 录做添加、删除、查询和修改的管理,本软件该具备以下功能:1功能操作要方便、易懂、,不

5、要有多余或复杂的操作。2对用户收入支出信息做添加、删除、查询和修改。3系统的功能复合本人的实际情况。4界面直观简洁,方便用户更好的使用。5保证软件的安全性。2系统总体设计2.1系统架构设计3系统详细设计3.1数据库设计(1)数据类型简要规则程序中需要定义常量,变量,这些需要指定的类型。下面介绍常见的数据库类型,如表3-1 所示。数据类型简写整形int字符型str布尔型bl单精度浮点型flt双精度浮点型dbl表3-1数据类型简要规则(2)组件命名规则所有的组件对象名称的拼音简写, 如果发现冲突可采用不同的简写规则。 组件命名如表3-2所示。控件缩写形式EditTexttxtButtonbtnSp

6、innerspListViewlv表3-2组件命名规则个人理财通是一款运行在 An droid系统上的程序,在 An droid系统中,集成了一种轻量型的数据库,即 SQLite,该数据库是使用 C语言编写的开源嵌入式数据库,支持的数据库大小为2TB,使用该数据库,用户可以像使用 SQL Server数据库或者Oracle数据库那样来存储、管理和维护数据,本系统采用了 SQLite数据库,并且命名为account.db,该数据库中用到了 4 个数据表,分别是 tb_flag、tb_inaccount、tb_outaccount 和 tb_pwd 。3.2系统界面设计1启动界面:清新简洁的启动界

7、面,标识着个人理财通和开发者微博,提升整体软件美观程 度,如图3-1所示。图3-12.用户登录:首次登录不需要密码,进去后可在系统设置里设置密码。由于本软件属于个人 客户端,通常情况下只有本人使用, 所以没有用户名,直接进入密码输入环节,便于保护用户隐私,如图3-2所示。图3-23.用户登入后进入软件的主界面,主界面包括软件的所有功能图标,用户可根据需要使用, 如图3-3所示。图3-34.3-4、 3-53-8、 3-9计算器:基本的加减乘除,可以方便用户对金额进行计算,从而方便记录,在本计算机中 计算的结果,可以长按结果进行复制,从而到收入支出页面进行快捷的粘贴,如图 所示。图3-4 图3-

8、55.新增支出:此模块的功能是添加用户的新增支出。同样新增支出可以选择金额、时间、类别、地点和备注。类别可以选择餐费、应酬、礼金、车费以及其他,长按金额后面的填写框 可以快捷复制计算器的计算结果,如图 3-6、3-7所示。图3-6 图3-76.新增收入:此模块的功能是添加用户新增的收入。在平时理财的过程中,添加收入记录是 很频繁操作,所以此模块为用户提供了一个非常实用而且便捷的操作过程。在这个模块中, 用户可以添加收入信息记录的内容包括:金额、时间、类别、付款方以及备注。为了用户能 够方便的查看收入记录,故将收入类别进行了分类,具体分为五类,分别为工资、兼职、分 红、奖金、其他,长按金额后面的

9、填写框可以快捷复制计算器的计算结果,如图所示。图3-8 图3-97.我的支出、我的收入:当在新增收入模块进行了添加操作后,添加的收入记录就会显示在 模块中。在这两个界面中可以清楚的看到所有的记录,如图 3-10、3-11所示。图 3-10 图 3-118.数据管理:对于家庭理财系统来说,数据管理功能是非常重要的一个功能,它主要是管理 支出、收入以及便签的记录信息,如图 3-12 所示。图 3-129.系统设置:让用户来设置密码。密码设置成功后,用户再次登录时就需要所设置的密码, 如图 3-13 所示。图 3-1310.新增便签,主要实现添加便签记录。便签模块可以记录将要进行的收入或支出信息,也

10、 就是相当于备忘录的功能,如图 3-14 所示。图 3-1411.移动课堂:泛雅平台的移动应用开发学习界面,用户可以在这里学习安卓有关知识,如 图 3-15 所示。图 3-1512.3-16 所示。帮助:个人理财通使用帮助,用于解决在系统中遇到的问题,如图图 3-1613.退出:用户点击退出图标后回到登录界面。3.3 数据存储设计public class DBOpenHelper extends SQLiteOpenHelper private static final int VERSION = 1;/ 定义数据库版本号private static final String DBNAME =

11、 account.db;/ 定义数据库名public DBOpenHelper(Context context)/ 定义构造函数 super(context, DBNAME, null, VERSION);/ 重写基类的构造函数Overridepublic void onCreate(SQLiteDatabase db)/ 创建数据库db.execSQL(create table tb_outaccount (_id integer primary key,money decimal,time varchar(10),+ type varchar(10),address varchar(100

12、),mark varchar(200);/ 创建支出信息表db.execSQL(create table tb_inaccount (_id integer primary key,money decimal,time varchar(10),+ type varchar(10),handler varchar(100),mark varchar(200);/ 创建收入信息表db.execSQL(create table tb_pwd (password varchar(20);/ 创建密码表db.execSQL(create table tb_flag (_id integer primar

13、y key,flag varchar(200);/ 创建便签信息表Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)/ 覆写基类的 onUpgrade 方法,以便数据库版本更新3.4 信息统计设计收入或便签信息。如图 3-18当点击支出汇总、收入汇总或便签信息时,下方就会出现所有的支出、 图 3-17、 3-18 所示。图 3-173.5 地图轨迹设计/* 计算器项目*/public class Calculator extends Activity private static fi

14、nal boolean isDebug = true;/ 判断项目是否处于 debug 调试模式 ,控制是否 打印 log/ char 用来进行判断用private static final char CJia = +;private static final char CJian = -;private static final char CCheng = *;private static final char CChu =十;/ String 用来进行显示用private static final String SJia = +;private static final String SJ

15、ian = -;private static final String SCheng = *;private static final String SChu =十;private TextView textView;private Button mCopy;/ 复制按钮private boolean isTextViewInputted = false;/ 判断 textView 是否有输入, 用来判断 0 按钮 的功能/ private Button btn_c, btn_del;/ C 、DEL/ p rivate Butt on btnjia, btnjia n, btn _chu,

16、btn _che ng;/ + 、 -、x、十/ private Button btn_dian, btn_dengyu;/ ., =/ private Button btn_0, btn_1, btn_2, btn_3, btn_4;/ 0,1,2,3,4/ private Button btn_5, btn_6, btn_7, btn_8, btn_9;/ 5,6,7,8,9protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);/ 布局/ 动态的设置 Gridlayout

17、中控件的宽度 ,使其全屏匹配屏幕ViewTreeObserver vto = gridlayout.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() public void onGlobalLayout() fillview(gl);ViewTreeObserver obs = gl.getViewTreeObserver(); obs.removeGlobalOnLayoutListener(this););/ 获得每个按钮的点击事件initViews();/ 为每个 Butto

18、n 设置了 onClick 属性 public void onClick(View view) switch (view.getId() / 0-9 button0Function(); break; button1Function(); break;button2Function(); break;button3Function(); break;button4Function(); break;button5Function(); break;button6Function(); break;button7Function(); break;button8Function(); break

19、;button9Function(); break;buttonDianFunction(); break;/ CbuttonClear(); break;/ DELbuttonDel();break;/ +/ -buttonJiaYunSuanFunction();break;/ XbuttonJianYunSuanFunction();break;buttonChengY unSuanFunction(); break;/ *buttonChuYunSuanFunction(); break;/ =buttonDengY uFunction(); break;default:Button

20、b = (Button) view;Toast.makeText(this, b.getText(), Toast.LENGTH_SHORT).show(); break;/* =/* private 私有方法 */* = private void fillview(GridLayout gl) Button buttontemp;GridLayout.LayoutParams params;for (int i = 0; i gl.getChildCount(); i+) buttontemp = (Button) gl.getChildAt(i); params = (LayoutPara

21、ms) buttontemp.getLayoutParams(); params.width = (gl.getWidth() / gl.getColumnCount()- params.rightMargin - params.leftMargin; buttontemp.setLayoutParams(params);*/*/ 初始化所有的控件private void initViews() mCopy.setOnClickListener(new OnClickListener() Overridepublic void onClick(View v) / TODO 自动生成的方法存根i

22、f (textView.getText().toString().equals() Toast.makeText(Calculator.this, 结果为空 , Toast.LENGTH_SHORT) .show();return; );private void printDebugInfo(String str) if (isDebug) Log.i(TAG, Debug: + str); / 往 Textv 的尾部追加内容private void appendTextView(String str) CharSequence text = textView.getText(); text

23、= text + str; printDebugInfo(text.toString(); textView.setText(text);/ 添加数字按钮的功能 start/ 对于 0 的输入的注意点:textview 显示为 0 时,什么都不用做,继续保持为 0 0 时,在 textview 的尾部追加一个 0 有两个方案/ 1、当还没有输入时,就是/ 2 、当 textview 的显示不为/ 问题:判断条件怎样来确定。/ 1 、获取 textview 的内容,然后调用比较的方法,是否和 0 相等每次都要读取 textview 的值然后进行/ 2、设置一个Boolean标记,当textvie

24、w第一次输入不为 0时,将标记设为true,然后 根据标记来进行 0 按钮的功能实现/ 对比: 方案一有点简单, 缺点相对来说耗性能。 比较;方案二有点性能上比第一个高,但是控制条件比第一个复杂/ 0按钮的功能private void button0Function() if (isTextViewInputted & !textView.getText().toString().equals(0) / 条件成立 ,textview 的值不是 0 appendTextView(0); else if (!textView.getText().toString().equals(0) 把 t t

25、v 、八teXVieWSetTexM。);/ 当有运算操作后,isTextViewlnputted 为 false 时,需要/ 如果已经有输入了, 则在 textview 尾部追加一, 是第一次输入则将 textview 显示改为 1.此规则同样适用于其他数字按钮/ 1 按钮的功能private void button1Function() if (isTextViewInputted) appendTextView(1); else / 第一次进行输入 isTextViewInputted = true; textView.setText(1);/ 2 按钮的功能private void b

26、utton2Function() if (isTextViewInputted) appendTextView(2); else / 第一次进行输入 isTextViewInputted = true; textView.setText(2);/ 3 按钮的功能private void button3Function() if (isTextViewInputted) appendTextView(3); else / 第一次进行输入 isTextViewInputted = true; textView.setText(3);/ 4 按钮的功能 private void button4Fun

27、ction() if (isTextViewInputted) appendTextView(4); else / 第一次进行输入 isTextViewInputted = true; textView.setText(4);/ 5 按钮的功能private void button5Function() if (isTextViewInputted) appendTextView(5); else / 第一次进行输入 isTextViewInputted = true; textView.setText(5);/ 6 按钮的功能private void button6Function() if

28、 (isTextViewInputted) appendTextView(6); else / 第一次进行输入 isTextViewInputted = true; textView.setText(6);/ 7 按钮的功能private void button7Function() if (isTextViewInputted) appendTextView(7); else / 第一次进行输入 isTextViewInputted = true; textView.setText(7);/ 8 按钮的功能private void button8Function() if (isTextVi

29、ewInputted) appendTextView(8); else / 第一次进行输入 isTextViewInputted = true; textView.setText(8);/ 9 按钮的功能private void button9Function() if (isTextViewInputted) appendTextView(9); else / 第一次进行输入 isTextViewInputted = true; textView.setText(9);/ 添加数字按钮的功能 end= / 功能四的代码 start=/ C 按钮的功能 ,清除屏幕使其显示 0,并且改变输入状态是未输入 private void buttonClear() if (isTextViewInputted) isTextViewInputted = false; textView.setText(0); else if (!textView.getText().toString().equals(0) textView.setTe

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

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