• 基于Android和SSH的旅游自助系统APP设计


    目录
    一、 详细设计 1
    【需求分析】 1
    五类地方旅游类App下载量分布图 1
    六大商店地方旅游类App下载量分布图 2
    【可行性分析】 2
    【用例建模】 3
    【流程图】 4
    【系统分析】 4
    【时序图】 5
    【ER图】 5
    【数据库设计】 7
    二、关键技术说明 8
    三、模块测试 9
    【可行性分析】
    经济可行性:
    设备
    服务器:Linux系统的阿里云服务器
    PC机:开发电脑3台
    数据库:MySQL。
    建模工具:Rotational Rose 2003

    技术可行性:
    版本控制系统:SVN
    前端:Bootstrap框架、Html5+CSS3、JavaScript、Ajax
    后台:Struts2框架、Hibernate框架、Spring框架
    设计模式:拟采用单例模式、适配器和外观模式
    算法:AES加密算法、MD5加密算法、路径规划算法

    社会因素可行性分析:
    所有软件都选用正版.
    所有技术资料都由提出方保管。
    合同制定确定违约责任.
    用户使用可行性分析
    二、关键技术说明
    说明:将项目使用到的关键技术,本文转载自http://www.biyezuopin.vip/onews.asp?id=15211核心算法进行说明,可以配少量的代码进行说明。
    版本控制系统:SVN
    前端:Bootstrap框架、Html5+CSS3、JavaScript、Ajax
    后台:Struts2框架、Hibernate框架、Spring框架
    设计模式:拟采用单例模式、适配器和外观模式
    算法:AES加密算法、MD5加密算法、路径规划算法

    package com.tsc.view;
    
    import android.content.Context;
    import android.util.AttributeSet;
    import android.view.MotionEvent;
    import android.view.View;
    import android.widget.ListView;
    
    public class MyListView extends ListView {
    	boolean allowDragTop = true; // 如果是true,则允许拖动至底部的下一页
    	float downY = 0;
    	boolean needConsumeTouch = true; // 是否需要承包touch事件,needConsumeTouch一旦被定性,则不会更改
    
    	public MyListView(Context arg0) {
    		this(arg0, null);
    	}
    
    	public MyListView(Context arg0, AttributeSet arg1) {
    		this(arg0, arg1, 0);
    	}
    
    	public MyListView(Context arg0, AttributeSet arg1, int arg2) {
    		super(arg0, arg1, arg2);
    	}
    
    	@Override
    	public boolean dispatchTouchEvent(MotionEvent ev) {
    		if (ev.getAction() == MotionEvent.ACTION_DOWN) {
    			downY = ev.getRawY();
    			needConsumeTouch = true; // 默认情况下,listView内部的滚动优先,默认情况下由该listView去消费touch事件
    			allowDragTop = isAtTop();
    		} else if (ev.getAction() == MotionEvent.ACTION_MOVE) {
    			if (!needConsumeTouch) {
    				// 在最顶端且向上拉了,则这个touch事件交给父类去处理
    				getParent().requestDisallowInterceptTouchEvent(false);
    				return false;
    			} else if (allowDragTop) {
    				// needConsumeTouch尚未被定性,此处给其定性
    				// 允许拖动到底部的下一页,而且又向上拖动了,就将touch事件交给父view
    				if (ev.getRawY() - downY > 2) {
    					// flag设置,由父类去消费
    					needConsumeTouch = false;
    					getParent().requestDisallowInterceptTouchEvent(false);
    					return false;
    				}
    			}
    		}
    
    		// 通知父view是否要处理touch事件
    		getParent().requestDisallowInterceptTouchEvent(needConsumeTouch);
    		return super.dispatchTouchEvent(ev);
    	}
    
    	/**
    	 * 判断listView是否在顶部
    	 * 
    	 * @return 是否在顶部
    	 */
    	private boolean isAtTop() {
    		boolean resultValue = false;
    		int childNum = getChildCount();
    		if (childNum == 0) {
    			// 没有child,肯定在顶部
    			resultValue = true;
    		} else {
    			if (getFirstVisiblePosition() == 0) {
    				// 根据第一个childView来判定是否在顶部
    				View firstView = getChildAt(0);
    				if (Math.abs(firstView.getTop() - getTop()) < 2) {
    					resultValue = true;
    				}
    			}
    		}
    
    		return resultValue;
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    234. 回文链表
    使用 Supervisor 配置 Laravel 运行队列处理器
    TP8 定时任务yzh52521/http-crontab 教程
    清华计算几何-ConvexHull(凸包)-极点InTriangle/ToLeft Test
    Spring MVC 常用的注解
    详解欧拉计划第211题:约数平方和
    【模板】自适应辛普森积分
    [免费专栏] Android安全之静态方式逆向APK应用浅析【手动注入smali+】+【IDA Pro静态分析so文件】+【IDA Pro基础使用讲解】
    LinkedList的实现原理(阅读书籍<Java编程的逻辑>)
    知识图谱常用评价指标:MRR,MR,HITS@K,Recall@K,Precision@K
  • 原文地址:https://blog.csdn.net/sheziqiong/article/details/126760920