当前位置:文档之家› 《移动应用开发》课程设计报告书

《移动应用开发》课程设计报告书

《移动应用开发》课程设计报告{学院名称:计算机与信息工程学院班级名称:计科对口14学生:胡闻璐学号: 19题目:基于《个人理财通》的计算器任课教师#姓名:东良起止日期:2017年04月18日至04月30日目录《移动应用开发》课程设计报告 (1)*摘要 (3)1 项目需求分析 (3)需求分析 (3)功能需求 (3)2系统总体设计 (5)系统架构设计 (5)系统功能体系 (5)3系统详细设计 (6)》数据库设计 (6)系统界面设计 (7)数据存储设计 (13)信息统计设计 (13)地图轨迹设计 (13)服务应用设计 (14)4系统编码实现 (14)框架引用 (14)~交互实现 (14)单元测试 (17)5 系统测试发布 (18)手机环境的实测 (18)APP的发布实测 (18)参考文献 (19)成绩评定 (20)<摘要随着移动终端的迅速普及,Android系统平台引用软件的需求随之增大。

伴随着Android 智能手机与平板电脑已经出现在我们生活的大量的使用,越来越多的基于Android开发平台也随之而出,为丰富人们使用Android智能产品的用途,使其可以帮人们记录一些事情。

本设计开发通过研究Android体系结构和个人理财管理方面的知识,设计并实现了个人理财通系统。

能够对理财信息进行获取、汇总、整理、计算等功能,从而实现随身随时随地地进行日常的理财活动。

1 项目需求分析需求分析物质和科技的飞速发展,人们的生活水平也不断的在提高,往往有很多人在快节奏的生活中迷失和迷茫,很多人觉得自己没钱,但每个月的工资也不是很低,却往往不知道钱花在哪,为什么每到月底自己的钱包会空空如也,正因为这样,人们才需要一款个人理财软件,简单的界面,易懂的操作,十分便携直观的理财方式,可以让人们更好的进行个人理财。

以下是本软件的一些功能:①登录界面:初始登陆时没有密码,为了方便用户保护隐私,可以自行设置密码②新增支出:添加支出金额、时间、类别和地点等信息③新增收入:添加收入金额、时间、类别和付款方等信息④数据管理:支出汇总,收入汇总,便签信息⑤便签功能:添加便签,设置提醒或事项⑥计算器:对数据进行计算,方便记录,长按结果可直接复制⑦移动课堂:泛雅平台中的安卓课程访问⑧帮助:对个人理财通各个功能部件的使用介绍⑨退出:退出该系统功能需求目前国外理财软件已有上百种之多,如美国的直觉公司QUICKEN软件为美国13个州及加拿大的客户提供金融管理和预算等财务问题。

国在财务管理方面做的比较突出的当属金蝶公司。

然而,在手机理财软件方面做的很突出的还没有,本软件是针对个人用户的一款Android 软件,主要对个人理财收入、支出做一个记录和统计,可以对用户的收入、支出记录做添加、删除、查询和修改的管理,本软件该具备以下功能:①功能操作要方便、易懂、,不要有多余或复杂的操作。

②对用户收入支出信息做添加、删除、查询和修改。

③系统的功能复合本人的实际情况。

④界面直观简洁,方便用户更好的使用。

⑤保证软件的安全性。

2系统总体设计系统架构设计图2-1 系统架构图系统功能体系系统总体功能主要包括系统各功能模块的详细划分和定义,以及各子功能模块具体实现细节,通过详细划分和定义细节可以将系统各功能进行有效区分,防止功能重叠,功能冗余等现象,系统总体功能分析如表2-2所示.3系统详细设计数据库设计(1)数据类型简要规则程序中需要定义常量,变量,这些需要指定的类型。

下面介绍常见的数据库类型,如表3-1表3-1 数据类型简要规则(2)组件命名规则所有的组件对象名称的拼音简写,如果发现冲突可采用不同的简写规则。

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

系统界面设计1启动界面:清新简洁的启动界面,标识着个人理财通和开发者微博,提升整体软件美观程度,如图3-1所示。

图3-12.用户登录:首次登录不需要密码,进去后可在系统设置里设置密码。

由于本软件属于个人客户端,通常情况下只有本人使用,所以没有用户名,直接进入密码输入环节,便于保护用户隐私,如图3-2所示。

图3-23.用户登入后进入软件的主界面,主界面包括软件的所有功能图标,用户可根据需要使用,如图3-3所示。

图3-34.计算器:基本的加减乘除,可以方便用户对金额进行计算,从而方便记录,在本计算机中计算的结果,可以长按结果进行复制,从而到收入支出页面进行快捷的粘贴,如图3-4、3-5所示。

图3-4 图3-55.新增支出:此模块的功能是添加用户的新增支出。

同样新增支出可以选择金额、时间、类别、地点和备注。

类别可以选择餐费、应酬、礼金、车费以及其他,长按金额后面的填写框可以快捷复制计算器的计算结果,如图3-6、3-7所示。

图3-6 图3-76.新增收入:此模块的功能是添加用户新增的收入。

在平时理财的过程中,添加收入记录是很频繁操作,所以此模块为用户提供了一个非常实用而且便捷的操作过程。

在这个模块中,用户可以添加收入信息记录的容包括:金额、时间、类别、付款方以及备注。

为了用户能够方便的查看收入记录,故将收入类别进行了分类,具体分为五类,分别为工资、兼职、分红、奖金、其他,长按金额后面的填写框可以快捷复制计算器的计算结果,如图3-8、3-9所示。

图3-8 图3-97.我的支出、我的收入:当在新增收入模块进行了添加操作后,添加的收入记录就会显示在模块中。

在这两个界面中可以清楚的看到所有的记录,如图3-10、3-11所示。

图3-10 图3-118.数据管理:对于家庭理财系统来说,数据管理功能是非常重要的一个功能,它主要是管理支出、收入以及便签的记录信息,如图3-12所示。

图3-129.系统设置:让用户来设置密码。

密码设置成功后,用户再次登录时就需要所设置的密码,图3-1310.新增便签,主要实现添加便签记录。

便签模块可以记录将要进行的收入或支出信息,也就是相当于备忘录的功能,如图3-14所示。

图3-1411.移动课堂:泛雅平台的移动应用开发学习界面,用户可以在这里学习安卓有关知识,如图3-1512.帮助:《个人理财通》使用帮助,用于解决在系统中遇到的问题,如图3-16所示。

图3-1613.退出:用户点击退出图标后回到登录界面。

数据存储设计class DBOpenHelper extends SQLiteOpenHelper {private static final int VERSION = 1; = how();break;}}/* ============================= *//* private 私有方法 *//* =========================== */private void fillview(GridLayout gl) {Button buttontemp;params;for (int i = 0; i < (); i++) {buttontemp = (Button) (i);params = (LayoutParams) ();= () / ())- - ;(params);}}oString().equals("")) {, "結果為空",.show();return;}}});}private void printDebugInfo(String str) {if (isDebug) {("TAG", "Debug: " + str);}}oString().equals("0")) {oString().equals("0")) {("0");规则同样适用于其他数字按钮oString().equals("0")) {("0");}}oString());} else {buttonClear();oString().equals("0")) {("0");}}钮的功能;} else if ().toString().equals("0")) {appendTextView(".");isTextViewInputted = true;}}oString();ontains(".")) {isInteger = false;}arrFlaotNumber[i] = (arr[i]);if (0 == i && isFisrtWeiFu) {arrFlaotNumber[i] = -arrFlaotNumber[i];}}if (isInteger) {ontains(".")) {isInteger = false;}arrFlaotNumber[i] = (arr[i]);if (0 == i && isFisrtWeiFu) {arrFlaotNumber[i] = -arrFlaotNumber[i];}}if (isInteger) {ontains(".")) {isInteger = false;}arrFlaotNumber[i] = (arr[i]);if (0 == i && isFisrtWeiFu) {arrFlaotNumber[i] = -arrFlaotNumber[i];}}if (isInteger) {ontains(".")) {isInteger = false;}arrFlaotNumber[i] = (arr[i]);if (0 == i && isFisrtWeiFu) {arrFlaotNumber[i] = -arrFlaotNumber[i];}}if (isInteger) {etSupportZoom(true);().setBuiltInZoomControls(true);("./course/.html");apk/res/android" android:layout_width="match_parent"android:layout_height="match_parent"android:background="#FFFFFF"android:orientation="vertical"><TextViewandroid:id="+id/calculate_textview"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="10dp"android:background="#ffffff"android:gravity="right"android:paddingRight="2dp"android:text="0"android:textColor="#6699ff"android:textIsSelectable="true"android:textSize="40sp"/><Spaceandroid:layout_width="1dp"android:layout_height="0dp"android:layout_weight="1"/><GridLayoutandroid:id="+id/gridlayout_c"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="10dp"android:columnCount="4"android:rowCount="5"><!-- 第 0排 C、DEL 、÷、 X --><Buttonandroid:layout_row="0"android:onClick="onClick"android:text="C"android:textSize="25dp"/> <Buttonandroid:id="+id/btn_del"android:layout_column="1"android:layout_row="0"android:onClick="onClick"android:text="DEL"android:textSize="25dp"/> <Buttonandroid:id="+id/btn_chu"android:layout_column="2"android:layout_row="0"android:onClick="onClick"android:text="÷"android:textSize="25dp"/> <Buttonandroid:id="+id/btn_cheng"android:layout_column="3"android:layout_row="0"android:onClick="onClick"android:text="*"android:textSize="25dp"/> <!-- 第 1排 7、8 、9, -, --> <Buttonandroid:id="+id/btn_7"android:layout_column="0"android:layout_row="1"android:onClick="onClick"android:text="7"android:textSize="25dp"/> <Buttonandroid:id="+id/btn_8"android:layout_column="1"android:layout_row="1"android:onClick="onClick"android:text="8"android:textSize="25dp"/> <Buttonandroid:id="+id/btn_9"android:layout_column="2"android:layout_row="1"android:onClick="onClick"android:text="9"android:textSize="25dp"/> <Buttonandroid:id="+id/btn_jian"android:layout_column="3"android:layout_row="1"android:onClick="onClick"android:text="-"android:textSize="25dp"/> <!-- 第 2排 4、5 、6, +, --> <Buttonandroid:id="+id/btn_4"android:layout_column="0"android:layout_row="2"android:onClick="onClick"android:text="4"android:textSize="25dp"/> <Buttonandroid:id="+id/btn_5"android:layout_column="1"android:layout_row="2"android:onClick="onClick"<Buttonandroid:id="+id/btn_6"android:layout_column="2"android:layout_row="2"android:onClick="onClick"android:text="6"android:textSize="25dp"/><Buttonandroid:id="+id/btn_jia"android:layout_column="3"android:layout_row="2"android:onClick="onClick"android:text="+"android:textSize="25dp"/><!-- 第 3排 1、2 、3, =, --><Buttonandroid:id="+id/btn_1"android:layout_column="0"android:layout_row="3"android:onClick="onClick"android:text="1"android:textSize="25dp"/><Buttonandroid:id="+id/btn_2"android:layout_column="1"android:layout_row="3"android:onClick="onClick"android:text="2"android:textSize="25dp"/><Buttonandroid:id="+id/btn_3"android:layout_column="2"android:layout_row="3"android:onClick="onClick"android:text="3"android:textSize="25dp"/><Buttonandroid:id="+id/btn_dengyu"android:layout_column="3"android:layout_gravity="fill_vertical"android:layout_row="3"android:layout_rowSpan="2"android:onClick="onClick"android:text="="android:textSize="25dp"/><!-- 第 4排 0、. 、 =, --><Buttonandroid:id="+id/btn_0"android:layout_column="0"android:layout_columnSpan="2"android:layout_gravity="fill_horizontal"android:layout_row="4"android:onClick="onClick"android:text="0"android:textSize="25dp"/><Buttonandroid:id="+id/btn_dian"android:layout_column="2"android:layout_row="4"android:onClick="onClick"android:text="."android:textSize="25dp"/></GridLayout><Buttonandroid:id="+id/fz"style="android:attr/buttonStyleSmall"android:layout_width="265dp"android:layout_height="wrap_content"android:onClick="onClickCopy"android:text="长按结果进行复制"android:textSize="25dp"/><Spaceandroid:layout_width="1dp"android:layout_height="0dp"android:layout_weight="1"/></LinearLayout>单元测试设备检测:美图,华为API检测:没有问题功能测试:每个功能都能实现,达到预期目标5 系统测试发布手机环境的实测图5-1 图5-2APP的发布实测1. JDK or JDK (JRE alone is not sufficient)2. Eclipse3. Android SDK4.5. Eclipse安装ADT 插件参考文献[1]吴亚峰等编著,Android核心技术与实例详解[M],人民邮电,2010年10月[2]兴华,Google Android SDK开发例大全[M],人民邮电,2010年6月[3] 汪永松,Android平台开发之旅,机械工业,2010年8月[4]郭宏志,Android应用开发详解[M],电子工业,2010年1月[5]邓凡平,深入理解Android,机械工业 2010年8月成绩评定课程设计基本要求评定课程成绩考勤成绩:实验成绩:课程设计成绩:课程成绩:考勤成绩*20%+实验成绩*20%+课程设计成绩*60%任课老师签字:评定时间:2017年04月日<。

相关主题