《基于android系统的家庭理财通软件支出模块的设计大学本科毕业论文.doc》由会员分享,可在线阅读,更多相关《基于android系统的家庭理财通软件支出模块的设计大学本科毕业论文.doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘要全球经济的蓬勃发展带来了金融理财领域的巨大变革和创新,新的金融工具和理财观点不断产生,迅速地刷新着家庭与个人传统的理财观念。改革开放以来,我国社会经济的发展和居民收入水平得到了很大的提高,家庭理财活动已成为居民生活的重要内容。人们迫切需要一个能充分利用计算机优势,并可以管理家庭财务的软件平台,利用这个平台使得个人的财务有了明晰的收支情况的系统。家庭理财软件可以有效的记录和管理家庭的支出,合理规划和支配家庭资金,是家庭理财的好帮手。利用android技术,使家庭理财逐步信息化、便捷化,可以随时随地记录生活支出,有效的避免了遗漏。它更能随时随地查看,方便随时掌握家庭财务问题。使用家庭理财软件管
2、理家庭财务,不经提高了工作效率,更能大大的提高了其安全性。家庭理财系统采用android作为开发环境,主要包括添加记账、我的账单、分析报表、支出科目四个模块。用户能够通过这些模块所提供的功能,完成相应的操作,满足家庭内部对家庭理财的需求。关键词:家庭理财 Android 支出 查询AbstractThe vigorous development of the global economy has brought great changes and innovation in financial field, new financial instruments and financial poi
3、nt of view continuously, quickly refresh the traditional family and personal financial management concepts.Since the refrom and opening up ,Chinas social and economic development and peoples income level has been greatly improved, family financial management has become an important part of life.Ther
4、e was an urgent need to make full use of advantages of the computer, which can manage the familys financial software platform, the platform enables the use of personal financial revenues and expenditures of the system. Family financial management software can record and management of family expenses
5、, reasonable planning and dominate the family money, family financial management is a good helper.The use of Android technology, the family financial management step by step information, convenient, can whenever and wherever possible to record life expenditure, effectively avoid the omission. It can
6、 whenever and wherever possible to view, at any time convenient to master the family financial problems. The use of family financial management software, financial management of family, without improving work efficiency, can greatly improve the safety.Family financial management system uses Android
7、as the development environment, including adding bookkeeping, my bills, analysis report, expense account four modules.The user can use the functions provided by these modules, complete the corresponding operation, to meet the demand of family financial management within the family.Keywords: family f
8、inancial Android expenses query目录1.绪论.11.1开发语言概述.11.1.1 JAVA简介.11.1.2 JAVA语言特点.11.1.3 JAVA语言特性.11.2Android概述.31.2.1 Android简介.31.2.2 Android系统优势.31.2.3 Android编程环境介绍.42. 嵌入式关系型SQLite数据库存储数据.62.1 SQLite简介.62.2 Andriod操作SQLlite数据库.62.3 本程序中的SQLlite.73.家庭理财通软件简介.84.家庭理财通软件支出模块.84.1登录模块.84.1.1登录界面.84.2主
9、界面模块.94.2.1主界面.94.3添加记账模块.104.3.1添加记账界面.104.3.2添加记账实现代码.124.4我的账单模块.124.4.1我的账单界面.124.4.2账单列表实现代码.134.4.2.1账单列表数据库查找.134.4.2.2查看账单详情.154.4.2.3编辑账单.154.4.2.4删除账目.164.5分析报表模块.164.6支出科目模块.174.6.1支出科目界面.174.6.2支出科目实现代码.194.6.2.1支出科目数据库查找.194.6.2.2查看支出科目.194.6.2.3删除支出科目.204.6.2.4修改支出科目.204. 总结.215. 致谢.22
10、6. 参考文献.221. 绪论本程序是在Eclipse开发环境中,运用软件工程的设计思想,进行Android桌面应用程序的开发。本程序的主要功能包括对个人收入及支出情况进行增、删、改、查等操作,并通过运用Android自带的SQLLite数据库进行数据的查询。1.1 开发语言概述 1.1.1 JAVA简介Java是由Sun Microsystems公司于 1995年5月推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。用Java实现的HotJava浏览器(支持Java applet)显示了Jav
11、a的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。(2010年Oracle公司收购了SUN)Java由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。平台Java平台由Java虚拟机(Java Virtual Machine,简称JVM)和Java 应用编程接口(Application Programming Interface,简称API)构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标
12、准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。常用的Java平台基于Java1.4,最近版本为Java1.7。Java分为三个体系J2SE(Java2 Platform Standard Edition,java平台标准版),J2EE(Java 2 Platform,Enterprise Edition,java平台企业版),J2ME(Java 2 Platform Micro Edi
13、tion,java平台微型版)。 1.1.2 JAVA语言特点Java编程语言的风格十分接近C、C+语言。Java是一个纯粹的面向对象的程序设计语言,它继承了 C+语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。Java不同于一般的编
14、译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。编辑Java源代码可以使用任何无格式的文本编辑器,在Windows操作系统上可以使用记事本(Notepad)、EditPlus等程序,在Linux平台上可使用VI工具等。1.1.3 JAVA语言特性1、Java语言是简单的。Java语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用Java7
15、。另一方面,Java丢弃了C+中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。2、Java语言是面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C+语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。3、Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应
16、用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。4、Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。5、Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有
17、一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。6、Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。7、Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现
18、的,Java的运行环境是用ANSI C实现的。8、Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。9、Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C+。10、Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法
19、来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。11、Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以
20、通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。1.2 Android概述1.2.1 Android简介And
21、roid是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android在正式发行之前,最开始拥有两个内部测试版本,并且以著名的机器人名称来对其进行命名,它们分别是:阿童木(AndroidBeta),发条机器人(Android 1.0)。后来由于涉及到版权问题谷歌将其命名规则变更为用甜点作为它们系统版本的代号的命名方法。甜点命名法开始于Android 1.5发布的时候。作为每个版本代表的甜点的尺寸越变越大,然后按照26个字母数序:纸杯蛋糕(Android 1.5),甜甜圈(Android 1.6),松饼(An
22、droid 2.0/2.1),冻酸奶(Android 2.2),姜饼(Android 2.3),蜂巢(Android 3.0),冰激凌三明治(Android 4.0),果冻豆(Jelly Bean,Android4.1和Android 4.2)。1.2.2 Android系统优势(1)开放性 在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大
23、的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。 (2)挣脱束缚 在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。 (3)丰富的硬件 这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至
24、软件的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。 (4)开发商 Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力方面的程序和游戏如何控制正是留给Android难题之一。 (5)无缝结合的Google应用如今叱诧互联网的Google已经走过10年度历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android
25、平台手机将无缝结合这些优秀的Google服务。1.2.3Android编程环境介绍Android编程是在Eclipse开发环境中进行的,其目录分类形式主要为下图:Src程序的所有代码均放在该文件夹里,其中view包里是所有页面,即activity.util里是所有工具类,model包里是模型包,finical里是模板包,buisness里是服务包,所有对数据库的操作都在这个包里,确定的说是FinancialService。Res:所有资源均放在该文件夹里,例如图标、布局文件等。AndroidManifest.xml这个独立的文件很重要,本程序所有的权限,页面文件(),程序名称,都需要在该文件中
26、进行声明,例如下面代码,通过使用activity声明了程序最开始由PreActivitiy界面进入。 Res/layout:该文件夹里放的是所有页面的XML布局文件。布局文件和activity.java文件之间的关系非常密切,一个页面肯定要有布局,一个布局里肯定有许多控件(文本框按钮等),java虚拟机要想知道用户操纵了哪个控件就必须先将activity页面类和它对应的布局文件进行绑定,然后通过findviewbyid的方式绑定页面上的其他控件,然后再在获取上的控件上,添加不同的监听器,来处理用户对控件的不同操作,比如单机监听器,长按监听器,滑动监听器。通过下列代码进行布局文件和activit
27、y.java的绑定操作,setContentView为绑定布局文件函数。protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.home);通过findviewbyid的方法进行控件的绑定:BaddR = (Button)findViewById(R.id.button1);BList = (Button)findViewById(R.id.button2);通过setOnClickListener方法来添加监听器,实现代码如下:B
28、addR.setOnClickListener(new OnClickListener() public void onClick(View v) Intent intent = new Intent(home.this,AddRecordActivity.class);startActivity(intent);由于FinanicalBaseActivity将initview封装到了onCreate函数中,所以继承了该模板类的类在initview()中也能控件及布局的绑定。如下代码:public abstract class FinanicalBaseActivity extends Act
29、ivity private ProgressDialog progressDialog = null;private MyTask myTask;private Activity activity;private FinancialBaseHandler baseHandler;private Task task;private boolean showProgress;private TaskService taskService;protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceSt
30、ate);/ 取消title栏requestWindowFeature(Window.FEATURE_NO_TITLE);initView();界面的跳转,就是从一个activity到另一个activity,通过使用startactivity(intent)函数来实现的,例如下列代码,通过intent函数,实现由home界面到ShowCategoryActivity界面的跳转:Intent intent = new Intent(home.this,ShowCategoryActivity.class);startActivity(intent);除了使用startactivity(inten
31、t)函数来进行跳转外,若调用的方法中封装了startactivity(intent)函数也可以实现界面的跳转,例如下列代码:public void executeActivity(Class className) Intent intent = new Intent(getApplicationContext(), className);intent.setClass(getApplicationContext(), className);startActivity(intent, className);另外有的页面继承了FinanicalBaseActivity,所以调用executeAct
32、ivity也可以实现页面的跳转。2.嵌入式关系型SQLite数据库存储数据2.1 SQLite简介SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,在Android平台上,集成了一个嵌入式关系型数据库SQLite,所以我们开发andriod程序时可以选择使用SQLite数据库存储数据。SQLite可以解析大部分标准SQL语句,如:查询语句:select * from 表名 whe
33、re 条件子句 group by 分组字句 having . order by 排序子句如:select * from person select * from person order by id desc select name from person group by name having count(*)1插入语句:insert into 表名(字段列表) values(值列表)。如: insert into person(name, age) values(于淼,3)更新语句:update 表名 set 字段名=值 where 条件子句。如:update person set na
34、me=传智 where id=10删除语句:delete from 表名 where 条件子句。如:delete from person where id=102.2Andriod操作SQLlite数据库Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API。可以调用SQLiteDatabase的静态方法:public static SQLiteDatabase openDatabase(String path,SQLiteDatabase.CursorFactory factory,int flags)flags参数可以是 OPEN_READWRITE
35、, OPEN_READONLY ,CREATE_IF_NECESSARY, NO_LOCALIZED_COLLATORS四个的一个或多个(多个模式组合用|隔离)。public static SQLiteDatabase openOrCreateDatabase(File file,SQLiteDatabase.CursorFactory factory)public static SQLiteDatabase openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory)来打开文件系统中位于绝对路径path的数据库。
36、还可以通过Context对象调用public abstract SQLiteDatabase openOrCreateDatabase(String name,int mode,SQLiteDatabase.CursorFactory factory)直接在私有数据库目录创建或打开一个名为name的数据库,注意:mode只的是MODE_PRIVATE , MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE。Context还有:public abstract String databaseList();/返回私有数据库目录所有数据库名字public abstrac
37、t boolean deleteDatabase(String name);/删除私有数据库目录内文件名为name的数据库。除了在文件系统中创建SQLite数据库,android还支持SQLite内存数据库。在某些需要临时创建数据库,并且对操作速率相对要求高的情况下,SQLite内存数据库就发挥作用了,用SQLiteDatabase的静态方法:public static SQLiteDatabase create(SQLiteDatabase.CursorFactory factory)来创建,创建失败返回null。最后记住,不管用何种方式打开了数据库,获得的SQLite对象不再使用时,都要调
38、用close()来关闭打开的数据库,否则抛出IllegalStateException异常。使用SQLiteDatabase对象可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。对SQLiteDatabase的学习,我们应该重点掌握execSQL()和rawQuery()方法。 execSQL()方法可以执行insert、delete、update和CREATE TABLE之类有更改行为的SQL语句; rawQuery()方法可以执行select语句。2.3本程序中的SQLlite根据本程序的需求,我们需
39、要创建两个表,1个账目信息表,1个账目类别表账目信息表中有账目序号,类别序号,类别名,金额,消费日期,备注账目类别表中有,类别序号,类别名,图标序号创建相关语句public void onCreate(SQLiteDatabase db)String create_category_sql = CREATE TABLE category (categoryid integer primary key autoincrement, cname varchar(20), iconid integer); db.execSQL(create_category_sql);String create_r
40、ecords_sql = CREATE TABLE records (recordsid integer primary key autoincrement, money varchar(20),recorddate varchar(20), categoryid integer, weather varchar(20),address varchar(60),remarks varchar(100);db.execSQL(create_records_sql);除了创建还有添加分类信息,修改分类,按照id查询分类,罗列所有分类信息,添加记账,更新记录,删除记录,查询某月的账单,查询某月某分类下的账单等功能,代码会穿插在功能模块中进行讲解。3.家庭理财通软件简介在社会经济不断发展的今天,人们生活水平越来越高,合理理财也变得越来越重要,他直接影响着人们的生活。本软件是基于android的家庭理财软件,当今社会,手机已成为人们生活必不可少的重要物品,而本软件可以方便大家及时记录家庭的财务信息,以便作出合理的财务决策。财务管理对于每一个家庭来说都是意见必不可少的事情,但是,一直以来人们使用传统人工方式的文件、纸张记账管理模式,这些管理模式存在着许多缺点,如效率低、保密性差、另外时间一长,将产生大量的文件和数据