并行与串行数据结构与算法课程设计报告
并行计算结构算法编程第3版课程设计 (2)

并行计算结构算法编程第3版课程设计一、设计背景并行计算结构算法编程是现代计算机应用领域的一个重要分支,能够提高计算机运行效率,加快计算速度。
本课程设计旨在通过掌握并行计算结构基本原理和算法编程技术来培养学生在计算机领域中的综合应用能力。
二、设计目的和任务本课程设计旨在让学生应用已学的知识和技能,在实际的计算机应用场景中进行综合应用,提高学生在并行计算结构与算法编程方面的能力。
本次课程设计的任务主要包括以下方面:1.实现基本的并行计算结构和算法编程。
2.了解并发控制、线程安全等高级并行计算结构技术。
3.掌握并行计算结构的实际应用场景,如数据处理、数据挖掘、图像识别等等。
三、设计内容和要求本次课程设计的具体内容如下:1. 并行计算结构基本原理了解并行计算结构基本原理,如并行计算的概念、并行计算的动态与静态形式、并行计算的任务划分、并行计算的任务交互等。
2. 并行算法编程掌握并行算法编程的目的和基本原理,了解算法编程的产生背景及其发展历程;掌握基于 OpenMP 的并行程序设计,编写具有OPENMP并行结构的并行计算程序。
3. 实际应用场景了解并行计算结构和算法编程在实际应用中的应用场景,如数据处理、数据挖掘、图像识别等。
可以通过调用开源库和其他工具实现实际需求。
四、技能应用在完成课程设计的过程中,通过设计与调试程序、编写程序文档等方式,培养学生综合运用所学知识和技能的能力,包括:1.掌握并行计算结构算法编程的基本技能,能使用基本的并行编程接口,分析并行算法效率,能够从实践中总结经验和提高技能;2.锻炼大型项目的开发能力,对软件开发流程有更深刻理解;3.培养逻辑思维、分析问题和解决问题的能力。
五、参考文献1.《并行计算结构与算法编程》第3版;2.《OpenMP 并行编程实战》;3.《并行算法》;4.《并行计算》。
六、总结通过本次课程设计,学生不仅可以掌握并行计算结构与算法编程的基本理论和技能,更可以在实践中发现问题,提高综合运用能力,培养逻辑思维和解决问题的能力。
数据结构课程设计实验报告完整版

数据结构课程设计实验报告完整版【正文】一、实验目的本实验主要目的是通过实践,掌握数据结构的基本概念、常见数据结构的实现方式以及在实际应用中的应用场景和效果。
二、实验背景数据结构是计算机科学与技术领域中的一个重要概念,是研究数据的组织方式、存储方式、访问方式以及操作等方面的方法论。
在计算机科学领域,数据结构是实现算法和解决问题的基础,因此对数据结构的理解和应用具有重要意义。
三、实验内容本次数据结构课程设计实验主要分为以下几个部分:1. 实验环境的准备:包括选择合适的开发平台、安装必要的软件和工具。
2. 实验数据的收集和处理:通过合适的方式收集实验所需的数据,并对数据进行处理和整理。
3. 数据结构的选择和实现:根据实验需求,选择合适的数据结构,并进行相应的数据结构实现。
4. 数据结构的测试和优化:对所实现的数据结构进行测试,包括性能测试和功能测试,并根据测试结果对数据结构进行优化和改进。
5. 实验报告的撰写:根据实验过程和结果,撰写完整的实验报告,包括实验目的、实验背景、实验内容、实验结果和结论等。
四、实验过程1. 实验环境的准备本实验选择了Visual Studio作为开发平台,安装了相应版本的Visual Studio,并根据官方指引进行了相应的配置和设置。
2. 实验数据的收集和处理本实验选取了一份包含学生信息的数据集,包括学生姓名、学号、性别、年龄等信息。
通过编写Python脚本,成功提取了所需信息,并对数据进行了清洗和整理。
3. 数据结构的选择和实现根据实验需求,我们选择了链表作为数据结构的实现方式。
链表是一种常见的动态数据结构,能够高效地插入和删除元素,适用于频繁插入和删除的场景。
在实现链表时,我们定义了一个节点结构,包含数据域和指针域。
通过指针的方式将节点连接起来,形成一个链式结构。
同时,我们还实现了相关的操作函数,包括插入、删除、查找等操作。
4. 数据结构的测试和优化在完成链表的实现后,我们对其进行了性能测试和功能测试。
并行计算课程报告

并行计算课程报告1.学习总结1.1并行计算简介并行计算是相对于串行计算来说的。
它是一种一次可执行多个指令的算法,目的是提高计算速度,及通过扩大问题求解规模,解决大型而复杂的计算问题。
所谓并行计算可分为时间上的并行和空间上的并行。
时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。
1.2并行计算机分类和并行机体系结构的特征按内存访问模型、微处理器和互联网络的不同,当前流行的并行机可分为对称多处理共享存储并行机(SMP:Symmetric Multi-Processing)、分布共享存储并行机(DSM:Distributed Shared Memory)、机群(cluster)、星群(constellation)和大规模并行机(MPP:Massively Parallel Processing)等五类。
SMP并行机有如下主要特征:对称共享存储、单一的操作系统映像、局部高速缓存cache 及其数据一致性、低通信延迟、共享总线带宽、支持消息传递、共享存储并行程序设计。
SMP 并行机具有如下缺点:欠可靠、可扩展性(scalability)较差。
DSM 并行机具有如下主要特征:并行机以结点为单位,每个结点包含一个或多个CPU,每个CPU 拥有自己的局部cache,并共享局部存储器和I/O设备,所有结点通过高性能互联网络相互连接;物理上分布存储;单一的内存地址空间;非一致内存访问(NUMA)模式;单一的操作系统映像;基于cache 的数据一致性;低通信延迟与高通信带宽;DSM 并行机可扩展到数百个结点,能提供每秒数千亿次的浮点运算性能;支持消息传递、共享存储并行程序设计。
机群(cluster)有三个明显的特征:①系统由商用结点构成,每个结点包含2-4 个商用微处理器,结点内部共享存储。
②采用商用机群交换机连接结点,结点间分布存储。
③在各个结点上,采用机群Linux 操作系统、GNU 编译系统和作业管理系统。
数据结构与算法分析实验报告

数据结构与算法分析实验报告一、实验目的本次实验旨在通过实际操作和分析,深入理解数据结构和算法的基本概念、原理和应用,提高解决实际问题的能力,培养逻辑思维和编程技巧。
二、实验环境本次实验使用的编程语言为 Python,使用的开发工具为 PyCharm。
操作系统为 Windows 10。
三、实验内容(一)线性表的实现与操作1、顺序表的实现使用数组实现顺序表,包括插入、删除、查找等基本操作。
通过实验,理解了顺序表在内存中的存储方式以及其操作的时间复杂度。
2、链表的实现实现了单向链表和双向链表,对链表的节点插入、删除和遍历进行了实践。
体会到链表在动态内存管理和灵活操作方面的优势。
(二)栈和队列的应用1、栈的实现与应用用数组和链表分别实现栈,并通过表达式求值的例子,展示了栈在计算中的作用。
2、队列的实现与应用实现了顺序队列和循环队列,通过模拟银行排队的场景,理解了队列的先进先出特性。
(三)树和二叉树1、二叉树的遍历实现了先序、中序和后序遍历算法,并对不同遍历方式的结果进行了分析和比较。
2、二叉搜索树的操作构建了二叉搜索树,实现了插入、删除和查找操作,了解了其在数据快速查找和排序中的应用。
(四)图的表示与遍历1、邻接矩阵和邻接表表示图分别用邻接矩阵和邻接表来表示图,并比较了它们在存储空间和操作效率上的差异。
2、图的深度优先遍历和广度优先遍历实现了两种遍历算法,并通过对实际图结构的遍历,理解了它们的应用场景和特点。
(五)排序算法的性能比较1、常见排序算法的实现实现了冒泡排序、插入排序、选择排序、快速排序和归并排序等常见的排序算法。
2、算法性能分析通过对不同规模的数据进行排序实验,比较了各种排序算法的时间复杂度和空间复杂度。
四、实验过程及结果(一)线性表1、顺序表在顺序表的插入操作中,如果在表头插入元素,需要将后面的元素依次向后移动一位,时间复杂度为 O(n)。
删除操作同理,在表头删除元素时,时间复杂度也为 O(n)。
并行计算课程设计报告

并行计算与多核多线程技术课程报告专业班级学号XX成绩___________________年月日课程报告要求手写内容:设计目的、意义,设计分析,方案分析,功能模块实现,最终结果分析,设计体会等。
允许打印内容:设计原理图等图形、图片,电路图,源程序。
硬件类的设计,要有最终设计的照片图;软件类设计,要有各个功能模块实现的界面图、输入输出界面图等。
评价理论根底实践效果〔正确度/加速比〕难度工作量独立性目录1. 设计目的、意义〔功能描述〕12. 方案分析〔解决方案〕13. 设计分析13.1 串行算法设计13.2 并行算法设计13.3 理论加速比分析24. 功能模块实现与最终结果分析24.1 基于OpenMP的并行算法实现24.1.1 主要功能模块与实现方法24.1.2 实验加速比分析34.2 基于MPI的并行算法实现34.2.1 主要功能模块与实现方法34.2.2 实验加速比分析44.3 基于Java的并行算法实现44.3.1 主要功能模块与实现方法44.3.2 实验加速比分析54.4 基于Windows API的并行算法实现54.4.1 主要功能模块与实现方法54.4.2 实验加速比分析64.5 基于.net的并行算法实现64.5.1 主要功能模块与实现方法64.5.2 实验加速比分析64.6并行计算技术在实际系统中的应用64.6.1 主要功能模块与实现方法64.6.2 实验加速比分析75. 设计体会76. 附录96.1 基于OpenMP的并行程序设计96.1.1 代码及注释96.1.2 执行结果截图116.1.3 遇到的问题及解决方案126.2 基于MPI的并行程序设计126.1.1 代码及注释126.2.2 执行结果截图126.2.3 遇到的问题及解决方案166.3 基于Java的并行程序设计196.3.1 代码及注释196.3.2 执行结果截图226.3.3 遇到的问题及解决方案236.4 基于Windows API的并行程序设计256.4.1 代码及注释256.4.2 执行结果截图256.4.3 遇到的问题及解决方案306.5 基于.net的并行程序设计306.5.1 代码及注释306.5.2 执行结果截图346.5.3 遇到的问题及解决方案356.6并行计算技术在实际应用系统的应用366.6.1 代码及注释366.6.2 执行结果截图366.6.3 遇到的问题及解决方案421. 设计目的、意义〔功能描述〕设计一个计算向量夹角的WinForm窗体应用,用户只需要在窗体上输入向量的维度,系统随机产生两个向量并将计算结果显示在窗体上。
并行计算结构算法编程课程设计

并行计算结构算法编程课程设计一、课程背景高性能计算(High Performance Computing,HPC)已经成为科技竞争的重要战场之一。
各大科研机构、高校都在日益加大对高性能计算的投入和重视。
在为科学研究提供强有力的支撑的同时,也在很大程度上推动了信息技术的进步和发展。
并行计算结构算法编程课程是计算机科学与技术专业的一门重要的课程,重点讲解并行计算系统的结构、算法设计与编程方法。
二、课程目标本课程旨在介绍并行计算结构和基本的并行算法设计与优化方法,通过学习课程,达到以下目标:1.掌握并行计算系统的结构,包括传统的并行计算系统和云计算系统。
2.熟悉并行算法的设计与优化,掌握传统的并行算法和新兴的并行算法。
3.掌握并行程序的编写方法,能够使用现代工具和技术编写高效的并行程序。
4.具备一定的实验设计和实验分析能力,能够独立完成并行计算相关的实验与项目。
三、课程内容1. 并行计算系统的结构1.1 什么是并行计算系统1.2 传统式并行计算系统1.3 云式并行计算系统2. 并行计算算法设计2.1 并行计算中的任务划分2.2 并行计算中的数据划分2.3 并行计算中的任务调度2.4 并行计算中的数据通信3. 并行程序的编写3.1 编写并行程序的基本原则3.2 选用适合的编程语言3.3 选择美国能源部国家科学院NNSA的ASC黄金标准测试用例4. 课程设计4.1 课程设计项目的内容和要求4.2 怎么设计一个并行计算程序4.3 基于MPI的分散式矩阵-向量乘法运算的实现4.4 基于OpenMP的PDE求解器的实现四、实验环境本课程的实验环境为台式机或服务器,由学生自行摆放,安装MATLAB和MPI 等软件。
五、参考资料1.Peter Pacheco, An Introduction to Parallel Programming,Elsevier, 2011.2.Arora Jaswinder Pal Singh, Anindya Das, Practical ParallelProgramming, PHI Learning Private Limited, 2012.3.Tim Mattson, Beverly Sanders, Berna Massingill, Patterns forParallel Programming, Addison-Wesley Professional, 2004.本文档主要让读者了解并行计算结构算法编程课程设计的内容,以及课程的目的和参考资料。
并行计算课程设计

并行计算课程设计一、课程目标知识目标:1. 让学生理解并行计算的基本概念,掌握并行计算的发展历程及分类;2. 培养学生掌握并行编程的基本方法,了解并行算法的设计原则;3. 使学生了解并行计算在现实生活中的应用,并能结合实际问题进行分析。
技能目标:1. 培养学生运用并行计算技术解决实际问题的能力,提高计算思维;2. 培养学生掌握并行编程工具和软件的使用,能进行简单的并行程序设计;3. 培养学生通过团队合作,进行问题分析、方案设计和程序实现的能力。
情感态度价值观目标:1. 培养学生对并行计算的兴趣,激发其探索未知领域的热情;2. 培养学生具备良好的团队合作精神,学会尊重他人、沟通协作;3. 培养学生认识到科技发展对社会进步的重要性,树立正确的科技观。
课程性质:本课程为选修课,旨在拓展学生的计算思维和编程技能,提高解决实际问题的能力。
学生特点:学生具备一定的计算机基础,对编程有一定了解,对并行计算感兴趣,但可能对并行编程方法和技巧掌握不足。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,充分调动学生的积极性,培养其创新能力和实践能力。
通过本课程的学习,使学生能够将并行计算技术应用于实际问题,达到学以致用的目的。
在教学过程中,将目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 并行计算基本概念:包括并行计算的定义、发展历程、分类及特点。
教材章节:第一章 并行计算概述2. 并行编程模型:介绍 Flynn 分类法,讲解共享内存和分布式内存编程模型。
教材章节:第二章 并行编程模型3. 并行编程语言与工具:学习 MPI、OpenMP、CUDA 等并行编程语言和工具。
教材章节:第三章 并行编程语言与工具4. 并行算法设计:讲解并行算法设计原则,分析常见并行算法。
教材章节:第四章 并行算法设计5. 并行计算应用:介绍并行计算在科学计算、大数据处理等领域的应用。
教材章节:第五章 并行计算应用6. 实践环节:安排学生进行并行程序设计和实现,针对实际问题进行团队协作。
并行计算课程报告.docx

成绩:并行计算导论课程报告专业:软件工程班级:软件二班学号:************姓名:*** 2017 年6 月 1 日1、并行计算的实际意义并行计算或称平行计算是相对于串行计算来说的。
它是一种一次可执行多个指令的算法,目的是提高计算速度,及通过扩大问题求解规模,解决大型而复杂的计算问题。
所谓并行计算可分为时间上的并行和空间上的并行。
时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。
在应用需求方面,人类对计算机性能的需求总是永无止境的,在诸如预测模型的构造和模拟、工程设计和自动化、能源勘探、医学、军事以及基础理论研究等领域中都对计算提出了极高的具有挑战性的要求。
例如,在作数值气象预报时,要提高全球气象预报的准确性,据估计在经度、纬度和大气层方向上至少要取 200*100*20 =40 万各网格点。
并行计算机产生和发展的目的就是为了满足日益增长的大规模科学和工程计算、事务处理和商业计算的需求。
问题求解最大规模是并行计算机的最重要的指标之一,也是一个国家高新技术发展的重要标志。
2、拟优化的应用介绍应用 jacobi 迭代近似求解二维泊松方程。
二维泊松方程:u( x, y) f (x, y), ( x, y)u( x, y)g( x, y), ( x, y)其中2 2(0,W ) * (0, H ) ,u( x, y)x 2u ( x, y)y 2u( x, y)f (x, y) 和g (x, y) 已知函数,分 定 在的内部和 界上。
于任意正整数Mx和 N y,将网格剖分成 Mx* Ny个相同的方格。
在网格 点上,用二 中心差分来近似二 偏 数。
2ui 1, j2ui , jui 1, jx2u(ih x, jh y)h x 22 ui , j 12ui, jui , j 1u(ih x , jh y )h y 2y2将差分近似代入泊松方程, 便得到了五点差分离散格式,泊松方2(h 2h 2 )uh 2 (ui 1, jui 1, j ) h 2 (ui , j 1 ui , j 1) h 2h 2 fi , jxyi , jyxx y 程的求1 iM x 1,1 jN x之后用 典的 jacobi 算法来求解此方程 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程实验报告课程名称:并行与串行数据结构与算法专业班级:ACM1301学号:U201315057姓名:李海锋指导教师:陆枫报告日期:2015.9.23计算机科学与技术学院目录1、课程设计概述 (2)1.1 课设目的 (2)1.2 课设要求 (2)1.3 实验环境 (3)2、系统总体设计 (4)2.1 系统主模块结构体 (4)2.2 找附近的最近的三个某地 (5)2.3 找两点之间最短路径 (6)2.4 数据录入模块 (7)3、数据结构和算法详细设计 (7)3.1 地图的存储 (7)3.1.1 地图背景图片的存储 (7)3.1.2 地图点 (7)3.2 找附近的最近的特定地点(findNearby) (8)3.3 找最短路径 (8)4、程序实现简要说明 (9)4.1开发环境 (9)4.2 支持包 (9)4.3 函数原型 (10)MainActivity.java:实现了地图主要功能 (10)Setting.java:地图数据的录入 (12)4.4 函数功能调用关系 (14)MainActivity.java:地图主要功能程序 (15)Setting.java:数据录入程序 (15)5、程序测试及结果分析 (16)5.1 功能测试 (16)5.2 测试结果分析 (22)6、复杂度分析 (22)6.1 输入地点名查找,鼠标点击显示 (22)6.2 找两点之间的最短路径(dijkstra) (22)6.3 找附近最近的三个某地 (22)7、软件的用户使用说明 (23)8、特色与不足 (23)8.1 特色 (23)8.2 不足 (23)九、主要参考文献 (24)1、课程设计概述1.1 课设目的数据结构是计算机科学技术与信息安全等专业的一门重要专业基础课,牢固掌握数据结构的基础知识,熟练地运用数据结构的思想与技术方法解决实际应用问题是是本课程学习的基本任务与目标。
而课程设计是实现这一学习目标的重要环节和组成部分。
通过课程设计的训练,使学生加深对数据结构知识的理解,牢固掌握其应用方法,并合理灵活地解决一定实际问题,增强和提高综合分析问题与解决问题的能力。
1.2 课设要求题目:华科地图导航问题背景:华中科技大学(Huazhong University of Science and Technology),简称华中大,坐落于湖北省武汉市,学校面积7000余亩。
华科大校园具有典型的工科院校特征,道路笔直,建筑面积方方正正,这为构建电子地图提供了极大的便利。
本实验要求实现一个简单的华科地图程序,可以方便的实现搜索、导航等功能。
基本要求:1输入地点名,可以在地图中以一定标记标示出地点所在的位置鼠标移动到指定建筑处显示建筑名称2输入或点击起点和终点,找出最短的路径,并在图上描出路径,路径不能脱离道路3输入起点,输入特定的地点,如食堂,超市能够找到最近的两到三个地点至少要包括清单中所列的位置实验提示:将每个十字路口或特定建筑看作节点,构建图模型,两个节点的边即是一个路段。
对于某些节点,可能具有特定的意义,例如“图书馆”,可以为其设置一个名称;而对于大多数节点,例如普通路口,可能并不需要名称,只是用来构建图模型的一个节点。
信息的录入可能需要人为输入,需要编写辅助程序。
辅助程序可以如下构造:程序首先载入一张图片并显示。
程序具有多个文本框,当点击图片上特定点时,获取该点的坐标,第一个文本框显示该点的图像坐标,第二个文本框可以输入地点名,第三个文本框用来输入节点编号,剩下的文本框用来输入直接相邻的节点编号或者节点的属性。
点击“确认”后可以将信息保存到磁盘。
这样可以实现坐标、节点编号和位置名称的绑定,为实验构图采集数据。
特定建筑只需考虑建筑大门所对应的路段上的一点。
例如“图书馆”建筑,可认为“图书馆”位于图书馆大门和学校道路相接处,简化处理。
当鼠标移动到“图书馆”附近时,找到距离最近的具有名称的节点显示即可。
对于存在折线的路段,将其看作多段处理;对于细碎的弯折路线,当作直线简化处理。
1.3 实验环境android studio2、系统总体设计2.1 系统主模块结构体2.2 找附近的最近的三个某地2.3 找两点之间最短路径2.4 数据录入模块3、数据结构和算法详细设计3.1 地图的存储3.1.1 地图背景图片的存储初次运行,软件默认显示华科地图,并根据屏幕尺寸设置地图尺寸,然后将地图背景图片存储到手机文件中,以后直接从文件中读取地图背景图片,提高效率。
3.1.2 地图点未运行时,地图点的信息存储在手机文件中。
运行时,地图点信息存储在一个一维数组中,数组索引是点的地图点的编号。
数组中的元素是地图点类(MapPointPlus),该类中含有以下成员:编号(int):serialNumber坐标(Coordinate):coordinate属性(String):property名称(String):name邻接点(String):stringNearbyPoint邻接点(Coordinate[]):nearbyPoint3.2 找附近的最近的特定地点(findNearby)算法:dijkstra的最短路径算法,并判断是否满足条件和满足条件的点的个数。
数据结构:a 存储到起点距离并排序:TreeSet<Coordinate>TreeSet是一种平衡二叉搜索树(基于红黑树实现),Coordinate中存储了点的编号和到起点的距离(TreeSet中按距离排序,由比较器实现)。
b 存储已加入的点:HashSetHashSet中将已访问的点的编号哈希一下,可以快速的存取和访问。
(平均常数时间)c 存储父节点:int[]数组中索引是点的编号,存储的是父节点的编号。
d 存储找到的点:ArrayList<Coordinate>ArrayList基于数组实现,可以获得数组的存取速度,又可以自动动态扩展其大小。
Coordinate中存储了点的编号和到起点的距离。
3.3 找最短路径算法:dijkstra的最短路径算法数据结构:a 存储到起点距离并排序:TreeSet<Coordinate>TreeSet是一种平衡二叉搜索树(基于红黑树实现),Coordinate中存储了点的编号和到起点的距离(TreeSet中按距离排序,由比较器实现)。
b 存储已加入的点:HashSetHashSet中将已访问的点的编号哈希一下,可以快速的存取和访问。
(平均常数时间)c 存储父节点:int[]数组中索引是点的编号,存储的是父节点的编号。
4、程序实现简要说明4.1开发环境Ubuntu + android studio+ android手机一部4.2 支持包android.content.Context;android.content.Intent;android.content.res.Resources;android.graphics.Bitmap;android.graphics.BitmapFactory;android.graphics.Canvas;android.graphics.Color;android.graphics.Paint;android.os.Bundle;android.os.Environment;android.support.v4.app.DialogFragment; android.support.v4.app.FragmentActivity; android.text.Editable;android.text.TextWatcher;android.util.DisplayMetrics;android.util.Log;android.view.Menu;android.view.MenuItem;android.view.MotionEvent;android.view.View;android.view.WindowManager;android.view.inputmethod.InputMethodManager; android.widget.Button;android.widget.EditText;android.widget.HorizontalScrollView; android.widget.ImageView;android.widget.LinearLayout;android.widget.ScrollView;android.widget.TextView;android.widget.Toast;java.io.File;java.io.FileInputStream;java.io.FileNotFoundException;java.io.FileOutputStream;java.io.IOException;java.util.ArrayList;java.util.Arrays;java.util.HashSet;java.util.TreeSet;java.util.regex.Matcher;java.util.regex.Pattern;android.app.Activity;android.content.Context;android.database.Cursor;.Uri;android.provider.MediaStore;4.3 函数原型MainActivity.java:实现了地图主要功能protected void onCreate(Bundle savedInstanceState);功能:初始化应用程序,设置各种监听器,监听器中有一些功能的实现输入参数:Bundle savedInstanceState保存了程序执行的时候的一些状态,方便恢复时接着当前状态继续执行,避免状态丢失影响用户体验。
输出参数:无public boolean onCreateOptionsMenu(Menu menu);功能:初始化菜单显示输入参数:Menu menu 系统变量输出参数:显示时候异常public boolean onOptionsItemSelected(MenuItem item);功能:处理菜单点击事件输入参数:MenuItem item菜单项标识输出参数:是否处理了点击事件指示变量protected void onActivityResult(int requestCode, int resultCode, Intent data);功能:对Setting.java的操作结果进行处理输入参数:int requestCode不同子程序区分变量int resultCode子程序处理结果指示变量Intent data子程序返回的一些信息输出参数:无public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight);功能:根据屏幕尺寸,计算原始地图图片缩放比输入参数:BitmapFactory.Options options地图图片信息int reqWidth屏幕宽度int reqHeight屏幕高度输出参数:放大倍数的倒数public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight);功能:从资源中提取所需的地图背景图片输入参数:Resources res资源句柄int resId地图背景图片id号int reqWidth屏幕宽度int reqHeight屏幕高度输出参数:地图背景图片private void customMap();功能:让地图背景图片适配屏幕尺寸输入参数:无输出参数:无public void loadData(int scale);功能:加载地图点数据输入参数:int scale初始数据规模大小输出参数:无public void resizeDataArray(int scale);功能:扩大地图点数组的大小输入参数:int scale当前地图点数组大小输出参数:无public void choose(int which);功能:处理地图点操作弹出菜单的选择结果输入参数:int which选择的子菜单索引输出参数:无public void showDialog();功能:弹出地图点操作子菜单输入参数:无输出参数:无public void findNearby(int touchPointSerialNumber, String target, int screenHeight, int screenWidth);功能:输入起点,输入特定的地点,找最近的3个输入参数:int touchPointSerialNumber点击的地图点编号String target特定的地点int screenHeight屏幕高度,显示搜索结果时使结果点在屏幕中心时用int screenWidth屏幕宽度,显示搜索结果时使结果点在屏幕中心时用输出参数:无public void singleSourcedShortestPath(int beginSerialNumber, int endSerialNumber, int screenHeight,int screenWidth);功能:找两点之间最短路劲输入参数:int beginSerialNumber起点编号int endSerialNumber终点编号int screenHeight屏幕高度,显示搜索结果时使起点点在屏幕中心时用int screenWidth屏幕宽度,显示搜索结果时使起点点在屏幕中心时用输出参数:无Setting.java:地图数据的录入protected void onCreate(Bundle savedInstanceState);功能:初始化应用程序,设置各种监听器,监听器中有一些功能的实现输入参数:Bundle savedInstanceState保存了程序执行的时候的一些状态,方便恢复时接着当前状态继续执行,避免状态丢失影响用户体验。