最新体能考核大纲已经出台,有评定手册,须要翻阅查找,很不方便,并且此手册通常人都见不到,如何让你们可以对本身的体能水平有所了解?如何让你们掌握自身体能素质水平?如何让你们查找自身体能短板?如何让你们提升成绩?这一系列的思考,催生出了我制做本软件的想法。java
采用文件查询的方式,对于输入的体能结果进行查询,并返回分数,作出评判。编程
主要是三个界面两个类的实现以及数据文件的存储。如图:
设计模式
其界面以下图所示:
数组
主界面的设计没有什么技术含量,能提一提的就是SPINNER及其ADAPTER与LISTENER了,经过侦听来实现更换TEXTVIEW内容。而后是清除和肯定按钮的LISTENER的实现了。由于TEXTVIEW会变,因此每个EDITTEXT里的成绩在不一样SPINNER状态下表明不一样含义,具备多态性。在算分数时,我经过传递参数的改变实现了不一样科目的计算。数据结构
其界面以下:
函数
帮助界面在用户首次使用时会弹出,点击之后再也不提示后每次启动都不会再弹出,固然在菜单里面仍能把它找回来。 主要是WEBVIEW控件,提早用HTML写好文件放入assets/,WEBVIEW本地读取就可以很好的显示了。
须要重点提的是:如何实现首次开启提醒?我在MainActivity里面新建了一个Intent,经过在SharedPreferences查询标志位是否为TRUE来决定是否在MainActivity中启动HelpActivity。若是点击了之后再也不显示,则把这个标志位变成false值写进SharedPreferences。最后是它的显示主题,我采用继承dialog的方式。学习
如图:设计
设计很简单,只提一提反馈按钮。它的功能是给我发邮件。只须要一个Intent类就能够,主要是请求Android的邮件服务,在网上能够查到方法,因此说java很强大。3d
它的功能就是传递一个通过原始数据给它,而后去/res/raw下查询对应项目的分数标准而后返回。也是同样把传递过来的参数转换一下就可以去提早定义好的文件ID数组取相应的文件地址而后读取相应的数据,这样用“地址数组”就解决了多态的问题。blog
它是把原始数据转换成对应文件中相同进制数据的类。好比我输入的原始数据是11:20,它既能够表明11分20秒,也能够表明11秒20,一个是60进制,一个是100进制。这在内插时对于成绩有影响,因此对于不一样项目,我会选择让原始数据转换成不一样进制的数。
(一)定义常量数组,对文件地址的查询就转化为对数组的查询,实现了一个语句的多态性,压缩了代码量。
(二)统一了数据格式。一样是减小了代码量,不用根据不一样项目去写相应的处理函数(但也正是这个缘由,致使了不一样项目耦合性增长,影响了编写速度,增长了复杂性)。
(一)耦合性过大。正如上文所说,代码量和耦合性不可兼得,代码量小了势必会增长各类各样的标志位,致使代码难以读懂。我应该针对不一样项目编写不一样的类,每一个类里面编写相应的处理函数,最后再抽象出一个接口来实现多态,代码量大点,但结构简单,容错性好。
(二)文件存储方式很差。具体体如今我是按照项目内容对文件做以命名的,这就致使了一我的考核多项课目就须要对多个文件进行读取,每次都是读取其中的一小段,而文件读取操做是个耗时操做。其实,若是一开始考虑到这种问题,我就会按年龄、性别对文件做以命名了,这样只用经过一个文件就能把全部课目成绩都算出来了。这样的时间效率是可观的。
编程重点不是代码,而是其背后的思想,这包括顶层设计、数据结构、设计模式等等。