安康学院本科生毕业论文(设计)
表3-1 数据结构表
3.3.3数据流
数据流是数据结构在系统内传输的路径。对数据流的描述通常包括以下内
容:数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构}}。其中,“数据流来源”是说明该数据流来自哪个过程;“数据流去向”是说明该数据流将到哪个过程去。
3.3.4数据存储
数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。它可以手工文档或手工凭单,也可以是计算机文档。本系统中对数据存储的具体描述。
3.3.5处理过程
处理过程的具体处理逻辑一般用判定表或判定树来描述。数字字典中只需要描述处理过程的说明信息,通常包括以下内容:
处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流}}。
3.4 ER图分析
建立各表间的关系,除有利于进行连接查询外,还可以大大简化数据库的操作,从而提高工作效率。同时,由于各表间的相互关系的存在,使各表间实施了完整性的原则,可以避免一些误操作。通过建立各表间的关系,就可以有效地管理各表的记录。
1)书籍实体图 如图3-2:
书籍 书籍编号 书籍名
图3-2 书籍实体E-R图
41
安康学院本科生毕业论文(设计)
2)书签实体图 如图3-3:
书签名 书签章节 保存进度 书签 书签编号 保存时间
3)用户实体图 如图3-4:
4)最近阅读实体图 如图3-5:
图3-4 用户实体E-R图
用户名 用户手机号 用户 用户编号 密码 图3-3 书签实体E-R图
42
安康学院本科生毕业论文(设计)
5)下载实体图 如图3-6:
图3-6 下载实体E-R图
下载书籍名 下载时间 下载 下载编号 下载的用户名 最近阅读 书籍编号 书籍名 书籍阅读时间 图3-5 最近阅读实体E-R图
43
安康学院本科生毕业论文(设计)
4 软件总体设计
4.1 设计功能概述
本系统是一个采用MVC模式开发的移动学习软件,首先人性化的程序延迟自动跳转功能提供了一个本软件的设计理念的界面。通过该界面进入主界面(由一个切换选项卡构成),通过主界面渗透进各个模块。
首先,在APP的主界面应包含如下模块:
1、儒家:其中包含以孔子、孟子、荀子为代表人物的著作《论语》、《孟子》、《荀子》。
2、道家:其中包含以老子、庄子、列子为代表人物的著作《道德经》、《庄子》、《列子》。
3、墨家:其中包含以墨子为代表人物的著作《墨子》。 4、法家:其中包含以韩非为代表人物的著作《韩非子》。 5、名家:其中包含以公孙龙为代表人物的著作《公孙龙子》。 6、阴阳家:其中包含以邹衍为代表人物的著作。
7、纵横家:其中包含以苏秦、张仪为代表人物的著作如《战国策》。 8、杂家:其中包含以吕不韦为代表人物的著作《吕氏春秋》。 9、农家:其中包含有关农家的篇幅文章。 10、小说家:其中包含有关小说家的篇幅文章。
11、兵家:其中包含有关兵家的著作如《黄帝阴符经》、《孙子兵法》等。 12、医家:其中包含有关医家的著作。
13、备忘录:此模块是用来记录用户在阅读学习时记录的一些文字片段,或是心得体会等。
14、查询功能:用户可以对阅读中不理解的文字或语句进行选择,然后系统会自动弹出搜索按钮,用户点击搜索可以直接链接到百度中进行搜索查询,此功能需要系统具有联网功能,并且需要与移动终端上的浏览器进行关联。
另外,各模块中不仅仅只有相应的原著,还应包含有相对应的白话文著作,以方便用户理解学习,此外,也包含有各学者对诸子百家各大家的研究著作,用户可以通过阅读这些资料文献来拓宽自己对诸子百家思想文化的理解。
44
安康学院本科生毕业论文(设计)
4.2 设计原理概述
4.2.1 Activity延迟跳转原理
在很多应用软件上都会存在的一种Logo界面的表现方式,通过一个简单的Logo中介界面表现出该款软件的设计类型,在图形中让客户抢先了解软件可能提供的功能。先创建一个Timer对象,通过匿名内部类的方式构造一个基于时钟任务(TimerTask)对象,类似于线程该类也是实现了run()方法来对要进行的动作进行处理。最后调用Timer对象的schedule()并传入一个时钟任务对象参数及一个延长的时间参数。
4.2.2 Android平台动态翻页效果原理
1. 翻页之前:Activity显示的是一个普通的Layout,这时候这个Layout可以和用户进行交互。比如我们可以在TextView当中输入文字、点击Button等。
2. 翻页:开始翻页的时候,Activity会切换另到一个View,这时候我们看到的这个View,整个画面其实都是图片(Bitmap)。所以在翻页的时候,我们是没法跟程序进行交互的,因为整个屏幕显示的都是静态图片。
3. 翻页之后:翻页过程结束之后,翻页时候的那个View会消失,Activity显示的又是一个可以跟用户交互的Layout。
前面说过,翻页过程中,Activity显示的是一个View。在这个View的onDraw()方法里面不断地绘制图片,可以实现翻页的动态效果。而绘制是分三个区域进行的。第一个区域显示前一页(看得到的部分),第二个区域显示前一页的背面(前一页被翻起的部分),第三个区域显示后一页(看得到的部分)。这三个部分是通过剪切画布来实现的(Canvas的clipPath()方法)。至于具体怎么剪切,这个涉及到贝塞尔曲线,因为翻页的时候会有弯曲的部分。将三个区域分开之后,我们在第一个区域绘制前一页的Bitmap,在第二个区域绘制前一页被翻起部分的Bitmap,在第三个区域绘制下一页的Bitmap,这样就可以达到页面被翻起的效果。翻页所需的Bitmap,可以通过View的getDrawingCache()方法来得到。翻页的刷新过程:不停地变换顶点坐标,同时不断地剪切画布、绘制Bitmap,这样可以实现动态的翻页效果。
4.2.3 Android网络连接原理
在我们简单的core_java基础中已经学到过java网络编程,事实上Android的网络编程就是建立在java网络编程基础之上的。与学习过程不同的是Android的网络编程大部分是基于HTTP协议的。
45