基于android个人记账本的设计与开发论文内容摘要:
id 与 tb_account 表的 _id 对应。 No 为收入信息的编号,不 同用户的收入信息存入数据库的时候,都是以 no=1 为起始的,进而往后递增。 表 7 收入信息表 字段名 数据类型 是否主键 是否外键 描述 _id Integer N Y 用户 id 太原科技大学华科学院毕业设计(论文) 6 NO INTEGER N N 编号 MONEY DECIMAL N N 收入金额 TIME DATE N N 收入时间 TYPE VARCHAR(10) N N 收入类别 HANDLER VARCHAR(100) N N 放款方 MARK VARCHAR(200) N N 备注 tb_pay(支出信息表 ) _id 与 tb_account 表的 _id 对应。 No 为收入信息的编号,不同用户的支出信息存入数据库的时候,都是以 no=1 为起始的,进而往后递增。 表 8 支出信息表 字段名 数据类型 是否主键 是否外键 描述 _id Integer N Y 用户 id NO INTEGER Y N 自增 MONEY DECIMAL N N 支出金额 TIME DATE N N 支出时间 字段名 数据类型 是否主键 是否外键 描述 TYPE VARCHAR(10) N N 支出类别 ADDRESS VARCHAR(100) N N 消费地点 MARK VARCHAR(200) N N 备注 tb_note(便签信息表) 太原科技大学华科学院毕业设计(论文) 7 _id 与 tb_account 表的 _id 对应。 表 9 便签信息表 字段名 数据类型 是否主键 是否外键 描述 _id Integer N N 用户 id no Integer N N 便签编号 note VARCHAR(500) N N 便签信息 tb_ptype(支出类型表) tb_ ptype 为支出类型表。 由于每个用户都有对应的用户习惯,在添加支出信息时,收入类型的种类、使用频率都会有所不同。 在此设计支出类型表,可以为用户提供修改支出类型的服务,根据自己的使用频率修改支出类型。 这里的 _id 和账户表的 _id 是对应着的。 表 11 支出类型表 字段名 数据类型 是否主键 可否为空 描述 _id Integer N N 用户 id no Integer N N 类型编号 typename VARCHAR(50) N N 类型名称 tb_itype(收入类型表) tb_itype 为收入类型表。 由于每个用户都有对应的用户习惯,在添加收入信息时,收入类型的种类、使用频率都会有所不同。 在此设计收入类型表,可以为用户提供修改收入类型的服务,根据自己的使用频率修改收入类型。 这里的 _id 和账户表的 _id 是对应着的。 表 10 收入类型表 太原科技大学华科学院毕业设计(论文) 8 字段名 数据类型 是否主键 可否为空 描述 _id Integer N N 用户 id no Integer N N 类型编号 字段名 数据类型 是否主键 可否为空 描述 typename VARCHAR(50) N N 类型名称 太原科技大学华科学院毕业设计(论文) 1 第 4 章 项目开发 系统开发及运行环境 个人财务管理系统的开发及 运行环境如下所述: 操作系统: Windows7 JDK 环境: Java Development Kit version= 开发工具: Eclipse version= Android Software Development Kit version= Android Developer Tools Build: 开发语言: Java、 XML 数据库软件: SQLite 3 运行平台: Windows 创建项目 项目名称: MoneyCharge(个人记账本 ) Minimum Required SDK: Android Target SDK: Android: Compile With: Android Theme: Holo Light with Dark Action Bar 系统文件夹组织 在编写系统之前,定制好系统的系统文件夹组织结构有利于规范系统整体结构,如图6所示。 太原科技大学华科学院毕业设计(论文) 2 图 6 文件夹组织结构 其中 1~20 分别表示如下: 项目名称、源文件夹、项目窗体 类包、数据库操作类包、数据模型类包、系统自动生成的对象包、 Android 版本资源、 Android 私有库、 Android 引用库、资源文件夹、编译文件夹、资源文件夹、引用的第三方的库文件、资源文件夹、图片资源文件夹、布局文件夹、全局数据文件夹 Android 主设置文件、配置文件、默认属性文件 系统公共类设计 数据模型公共类 在 中存放的数据模型公共类,对应着数据库中不同的数据库表。 它们被负责访问数据库的 Dao 类或程序中各模块、组件使用。 Model 对数 据库表中字段封装,主要用来存储数据。 在 model 里,各字段都建立了各自的 get 和 set 方法。 太原科技大学华科学院毕业设计(论文) 3 Dao 公共类 在 中存放的 Dao 公共类 [4],负责着一切对数据库的操作,比如普通的增、删、改、查,还有各类复杂的数据库操作。 其中有一个 DBOpenHepler 类,是在用户第一次运行程序的时候,负责创建数据库和数据库表。 系统全局设计 完全退出系统的全局设计方案 当我们想退出某个手机软件,当然不会希望它继续占用内存,希望它能够完完全全的退 出,将占有的资源释放。 但我在做这个功能的时候,却遇到了一些问题。 一开始时,我采用的是 Activity 自身的 finish()事件来结束 Activity。 但是我发现finish 只能结束当前的这个 Activity,由于这个系统存在着多个 Activity 运行,单纯的finish 当前的 Activity 并不能达到想要的效果。 再后来,尝试 方法,结果发现它的效果等同于finish。 最后,我找到一个完全退出飞方法:创建一个 Activity 管理对象 ActivityManager[13],对象中有一个 Activity 容器,含一个 ListActivity变量,用来储存新开启的 Activity,当需要关闭时,通过读取 List 里的 Activity 实现关闭所有 Activity 的操作,成功完全退出系统。 具体操作:在每个 Activity 的 onCreat ()事件里添加().addActivity(this)。 , 当 需 要 退 出 的 时 候().exit()。 界 面风格设计方案 关于界面总体风格,我旨在给人鲜明亮丽而简洁的感觉。 以 Holo Light with Dark 太原科技大学华科学院毕业设计(论文) 4 Action Bar 为主题,有着近白色的浅灰色的底色,触屏颜色为浅蓝色。 由于在系统的 title设计和按钮设计上,我都采用了颜色为 800000 的红色,显然蓝色在这里不合时宜。 所以重新定制了触屏颜色为 d2d2d2 的灰色。 从而整个系统界面颜色以白色,红色,还有一部分为 21a0a0 的蓝绿色为主,在配有适当的黑色。 主窗体设计实现 图 12 主窗体运行界面 页面布局: 主窗体我想呈现一种 9 宫格的效果。 先用 GridView 布局,在界面上规划出宫格。 再定义一个 Item 的 xml,当作每一个宫格的单位效果 [6]。 Item 里面是一个有图片和文字的线性布局。 数据传输: 在与各个功能模块交互时,利用 Intent 传输用户的 id 以便保存、读取相关的用户信息。 此外,当用户在主界面时第一次点击返回按钮,用 Toast 显示“再按一次退出程序”。 若用户再一次点击返回,则退出程序。 太原科技大学华科学院毕业设计(论文) 5 收入管理版块设计实现 图 1支出模块部分运行界面 图 14收入模块部分运行界面 太原科技大学华科学院毕业设计(论文) 6 页面布局 “我的收入”主面板页面布局整体采用线性布局,数据列表部分采用 ListView 组件将内容动态显示 [7]。 根据 Intent 中传输的用户 id,在数据库中提取相应的记录。 在将记录中的编号、类型、金额、日期字段提取出来进行字符串拼接,最后在 ListView 中显示。 收入增删改界面,采用的是线性布局内嵌套相对布局的方式实现。 “收入管理” title、输入内容及最后的按钮为线性关系。 中间的金额、时间等为相对关系。 收入类别后面的显示为 spinner 动态获 取。 数据传输 这里主要谈一下 ListView、 spinner 的动态获取数据。 在该模块中分别在收入列表、收入类别中使用。 在收入列表中, Activity 收到 Intent 传输过来的用户 id,到数据库里提取相应的收入信息,以 List 的形式传输到前台。 然后在前台对相应的字段进行字符串拼接,存入字符串数组,最后在 ListView 中填充。 在收入类别中, Dao 通过 id 通过对数据库中用户自定义的收入、支出类别读取,返回给前台,并给 spinner 赋值。 时间控件中,可以通过直接输入或选择选取对应的时间,因为 之前出现过两种方式的日期格式不一致,所以对前台的输入进行了格式统一优化。 至于为什么要进行这个优化,因为数据库中存储时间的格式为 varchar,在对比时间大小的时候,是直接通过字符串大小比较的,所以一定得格式一致。 太原科技大学华科学院毕业设计(论文) 7 支出管理版块设计实现 图 15 支出模块运行界面 因为支出模块也收入模块极其相似,实现方法在这里不再次提及。 以上是支出模块的运行界面。 便签版块设计实现 图 16 便签模块运行界面 太原科技大学华科学院毕业设计(论文) 8 1) 页面布局 便签的增删改页面构造简单,单纯的线性布 局(垂直方向),最后两个按钮为在垂直线性中嵌套一个水平线性布局。 2) 数据传输 考虑到便签内容数据量大,所以在 Intent 中只传输用户 id 和便签 no。 跳转到具体页面时,在根据这两个直接到数据库获取。 数据统计版块设计实现 分类收入统计 图 17 分类收入统计表 1)页面布局 )整体页面布局 整体分三块: title 栏、图表区域、时间选择区域。 这三块采用纵向线性布局 )图表 图表区域为一个内嵌的 LinearLayout 及里面包含一个带图片的 TextView。 TextView的 visibility 属性为 gone。 这样 TextView 在默认情况下是隐藏且不占位置的。 此外,为了突出用户点击查看的效果,图表设置了允许点击。 点击的效果如图 17 所 太原科技大学华科学院毕业设计(论文) 9 示,将选择块突出。 饼图颜色选择上,预定义了一组区分度较大的颜色数组,当分组数量大于颜色数组长度时,意味着预定义颜色不够用,随意超出部分采用随机颜色。 )时间选择区域 时间选择区域为多个 LinearLayout 嵌套。 使用纵向 LinearLayout 嵌套横向LinearLayout,横向 LinearLayout 再嵌套纵向 LinearLayout完成如图效果。 而容易时间段时间选择区域,年月日均由 spinner 组件构成。 2)数据获取显示 )时间数据获取 载入页面的时候,获取当前时间的年月赋值 intDefaultYear, intDefaultMonth。 当用户点击“上一月”或“下一月”时,两个变量在时间运算规则上加 1月或减 1月。 任意时间选择区域中,年份是以当前年份往前 10 年显示,比如说现在 2020,则动态显示 2020到 2020 十年的选择范围。 )数据获取显示 根据对应的用户 id,时间范围在数据库获取符合条件的记录,按条将收入类型、金额两个字段封装到 KindData 类中,返回 ListKindData到前台。 前台获取到数据,计算出各占的百分比,将数据存入数据序列中,最后 GraphicalView 类根据数据序列和图表描绘设置将图表在 LinearLayout 中显示出来 [9]。 若是从后台返回的数据为空,则将带图片的 TextView 的 visibilit。基于android个人记账本的设计与开发论文
相关推荐
首先要引用 ,创建一个 MapView对象 来显示地图。 通过 MapController对象 来设置地图显示的地点以及放大的倍数,要定位地点需要构建一个 GeoPoint 对象 来表示地点的经度和纬度,然后使用 animateTo方法将地图定位到指定的 GeoPoint对象 上 ,再 新建一个 Overlay 对象 并在 上 面 标注一些图标文字信息。 通过地名定位 的设计思路 本功
DCS 与电力自动化监控系统;它应用领域很广,可以应用于电力、冶金、石油、化工等领域的数据采集与监视控制以及过程控制等诸多领域。 在电力系统中, SCADA 系统应用最为广泛,技术发展也最为成熟。 它在远动系统中占重要地位 ,可以对现场的运行设备进行监视和控制,以实现数据采集、设备控制、测量、参数调节以及各类信号报警等各项功能 ,即我们所知的"四遥"功能 .RTU(远程终 端单元 )
1”。 如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持 10ms。 (4)[44h] Convert T(温度变换) 这条命令启动一次温度转换而无需其他数据。 温度转换命令被执行,而后DS18B20 保持等待状态。 如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20 又忙于做时间转换的话, DS18B20 将在总线上输出“ 0”,若温度转换完成,则输出“
的静态图像格式,例如 :JPG、 PNG、 GIF 等格式。 (7)GSM 技术 :Global System for Mobile Communications,即全球移动通讯系统,俗称”全球通”,是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。 GSM 技术是属于手机硬件方面的展现,也是在开发
Id int 留言的 id 统计留言的条数 Room_type Varchar 房间的类型 Room_size Float 房间的面积 Former_price Float 原价 Now_price Float 现价 Hno Int 酒店的 id 用于区分是哪一家酒店的留言 执行 SQL 语句: CREATE TABLE `room` ( `_id` int(11) NOT NULL
=.t. =0 (lbl2,label) amp。 amp。 增加另一个标签以显示立体效果 =rgb(64,128,128) =28 =.t. =楷书 _GB2312 =allt(systit) =((systit)*1618)/22 =139 =0 =rgb(0,128,0) =.t. (lbl3,label) amp。 amp。 增加一个标签 =rgb(64,128,128) =.t.